dataframely 1.13.0__tar.gz → 2.0.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {dataframely-1.13.0 → dataframely-2.0.0}/.github/workflows/build.yml +12 -8
- {dataframely-1.13.0 → dataframely-2.0.0}/.github/workflows/chore.yml +1 -1
- {dataframely-1.13.0 → dataframely-2.0.0}/.github/workflows/ci.yml +23 -12
- {dataframely-1.13.0 → dataframely-2.0.0}/.github/workflows/nightly.yml +2 -2
- {dataframely-1.13.0 → dataframely-2.0.0}/.github/workflows/scorecard.yml +3 -3
- {dataframely-1.13.0 → dataframely-2.0.0}/.gitignore +1 -0
- {dataframely-1.13.0 → dataframely-2.0.0}/.pre-commit-config.yaml +17 -0
- {dataframely-1.13.0 → dataframely-2.0.0}/.readthedocs.yml +1 -3
- dataframely-2.0.0/Cargo.lock +2139 -0
- dataframely-2.0.0/Cargo.toml +34 -0
- {dataframely-1.13.0 → dataframely-2.0.0}/PKG-INFO +10 -6
- {dataframely-1.13.0 → dataframely-2.0.0}/README.md +2 -2
- {dataframely-1.13.0 → dataframely-2.0.0}/dataframely/__init__.py +6 -6
- {dataframely-1.13.0 → dataframely-2.0.0}/dataframely/_base_schema.py +43 -53
- {dataframely-1.13.0 → dataframely-2.0.0}/dataframely/_compat.py +14 -10
- dataframely-2.0.0/dataframely/_deprecation.py +27 -0
- dataframely-2.0.0/dataframely/_match_to_schema.py +89 -0
- dataframely-1.13.0/dataframely/_extre.pyi → dataframely-2.0.0/dataframely/_native.pyi +23 -10
- dataframely-2.0.0/dataframely/_plugin.py +84 -0
- {dataframely-1.13.0 → dataframely-2.0.0}/dataframely/_polars.py +8 -0
- {dataframely-1.13.0 → dataframely-2.0.0}/dataframely/_pydantic.py +4 -6
- {dataframely-1.13.0 → dataframely-2.0.0}/dataframely/_rule.py +50 -18
- {dataframely-1.13.0 → dataframely-2.0.0}/dataframely/_storage/delta.py +7 -4
- {dataframely-1.13.0 → dataframely-2.0.0}/dataframely/_storage/parquet.py +42 -24
- {dataframely-1.13.0 → dataframely-2.0.0}/dataframely/_typing.py +3 -3
- dataframely-2.0.0/dataframely/collection/__init__.py +20 -0
- dataframely-1.13.0/dataframely/_base_collection.py → dataframely-2.0.0/dataframely/collection/_base.py +42 -21
- {dataframely-1.13.0/dataframely → dataframely-2.0.0/dataframely/collection}/collection.py +278 -209
- dataframely-2.0.0/dataframely/collection/filter_result.py +70 -0
- {dataframely-1.13.0 → dataframely-2.0.0}/dataframely/columns/_base.py +5 -19
- {dataframely-1.13.0 → dataframely-2.0.0}/dataframely/columns/_mixins.py +1 -1
- {dataframely-1.13.0 → dataframely-2.0.0}/dataframely/columns/_registry.py +2 -2
- {dataframely-1.13.0 → dataframely-2.0.0}/dataframely/columns/any.py +2 -2
- {dataframely-1.13.0 → dataframely-2.0.0}/dataframely/columns/array.py +1 -1
- {dataframely-1.13.0 → dataframely-2.0.0}/dataframely/columns/categorical.py +3 -3
- {dataframely-1.13.0 → dataframely-2.0.0}/dataframely/columns/datetime.py +31 -31
- {dataframely-1.13.0 → dataframely-2.0.0}/dataframely/columns/decimal.py +5 -5
- {dataframely-1.13.0 → dataframely-2.0.0}/dataframely/columns/enum.py +3 -3
- {dataframely-1.13.0 → dataframely-2.0.0}/dataframely/columns/float.py +17 -12
- {dataframely-1.13.0 → dataframely-2.0.0}/dataframely/columns/integer.py +6 -6
- {dataframely-1.13.0 → dataframely-2.0.0}/dataframely/columns/list.py +5 -5
- {dataframely-1.13.0 → dataframely-2.0.0}/dataframely/columns/object.py +1 -1
- {dataframely-1.13.0 → dataframely-2.0.0}/dataframely/columns/string.py +5 -5
- {dataframely-1.13.0 → dataframely-2.0.0}/dataframely/columns/struct.py +4 -4
- dataframely-2.0.0/dataframely/exc.py +43 -0
- dataframely-1.13.0/dataframely/failure.py → dataframely-2.0.0/dataframely/filter_result.py +59 -2
- {dataframely-1.13.0 → dataframely-2.0.0}/dataframely/functional.py +37 -9
- {dataframely-1.13.0 → dataframely-2.0.0}/dataframely/random.py +37 -37
- {dataframely-1.13.0 → dataframely-2.0.0}/dataframely/schema.py +361 -205
- {dataframely-1.13.0 → dataframely-2.0.0}/dataframely/testing/factory.py +9 -3
- {dataframely-1.13.0 → dataframely-2.0.0}/dataframely/testing/mask.py +2 -2
- {dataframely-1.13.0 → dataframely-2.0.0}/dataframely/testing/storage.py +64 -48
- {dataframely-1.13.0 → dataframely-2.0.0}/docker-compose.yml +0 -1
- dataframely-2.0.0/docs/_templates/autosummary/class.rst +12 -0
- dataframely-2.0.0/docs/_templates/autosummary/method.rst +9 -0
- dataframely-2.0.0/docs/_templates/classes/column.rst +13 -0
- dataframely-2.0.0/docs/_templates/classes/error.rst +13 -0
- dataframely-2.0.0/docs/_templates/classes/filter_result.rst +14 -0
- dataframely-2.0.0/docs/api/collection/generation.rst +10 -0
- dataframely-2.0.0/docs/api/collection/index.rst +20 -0
- dataframely-2.0.0/docs/api/collection/io.rst +37 -0
- dataframely-2.0.0/docs/api/collection/metadata.rst +17 -0
- dataframely-2.0.0/docs/api/collection/operations.rst +11 -0
- dataframely-2.0.0/docs/api/collection/validation.rst +15 -0
- dataframely-2.0.0/docs/api/columns/index.rst +36 -0
- dataframely-2.0.0/docs/api/errors/index.rst +15 -0
- dataframely-2.0.0/docs/api/filter_result/failure_info.rst +37 -0
- dataframely-2.0.0/docs/api/filter_result/index.rst +19 -0
- dataframely-2.0.0/docs/api/index.rst +49 -0
- dataframely-2.0.0/docs/api/misc/index.rst +13 -0
- dataframely-2.0.0/docs/api/schema/conversion.rst +11 -0
- dataframely-2.0.0/docs/api/schema/generation.rst +11 -0
- dataframely-2.0.0/docs/api/schema/index.rst +20 -0
- dataframely-2.0.0/docs/api/schema/io.rst +37 -0
- dataframely-2.0.0/docs/api/schema/metadata.rst +12 -0
- dataframely-2.0.0/docs/api/schema/validation.rst +13 -0
- {dataframely-1.13.0 → dataframely-2.0.0}/docs/conf.py +92 -27
- dataframely-2.0.0/docs/css/custom.css +4 -0
- dataframely-2.0.0/docs/guides/development.md +54 -0
- dataframely-2.0.0/docs/guides/examples/index.md +8 -0
- {dataframely-1.13.0/docs/sites → dataframely-2.0.0/docs/guides}/examples/real-world.ipynb +35 -23
- dataframely-2.0.0/docs/guides/faq.md +48 -0
- dataframely-2.0.0/docs/guides/features/column-metadata.md +29 -0
- dataframely-2.0.0/docs/guides/features/data-generation.md +308 -0
- dataframely-2.0.0/docs/guides/features/index.md +12 -0
- dataframely-2.0.0/docs/guides/features/lazy-validation.md +41 -0
- dataframely-2.0.0/docs/guides/features/primary-keys.md +56 -0
- dataframely-2.0.0/docs/guides/features/serialization.md +203 -0
- dataframely-2.0.0/docs/guides/features/sql-generation.md +99 -0
- dataframely-2.0.0/docs/guides/index.md +22 -0
- dataframely-2.0.0/docs/guides/migration/index.md +39 -0
- dataframely-2.0.0/docs/guides/migration/v1-v2.md +161 -0
- dataframely-2.0.0/docs/guides/quickstart.md +244 -0
- dataframely-2.0.0/docs/index.md +27 -0
- {dataframely-1.13.0 → dataframely-2.0.0}/pixi.lock +16343 -9191
- {dataframely-1.13.0 → dataframely-2.0.0}/pixi.toml +31 -26
- {dataframely-1.13.0 → dataframely-2.0.0}/pyproject.toml +18 -10
- dataframely-2.0.0/rust-toolchain.toml +3 -0
- dataframely-2.0.0/src/lib.rs +15 -0
- dataframely-2.0.0/src/polars_plugin/mod.rs +90 -0
- dataframely-2.0.0/src/polars_plugin/rule_failure.rs +52 -0
- dataframely-2.0.0/src/polars_plugin/utils.rs +12 -0
- dataframely-2.0.0/src/polars_plugin/validation_error.rs +90 -0
- dataframely-1.13.0/src/lib.rs → dataframely-2.0.0/src/regex/mod.rs +5 -13
- dataframely-1.13.0/src/regex_repr.rs → dataframely-2.0.0/src/regex/repr.rs +55 -2
- {dataframely-1.13.0 → dataframely-2.0.0}/tests/benches/test_collection.py +6 -6
- {dataframely-1.13.0 → dataframely-2.0.0}/tests/benches/test_failure.py +1 -1
- {dataframely-1.13.0 → dataframely-2.0.0}/tests/benches/test_schema.py +7 -7
- {dataframely-1.13.0 → dataframely-2.0.0}/tests/collection/test_base.py +6 -5
- {dataframely-1.13.0 → dataframely-2.0.0}/tests/collection/test_cast.py +3 -3
- {dataframely-1.13.0 → dataframely-2.0.0}/tests/collection/test_create_empty.py +2 -2
- {dataframely-1.13.0 → dataframely-2.0.0}/tests/collection/test_filter_validate.py +81 -31
- {dataframely-1.13.0 → dataframely-2.0.0}/tests/collection/test_matches.py +3 -3
- {dataframely-1.13.0 → dataframely-2.0.0}/tests/collection/test_storage.py +121 -70
- {dataframely-1.13.0 → dataframely-2.0.0}/tests/column_types/test_array.py +22 -18
- {dataframely-1.13.0 → dataframely-2.0.0}/tests/column_types/test_datetime.py +27 -23
- {dataframely-1.13.0 → dataframely-2.0.0}/tests/column_types/test_decimal.py +9 -2
- {dataframely-1.13.0 → dataframely-2.0.0}/tests/column_types/test_float.py +12 -7
- {dataframely-1.13.0 → dataframely-2.0.0}/tests/column_types/test_integer.py +32 -3
- {dataframely-1.13.0 → dataframely-2.0.0}/tests/column_types/test_list.py +1 -1
- {dataframely-1.13.0 → dataframely-2.0.0}/tests/column_types/test_string.py +3 -3
- dataframely-2.0.0/tests/columns/test_base.py +12 -0
- {dataframely-1.13.0 → dataframely-2.0.0}/tests/columns/test_default_dtypes.py +1 -1
- {dataframely-1.13.0 → dataframely-2.0.0}/tests/columns/test_matches.py +5 -1
- {dataframely-1.13.0 → dataframely-2.0.0}/tests/columns/test_polars_schema.py +1 -1
- {dataframely-1.13.0 → dataframely-2.0.0}/tests/columns/test_pyarrow.py +68 -34
- {dataframely-1.13.0 → dataframely-2.0.0}/tests/columns/test_rules.py +3 -3
- {dataframely-1.13.0 → dataframely-2.0.0}/tests/columns/test_sample.py +7 -3
- dataframely-1.13.0/tests/columns/test_sql_schema.py → dataframely-2.0.0/tests/columns/test_sqlalchemy_columns.py +7 -7
- {dataframely-1.13.0 → dataframely-2.0.0}/tests/columns/test_str.py +1 -1
- dataframely-2.0.0/tests/conftest.py +49 -0
- dataframely-2.0.0/tests/core_validation/test_match_to_schema.py +74 -0
- {dataframely-1.13.0 → dataframely-2.0.0}/tests/failure_info/test_storage.py +37 -15
- {dataframely-1.13.0 → dataframely-2.0.0}/tests/functional/test_relationships.py +42 -11
- {dataframely-1.13.0 → dataframely-2.0.0}/tests/schema/test_base.py +35 -5
- {dataframely-1.13.0 → dataframely-2.0.0}/tests/schema/test_cast.py +1 -1
- {dataframely-1.13.0 → dataframely-2.0.0}/tests/schema/test_filter.py +68 -28
- {dataframely-1.13.0 → dataframely-2.0.0}/tests/schema/test_repr.py +7 -7
- {dataframely-1.13.0 → dataframely-2.0.0}/tests/schema/test_sample.py +54 -8
- {dataframely-1.13.0 → dataframely-2.0.0}/tests/schema/test_serialization.py +1 -1
- {dataframely-1.13.0 → dataframely-2.0.0}/tests/schema/test_storage.py +86 -35
- {dataframely-1.13.0 → dataframely-2.0.0}/tests/schema/test_validate.py +85 -54
- dataframely-2.0.0/tests/test_deprecation.py +24 -0
- dataframely-1.13.0/tests/test_extre.py → dataframely-2.0.0/tests/test_native_regex.py +11 -10
- {dataframely-1.13.0 → dataframely-2.0.0}/tests/test_pydantic.py +2 -2
- dataframely-2.0.0/tests/test_typing.py +82 -0
- dataframely-1.13.0/Cargo.lock +0 -359
- dataframely-1.13.0/Cargo.toml +0 -19
- dataframely-1.13.0/dataframely/_deprecation.py +0 -50
- dataframely-1.13.0/dataframely/_validation.py +0 -85
- dataframely-1.13.0/dataframely/exc.py +0 -112
- dataframely-1.13.0/dataframely/mypy.py +0 -424
- dataframely-1.13.0/dataframely/testing/typing.py +0 -30
- dataframely-1.13.0/docs/Makefile +0 -20
- dataframely-1.13.0/docs/_api/dataframely.collection.rst +0 -7
- dataframely-1.13.0/docs/_api/dataframely.columns.any.rst +0 -7
- dataframely-1.13.0/docs/_api/dataframely.columns.bool.rst +0 -7
- dataframely-1.13.0/docs/_api/dataframely.columns.datetime.rst +0 -7
- dataframely-1.13.0/docs/_api/dataframely.columns.decimal.rst +0 -7
- dataframely-1.13.0/docs/_api/dataframely.columns.enum.rst +0 -7
- dataframely-1.13.0/docs/_api/dataframely.columns.float.rst +0 -7
- dataframely-1.13.0/docs/_api/dataframely.columns.integer.rst +0 -7
- dataframely-1.13.0/docs/_api/dataframely.columns.list.rst +0 -7
- dataframely-1.13.0/docs/_api/dataframely.columns.rst +0 -106
- dataframely-1.13.0/docs/_api/dataframely.columns.string.rst +0 -7
- dataframely-1.13.0/docs/_api/dataframely.columns.struct.rst +0 -7
- dataframely-1.13.0/docs/_api/dataframely.config.rst +0 -7
- dataframely-1.13.0/docs/_api/dataframely.exc.rst +0 -7
- dataframely-1.13.0/docs/_api/dataframely.failure.rst +0 -7
- dataframely-1.13.0/docs/_api/dataframely.functional.rst +0 -7
- dataframely-1.13.0/docs/_api/dataframely.mypy.rst +0 -7
- dataframely-1.13.0/docs/_api/dataframely.random.rst +0 -7
- dataframely-1.13.0/docs/_api/dataframely.rst +0 -83
- dataframely-1.13.0/docs/_api/dataframely.schema.rst +0 -7
- dataframely-1.13.0/docs/_api/dataframely.testing.const.rst +0 -7
- dataframely-1.13.0/docs/_api/dataframely.testing.factory.rst +0 -7
- dataframely-1.13.0/docs/_api/dataframely.testing.mask.rst +0 -7
- dataframely-1.13.0/docs/_api/dataframely.testing.rst +0 -50
- dataframely-1.13.0/docs/_api/dataframely.testing.rules.rst +0 -7
- dataframely-1.13.0/docs/_api/dataframely.testing.typing.rst +0 -7
- dataframely-1.13.0/docs/_api/modules.rst +0 -7
- dataframely-1.13.0/docs/index.rst +0 -46
- dataframely-1.13.0/docs/make.bat +0 -35
- dataframely-1.13.0/docs/sites/development.rst +0 -49
- dataframely-1.13.0/docs/sites/faq.rst +0 -5
- dataframely-1.13.0/docs/sites/installation.rst +0 -9
- dataframely-1.13.0/docs/sites/quickstart.rst +0 -262
- dataframely-1.13.0/docs/sites/versioning.rst +0 -20
- dataframely-1.13.0/tests/core_validation/test_column_validation.py +0 -27
- dataframely-1.13.0/tests/core_validation/test_dtype_validation.py +0 -106
- dataframely-1.13.0/tests/test_deprecation.py +0 -63
- dataframely-1.13.0/tests/test_exc.py +0 -43
- dataframely-1.13.0/tests/test_typing.py +0 -288
- {dataframely-1.13.0 → dataframely-2.0.0}/.copier-answers.yml +0 -0
- {dataframely-1.13.0 → dataframely-2.0.0}/.envrc +0 -0
- {dataframely-1.13.0 → dataframely-2.0.0}/.gitattributes +0 -0
- {dataframely-1.13.0 → dataframely-2.0.0}/.github/CODEOWNERS +0 -0
- {dataframely-1.13.0 → dataframely-2.0.0}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {dataframely-1.13.0 → dataframely-2.0.0}/.github/dependabot.yml +0 -0
- {dataframely-1.13.0 → dataframely-2.0.0}/.github/release-drafter.yml +0 -0
- {dataframely-1.13.0 → dataframely-2.0.0}/.prettierignore +0 -0
- {dataframely-1.13.0 → dataframely-2.0.0}/.prettierrc +0 -0
- {dataframely-1.13.0 → dataframely-2.0.0}/LICENSE +0 -0
- {dataframely-1.13.0 → dataframely-2.0.0}/SECURITY.md +0 -0
- {dataframely-1.13.0 → dataframely-2.0.0}/dataframely/_filter.py +0 -0
- {dataframely-1.13.0 → dataframely-2.0.0}/dataframely/_serialization.py +0 -0
- {dataframely-1.13.0 → dataframely-2.0.0}/dataframely/_storage/__init__.py +0 -0
- {dataframely-1.13.0 → dataframely-2.0.0}/dataframely/_storage/_base.py +0 -0
- {dataframely-1.13.0 → dataframely-2.0.0}/dataframely/_storage/_exc.py +0 -0
- {dataframely-1.13.0 → dataframely-2.0.0}/dataframely/_storage/constants.py +0 -0
- {dataframely-1.13.0 → dataframely-2.0.0}/dataframely/columns/__init__.py +0 -0
- {dataframely-1.13.0 → dataframely-2.0.0}/dataframely/columns/_utils.py +0 -0
- {dataframely-1.13.0 → dataframely-2.0.0}/dataframely/columns/binary.py +0 -0
- {dataframely-1.13.0 → dataframely-2.0.0}/dataframely/columns/bool.py +0 -0
- {dataframely-1.13.0 → dataframely-2.0.0}/dataframely/config.py +0 -0
- {dataframely-1.13.0 → dataframely-2.0.0}/dataframely/py.typed +0 -0
- {dataframely-1.13.0 → dataframely-2.0.0}/dataframely/testing/__init__.py +0 -0
- {dataframely-1.13.0 → dataframely-2.0.0}/dataframely/testing/const.py +0 -0
- {dataframely-1.13.0 → dataframely-2.0.0}/dataframely/testing/rules.py +0 -0
- {dataframely-1.13.0 → dataframely-2.0.0}/docs/_static/custom.css +0 -0
- {dataframely-1.13.0 → dataframely-2.0.0}/docs/_static/favicon.ico +0 -0
- {dataframely-1.13.0/src → dataframely-2.0.0/src/regex}/errdefs.rs +0 -0
- {dataframely-1.13.0 → dataframely-2.0.0}/tests/benches/conftest.py +0 -0
- {dataframely-1.13.0 → dataframely-2.0.0}/tests/collection/test_collection_future_annotations.py +0 -0
- {dataframely-1.13.0 → dataframely-2.0.0}/tests/collection/test_filter_one_to_n.py +0 -0
- {dataframely-1.13.0 → dataframely-2.0.0}/tests/collection/test_ignore_in_filter.py +0 -0
- {dataframely-1.13.0 → dataframely-2.0.0}/tests/collection/test_implementation.py +0 -0
- {dataframely-1.13.0 → dataframely-2.0.0}/tests/collection/test_join.py +0 -0
- {dataframely-1.13.0 → dataframely-2.0.0}/tests/collection/test_optional_members.py +0 -0
- {dataframely-1.13.0 → dataframely-2.0.0}/tests/collection/test_repr.py +0 -0
- {dataframely-1.13.0 → dataframely-2.0.0}/tests/collection/test_sample.py +0 -0
- {dataframely-1.13.0 → dataframely-2.0.0}/tests/collection/test_serialization.py +0 -0
- {dataframely-1.13.0 → dataframely-2.0.0}/tests/collection/test_validate_input.py +0 -0
- {dataframely-1.13.0 → dataframely-2.0.0}/tests/column_types/__init__.py +0 -0
- {dataframely-1.13.0 → dataframely-2.0.0}/tests/column_types/test_any.py +0 -0
- {dataframely-1.13.0 → dataframely-2.0.0}/tests/column_types/test_binary.py +0 -0
- {dataframely-1.13.0 → dataframely-2.0.0}/tests/column_types/test_enum.py +0 -0
- {dataframely-1.13.0 → dataframely-2.0.0}/tests/column_types/test_object.py +0 -0
- {dataframely-1.13.0 → dataframely-2.0.0}/tests/column_types/test_struct.py +0 -0
- {dataframely-1.13.0 → dataframely-2.0.0}/tests/columns/__init__.py +0 -0
- {dataframely-1.13.0 → dataframely-2.0.0}/tests/columns/test_alias.py +0 -0
- {dataframely-1.13.0 → dataframely-2.0.0}/tests/columns/test_check.py +0 -0
- {dataframely-1.13.0 → dataframely-2.0.0}/tests/columns/test_metadata.py +0 -0
- {dataframely-1.13.0 → dataframely-2.0.0}/tests/columns/test_utils.py +0 -0
- {dataframely-1.13.0 → dataframely-2.0.0}/tests/core_validation/__init__.py +0 -0
- {dataframely-1.13.0 → dataframely-2.0.0}/tests/core_validation/test_rule_evaluation.py +0 -0
- {dataframely-1.13.0 → dataframely-2.0.0}/tests/functional/test_concat.py +0 -0
- {dataframely-1.13.0 → dataframely-2.0.0}/tests/schema/test_create_empty.py +0 -0
- {dataframely-1.13.0 → dataframely-2.0.0}/tests/schema/test_create_empty_if_none.py +0 -0
- {dataframely-1.13.0 → dataframely-2.0.0}/tests/schema/test_inheritance.py +0 -0
- {dataframely-1.13.0 → dataframely-2.0.0}/tests/schema/test_matches.py +0 -0
- {dataframely-1.13.0 → dataframely-2.0.0}/tests/schema/test_read_write_parquet.py +0 -0
- {dataframely-1.13.0 → dataframely-2.0.0}/tests/schema/test_rule_implementation.py +0 -0
- {dataframely-1.13.0 → dataframely-2.0.0}/tests/storage/test_delta.py +0 -0
- {dataframely-1.13.0 → dataframely-2.0.0}/tests/test_compat.py +0 -0
- {dataframely-1.13.0 → dataframely-2.0.0}/tests/test_config.py +0 -0
- {dataframely-1.13.0 → dataframely-2.0.0}/tests/test_factory.py +0 -0
- {dataframely-1.13.0 → dataframely-2.0.0}/tests/test_random.py +0 -0
- {dataframely-1.13.0 → dataframely-2.0.0}/tests/test_serialization.py +0 -0
|
@@ -13,11 +13,11 @@ jobs:
|
|
|
13
13
|
permissions:
|
|
14
14
|
contents: read
|
|
15
15
|
steps:
|
|
16
|
-
- uses: actions/checkout@
|
|
16
|
+
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
|
17
17
|
with:
|
|
18
18
|
fetch-depth: 0
|
|
19
19
|
- name: Set up pixi
|
|
20
|
-
uses: prefix-dev/setup-pixi@
|
|
20
|
+
uses: prefix-dev/setup-pixi@194d461b21b6c5717c722ffc597fa91ed2ff29fa # v0.9.1
|
|
21
21
|
with:
|
|
22
22
|
environments: build
|
|
23
23
|
- name: Set version
|
|
@@ -48,21 +48,25 @@ jobs:
|
|
|
48
48
|
- target-platform: win-64
|
|
49
49
|
os: windows-latest
|
|
50
50
|
steps:
|
|
51
|
-
- uses: actions/checkout@
|
|
51
|
+
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
|
52
52
|
with:
|
|
53
53
|
fetch-depth: 0
|
|
54
54
|
- name: Set up pixi
|
|
55
|
-
uses: prefix-dev/setup-pixi@
|
|
55
|
+
uses: prefix-dev/setup-pixi@194d461b21b6c5717c722ffc597fa91ed2ff29fa # v0.9.1
|
|
56
56
|
with:
|
|
57
57
|
environments: build
|
|
58
58
|
- name: Set version
|
|
59
59
|
run: pixi run -e build set-version
|
|
60
|
+
- uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6.0.0
|
|
61
|
+
with:
|
|
62
|
+
python-version: "3.10"
|
|
60
63
|
- name: Build wheel
|
|
61
|
-
uses: PyO3/maturin-action@
|
|
64
|
+
uses: PyO3/maturin-action@86b9d133d34bc1b40018696f782949dac11bd380 # v1.49.4
|
|
62
65
|
with:
|
|
63
66
|
command: build
|
|
64
|
-
args: --out dist
|
|
67
|
+
args: --out dist --release
|
|
65
68
|
manylinux: auto
|
|
69
|
+
sccache: true
|
|
66
70
|
- name: Check package
|
|
67
71
|
run: pixi run -e build check-wheel
|
|
68
72
|
- name: Upload package
|
|
@@ -80,9 +84,9 @@ jobs:
|
|
|
80
84
|
id-token: write
|
|
81
85
|
environment: pypi
|
|
82
86
|
steps:
|
|
83
|
-
- uses: actions/download-artifact@
|
|
87
|
+
- uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
|
|
84
88
|
with:
|
|
85
89
|
path: dist
|
|
86
90
|
merge-multiple: true
|
|
87
91
|
- name: Publish package on PyPi
|
|
88
|
-
uses: pypa/gh-action-pypi-publish@
|
|
92
|
+
uses: pypa/gh-action-pypi-publish@ed0c53931b1dc9bd32cbe73a98c7f6766f8a527e # v1.13.0
|
|
@@ -21,7 +21,7 @@ jobs:
|
|
|
21
21
|
steps:
|
|
22
22
|
- name: Check valid conventional commit message
|
|
23
23
|
id: lint
|
|
24
|
-
uses: amannn/action-semantic-pull-request@
|
|
24
|
+
uses: amannn/action-semantic-pull-request@48f256284bd46cdaab1048c3721360e808335d50 # v6.1.1
|
|
25
25
|
with:
|
|
26
26
|
subjectPattern: ^[A-Z].+[^. ]$ # subject must start with uppercase letter and may not end with a dot/space
|
|
27
27
|
env:
|
|
@@ -19,49 +19,60 @@ jobs:
|
|
|
19
19
|
runs-on: ubuntu-latest
|
|
20
20
|
steps:
|
|
21
21
|
- name: Checkout branch
|
|
22
|
-
uses: actions/checkout@
|
|
22
|
+
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
|
23
23
|
with:
|
|
24
24
|
# needed for 'pre-commit-mirrors-insert-license'
|
|
25
25
|
fetch-depth: 0
|
|
26
26
|
- name: Set up pixi
|
|
27
|
-
uses: prefix-dev/setup-pixi@
|
|
27
|
+
uses: prefix-dev/setup-pixi@194d461b21b6c5717c722ffc597fa91ed2ff29fa # v0.9.1
|
|
28
28
|
with:
|
|
29
29
|
environments: default lint
|
|
30
|
-
- name: Install
|
|
31
|
-
run:
|
|
30
|
+
- name: Install Rust
|
|
31
|
+
run: rustup show
|
|
32
|
+
- name: Cache Rust dependencies
|
|
33
|
+
uses: Swatinem/rust-cache@f13886b937689c021905a6b90929199931d60db1 # v2.8.1
|
|
32
34
|
- name: pre-commit
|
|
33
35
|
run: pixi run pre-commit-run --color=always --show-diff-on-failure
|
|
34
36
|
|
|
35
37
|
unit-tests:
|
|
36
|
-
name: Unit Tests (${{ matrix.os
|
|
38
|
+
name: Unit Tests (${{ contains(matrix.os, 'ubuntu') && 'Linux' || (contains(matrix.os, 'windows') && 'Windows' || 'macOS') }}) - ${{ matrix.environment }}
|
|
37
39
|
timeout-minutes: 30
|
|
38
40
|
runs-on: ${{ matrix.os }}
|
|
39
41
|
strategy:
|
|
40
42
|
fail-fast: true
|
|
41
43
|
matrix:
|
|
42
|
-
os: [ubuntu-latest, windows-latest]
|
|
43
|
-
environment: [py310, py311, py312, py313]
|
|
44
|
+
os: [ubuntu-latest, windows-latest, macos-latest]
|
|
45
|
+
environment: [py310, py311, py312, py313, py314]
|
|
44
46
|
with_optionals: [false]
|
|
45
47
|
include:
|
|
46
48
|
- os: ubuntu-latest
|
|
47
|
-
environment:
|
|
49
|
+
environment: py314-optionals
|
|
48
50
|
with_optionals: true
|
|
49
51
|
- os: windows-latest
|
|
50
|
-
environment:
|
|
52
|
+
environment: py314-optionals
|
|
53
|
+
with_optionals: true
|
|
54
|
+
- os: macos-latest
|
|
55
|
+
environment: py314-optionals
|
|
51
56
|
with_optionals: true
|
|
52
57
|
steps:
|
|
53
58
|
- name: Checkout branch
|
|
54
|
-
uses: actions/checkout@
|
|
59
|
+
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
|
55
60
|
- name: Set up pixi
|
|
56
|
-
uses: prefix-dev/setup-pixi@
|
|
61
|
+
uses: prefix-dev/setup-pixi@194d461b21b6c5717c722ffc597fa91ed2ff29fa # v0.9.1
|
|
57
62
|
with:
|
|
58
63
|
environments: ${{ matrix.environment }}
|
|
64
|
+
# FIXME: Remove when `s3_server` fixture does not start a process anymore
|
|
65
|
+
post-cleanup: ${{ matrix.os != 'windows-latest' }}
|
|
66
|
+
- name: Install Rust
|
|
67
|
+
run: rustup show
|
|
68
|
+
- name: Cache Rust dependencies
|
|
69
|
+
uses: Swatinem/rust-cache@f13886b937689c021905a6b90929199931d60db1 # v2.8.1
|
|
59
70
|
- name: Install repository
|
|
60
71
|
run: pixi run -e ${{ matrix.environment }} postinstall
|
|
61
72
|
- name: Run pytest
|
|
62
73
|
run: pixi run -e ${{ matrix.environment }} test-coverage --color=yes ${{ matrix.with_optionals && '-m with_optionals' || '-m "not with_optionals"'}} --cov=dataframely --cov-report=xml
|
|
63
74
|
- name: Upload codecov
|
|
64
|
-
uses: codecov/codecov-action@
|
|
75
|
+
uses: codecov/codecov-action@5a1091511ad55cbe89839c7260b706298ca349f7 # v5.5.1
|
|
65
76
|
with:
|
|
66
77
|
files: ./coverage.xml
|
|
67
78
|
token: ${{ secrets.CODECOV_TOKEN }}
|
|
@@ -23,9 +23,9 @@ jobs:
|
|
|
23
23
|
os: [ubuntu-latest, windows-latest]
|
|
24
24
|
steps:
|
|
25
25
|
- name: Checkout branch
|
|
26
|
-
uses: actions/checkout@
|
|
26
|
+
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
|
27
27
|
- name: Set up pixi
|
|
28
|
-
uses: prefix-dev/setup-pixi@
|
|
28
|
+
uses: prefix-dev/setup-pixi@194d461b21b6c5717c722ffc597fa91ed2ff29fa # v0.9.1
|
|
29
29
|
with:
|
|
30
30
|
environments: nightly
|
|
31
31
|
- name: Install polars nightly
|
|
@@ -35,12 +35,12 @@ jobs:
|
|
|
35
35
|
|
|
36
36
|
steps:
|
|
37
37
|
- name: "Checkout code"
|
|
38
|
-
uses: actions/checkout@
|
|
38
|
+
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
|
39
39
|
with:
|
|
40
40
|
persist-credentials: false
|
|
41
41
|
|
|
42
42
|
- name: "Run analysis"
|
|
43
|
-
uses: ossf/scorecard-action@
|
|
43
|
+
uses: ossf/scorecard-action@4eaacf0543bb3f2c246792bd56e8cdeffafb205a # v2.4.3
|
|
44
44
|
with:
|
|
45
45
|
results_file: results.sarif
|
|
46
46
|
results_format: sarif
|
|
@@ -74,6 +74,6 @@ jobs:
|
|
|
74
74
|
# Upload the results to GitHub's code scanning dashboard (optional).
|
|
75
75
|
# Commenting out will disable upload of results to your repo's Code Scanning dashboard
|
|
76
76
|
- name: "Upload to code-scanning"
|
|
77
|
-
uses: github/codeql-action/upload-sarif@
|
|
77
|
+
uses: github/codeql-action/upload-sarif@3599b3baa15b485a2e49ef411a7a4bb2452e7f93 # v3.29.5
|
|
78
78
|
with:
|
|
79
79
|
sarif_file: results.sarif
|
|
@@ -48,6 +48,22 @@ repos:
|
|
|
48
48
|
language: system
|
|
49
49
|
types: [python]
|
|
50
50
|
require_serial: true
|
|
51
|
+
# cargo-fmt
|
|
52
|
+
- id: cargo-fmt
|
|
53
|
+
name: cargo-fmt
|
|
54
|
+
entry: cargo fmt
|
|
55
|
+
language: system
|
|
56
|
+
types: [rust]
|
|
57
|
+
require_serial: true
|
|
58
|
+
pass_filenames: false
|
|
59
|
+
# cargo-clippy
|
|
60
|
+
- id: cargo-clippy
|
|
61
|
+
name: cargo-clippy
|
|
62
|
+
entry: cargo clippy --all-targets
|
|
63
|
+
language: system
|
|
64
|
+
types: [rust]
|
|
65
|
+
require_serial: true
|
|
66
|
+
pass_filenames: false
|
|
51
67
|
# prettier
|
|
52
68
|
- id: prettier
|
|
53
69
|
name: prettier
|
|
@@ -77,6 +93,7 @@ repos:
|
|
|
77
93
|
entry: pixi run -e lint check-merge-conflict --assume-in-merge
|
|
78
94
|
language: system
|
|
79
95
|
types: [text]
|
|
96
|
+
exclude: \.rst$
|
|
80
97
|
# typos
|
|
81
98
|
- id: typos
|
|
82
99
|
name: typos
|
|
@@ -4,9 +4,7 @@ build:
|
|
|
4
4
|
tools:
|
|
5
5
|
python: mambaforge-latest
|
|
6
6
|
commands:
|
|
7
|
-
- mamba install -c conda-forge -c nodefaults pixi
|
|
8
|
-
- pixi run -e docs postinstall
|
|
9
|
-
- pixi run -e docs docs
|
|
7
|
+
- mamba install -c conda-forge/label/rust_dev -c conda-forge -c nodefaults pixi rust
|
|
10
8
|
- pixi run -e docs readthedocs
|
|
11
9
|
sphinx:
|
|
12
10
|
configuration: docs/conf.py
|