From 5dd77288c6d5d256efa9980a8f4f548182ca11d8 Mon Sep 17 00:00:00 2001 From: Nodar Okroshiashvili Date: Sun, 15 Sep 2024 00:09:14 +0400 Subject: [PATCH 1/7] Reorganize the project structure. --- Cargo.lock | 178 ------------------------------ Cargo.toml | 13 --- README.md | 2 +- {python/irspy => src}/__init__.py | 0 src/lib.rs | 25 ----- {python/irspy => src}/py.typed | 0 tests/test_all.py | 4 +- 7 files changed, 3 insertions(+), 219 deletions(-) delete mode 100644 Cargo.lock delete mode 100644 Cargo.toml rename {python/irspy => src}/__init__.py (100%) delete mode 100644 src/lib.rs rename {python/irspy => src}/py.typed (100%) 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/README.md b/README.md index 52959a2..69a7b9c 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # IRSpy -`irspy` is the rust library to parse IRS 990 forms. +`irspy` is the Python library to parse IRS 990 forms. `WIP` - work in progress diff --git a/python/irspy/__init__.py b/src/__init__.py similarity index 100% rename from python/irspy/__init__.py rename to src/__init__.py 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/python/irspy/py.typed b/src/py.typed similarity index 100% rename from python/irspy/py.typed rename to src/py.typed diff --git a/tests/test_all.py b/tests/test_all.py index 40b2270..3ed6691 100644 --- a/tests/test_all.py +++ b/tests/test_all.py @@ -1,6 +1,6 @@ import pytest -import irspy +import src def test_sum_as_string(): - assert irspy.sum_as_string(1, 1) == "2" + assert src.sum_as_string(1, 1) == "2" From d3dd3226f89061700238d8b15ce5bb8ac106d712 Mon Sep 17 00:00:00 2001 From: Nodar Okroshiashvili Date: Mon, 16 Sep 2024 11:40:52 +0400 Subject: [PATCH 2/7] Update pyproject.toml file and resolved the environment --- LICENSE.txt | 9 + README.md | 21 ++ pixi.lock | 573 +++++++----------------------------- pyproject.toml | 64 ++-- src/irspy/__about__.py | 2 + src/{ => irspy}/__init__.py | 0 src/{ => irspy}/py.typed | 0 tests/test_all.py | 4 +- 8 files changed, 182 insertions(+), 491 deletions(-) create mode 100644 LICENSE.txt create mode 100644 src/irspy/__about__.py rename src/{ => irspy}/__init__.py (100%) rename src/{ => irspy}/py.typed (100%) 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 69a7b9c..52ee412 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,22 @@ # IRSpy +[![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..c0121fc 100644 --- a/pixi.lock +++ b/pixi.lock @@ -3,37 +3,32 @@ 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/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/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/colorama-0.4.6-pyhd8ed1ab_0.tar.bz2 - 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,19 +36,16 @@ 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/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 @@ -61,6 +53,7 @@ environments: - 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/linux-64/xz-5.2.6-h166bdaf_0.tar.bz2 + - pypi: . osx-64: - conda: https://conda.anaconda.org/conda-forge/osx-64/astroid-3.2.4-py312hb401068_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/bzip2-1.0.8-hfdf4475_7.conda @@ -75,7 +68,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,17 +75,15 @@ 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/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 @@ -102,6 +92,7 @@ environments: - 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/osx-64/xz-5.2.6-h775f41a_0.tar.bz2 + - pypi: . osx-arm64: - conda: https://conda.anaconda.org/conda-forge/osx-arm64/astroid-3.2.4-py312h81bd7bf_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/bzip2-1.0.8-h99b78c6_7.conda @@ -116,7 +107,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,17 +114,15 @@ 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/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 @@ -143,6 +131,7 @@ environments: - 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/osx-arm64/xz-5.2.6-h57fd34a_0.tar.bz2 + - pypi: . win-64: - conda: https://conda.anaconda.org/conda-forge/win-64/astroid-3.2.4-py312h2e8e312_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/bzip2-1.0.8-h2466b09_7.conda @@ -156,23 +145,20 @@ 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/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 @@ -180,11 +166,12 @@ environments: - 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/win-64/xz-5.2.6-h8d14728_0.tar.bz2 + - pypi: . packages: - kind: conda name: _libgcc_mutex @@ -217,21 +204,6 @@ packages: purls: [] size: 23621 timestamp: 1650670423406 -- kind: conda - name: _sysroot_linux-64_curr_repodata_hack - version: '3' - build: h69a702a_16 - build_number: 16 - 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 - kind: conda name: astroid version: 3.2.4 @@ -301,23 +273,6 @@ packages: - pkg:pypi/astroid?source=hash-mapping 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 - 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 - kind: conda name: bzip2 version: 1.0.8 @@ -483,28 +438,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 +455,13 @@ packages: - pkg:pypi/iniconfig?source=hash-mapping size: 11101 timestamp: 1673103208955 +- kind: pypi + name: irspy + version: 0.0.1 + path: . + sha256: 83b077560f5093b48c9ee011675b857ed98e91c48a704190d849788f957971bb + requires_python: '>=3.8' + editable: true - kind: conda name: isort version: 5.13.2 @@ -540,25 +480,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 +680,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 +727,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 +909,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 +1183,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 @@ -1511,13 +1322,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 +1343,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 +1377,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 +1431,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 +1573,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 +1591,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 +1611,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 +1631,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 +1652,8 @@ 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: conda name: setuptools version: 73.0.1 @@ -1997,25 +1671,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 @@ -2166,12 +1821,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 +1834,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 diff --git a/pyproject.toml b/pyproject.toml index 73717f0..b14b5e3 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,33 +1,48 @@ [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", ] -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"] [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"] ### PIXI ### @@ -38,15 +53,12 @@ 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 +### Tasks ### +[tool.pixi.tasks] ruff_sort = "ruff check python/ --fix --select I" ruff_lint = "ruff check python/ python/tests/ --fix" ruff_fmt = "ruff format python/" @@ -55,25 +67,17 @@ type_check = "mypy python/ python/tests/" python_test = "pytest python/tests/" # 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 = ["python_test"] } ### 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" diff --git a/src/irspy/__about__.py b/src/irspy/__about__.py new file mode 100644 index 0000000..5f284fc --- /dev/null +++ b/src/irspy/__about__.py @@ -0,0 +1,2 @@ + +__version__ = "0.0.1" diff --git a/src/__init__.py b/src/irspy/__init__.py similarity index 100% rename from src/__init__.py rename to src/irspy/__init__.py diff --git a/src/py.typed b/src/irspy/py.typed similarity index 100% rename from src/py.typed rename to src/irspy/py.typed diff --git a/tests/test_all.py b/tests/test_all.py index 3ed6691..8d82a6f 100644 --- a/tests/test_all.py +++ b/tests/test_all.py @@ -1,6 +1,6 @@ import pytest -import src +import src.irspy as irspy def test_sum_as_string(): - assert src.sum_as_string(1, 1) == "2" + assert irspy.sum_as_string(1, 1) == "2" From 71820fbd74c0ed6469cf0b32571d93f857fde58a Mon Sep 17 00:00:00 2001 From: Nodar Okroshiashvili Date: Mon, 16 Sep 2024 15:30:17 +0400 Subject: [PATCH 3/7] Add new dependency fro XML file parsing --- pixi.lock | 36 +++++++++++++++++++++++++++++++++++- pyproject.toml | 1 + 2 files changed, 36 insertions(+), 1 deletion(-) diff --git a/pixi.lock b/pixi.lock index c0121fc..ca3c3ad 100644 --- a/pixi.lock +++ b/pixi.lock @@ -53,6 +53,7 @@ environments: - 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/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/osx-64/astroid-3.2.4-py312hb401068_0.conda @@ -92,6 +93,7 @@ environments: - 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/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/osx-arm64/astroid-3.2.4-py312h81bd7bf_0.conda @@ -131,6 +133,7 @@ environments: - 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/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/win-64/astroid-3.2.4-py312h2e8e312_0.conda @@ -171,6 +174,7 @@ environments: - 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/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 @@ -459,7 +463,9 @@ packages: name: irspy version: 0.0.1 path: . - sha256: 83b077560f5093b48c9ee011675b857ed98e91c48a704190d849788f957971bb + sha256: 56457be122241d48e18a04cb3dadeb640dab9bf0697622ac4b2d064cc32f6d54 + requires_dist: + - selectolax<0.4,>=0.3.21 requires_python: '>=3.8' editable: true - kind: conda @@ -1654,6 +1660,34 @@ packages: - pkg:pypi/ruff?source=hash-mapping 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 diff --git a/pyproject.toml b/pyproject.toml index b14b5e3..0e25c12 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -32,6 +32,7 @@ keywords = [ readme = "README.md" license = { text = "MIT License" } dynamic = ["version"] +dependencies = ["selectolax>=0.3.21,<0.4"] [project.urls] GitHub = "https://github.com/Okroshiashvili/irspy" From 8e3c36fd34aac118e7cec34eb828279699b112b1 Mon Sep 17 00:00:00 2001 From: Nodar Okroshiashvili Date: Mon, 16 Sep 2024 18:37:57 +0400 Subject: [PATCH 4/7] Adjust pixi tasks. Add new dummy test --- pixi.lock | 268 +++++++++++++++++++++++++++++++++++- pyproject.toml | 16 ++- src/irspy/__about__.py | 1 + src/irspy/__init__.py | 7 +- src/irspy/readers/reader.py | 6 + tests/conftest.py | 0 tests/test_all.py | 8 +- 7 files changed, 289 insertions(+), 17 deletions(-) create mode 100644 src/irspy/readers/reader.py create mode 100644 tests/conftest.py diff --git a/pixi.lock b/pixi.lock index ca3c3ad..0c19dff 100644 --- a/pixi.lock +++ b/pixi.lock @@ -9,9 +9,13 @@ environments: 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/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/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/noarch/dill-0.3.8-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.2.2-pyhd8ed1ab_0.conda @@ -39,6 +43,8 @@ environments: - 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.3-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.12.5-h2ad013b_0_cpython.conda @@ -49,16 +55,22 @@ environments: - 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/noarch/dill-0.3.8-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.2.2-pyhd8ed1ab_0.conda @@ -79,6 +91,8 @@ environments: - 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.3-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/python-3.12.5-h37a9e06_0_cpython.conda @@ -89,16 +103,22 @@ environments: - 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/noarch/dill-0.3.8-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.2.2-pyhd8ed1ab_0.conda @@ -119,6 +139,8 @@ environments: - 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.3-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/python-3.12.6-h739c21a_0_cpython.conda @@ -129,16 +151,22 @@ environments: - 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/noarch/dill-0.3.8-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.2.2-pyhd8ed1ab_0.conda @@ -157,6 +185,8 @@ environments: - 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.3-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/python-3.12.5-h889d299_0_cpython.conda @@ -166,6 +196,7 @@ environments: - 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 @@ -173,6 +204,7 @@ environments: - 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: . @@ -208,6 +240,24 @@ packages: purls: [] size: 23621 timestamp: 1650670423406 +- kind: conda + name: annotated-types + version: 0.7.0 + build: pyhd8ed1ab_0 + subdir: noarch + 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 @@ -277,6 +327,23 @@ packages: - pkg:pypi/astroid?source=hash-mapping size: 508712 timestamp: 1721516374348 +- kind: conda + 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: + - 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 @@ -392,6 +459,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 @@ -463,7 +590,7 @@ packages: name: irspy version: 0.0.1 path: . - sha256: 56457be122241d48e18a04cb3dadeb640dab9bf0697622ac4b2d064cc32f6d54 + sha256: 00b9010201ac9032cbdd40b47996a671d03286c0543d633cd71ab3793290085f requires_dist: - selectolax<0.4,>=0.3.21 requires_python: '>=3.8' @@ -1300,6 +1427,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 @@ -1806,6 +2039,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 @@ -1921,6 +2170,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 0e25c12..bcd1768 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -45,6 +45,9 @@ path = "src/irspy/__about__.py" [tool.hatch.build.targets.wheel] packages = ["src/irspy"] +[tool.check-wheel-contents] +toplevel = ["irspy"] + ### PIXI ### [tool.pixi.project] @@ -60,12 +63,12 @@ irspy = { path = ".", editable = true } ### Tasks ### [tool.pixi.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/" +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/" +python_test = "pytest tests/" # Main Tasks lint = { depends_on = [ @@ -85,3 +88,4 @@ 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" diff --git a/src/irspy/__about__.py b/src/irspy/__about__.py index 5f284fc..da214ef 100644 --- a/src/irspy/__about__.py +++ b/src/irspy/__about__.py @@ -1,2 +1,3 @@ +"""About this package.""" __version__ = "0.0.1" diff --git a/src/irspy/__init__.py b/src/irspy/__init__.py index 6f69246..5412722 100644 --- a/src/irspy/__init__.py +++ b/src/irspy/__init__.py @@ -1,6 +1 @@ -from .irspy import * - - -__doc__ = irspy.__doc__ -if hasattr(irspy, "__all__"): - __all__ = irspy.__all__ +"""Parse IRS 990 Forms.""" 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/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 8d82a6f..f36be01 100644 --- a/tests/test_all.py +++ b/tests/test_all.py @@ -1,6 +1,6 @@ -import pytest -import src.irspy as 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 From 2e32c018f0be02d81477b496954da9d15c10900d Mon Sep 17 00:00:00 2001 From: Nodar Okroshiashvili Date: Tue, 24 Sep 2024 15:22:39 +0400 Subject: [PATCH 5/7] Add new workflow --- .github/workflows/CI.yml | 169 ----------------------------- .github/workflows/pypi-package.yml | 124 +++++++++++++++++++++ 2 files changed, 124 insertions(+), 169 deletions(-) delete mode 100644 .github/workflows/CI.yml create mode 100644 .github/workflows/pypi-package.yml 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 }}' From 7e58e87ae4c5caf8be65e7879f07208d68b4edb7 Mon Sep 17 00:00:00 2001 From: Nodar Okroshiashvili Date: Tue, 24 Sep 2024 15:26:10 +0400 Subject: [PATCH 6/7] Add coverage, build, and publish tasks --- pixi.lock | 90 +++++++++++++++++++++++++++++++++++++++++++++++++- pyproject.toml | 10 ++++-- 2 files changed, 97 insertions(+), 3 deletions(-) diff --git a/pixi.lock b/pixi.lock index 0c19dff..73e7539 100644 --- a/pixi.lock +++ b/pixi.lock @@ -17,6 +17,7 @@ environments: - 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/noarch/iniconfig-2.0.0-pyhd8ed1ab_0.conda @@ -72,6 +73,7 @@ environments: - 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 @@ -120,6 +122,7 @@ environments: - 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 @@ -168,6 +171,7 @@ environments: - 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 @@ -536,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 @@ -590,7 +678,7 @@ packages: name: irspy version: 0.0.1 path: . - sha256: 00b9010201ac9032cbdd40b47996a671d03286c0543d633cd71ab3793290085f + sha256: 2a7a46055391901f4c82a0884bf798d6656d085812ea2dbb8b2a53c63afc9790 requires_dist: - selectolax<0.4,>=0.3.21 requires_python: '>=3.8' diff --git a/pyproject.toml b/pyproject.toml index bcd1768..3984bd6 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -28,6 +28,7 @@ keywords = [ "irs form 990", "990 data", "irs form 990 data", + "irspy", ] readme = "README.md" license = { text = "MIT License" } @@ -68,7 +69,8 @@ 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/" -python_test = "pytest tests/" +coverage_test = "coverage run -m pytest tests/" +coverage_report = "coverage html -d coverages" # Main Tasks lint = { depends_on = [ @@ -78,7 +80,10 @@ lint = { depends_on = [ "pylint_lint", "type_check", ] } -test = { depends_on = ["python_test"] } +test = { depends_on = ["coverage_test", "coverage_report"] } +build = "hatch clean && hatch build" +publish = "hatch publish " + ### Pixi Dependencies ### [tool.pixi.dependencies] @@ -89,3 +94,4 @@ 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" From b0f83749e4b42207b0dd79510d832adacb7a0f33 Mon Sep 17 00:00:00 2001 From: Nodar Okroshiashvili Date: Tue, 24 Sep 2024 15:26:27 +0400 Subject: [PATCH 7/7] Add parser --- src/irspy/parser.py | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 src/irspy/parser.py 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()