diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml deleted file mode 100644 index a4c4c30..0000000 --- a/.github/workflows/CI.yml +++ /dev/null @@ -1,169 +0,0 @@ -# This file is autogenerated by maturin v1.7.1 -# To update, run -# -# maturin generate-ci github -# -name: CI - -on: - push: - branches: - - main - - master - tags: - - '*' - pull_request: - workflow_dispatch: - -permissions: - contents: read - -jobs: - linux: - runs-on: ${{ matrix.platform.runner }} - strategy: - matrix: - platform: - - runner: ubuntu-latest - target: x86_64 - - runner: ubuntu-latest - target: x86 - - runner: ubuntu-latest - target: aarch64 - - runner: ubuntu-latest - target: armv7 - - runner: ubuntu-latest - target: s390x - - runner: ubuntu-latest - target: ppc64le - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-python@v5 - with: - python-version: 3.x - - name: Build wheels - uses: PyO3/maturin-action@v1 - with: - target: ${{ matrix.platform.target }} - args: --release --out dist --find-interpreter - sccache: 'true' - manylinux: auto - - name: Upload wheels - uses: actions/upload-artifact@v4 - with: - name: wheels-linux-${{ matrix.platform.target }} - path: dist - - musllinux: - runs-on: ${{ matrix.platform.runner }} - strategy: - matrix: - platform: - - runner: ubuntu-latest - target: x86_64 - - runner: ubuntu-latest - target: x86 - - runner: ubuntu-latest - target: aarch64 - - runner: ubuntu-latest - target: armv7 - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-python@v5 - with: - python-version: 3.x - - name: Build wheels - uses: PyO3/maturin-action@v1 - with: - target: ${{ matrix.platform.target }} - args: --release --out dist --find-interpreter - sccache: 'true' - manylinux: musllinux_1_2 - - name: Upload wheels - uses: actions/upload-artifact@v4 - with: - name: wheels-musllinux-${{ matrix.platform.target }} - path: dist - - windows: - runs-on: ${{ matrix.platform.runner }} - strategy: - matrix: - platform: - - runner: windows-latest - target: x64 - - runner: windows-latest - target: x86 - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-python@v5 - with: - python-version: 3.x - architecture: ${{ matrix.platform.target }} - - name: Build wheels - uses: PyO3/maturin-action@v1 - with: - target: ${{ matrix.platform.target }} - args: --release --out dist --find-interpreter - sccache: 'true' - - name: Upload wheels - uses: actions/upload-artifact@v4 - with: - name: wheels-windows-${{ matrix.platform.target }} - path: dist - - macos: - runs-on: ${{ matrix.platform.runner }} - strategy: - matrix: - platform: - - runner: macos-12 - target: x86_64 - - runner: macos-14 - target: aarch64 - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-python@v5 - with: - python-version: 3.x - - name: Build wheels - uses: PyO3/maturin-action@v1 - with: - target: ${{ matrix.platform.target }} - args: --release --out dist --find-interpreter - sccache: 'true' - - name: Upload wheels - uses: actions/upload-artifact@v4 - with: - name: wheels-macos-${{ matrix.platform.target }} - path: dist - - sdist: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - name: Build sdist - uses: PyO3/maturin-action@v1 - with: - command: sdist - args: --out dist - - name: Upload sdist - uses: actions/upload-artifact@v4 - with: - name: wheels-sdist - path: dist - - release: - name: Release - runs-on: ubuntu-latest - if: "startsWith(github.ref, 'refs/tags/')" - needs: [linux, musllinux, windows, macos, sdist] - steps: - - uses: actions/download-artifact@v4 - - name: Publish to PyPI - uses: PyO3/maturin-action@v1 - env: - MATURIN_PYPI_TOKEN: ${{ secrets.PYPI_API_TOKEN }} - with: - command: upload - args: --non-interactive --skip-existing wheels-*/* diff --git a/.github/workflows/pypi-package.yml b/.github/workflows/pypi-package.yml new file mode 100644 index 0000000..d2d1942 --- /dev/null +++ b/.github/workflows/pypi-package.yml @@ -0,0 +1,124 @@ +name: Publish Python 🐍 distribution 📦 to PyPI and TestPyPI + +on: + push: + branches: + - main + pull_request: + branches: + - main + release: + types: + - published + - created + workflow_dispatch: + +permissions: + contents: read + +jobs: + build: + name: Build distribution 📦 + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: "3.x" + - name: Install Hatch + uses: pypa/hatch@install + - name: Build a binary wheel and a source tarball + run: hatch build + - name: Store the distribution packages + uses: actions/upload-artifact@v4 + with: + name: python-package-distributions + path: dist/ + + # Publish to TestPyPI on every pull request to `dev` branch + publish-to-test-pypi: + name: Publish Python 🐍 distribution 📦 to TestPyPI + if: github.repository_owner == 'Okroshiashvili' && github.event_name == 'pull_request' && github.ref == 'refs/heads/dev' + needs: + - build + runs-on: ubuntu-latest + permissions: + id-token: write # IMPORTANT: mandatory for trusted publishing + + steps: + - name: Download all the dists + uses: actions/download-artifact@v4 + with: + name: python-package-distributions + path: dist/ + - name: Publish distribution 📦 to TestPyPI + uses: pypa/gh-action-pypi-publish@release/v1 + with: + repository-url: https://test.pypi.org/legacy/ + + # Publish to PyPI on every pull request to `main` branch + publish-to-pypi: + name: >- + Publish Python 🐍 distribution 📦 to PyPI + if: github.repository_owner == 'Okroshiashvili' && github.event_name == 'pull_request' && github.ref == 'refs/heads/main' + needs: + - build + runs-on: ubuntu-latest + permissions: + id-token: write # IMPORTANT: mandatory for trusted publishing + + steps: + - name: Download all the dists + uses: actions/download-artifact@v4 + with: + name: python-package-distributions + path: dist/ + - name: Publish distribution 📦 to PyPI + uses: pypa/gh-action-pypi-publish@release/v1 + with: + attestations: true + + github-release: + name: >- + Sign the Python 🐍 distribution 📦 with Sigstore + and upload them to GitHub Release + needs: + - publish-to-pypi + runs-on: ubuntu-latest + + permissions: + contents: write # IMPORTANT: mandatory for making GitHub Releases + id-token: write # IMPORTANT: mandatory for sigstore + + steps: + - name: Download all the dists + uses: actions/download-artifact@v4 + with: + name: python-package-distributions + path: dist/ + - name: Sign the dists with Sigstore + uses: sigstore/gh-action-sigstore-python@v2.1.1 + with: + inputs: >- + ./dist/*.tar.gz + ./dist/*.whl + - name: Create GitHub Release + env: + GITHUB_TOKEN: ${{ github.token }} + run: >- + gh release create + '${{ github.ref_name }}' + --repo '${{ github.repository }}' + --notes "" + - name: Upload artifact signatures to GitHub Release + env: + GITHUB_TOKEN: ${{ github.token }} + # Upload to GitHub Release using the `gh` CLI. + # `dist/` contains the built packages, and the + # sigstore-produced signatures and certificates. + run: >- + gh release upload + '${{ github.ref_name }}' dist/** + --repo '${{ github.repository }}' diff --git a/Cargo.lock b/Cargo.lock deleted file mode 100644 index eb1fe61..0000000 --- a/Cargo.lock +++ /dev/null @@ -1,178 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 3 - -[[package]] -name = "autocfg" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" - -[[package]] -name = "cfg-if" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" - -[[package]] -name = "heck" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" - -[[package]] -name = "indoc" -version = "2.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b248f5224d1d606005e02c97f5aa4e88eeb230488bcc03bc9ca4d7991399f2b5" - -[[package]] -name = "irspy" -version = "0.1.0" -dependencies = [ - "pyo3", - "roxmltree", -] - -[[package]] -name = "libc" -version = "0.2.158" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8adc4bb1803a324070e64a98ae98f38934d91957a99cfb3a43dcbc01bc56439" - -[[package]] -name = "memoffset" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a" -dependencies = [ - "autocfg", -] - -[[package]] -name = "once_cell" -version = "1.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" - -[[package]] -name = "portable-atomic" -version = "1.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da544ee218f0d287a911e9c99a39a8c9bc8fcad3cb8db5959940044ecfc67265" - -[[package]] -name = "proc-macro2" -version = "1.0.86" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "pyo3" -version = "0.22.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "831e8e819a138c36e212f3af3fd9eeffed6bf1510a805af35b0edee5ffa59433" -dependencies = [ - "cfg-if", - "indoc", - "libc", - "memoffset", - "once_cell", - "portable-atomic", - "pyo3-build-config", - "pyo3-ffi", - "pyo3-macros", - "unindent", -] - -[[package]] -name = "pyo3-build-config" -version = "0.22.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e8730e591b14492a8945cdff32f089250b05f5accecf74aeddf9e8272ce1fa8" -dependencies = [ - "once_cell", - "target-lexicon", -] - -[[package]] -name = "pyo3-ffi" -version = "0.22.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e97e919d2df92eb88ca80a037969f44e5e70356559654962cbb3316d00300c6" -dependencies = [ - "libc", - "pyo3-build-config", -] - -[[package]] -name = "pyo3-macros" -version = "0.22.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb57983022ad41f9e683a599f2fd13c3664d7063a3ac5714cae4b7bee7d3f206" -dependencies = [ - "proc-macro2", - "pyo3-macros-backend", - "quote", - "syn", -] - -[[package]] -name = "pyo3-macros-backend" -version = "0.22.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec480c0c51ddec81019531705acac51bcdbeae563557c982aa8263bb96880372" -dependencies = [ - "heck", - "proc-macro2", - "pyo3-build-config", - "quote", - "syn", -] - -[[package]] -name = "quote" -version = "1.0.37" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" -dependencies = [ - "proc-macro2", -] - -[[package]] -name = "roxmltree" -version = "0.20.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c20b6793b5c2fa6553b250154b78d6d0db37e72700ae35fad9387a46f487c97" - -[[package]] -name = "syn" -version = "2.0.77" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f35bcdf61fd8e7be6caf75f429fdca8beb3ed76584befb503b1569faee373ed" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "target-lexicon" -version = "0.12.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1" - -[[package]] -name = "unicode-ident" -version = "1.0.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" - -[[package]] -name = "unindent" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7de7d73e1754487cb58364ee906a499937a0dfabd86bcb980fa99ec8c8fa2ce" diff --git a/Cargo.toml b/Cargo.toml deleted file mode 100644 index 560ab70..0000000 --- a/Cargo.toml +++ /dev/null @@ -1,13 +0,0 @@ -[package] -name = "irspy" -version = "0.1.0" -edition = "2021" - -# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html -[lib] -name = "irspy" -crate-type = ["rlib", "cdylib"] - -[dependencies] -pyo3 = "0.22.0" -roxmltree = "0.20.0" diff --git a/LICENSE.txt b/LICENSE.txt new file mode 100644 index 0000000..031368e --- /dev/null +++ b/LICENSE.txt @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) 2024-present Nodar Okroshiashvili + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/README.md b/README.md index 52959a2..52ee412 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,23 @@ # IRSpy -`irspy` is the rust library to parse IRS 990 forms. +[![PyPI - Version](https://img.shields.io/pypi/v/hatch-demo.svg)](https://pypi.org/project/hatch-demo) +[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/hatch-demo.svg)](https://pypi.org/project/hatch-demo) + +----- + +## Table of Contents + +- [Installation](#installation) +- [License](#license) + +## Installation + +```console +pip install irspy +``` + + +`irspy` is the Python library to parse IRS 990 forms. `WIP` - work in progress @@ -23,3 +40,7 @@ If you already have `pixi`, then just run. ```bash pixi install ``` + +## License + +`hatch-demo` is distributed under the terms of the [MIT](https://spdx.org/licenses/MIT.html) license. diff --git a/pixi.lock b/pixi.lock index 66c504e..73e7539 100644 --- a/pixi.lock +++ b/pixi.lock @@ -3,37 +3,37 @@ environments: default: channels: - url: https://fast.prefix.dev/conda-forge/ + indexes: + - https://pypi.org/simple packages: linux-64: - conda: https://conda.anaconda.org/conda-forge/linux-64/_libgcc_mutex-0.1-conda_forge.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/_openmp_mutex-4.5-2_gnu.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/_sysroot_linux-64_curr_repodata_hack-3-h69a702a_16.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/annotated-types-0.7.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/astroid-3.2.4-py312h7900ff3_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/binutils_impl_linux-64-2.40-ha1999f0_7.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/attrs-24.2.0-pyh71513ae_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-h4bc722e_7.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/ca-certificates-2024.8.30-hbcca054_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/check-wheel-contents-0.6.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/click-8.1.7-unix_pyh707e725_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/linux-64/coverage-7.6.1-py312h66e93f0_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/dill-0.3.8-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.2.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/gcc_impl_linux-64-14.1.0-h3c94d91_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/iniconfig-2.0.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/isort-5.13.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/kernel-headers_linux-64-3.10.0-h4a8ded7_16.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.40-hf3520f5_7.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.6.3-h5888daf_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libffi-3.4.2-h7f98852_5.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-14.1.0-h77fa898_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/libgcc-devel_linux-64-14.1.0-h5d3d1c9_101.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-14.1.0-h69a702a_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libgomp-14.1.0-h77fa898_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libnsl-2.0.1-hd590300_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libsanitizer-14.1.0-hcba0ae0_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.46.1-hadc24fc_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-14.1.0-hc0a3c3a_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.38.1-h0b41bf4_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libxcrypt-4.4.36-hd590300_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.3.1-h4ab18f5_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/maturin-1.7.1-py312h6ab59e4_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/mccabe-0.7.0-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/mypy-1.11.2-py312h66e93f0_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/mypy_extensions-1.0.0-pyha770c72_0.conda @@ -41,31 +41,39 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.3.2-hb9d3cd8_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-24.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pip-24.2-pyh8b19718_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.3.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.3.3-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.5.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/psutil-6.0.0-py312h66e93f0_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pydantic-2.9.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pydantic-core-2.23.3-py312h12e396e_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pylint-3.2.7-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-8.3.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-8.3.3-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.12.5-h2ad013b_0_cpython.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/python_abi-3.12-5_cp312.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/readline-8.2-h8228510_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/ruff-0.6.4-py312hd18ad41_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/rust-1.80.1-h0a17960_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/rust-std-x86_64-unknown-linux-gnu-1.80.1-h2c6d0dc_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/ruff-0.6.5-py312hd18ad41_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-73.0.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/sysroot_linux-64-2.17-h4a8ded7_16.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_h4845f30_101.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.0.1-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/tomlkit-0.13.2-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.12.2-hd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.12.2-pyha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024a-h8827d51_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/wheel-0.44.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/wheel-filename-1.4.1-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/xz-5.2.6-h166bdaf_0.tar.bz2 + - pypi: https://files.pythonhosted.org/packages/63/88/e38f96103e1e63f8aed1431eac9d3d0e7923b4b0bf0aa5ee39665466ddc6/selectolax-0.3.21-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + - pypi: . osx-64: + - conda: https://conda.anaconda.org/conda-forge/noarch/annotated-types-0.7.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/astroid-3.2.4-py312hb401068_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/attrs-24.2.0-pyh71513ae_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/bzip2-1.0.8-hfdf4475_7.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/ca-certificates-2024.8.30-h8857fd0_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/check-wheel-contents-0.6.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/click-8.1.7-unix_pyh707e725_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/osx-64/coverage-7.6.1-py312hb553811_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/dill-0.3.8-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.2.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/iniconfig-2.0.0-pyhd8ed1ab_0.conda @@ -75,7 +83,6 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-64/libffi-3.4.2-h0d85af4_5.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-64/libsqlite-3.46.1-h4b8f8c9_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libzlib-1.3.1-h87427d6_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/maturin-1.7.1-py312h25c400d_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/mccabe-0.7.0-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-64/mypy-1.11.2-py312hb553811_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/mypy_extensions-1.0.0-pyha770c72_0.conda @@ -83,30 +90,39 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-64/openssl-3.3.2-hd23fc13_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-24.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pip-24.2-pyh8b19718_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.3.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.3.3-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.5.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/psutil-6.0.0-py312hb553811_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pydantic-2.9.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/pydantic-core-2.23.3-py312h669792a_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pylint-3.2.7-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-8.3.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-8.3.3-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/python-3.12.5-h37a9e06_0_cpython.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/python_abi-3.12-5_cp312.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/readline-8.2-h9e318b2_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/ruff-0.6.4-py312he6c0bb9_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/rust-1.80.1-h6c54e5d_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/rust-std-x86_64-apple-darwin-1.80.1-h38e4360_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/ruff-0.6.5-py312he6c0bb9_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-73.0.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/tk-8.6.13-h1abcd95_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.0.1-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/tomlkit-0.13.2-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.12.2-hd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.12.2-pyha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024a-h8827d51_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/wheel-0.44.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/wheel-filename-1.4.1-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-64/xz-5.2.6-h775f41a_0.tar.bz2 + - pypi: https://files.pythonhosted.org/packages/23/34/f1c16a74c422b9991928d726e837f70ed26be4f06fb37dfbd6304a094b16/selectolax-0.3.21-cp312-cp312-macosx_10_9_x86_64.whl + - pypi: . osx-arm64: + - conda: https://conda.anaconda.org/conda-forge/noarch/annotated-types-0.7.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/astroid-3.2.4-py312h81bd7bf_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/attrs-24.2.0-pyh71513ae_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/bzip2-1.0.8-h99b78c6_7.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ca-certificates-2024.8.30-hf0a4a13_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/check-wheel-contents-0.6.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/click-8.1.7-unix_pyh707e725_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/coverage-7.6.1-py312h024a12e_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/dill-0.3.8-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.2.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/iniconfig-2.0.0-pyhd8ed1ab_0.conda @@ -116,7 +132,6 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libffi-3.4.2-h3422bc3_5.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libsqlite-3.46.1-hc14010f_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libzlib-1.3.1-hfb2fe0b_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/maturin-1.7.1-py312h8497442_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/mccabe-0.7.0-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/mypy-1.11.2-py312h024a12e_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/mypy_extensions-1.0.0-pyha770c72_0.conda @@ -124,30 +139,39 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-arm64/openssl-3.3.2-h8359307_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-24.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pip-24.2-pyh8b19718_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.3.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.3.3-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.5.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/psutil-6.0.0-py312h024a12e_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pydantic-2.9.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pydantic-core-2.23.3-py312he431725_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pylint-3.2.7-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-8.3.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/python-3.12.5-h30c5eda_0_cpython.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-8.3.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/python-3.12.6-h739c21a_0_cpython.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/python_abi-3.12-5_cp312.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/readline-8.2-h92ec313_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ruff-0.6.4-py312h42f095d_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/rust-1.80.1-h4ff7c5d_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/rust-std-aarch64-apple-darwin-1.80.1-hf6ec828_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ruff-0.6.5-py312h42f095d_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-73.0.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/tk-8.6.13-h5083fa2_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.0.1-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/tomlkit-0.13.2-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.12.2-hd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.12.2-pyha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024a-h8827d51_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/wheel-0.44.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/wheel-filename-1.4.1-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/xz-5.2.6-h57fd34a_0.tar.bz2 + - pypi: https://files.pythonhosted.org/packages/a9/be/85dc69a88eb8f6b6c20968f6982bec1d4899325541939d43851b677f3bf6/selectolax-0.3.21-cp312-cp312-macosx_10_9_universal2.whl + - pypi: . win-64: + - conda: https://conda.anaconda.org/conda-forge/noarch/annotated-types-0.7.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/astroid-3.2.4-py312h2e8e312_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/attrs-24.2.0-pyh71513ae_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/bzip2-1.0.8-h2466b09_7.conda - conda: https://conda.anaconda.org/conda-forge/win-64/ca-certificates-2024.8.30-h56e8100_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/check-wheel-contents-0.6.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/click-8.1.7-win_pyh7428d3b_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/win-64/coverage-7.6.1-py312h4389bb4_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/dill-0.3.8-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.2.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/iniconfig-2.0.0-pyhd8ed1ab_0.conda @@ -156,35 +180,38 @@ environments: - conda: https://conda.anaconda.org/conda-forge/win-64/libffi-3.4.2-h8ffe710_5.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/win-64/libsqlite-3.46.1-h2466b09_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libzlib-1.3.1-h2466b09_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/maturin-1.7.1-py312h0f167d8_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/mccabe-0.7.0-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/win-64/mypy-1.11.2-py312h4389bb4_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/mypy_extensions-1.0.0-pyha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/openssl-3.3.2-h2466b09_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-24.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pip-24.2-pyh8b19718_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.3.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.3.3-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.5.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/psutil-6.0.0-py312h4389bb4_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pydantic-2.9.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/pydantic-core-2.23.3-py312h2615798_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pylint-3.2.7-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-8.3.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-8.3.3-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/python-3.12.5-h889d299_0_cpython.conda - conda: https://conda.anaconda.org/conda-forge/win-64/python_abi-3.12-5_cp312.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/ruff-0.6.4-py312h881003e_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/rust-1.80.1-hf8d6059_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/rust-std-x86_64-pc-windows-msvc-1.80.1-h17fc481_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/ruff-0.6.5-py312h881003e_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-73.0.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/tk-8.6.13-h5226925_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.0.1-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/tomlkit-0.13.2-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.12.2-hd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.12.2-pyha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024a-h8827d51_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/ucrt-10.0.22621.0-h57928b3_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/vc-14.3-h8a93ad2_20.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/vc14_runtime-14.40.33810-hcc2c482_20.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/vs2015_runtime-14.40.33810-h3bf8584_20.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/vc-14.3-h8a93ad2_21.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/vc14_runtime-14.40.33810-ha82c5b3_21.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/vs2015_runtime-14.40.33810-h3bf8584_21.conda - conda: https://conda.anaconda.org/conda-forge/noarch/wheel-0.44.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/wheel-filename-1.4.1-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/win-64/xz-5.2.6-h8d14728_0.tar.bz2 + - pypi: https://files.pythonhosted.org/packages/01/15/a3df57f402ea9958a1c965302531e756a32ce74fcdd890068f2e105717c7/selectolax-0.3.21-cp312-cp312-win_amd64.whl + - pypi: . packages: - kind: conda name: _libgcc_mutex @@ -218,20 +245,23 @@ packages: size: 23621 timestamp: 1650670423406 - kind: conda - name: _sysroot_linux-64_curr_repodata_hack - version: '3' - build: h69a702a_16 - build_number: 16 + name: annotated-types + version: 0.7.0 + build: pyhd8ed1ab_0 subdir: noarch - noarch: generic - url: https://conda.anaconda.org/conda-forge/noarch/_sysroot_linux-64_curr_repodata_hack-3-h69a702a_16.conda - sha256: 6ac30acdbfd3136ee7a1de28af4355165291627e905715611726e674499b0786 - md5: 1c005af0c6ff22814b7c52ee448d4bea - license: LGPL-2.0-or-later AND LGPL-2.0-or-later WITH exceptions AND GPL-2.0-or-later AND MPL-2.0 - license_family: GPL - purls: [] - size: 20798 - timestamp: 1720621358501 + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/annotated-types-0.7.0-pyhd8ed1ab_0.conda + sha256: 668f0825b6c18e4012ca24a0070562b6ec801ebc7008228a428eb52b4038873f + md5: 7e9f4612544c8edbfd6afad17f1bd045 + depends: + - python >=3.7 + - typing-extensions >=4.0.0 + license: MIT + license_family: MIT + purls: + - pkg:pypi/annotated-types?source=hash-mapping + size: 18235 + timestamp: 1716290348421 - kind: conda name: astroid version: 3.2.4 @@ -302,22 +332,22 @@ packages: size: 508712 timestamp: 1721516374348 - kind: conda - name: binutils_impl_linux-64 - version: '2.40' - build: ha1999f0_7 - build_number: 7 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/binutils_impl_linux-64-2.40-ha1999f0_7.conda - sha256: 230f3136d17fdcf0e6da3a3ae59118570bc18106d79dd29bf2f341338d2a42c4 - md5: 3f840c7ed70a96b5ebde8044b2f36f32 + name: attrs + version: 24.2.0 + build: pyh71513ae_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/attrs-24.2.0-pyh71513ae_0.conda + sha256: 28dba85a7e0f7fb57d7315e13f603d1e41b83c5b88aa2a602596b52c833a2ff8 + md5: 6732fa52eb8e66e5afeb32db8701a791 depends: - - ld_impl_linux-64 2.40 hf3520f5_7 - - sysroot_linux-64 - license: GPL-3.0-only - license_family: GPL - purls: [] - size: 6250821 - timestamp: 1718625666382 + - python >=3.7 + license: MIT + license_family: MIT + purls: + - pkg:pypi/attrs?source=hash-mapping + size: 56048 + timestamp: 1722977241383 - kind: conda name: bzip2 version: 1.0.8 @@ -433,6 +463,66 @@ packages: purls: [] size: 158482 timestamp: 1725019034582 +- kind: conda + name: check-wheel-contents + version: 0.6.0 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/check-wheel-contents-0.6.0-pyhd8ed1ab_0.conda + sha256: 8b4c4ece0a283087349086bd27af753dc7765df3bdc82728def28e04b3f96140 + md5: 6a07d77db092c158b604c1dc1ce60912 + depends: + - attrs >=18.1 + - click >=7.0 + - packaging + - pydantic >=2.0,<3.0 + - python >=3.8 + - tomli >=1.2,<3.0 + - wheel-filename >=1.1,<2.dev0 + license: MIT + license_family: MIT + purls: + - pkg:pypi/check-wheel-contents?source=hash-mapping + size: 575286 + timestamp: 1698799843911 +- kind: conda + name: click + version: 8.1.7 + build: unix_pyh707e725_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/click-8.1.7-unix_pyh707e725_0.conda + sha256: f0016cbab6ac4138a429e28dbcb904a90305b34b3fe41a9b89d697c90401caec + md5: f3ad426304898027fc619827ff428eca + depends: + - __unix + - python >=3.8 + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/click?source=hash-mapping + size: 84437 + timestamp: 1692311973840 +- kind: conda + name: click + version: 8.1.7 + build: win_pyh7428d3b_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/click-8.1.7-win_pyh7428d3b_0.conda + sha256: 90236b113b9a20041736e80b80ee965167f9aac0468315c55e2bad902d673fb0 + md5: 3549ecbceb6cd77b91a105511b7d0786 + depends: + - __win + - colorama + - python >=3.8 + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/click?source=hash-mapping + size: 85051 + timestamp: 1692312207348 - kind: conda name: colorama version: 0.4.6 @@ -450,6 +540,90 @@ packages: - pkg:pypi/colorama?source=hash-mapping size: 25170 timestamp: 1666700778190 +- kind: conda + name: coverage + version: 7.6.1 + build: py312h024a12e_1 + build_number: 1 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/coverage-7.6.1-py312h024a12e_1.conda + sha256: 984f0e7b2ae7fdbb7c34d581c33f049c17aa5ac982246f1f2e63c56b17b50e52 + md5: 6b98fe7947dbc5a91c1e995cf3352002 + depends: + - __osx >=11.0 + - python >=3.12,<3.13.0a0 + - python >=3.12,<3.13.0a0 *_cpython + - python_abi 3.12.* *_cp312 + - tomli + license: Apache-2.0 + license_family: APACHE + purls: + - pkg:pypi/coverage?source=hash-mapping + size: 363130 + timestamp: 1724954141864 +- kind: conda + name: coverage + version: 7.6.1 + build: py312h4389bb4_1 + build_number: 1 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/coverage-7.6.1-py312h4389bb4_1.conda + sha256: cca6398754855d8ffa8412b58a4439f0f183013ae730962ef9cc8150525f3871 + md5: 49b4e0600c84e7d53aae4c042f1e2e4a + depends: + - python >=3.12,<3.13.0a0 + - python_abi 3.12.* *_cp312 + - tomli + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + license: Apache-2.0 + license_family: APACHE + purls: + - pkg:pypi/coverage?source=hash-mapping + size: 388697 + timestamp: 1724954338520 +- kind: conda + name: coverage + version: 7.6.1 + build: py312h66e93f0_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/coverage-7.6.1-py312h66e93f0_1.conda + sha256: 1ad422ed302e3630b26e23238bd1d047674b153c4f0a99e7773faa591aa7eab9 + md5: 5dc6e358ee0af388564bd0eba635cf9e + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - python >=3.12,<3.13.0a0 + - python_abi 3.12.* *_cp312 + - tomli + license: Apache-2.0 + license_family: APACHE + purls: + - pkg:pypi/coverage?source=hash-mapping + size: 363627 + timestamp: 1724953903049 +- kind: conda + name: coverage + version: 7.6.1 + build: py312hb553811_1 + build_number: 1 + subdir: osx-64 + url: https://conda.anaconda.org/conda-forge/osx-64/coverage-7.6.1-py312hb553811_1.conda + sha256: fd0f5c84ef943618b378592e74010831a7962127e2759ea75437117ad3f00eee + md5: 49f066bb9337fd34a4c9c09f576ce136 + depends: + - __osx >=10.13 + - python >=3.12,<3.13.0a0 + - python_abi 3.12.* *_cp312 + - tomli + license: Apache-2.0 + license_family: APACHE + purls: + - pkg:pypi/coverage?source=hash-mapping + size: 362574 + timestamp: 1724954071768 - kind: conda name: dill version: 0.3.8 @@ -483,28 +657,6 @@ packages: - pkg:pypi/exceptiongroup?source=hash-mapping size: 20418 timestamp: 1720869435725 -- kind: conda - name: gcc_impl_linux-64 - version: 14.1.0 - build: h3c94d91_1 - build_number: 1 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/gcc_impl_linux-64-14.1.0-h3c94d91_1.conda - sha256: 295f03681896f1660deb1a3b3b1d41b17da8089b0de5233c04ddc8c8f6a55854 - md5: 4e32ec060bf4a30c6fff81a920dc0ec9 - depends: - - binutils_impl_linux-64 >=2.40 - - libgcc >=14.1.0 - - libgcc-devel_linux-64 14.1.0 h5d3d1c9_101 - - libgomp >=14.1.0 - - libsanitizer 14.1.0 hcba0ae0_1 - - libstdcxx >=14.1.0 - - sysroot_linux-64 - license: GPL-3.0-only WITH GCC-exception-3.1 - license_family: GPL - purls: [] - size: 73076591 - timestamp: 1724801948880 - kind: conda name: iniconfig version: 2.0.0 @@ -522,6 +674,15 @@ packages: - pkg:pypi/iniconfig?source=hash-mapping size: 11101 timestamp: 1673103208955 +- kind: pypi + name: irspy + version: 0.0.1 + path: . + sha256: 2a7a46055391901f4c82a0884bf798d6656d085812ea2dbb8b2a53c63afc9790 + requires_dist: + - selectolax<0.4,>=0.3.21 + requires_python: '>=3.8' + editable: true - kind: conda name: isort version: 5.13.2 @@ -540,25 +701,6 @@ packages: - pkg:pypi/isort?source=hash-mapping size: 73783 timestamp: 1702518633821 -- kind: conda - name: kernel-headers_linux-64 - version: 3.10.0 - build: h4a8ded7_16 - build_number: 16 - subdir: noarch - noarch: generic - url: https://conda.anaconda.org/conda-forge/noarch/kernel-headers_linux-64-3.10.0-h4a8ded7_16.conda - sha256: a55044e0f61058a5f6bab5e1dd7f15a1fa7a08ec41501dbfca5ab0fc50b9c0c1 - md5: ff7f38675b226cfb855aebfc32a13e31 - depends: - - _sysroot_linux-64_curr_repodata_hack 3.* - constrains: - - sysroot_linux-64 ==2.17 - license: LGPL-2.0-or-later AND LGPL-2.0-or-later WITH exceptions AND GPL-2.0-or-later AND MPL-2.0 - license_family: GPL - purls: [] - size: 944344 - timestamp: 1720621422017 - kind: conda name: ld_impl_linux-64 version: '2.40' @@ -759,23 +901,6 @@ packages: purls: [] size: 846380 timestamp: 1724801836552 -- kind: conda - name: libgcc-devel_linux-64 - version: 14.1.0 - build: h5d3d1c9_101 - build_number: 101 - subdir: noarch - noarch: generic - url: https://conda.anaconda.org/conda-forge/noarch/libgcc-devel_linux-64-14.1.0-h5d3d1c9_101.conda - sha256: 3fead56fd86c615e69f96e033394504dbf5f1dec7de6ac4b7eb2d296bde5eacf - md5: 713834677de996ac1bc1b0b305ba46ba - depends: - - __unix - license: GPL-3.0-only WITH GCC-exception-3.1 - license_family: GPL - purls: [] - size: 2753460 - timestamp: 1724801729615 - kind: conda name: libgcc-ng version: 14.1.0 @@ -823,23 +948,6 @@ packages: purls: [] size: 33408 timestamp: 1697359010159 -- kind: conda - name: libsanitizer - version: 14.1.0 - build: hcba0ae0_1 - build_number: 1 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libsanitizer-14.1.0-hcba0ae0_1.conda - sha256: f653c694bb99e36aa0acdb25c8dae0f3b6d090e10068d6734be570c937abc811 - md5: b56e6664bb9a57a29fd91df582223409 - depends: - - libgcc >=14.1.0 - - libstdcxx >=14.1.0 - license: GPL-3.0-only WITH GCC-exception-3.1 - license_family: GPL - purls: [] - size: 4530998 - timestamp: 1724801881195 - kind: conda name: libsqlite version: 3.46.1 @@ -1022,81 +1130,6 @@ packages: purls: [] size: 46921 timestamp: 1716874262512 -- kind: conda - name: maturin - version: 1.7.1 - build: py312h0f167d8_0 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/maturin-1.7.1-py312h0f167d8_0.conda - sha256: d554838e92c01a80ac837b7eeb52f1e4ef1f949609c2878db0ca33b1fa31b292 - md5: 901ee42dc0d79481d9b95a649b646ae5 - depends: - - python >=3.12,<3.13.0a0 - - python_abi 3.12.* *_cp312 - - tomli >=1.1.0 - - ucrt >=10.0.20348.0 - - vc >=14.2,<15 - - vc14_runtime >=14.29.30139 - license: MIT - license_family: MIT - size: 4639223 - timestamp: 1725515028410 -- kind: conda - name: maturin - version: 1.7.1 - build: py312h25c400d_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/maturin-1.7.1-py312h25c400d_0.conda - sha256: 1fe49b8f4e9dce703ea0f20779e9c395d9082a6382431e581d10e0a3027cd29c - md5: 3b9eaeb397d8608ca8329fec2e8c879c - depends: - - __osx >=10.13 - - openssl >=3.3.2,<4.0a0 - - python >=3.12,<3.13.0a0 - - python_abi 3.12.* *_cp312 - - tomli >=1.1.0 - license: MIT - license_family: MIT - size: 4995921 - timestamp: 1725514172296 -- kind: conda - name: maturin - version: 1.7.1 - build: py312h6ab59e4_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/maturin-1.7.1-py312h6ab59e4_0.conda - sha256: e0049f74ffe4239d8dc81fce3330aa9bf33fd0c63cff2d5a9d68aead1014de35 - md5: a0add2631203530760fd552fa811e2dd - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=13 - - openssl >=3.3.2,<4.0a0 - - python >=3.12,<3.13.0a0 - - python_abi 3.12.* *_cp312 - - tomli >=1.1.0 - license: MIT - license_family: MIT - size: 6269893 - timestamp: 1725513925437 -- kind: conda - name: maturin - version: 1.7.1 - build: py312h8497442_0 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/maturin-1.7.1-py312h8497442_0.conda - sha256: 8f8a706e15919924868e552c8985a629b7cd47d51797fe2e55954fc5106a3c55 - md5: 4f413884019d16f29d522e135426fed7 - depends: - - __osx >=11.0 - - openssl >=3.3.2,<4.0a0 - - python >=3.12,<3.13.0a0 - - python >=3.12,<3.13.0a0 *_cpython - - python_abi 3.12.* *_cp312 - - tomli >=1.1.0 - license: MIT - license_family: MIT - size: 4832055 - timestamp: 1725514361450 - kind: conda name: mccabe version: 0.7.0 @@ -1371,21 +1404,20 @@ packages: timestamp: 1724954490262 - kind: conda name: platformdirs - version: 4.3.2 + version: 4.3.3 build: pyhd8ed1ab_0 subdir: noarch noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.3.2-pyhd8ed1ab_0.conda - sha256: 3aef5bb863a2db94e47272fd5ec5a5e4b240eafba79ebb9df7a162797cf035a3 - md5: e1a2dfcd5695f0744f1bcd3bbfe02523 + url: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.3.3-pyhd8ed1ab_0.conda + sha256: 30d9448d38392cc6fcf0c1d515c85c75ecf6b4eaed0895efc1cac9e10cb57c51 + md5: 32ecde72bc26b834382b93d454c9a68d depends: - python >=3.8 license: MIT - license_family: MIT purls: - pkg:pypi/platformdirs?source=hash-mapping - size: 20623 - timestamp: 1725821846879 + size: 20578 + timestamp: 1726315538191 - kind: conda name: pluggy version: 1.5.0 @@ -1483,6 +1515,112 @@ packages: - pkg:pypi/psutil?source=hash-mapping size: 499530 timestamp: 1725737996873 +- kind: conda + name: pydantic + version: 2.9.1 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/pydantic-2.9.1-pyhd8ed1ab_0.conda + sha256: 9064ec63d676d83452a6a07cb92d95ebfa02b5016841956ce55e324c45e012ee + md5: 5309e66d385d7367364e838764ad2ac4 + depends: + - annotated-types >=0.6.0 + - pydantic-core 2.23.3 + - python >=3.7 + - typing-extensions >=4.6.1 + license: MIT + license_family: MIT + purls: + - pkg:pypi/pydantic?source=hash-mapping + size: 300605 + timestamp: 1725908662611 +- kind: conda + name: pydantic-core + version: 2.23.3 + build: py312h12e396e_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/pydantic-core-2.23.3-py312h12e396e_0.conda + sha256: 1894e49665d343cbb5c2ae54107f2bf9077f481cdf6df40e851d14347bd9e07c + md5: 4052762306d758de4d61c7cc71edfe2b + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - python >=3.12,<3.13.0a0 + - python_abi 3.12.* *_cp312 + - typing-extensions >=4.6.0,!=4.7.0 + constrains: + - __glibc >=2.17 + license: MIT + license_family: MIT + purls: + - pkg:pypi/pydantic-core?source=hash-mapping + size: 1615644 + timestamp: 1725735931378 +- kind: conda + name: pydantic-core + version: 2.23.3 + build: py312h2615798_0 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/pydantic-core-2.23.3-py312h2615798_0.conda + sha256: 74904399f23430b6d9d8b2eacb3e12257a2c2ab61c1d324e0206517c90c71cb9 + md5: 2e7eac3f63413617bc6f4e7018305707 + depends: + - python >=3.12,<3.13.0a0 + - python_abi 3.12.* *_cp312 + - typing-extensions >=4.6.0,!=4.7.0 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + license: MIT + license_family: MIT + purls: + - pkg:pypi/pydantic-core?source=hash-mapping + size: 1569350 + timestamp: 1725736732484 +- kind: conda + name: pydantic-core + version: 2.23.3 + build: py312h669792a_0 + subdir: osx-64 + url: https://conda.anaconda.org/conda-forge/osx-64/pydantic-core-2.23.3-py312h669792a_0.conda + sha256: 38f7ef2eb082a75cafbcc37d05e285780858dfff64004d80afdd03a04448a88b + md5: 6599b550ea3dae7abbeda4f44e78750c + depends: + - __osx >=10.13 + - python >=3.12,<3.13.0a0 + - python_abi 3.12.* *_cp312 + - typing-extensions >=4.6.0,!=4.7.0 + constrains: + - __osx >=10.13 + license: MIT + license_family: MIT + purls: + - pkg:pypi/pydantic-core?source=hash-mapping + size: 1535653 + timestamp: 1725736002889 +- kind: conda + name: pydantic-core + version: 2.23.3 + build: py312he431725_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/pydantic-core-2.23.3-py312he431725_0.conda + sha256: 6d96bf4cb7519bea82cce7480985245727e48fce05026b79c543f02634285355 + md5: 9bab545219b0f8727c577457a95af3d4 + depends: + - __osx >=11.0 + - python >=3.12,<3.13.0a0 + - python >=3.12,<3.13.0a0 *_cpython + - python_abi 3.12.* *_cp312 + - typing-extensions >=4.6.0,!=4.7.0 + constrains: + - __osx >=11.0 + license: MIT + license_family: MIT + purls: + - pkg:pypi/pydantic-core?source=hash-mapping + size: 1431635 + timestamp: 1725736071390 - kind: conda name: pylint version: 3.2.7 @@ -1511,13 +1649,13 @@ packages: timestamp: 1725146652821 - kind: conda name: pytest - version: 8.3.2 + version: 8.3.3 build: pyhd8ed1ab_0 subdir: noarch noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/pytest-8.3.2-pyhd8ed1ab_0.conda - sha256: 72c84a3cd9fe82835a88e975fd2a0dbf2071d1c423ea4f79e7930578c1014873 - md5: e010a224b90f1f623a917c35addbb924 + url: https://conda.anaconda.org/conda-forge/noarch/pytest-8.3.3-pyhd8ed1ab_0.conda + sha256: e99376d0068455712109d233f5790458ff861aeceb458bfda74e353338e4d815 + md5: c03d61f31f38fdb9facf70c29958bf7a depends: - colorama - exceptiongroup >=1.0.0rc8 @@ -1532,8 +1670,8 @@ packages: license_family: MIT purls: - pkg:pypi/pytest?source=hash-mapping - size: 257671 - timestamp: 1721923749407 + size: 258293 + timestamp: 1725977334143 - kind: conda name: python version: 3.12.5 @@ -1566,33 +1704,6 @@ packages: purls: [] size: 31663253 timestamp: 1723143721353 -- kind: conda - name: python - version: 3.12.5 - build: h30c5eda_0_cpython - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/python-3.12.5-h30c5eda_0_cpython.conda - sha256: 1319e918fb54c9491832a9731cad00235a76f61c6f9b23fc0f70cdfb74c950ea - md5: 5e315581e2948dfe3bcac306540e9803 - depends: - - __osx >=11.0 - - bzip2 >=1.0.8,<2.0a0 - - libexpat >=2.6.2,<3.0a0 - - libffi >=3.4,<4.0a0 - - libsqlite >=3.46.0,<4.0a0 - - libzlib >=1.3.1,<2.0a0 - - ncurses >=6.5,<7.0a0 - - openssl >=3.3.1,<4.0a0 - - readline >=8.2,<9.0a0 - - tk >=8.6.13,<8.7.0a0 - - tzdata - - xz >=5.2.6,<6.0a0 - constrains: - - python_abi 3.12.* *_cp312 - license: Python-2.0 - purls: [] - size: 12926356 - timestamp: 1723142203193 - kind: conda name: python version: 3.12.5 @@ -1647,6 +1758,33 @@ packages: purls: [] size: 15897752 timestamp: 1723141830317 +- kind: conda + name: python + version: 3.12.6 + build: h739c21a_0_cpython + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/python-3.12.6-h739c21a_0_cpython.conda + sha256: 7dc75f4a7f800426e39ba219a1202c00b002cd0c792e34e077d3d7c145ef0199 + md5: 1d0f564edfc8121b35a4dc2d25b62863 + depends: + - __osx >=11.0 + - bzip2 >=1.0.8,<2.0a0 + - libexpat >=2.6.3,<3.0a0 + - libffi >=3.4,<4.0a0 + - libsqlite >=3.46.1,<4.0a0 + - libzlib >=1.3.1,<2.0a0 + - ncurses >=6.5,<7.0a0 + - openssl >=3.3.2,<4.0a0 + - readline >=8.2,<9.0a0 + - tk >=8.6.13,<8.7.0a0 + - tzdata + - xz >=5.2.6,<6.0a0 + constrains: + - python_abi 3.12.* *_cp312 + license: Python-2.0 + purls: [] + size: 12877861 + timestamp: 1726030796871 - kind: conda name: python_abi version: '3.12' @@ -1762,12 +1900,12 @@ packages: timestamp: 1679532707590 - kind: conda name: ruff - version: 0.6.4 + version: 0.6.5 build: py312h42f095d_0 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/ruff-0.6.4-py312h42f095d_0.conda - sha256: ba67bdeb0bd04f99aabe0cc6ce2014058d44cdad0487cd14ae526414d47bb689 - md5: 8e0585cac6fa5db2b428e20f3d57034c + url: https://conda.anaconda.org/conda-forge/osx-arm64/ruff-0.6.5-py312h42f095d_0.conda + sha256: 9689cce1fe308e885bfa0151821bfb48a49efaf871b356d3921346b43691a879 + md5: 4f0601e870f7e784ce080ba670af51bc depends: - __osx >=11.0 - libcxx >=17 @@ -1780,16 +1918,16 @@ packages: license_family: MIT purls: - pkg:pypi/ruff?source=hash-mapping - size: 6006996 - timestamp: 1725618425532 + size: 6000368 + timestamp: 1726264270948 - kind: conda name: ruff - version: 0.6.4 + version: 0.6.5 build: py312h881003e_0 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/ruff-0.6.4-py312h881003e_0.conda - sha256: 82c8fc3fecece3fa6db6d88be239ba62b407c09071df7705664cbfaf7550b388 - md5: 302b3f9a3d88d6d535da9d8fe663eb7d + url: https://conda.anaconda.org/conda-forge/win-64/ruff-0.6.5-py312h881003e_0.conda + sha256: 60385e00c5cb4c1b2b078f9cc6fd25cd211bf6aca2d3cfe0e31fe4b804847f16 + md5: e894013a377088053f0766a4756d518d depends: - python >=3.12,<3.13.0a0 - python_abi 3.12.* *_cp312 @@ -1800,16 +1938,16 @@ packages: license_family: MIT purls: - pkg:pypi/ruff?source=hash-mapping - size: 6455872 - timestamp: 1725619373056 + size: 6464864 + timestamp: 1726265070323 - kind: conda name: ruff - version: 0.6.4 + version: 0.6.5 build: py312hd18ad41_0 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/ruff-0.6.4-py312hd18ad41_0.conda - sha256: 64e89828218eb52ba71fee66d74fbc19817ca0f914cb6e9ad3c82423e9f6d40e - md5: bbb52fcabbc926d506bed70d70e44776 + url: https://conda.anaconda.org/conda-forge/linux-64/ruff-0.6.5-py312hd18ad41_0.conda + sha256: 6d9f5eb9be06bf63549a82d62ad36d2dc782f9854b863c0283ca7d6e1999e141 + md5: 1ac542f83e32fbc3da3c765cc2e61ba5 depends: - __glibc >=2.17,<3.0.a0 - libgcc >=13 @@ -1820,16 +1958,16 @@ packages: license_family: MIT purls: - pkg:pypi/ruff?source=hash-mapping - size: 6554879 - timestamp: 1725618160547 + size: 6557268 + timestamp: 1726264191478 - kind: conda name: ruff - version: 0.6.4 + version: 0.6.5 build: py312he6c0bb9_0 subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/ruff-0.6.4-py312he6c0bb9_0.conda - sha256: 386e02becf61164e38b896ae9e3782d69aa34e6ef63013afd88284811e1674cd - md5: ff1f5ec398a38d04b42d0d62a962f0b9 + url: https://conda.anaconda.org/conda-forge/osx-64/ruff-0.6.5-py312he6c0bb9_0.conda + sha256: a0d83deaf7d7caed630f9c0ef11f0873c953ca77039b9e02c2eadc964358fb8c + md5: b28ee0fd66b5dd869a3279b26926625e depends: - __osx >=10.13 - libcxx >=17 @@ -1841,145 +1979,36 @@ packages: license_family: MIT purls: - pkg:pypi/ruff?source=hash-mapping - size: 6298299 - timestamp: 1725618483850 -- kind: conda - name: rust - version: 1.80.1 - build: h0a17960_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/rust-1.80.1-h0a17960_0.conda - sha256: 7058519747d4b81f3cab23a0d6b4326c80879d38b2a0bf11cade52fc59980b8f - md5: dba7ad0d2f707fee5e85c6a19042fdb4 - depends: - - __glibc >=2.17,<3.0.a0 - - gcc_impl_linux-64 - - libgcc-ng >=12 - - libzlib >=1.3.1,<2.0a0 - - rust-std-x86_64-unknown-linux-gnu 1.80.1 h2c6d0dc_0 - - sysroot_linux-64 >=2.17 - license: MIT - license_family: MIT - purls: [] - size: 198885602 - timestamp: 1723153698032 -- kind: conda - name: rust - version: 1.80.1 - build: h4ff7c5d_0 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/rust-1.80.1-h4ff7c5d_0.conda - sha256: 5b296bb663be4c10bf3d07eaaa69c3c5856bd198152a775404e161f6780236bb - md5: 76d236abc95f2d77f7a3c16f1b565b3e - depends: - - rust-std-aarch64-apple-darwin 1.80.1 hf6ec828_0 - license: MIT - license_family: MIT - purls: [] - size: 197866703 - timestamp: 1723155024117 -- kind: conda - name: rust - version: 1.80.1 - build: h6c54e5d_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/rust-1.80.1-h6c54e5d_0.conda - sha256: 8e799c550545a41baef23a543ffd87620cf67c0afd3494ea40b6081cbf8aabe7 - md5: ecf36b937ded5c641039161f7f5c7f64 - depends: - - rust-std-x86_64-apple-darwin 1.80.1 h38e4360_0 - license: MIT - license_family: MIT - purls: [] - size: 202606989 - timestamp: 1723154998091 -- kind: conda - name: rust - version: 1.80.1 - build: hf8d6059_0 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/rust-1.80.1-hf8d6059_0.conda - sha256: 3d8f926d5db03762a1e3ff723295ea18674c29960e2e501a16c9413304698654 - md5: 385a661cb1746cb6c62eb55712b412dd - depends: - - rust-std-x86_64-pc-windows-msvc 1.80.1 h17fc481_0 - license: MIT - license_family: MIT - purls: [] - size: 194534225 - timestamp: 1723155969495 -- kind: conda - name: rust-std-aarch64-apple-darwin - version: 1.80.1 - build: hf6ec828_0 - subdir: noarch - noarch: generic - url: https://conda.anaconda.org/conda-forge/noarch/rust-std-aarch64-apple-darwin-1.80.1-hf6ec828_0.conda - sha256: 6cd8c3cf93fb8348c815595eced946316bc81a0bf8c6fc8f6b9f27e270734770 - md5: b3b07764d1fa59acf5c356bbb727db20 - depends: - - __unix - constrains: - - rust >=1.80.1,<1.80.2.0a0 - license: MIT - license_family: MIT - purls: [] - size: 30991019 - timestamp: 1723152907303 -- kind: conda - name: rust-std-x86_64-apple-darwin - version: 1.80.1 - build: h38e4360_0 - subdir: noarch - noarch: generic - url: https://conda.anaconda.org/conda-forge/noarch/rust-std-x86_64-apple-darwin-1.80.1-h38e4360_0.conda - sha256: 56a30b275235975ea4e37f8d703818079601163aca92195a45468b0e7d6beffb - md5: b1ce3c6d57f2cf9f5a8b2448e3b6f499 - depends: - - __unix - constrains: - - rust >=1.80.1,<1.80.2.0a0 - license: MIT - license_family: MIT - purls: [] - size: 31988631 - timestamp: 1723152891461 -- kind: conda - name: rust-std-x86_64-pc-windows-msvc - version: 1.80.1 - build: h17fc481_0 - subdir: noarch - noarch: generic - url: https://conda.anaconda.org/conda-forge/noarch/rust-std-x86_64-pc-windows-msvc-1.80.1-h17fc481_0.conda - sha256: a4f118c6211f717846c094e58d3baef32215d1a2414d51c3e08b739dce75c28f - md5: f21862b6487af2fe504ca2b78dfec822 - depends: - - __win - constrains: - - rust >=1.80.1,<1.80.2.0a0 - license: MIT - license_family: MIT - purls: [] - size: 25255952 - timestamp: 1723155705619 -- kind: conda - name: rust-std-x86_64-unknown-linux-gnu - version: 1.80.1 - build: h2c6d0dc_0 - subdir: noarch - noarch: generic - url: https://conda.anaconda.org/conda-forge/noarch/rust-std-x86_64-unknown-linux-gnu-1.80.1-h2c6d0dc_0.conda - sha256: 769cb83291804c9faa0de81534ceb3794cd06efd4d5164872bd5527e511f12a7 - md5: 0a5b8783d18a253b0812a5501df297af - depends: - - __unix - constrains: - - rust >=1.80.1,<1.80.2.0a0 - license: MIT - license_family: MIT - purls: [] - size: 33938994 - timestamp: 1723153507938 + size: 6337919 + timestamp: 1726264087517 +- kind: pypi + name: selectolax + version: 0.3.21 + url: https://files.pythonhosted.org/packages/01/15/a3df57f402ea9958a1c965302531e756a32ce74fcdd890068f2e105717c7/selectolax-0.3.21-cp312-cp312-win_amd64.whl + sha256: d38fc69f3c4b06f233e07adbca0e3d58aecc3cdb3d9a72436f64fc0c6d8fa30f + requires_dist: + - cython==0.29.36 ; extra == 'cython' +- kind: pypi + name: selectolax + version: 0.3.21 + url: https://files.pythonhosted.org/packages/23/34/f1c16a74c422b9991928d726e837f70ed26be4f06fb37dfbd6304a094b16/selectolax-0.3.21-cp312-cp312-macosx_10_9_x86_64.whl + sha256: 2a3bdb30f63ac192058070190af887b05e15a0c45d082a86fdd38af96b65a6e0 + requires_dist: + - cython==0.29.36 ; extra == 'cython' +- kind: pypi + name: selectolax + version: 0.3.21 + url: https://files.pythonhosted.org/packages/63/88/e38f96103e1e63f8aed1431eac9d3d0e7923b4b0bf0aa5ee39665466ddc6/selectolax-0.3.21-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + sha256: 72e0dc806998f2108e65bbaf1f4a1d2a5079a9fc6c4ee848d3da2cbacef47d8c + requires_dist: + - cython==0.29.36 ; extra == 'cython' +- kind: pypi + name: selectolax + version: 0.3.21 + url: https://files.pythonhosted.org/packages/a9/be/85dc69a88eb8f6b6c20968f6982bec1d4899325541939d43851b677f3bf6/selectolax-0.3.21-cp312-cp312-macosx_10_9_universal2.whl + sha256: f07fe837da86fcfe7223652c311f55f2062923ad9fbe12142cf8d948539a35a0 + requires_dist: + - cython==0.29.36 ; extra == 'cython' - kind: conda name: setuptools version: 73.0.1 @@ -1997,25 +2026,6 @@ packages: - pkg:pypi/setuptools?source=hash-mapping size: 1460460 timestamp: 1725348602179 -- kind: conda - name: sysroot_linux-64 - version: '2.17' - build: h4a8ded7_16 - build_number: 16 - subdir: noarch - noarch: generic - url: https://conda.anaconda.org/conda-forge/noarch/sysroot_linux-64-2.17-h4a8ded7_16.conda - sha256: b892b0b9c6dc8efe8b9b5442597d1ab8d65c0dc7e4e5a80f822cbdf0a639bd77 - md5: 223fe8a3ff6d5e78484a9d58eb34d055 - depends: - - _sysroot_linux-64_curr_repodata_hack 3.* - - kernel-headers_linux-64 3.10.0 h4a8ded7_16 - - tzdata - license: LGPL-2.0-or-later AND LGPL-2.0-or-later WITH exceptions AND GPL-2.0-or-later AND MPL-2.0 - license_family: GPL - purls: [] - size: 15513240 - timestamp: 1720621429816 - kind: conda name: tk version: 8.6.13 @@ -2117,6 +2127,22 @@ packages: - pkg:pypi/tomlkit?source=hash-mapping size: 37279 timestamp: 1723631592742 +- kind: conda + name: typing-extensions + version: 4.12.2 + build: hd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.12.2-hd8ed1ab_0.conda + sha256: d3b9a8ed6da7c9f9553c5fd8a4fca9c3e0ab712fa5f497859f82337d67533b73 + md5: 52d648bd608f5737b123f510bb5514b5 + depends: + - typing_extensions 4.12.2 pyha770c72_0 + license: PSF-2.0 + license_family: PSF + purls: [] + size: 10097 + timestamp: 1717802659025 - kind: conda name: typing_extensions version: 4.12.2 @@ -2166,12 +2192,12 @@ packages: - kind: conda name: vc version: '14.3' - build: h8a93ad2_20 - build_number: 20 + build: h8a93ad2_21 + build_number: 21 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/vc-14.3-h8a93ad2_20.conda - sha256: 23ac5feb15a9adf3ab2b8c4dcd63650f8b7ae860c5ceb073e49cf71d203eddef - md5: 8558f367e1d7700554f7cdb823c46faf + url: https://conda.anaconda.org/conda-forge/win-64/vc-14.3-h8a93ad2_21.conda + sha256: f14f5238c2e2516e292af43d91df88f212d769b4853eb46d03291793dcf00da9 + md5: e632a9b865d4b653aa656c9fb4f4817c depends: - vc14_runtime >=14.40.33810 track_features: @@ -2179,42 +2205,42 @@ packages: license: BSD-3-Clause license_family: BSD purls: [] - size: 17391 - timestamp: 1717709040616 + size: 17243 + timestamp: 1725984095174 - kind: conda name: vc14_runtime version: 14.40.33810 - build: hcc2c482_20 - build_number: 20 + build: ha82c5b3_21 + build_number: 21 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/vc14_runtime-14.40.33810-hcc2c482_20.conda - sha256: bba8daa6f78b26b48fb7e1377eb52160e25495710bf53146c5f405bd50565982 - md5: ad33c7cd933d69b9dee0f48317cdf137 + url: https://conda.anaconda.org/conda-forge/win-64/vc14_runtime-14.40.33810-ha82c5b3_21.conda + sha256: c3bf51bff7db39ad7e890dbef1b1026df0af36975aea24dea7c5fe1e0b382c40 + md5: b3ebb670caf046e32b835fbda056c4f9 depends: - ucrt >=10.0.20348.0 constrains: - - vs2015_runtime 14.40.33810.* *_20 + - vs2015_runtime 14.40.33810.* *_21 license: LicenseRef-ProprietaryMicrosoft license_family: Proprietary purls: [] - size: 751028 - timestamp: 1724712684919 + size: 751757 + timestamp: 1725984166774 - kind: conda name: vs2015_runtime version: 14.40.33810 - build: h3bf8584_20 - build_number: 20 + build: h3bf8584_21 + build_number: 21 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/vs2015_runtime-14.40.33810-h3bf8584_20.conda - sha256: 0c2803f7a788c51f28235a7228dc2ab3f107b4b16ab0845a3e595c8c51e50a7a - md5: c21f1b4a3a30bbc3ef35a50957578e0e + url: https://conda.anaconda.org/conda-forge/win-64/vs2015_runtime-14.40.33810-h3bf8584_21.conda + sha256: 472410455c381e406ec8c1d3e0342b48ee23122ef7ffb22a09d9763ca5df4d20 + md5: b3f37db7b7ae1c22600fa26a63ed99b3 depends: - vc14_runtime >=14.40.33810 license: BSD-3-Clause license_family: BSD purls: [] - size: 17395 - timestamp: 1717709043353 + size: 17241 + timestamp: 1725984096440 - kind: conda name: wheel version: 0.44.0 @@ -2232,6 +2258,23 @@ packages: - pkg:pypi/wheel?source=hash-mapping size: 58585 timestamp: 1722797131787 +- kind: conda + name: wheel-filename + version: 1.4.1 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/wheel-filename-1.4.1-pyhd8ed1ab_0.tar.bz2 + sha256: 125e1053dc7aa46ddb3b928addf63fccdfb08aa14b5b9e4638539867b652abbc + md5: 5c8af97942334fe5db0695b2d97b11f5 + depends: + - python >=3.6 + license: MIT + license_family: MIT + purls: + - pkg:pypi/wheel-filename?source=hash-mapping + size: 9630 + timestamp: 1654069753601 - kind: conda name: xz version: 5.2.6 diff --git a/pyproject.toml b/pyproject.toml index 73717f0..3984bd6 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,33 +1,53 @@ [build-system] -requires = ["maturin>=1.7,<2.0"] -build-backend = "maturin" +requires = ["hatchling"] +build-backend = "hatchling.build" [project] -name = "pyirs" +name = "irspy" requires-python = ">=3.8" -description = "Python library to parse IRS 990 forms" -authors = [ - {name = "Nodar Okroshiashvili"}, -] +description = "Python library to parse `IRS 990 Forms`" +authors = [{ name = "Nodar Okroshiashvili" }] classifiers = [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", - "Programming Language :: Rust", + "Programming Language :: Python", + "Programming Language :: Python :: 3.8", + "Programming Language :: Python :: 3.9", + "Programming Language :: Python :: 3.10", + "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", + +] +keywords = [ + "irs", + "irs990", + "irspython", + "irs form 990", + "990 data", + "irs form 990 data", + "irspy", ] -keywords = ["irs", "irs990", "irspython", "irs form 990", "990 data", "irs form 990 data"] readme = "README.md" -license = {text = "MIT License"} +license = { text = "MIT License" } dynamic = ["version"] +dependencies = ["selectolax>=0.3.21,<0.4"] [project.urls] -repository = "https://github.com/Okroshiashvili/irspy" +GitHub = "https://github.com/Okroshiashvili/irspy" +Documentation = "https://github.com/Okroshiashvili/irspy#readme" +Issues = "https://github.com/Okroshiashvili/irspy/issues" -[tool.maturin] -python-source = "python" -features = ["pyo3/extension-module"] +[tool.hatch.version] +path = "src/irspy/__about__.py" + +[tool.hatch.build.targets.wheel] +packages = ["src/irspy"] + +[tool.check-wheel-contents] +toplevel = ["irspy"] ### PIXI ### @@ -38,45 +58,40 @@ platforms = ["osx-arm64", "linux-64", "win-64", "osx-64"] [tool.pixi.environments] default = { solve-group = "default" } -### Tasks ### -[tool.pixi.tasks] +[tool.pixi.pypi-dependencies] +irspy = { path = ".", editable = true } -# Cargo Tasks -fmt = "cargo fmt" -cargo_test = "cargo test" -cargo_lint = { cmd = "cargo clippy", depends-on = ["fmt"] } -# Python Tasks -ruff_sort = "ruff check python/ --fix --select I" -ruff_lint = "ruff check python/ python/tests/ --fix" -ruff_fmt = "ruff format python/" -pylint_lint = "pylint python/ python/tests/" -type_check = "mypy python/ python/tests/" -python_test = "pytest python/tests/" +### Tasks ### +[tool.pixi.tasks] +ruff_sort = "ruff check src/irspy/ tests/ --fix --select I" +ruff_lint = "ruff check src/irspy/ tests/ --fix" +ruff_fmt = "ruff format src/irspy/ tests/" +pylint_lint = "pylint src/irspy/ tests/" +type_check = "mypy src/irspy/ tests/" +coverage_test = "coverage run -m pytest tests/" +coverage_report = "coverage html -d coverages" # Main Tasks -develop = "maturin develop" -build = "maturin build --release" lint = { depends_on = [ "ruff_sort", "ruff_lint", "ruff_fmt", "pylint_lint", "type_check", - "cargo_lint" -] } -test = { depends_on = [ - "cargo_test", - "python_test" ] } +test = { depends_on = ["coverage_test", "coverage_report"] } +build = "hatch clean && hatch build" +publish = "hatch publish " + ### Pixi Dependencies ### [tool.pixi.dependencies] -maturin = ">=1.7.1,<2" -rust = ">=1.80.1,<2" python = ">=3.8,<4" pip = ">=24.2,<25" ruff = ">=0.6.4,<0.7" pylint = ">=3.2.7,<4" mypy = ">=1.11.2,<2" pytest = ">=8.3.2,<9" +check-wheel-contents = ">=0.6.0,<0.7" +coverage = ">=7.6.1,<8" diff --git a/python/irspy/__init__.py b/python/irspy/__init__.py deleted file mode 100644 index 6f69246..0000000 --- a/python/irspy/__init__.py +++ /dev/null @@ -1,6 +0,0 @@ -from .irspy import * - - -__doc__ = irspy.__doc__ -if hasattr(irspy, "__all__"): - __all__ = irspy.__all__ diff --git a/src/irspy/__about__.py b/src/irspy/__about__.py new file mode 100644 index 0000000..da214ef --- /dev/null +++ b/src/irspy/__about__.py @@ -0,0 +1,3 @@ +"""About this package.""" + +__version__ = "0.0.1" diff --git a/src/irspy/__init__.py b/src/irspy/__init__.py new file mode 100644 index 0000000..5412722 --- /dev/null +++ b/src/irspy/__init__.py @@ -0,0 +1 @@ +"""Parse IRS 990 Forms.""" diff --git a/src/irspy/parser.py b/src/irspy/parser.py new file mode 100644 index 0000000..6e29fbd --- /dev/null +++ b/src/irspy/parser.py @@ -0,0 +1,9 @@ +from selectolax.parser import HTMLParser + + +class Parse: + def __init__(self, xml: str): + self.tree = HTMLParser(xml) + + def get_text(self): + return self.tree.css_first("p").text() diff --git a/python/irspy/py.typed b/src/irspy/py.typed similarity index 100% rename from python/irspy/py.typed rename to src/irspy/py.typed diff --git a/src/irspy/readers/reader.py b/src/irspy/readers/reader.py new file mode 100644 index 0000000..cf84894 --- /dev/null +++ b/src/irspy/readers/reader.py @@ -0,0 +1,6 @@ +"""Read IRS 990 Forms.""" + + +def read_xml_file(filename: str) -> str: + with open(filename, encoding="utf-8") as f: + return f.read() diff --git a/src/lib.rs b/src/lib.rs deleted file mode 100644 index 6e65218..0000000 --- a/src/lib.rs +++ /dev/null @@ -1,25 +0,0 @@ -use pyo3::prelude::*; -// use roxmltree::Document; -use std::fs::File; -use std::io::Read; - -#[pyfunction] -fn read_xml_file(file_path: &str) -> PyResult { - let mut file = File::open(file_path)?; - let mut contents = String::new(); - file.read_to_string(&mut contents)?; - Ok(contents) -} - -// #[pyfunction] -// fn parse_xml_file(xml_string: &str) -> Result { -// let doc = Document::parse(xml_string)?; -// Ok(doc) -// } - -/// A Python module implemented in Rust. -#[pymodule] -fn irspy(m: &Bound<'_, PyModule>) -> PyResult<()> { - m.add_function(wrap_pyfunction!(read_xml_file, m)?)?; - Ok(()) -} diff --git a/tests/conftest.py b/tests/conftest.py new file mode 100644 index 0000000..e69de29 diff --git a/tests/test_all.py b/tests/test_all.py index 40b2270..f36be01 100644 --- a/tests/test_all.py +++ b/tests/test_all.py @@ -1,6 +1,6 @@ -import pytest -import irspy +"""Unit tests.""" -def test_sum_as_string(): - assert irspy.sum_as_string(1, 1) == "2" +def test_true() -> None: + """Test that True is True.""" + assert True