panda-pytest-assertions 0.3.0__tar.gz → 0.4.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.
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/.config/.editorconfig +2 -2
- panda_pytest_assertions-0.4.0/.config/.flake8 +25 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/.config/mypy.ini +44 -23
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/.config/ruff.toml +200 -41
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/.github/workflows/pr-checker.yml +5 -5
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/.github/workflows/release.yml +9 -8
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/CHANGELOG.md +14 -0
- panda_pytest_assertions-0.4.0/NOTICE +1 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/PKG-INFO +3 -3
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/README-DEV.MD +4 -4
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/docs/assert_object/20.expectations.md +1 -1
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/pyproject.toml +21 -17
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_context/_assert_context.py +3 -3
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/_expectation_modificators/identity.py +2 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/_expectation_modificators/is_type.py +5 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/_expectation_modificators/mapping_subset.py +2 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/_expectation_modificators/object_attibutes.py +2 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/_expectation_modificators/stringified.py +2 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/_expectation_modificators/unordered.py +2 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/_expectation_modificators/with_type.py +8 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/_objects_asserters/asserter.py +4 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/_objects_asserters/equality_asserter.py +3 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/_objects_asserters/identity_asserter.py +3 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/_objects_asserters/is_type_asserter.py +3 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/_objects_asserters/mapping_asserter.py +3 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/_objects_asserters/mapping_subset_asserter.py +3 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/_objects_asserters/object_attributes_asserter.py +3 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/_objects_asserters/ordered_elements_asserter.py +4 -1
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/_objects_asserters/stringified_asserter.py +3 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/_objects_asserters/unordered_elements_asserter.py +3 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/_objects_asserters/with_type_asserter.py +3 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/_protocols.py +11 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/generators/_expectation_definitions/is_type.py +2 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/generators/_expectation_definitions/mapping.py +3 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/generators/_expectation_definitions/mapping_subset.py +3 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/generators/_expectation_definitions/object_attributes.py +2 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/generators/_expectation_definitions/of_type.py +3 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/generators/_expectation_definitions/uniform_mapping.py +3 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/generators/_expectation_definitions/uniform_mapping_subset.py +3 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/generators/_expectation_definitions/uniform_ordered.py +3 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/generators/_expectation_definitions/uniform_unordered.py +2 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/generators/_expectation_definitions/union.py +2 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/generators/_expectation_definitions/with_type.py +3 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/generators/_generators/equality_generator.py +3 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/generators/_generators/equality_key_mapping_generator.py +3 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/generators/_generators/generator.py +5 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/generators/_generators/is_type_generator.py +3 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/generators/_generators/mapping_generator.py +3 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/generators/_generators/mapping_subset_generator.py +3 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/generators/_generators/object_attributes_generator.py +3 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/generators/_generators/of_type_generator.py +3 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/generators/_generators/ordered_generator.py +3 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/generators/_generators/stringified_generator.py +3 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/generators/_generators/uniform_mapping_generator.py +3 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/generators/_generators/uniform_mapping_subset_generator.py +3 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/generators/_generators/uniform_ordered_generator.py +3 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/generators/_generators/union_generator.py +4 -1
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/generators/_generators/unordered_generator.py +3 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/generators/_generators/with_type_generator.py +3 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/test_error_messages.py +8 -4
- panda_pytest_assertions-0.4.0/uv.lock +1361 -0
- panda_pytest_assertions-0.4.0/version.txt +1 -0
- panda_pytest_assertions-0.3.0/.config/.flake8 +0 -13
- panda_pytest_assertions-0.3.0/NOTICE +0 -1
- panda_pytest_assertions-0.3.0/uv.lock +0 -1075
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/.config/.coveragerc +0 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/.config/pytest.ini +0 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/.coveragerc +0 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/.editorconfig +0 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/.flake8 +0 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/.gitattributes +0 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/.gitignore +0 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/LICENSE +0 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/README.md +0 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/docs/assert_context/index.md +0 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/docs/assert_object/10.asserting.md +0 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/docs/assert_object/30.using_yaml.md +0 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/docs/assert_object/40.asserters.md +0 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/docs/assert_object/generating_expectation/10.definition.md +0 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/docs/assert_object/generating_expectation/20.generators.md +0 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/docs/assert_object/generating_expectation/index.md +0 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/docs/assert_object/index.md +0 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/docs/index.md +0 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/mkdocs.yml +0 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/mypy.ini +0 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/pytest.ini +0 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/ruff.toml +0 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/__init__.py +0 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_context/__init__.py +0 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/__init__.py +0 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/_assert_object.py +0 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/_asserter_factories/__init__.py +0 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/_asserter_factories/asserter_factory.py +0 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/_asserter_factories/built_in_asserter_factory.py +0 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/_converters/__init__.py +0 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/_converters/expectation_from_yaml.py +0 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/_converters/expectation_to_yaml.py +0 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/_expectation_modificators/__init__.py +0 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/_objects_asserters/__init__.py +0 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/generators/__init__.py +0 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/generators/_expectation_definitions/__init__.py +0 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/generators/_expectation_definitions/equality.py +0 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/generators/_expectation_definitions/stringified.py +0 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/generators/_generate_expectation.py +0 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/generators/_generator_factories/__init__.py +0 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/generators/_generator_factories/built_in_generator_factory.py +0 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/generators/_generator_factories/generator_factory.py +0 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/generators/_generators/__init__.py +0 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/generators/_generators/exceptions.py +0 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/py.typed +0 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/tests/__init__.py +0 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/__init__.py +0 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_context/__init__.py +0 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_context/test_assert_context.py +0 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/__init__.py +0 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_asserter_factories/__init__.py +0 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_asserter_factories/test_asserter_factory.py +0 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_asserter_factories/test_built_in_asserter_factory.py +0 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_converters/__init__.py +0 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_converters/conftest.py +0 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_converters/test_expectation_from_yaml.py +0 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_converters/test_expectation_to_yaml.py +0 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_expectation_modificators/__init__.py +0 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_expectation_modificators/test_is.py +0 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_expectation_modificators/test_is_type.py +0 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_expectation_modificators/test_mapping_subset.py +0 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_expectation_modificators/test_object_attibutes.py +0 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_expectation_modificators/test_stringified.py +0 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_expectation_modificators/test_unordered.py +0 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_expectation_modificators/test_with_type.py +0 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_generators/__init__.py +0 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_generators/_expectation_definitions/__init__.py +0 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_generators/_expectation_definitions/test_equality.py +0 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_generators/_expectation_definitions/test_is_type.py +0 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_generators/_expectation_definitions/test_mapping.py +0 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_generators/_expectation_definitions/test_mapping_subset.py +0 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_generators/_expectation_definitions/test_object_attributes.py +0 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_generators/_expectation_definitions/test_of_type.py +0 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_generators/_expectation_definitions/test_stringified.py +0 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_generators/_expectation_definitions/test_uniform_mapping.py +0 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_generators/_expectation_definitions/test_uniform_mapping_subset.py +0 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_generators/_expectation_definitions/test_uniform_ordered.py +0 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_generators/_expectation_definitions/test_uniform_unordered.py +0 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_generators/_expectation_definitions/test_union.py +0 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_generators/_expectation_definitions/test_with_type.py +0 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_generators/_generator_factories/__init__.py +0 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_generators/_generator_factories/test_built_in_generator_factory.py +0 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_generators/_generator_factories/test_generator_factory.py +0 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_generators/_generators/__init__.py +0 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_generators/_generators/conftest.py +0 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_generators/_generators/test_equality_generator.py +0 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_generators/_generators/test_equality_key_mapping_generator.py +0 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_generators/_generators/test_is_type_generator.py +0 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_generators/_generators/test_mapping_generator.py +0 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_generators/_generators/test_mapping_subset_generator.py +0 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_generators/_generators/test_object_attributes_generator.py +0 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_generators/_generators/test_of_type_generator.py +0 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_generators/_generators/test_ordered_generator.py +0 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_generators/_generators/test_stringified_generator.py +0 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_generators/_generators/test_uniform_mapping_generator.py +0 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_generators/_generators/test_uniform_mapping_subset_generator.py +0 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_generators/_generators/test_uniform_ordered_generator.py +0 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_generators/_generators/test_union_generator.py +0 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_generators/_generators/test_unordered_generator.py +0 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_generators/_generators/test_with_type_generator.py +0 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_generators/test_complex.py +0 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_generators/test_generate_expectation.py +0 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_objects_asserters/__init__.py +0 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_objects_asserters/conftest.py +0 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_objects_asserters/test_equality_asserter.py +0 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_objects_asserters/test_identity_asserter.py +0 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_objects_asserters/test_is_type_asserter.py +0 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_objects_asserters/test_mapping_asserter.py +0 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_objects_asserters/test_mapping_subset_asserter.py +0 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_objects_asserters/test_object_attributes_asserter.py +0 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_objects_asserters/test_ordered_elements_asserter.py +0 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_objects_asserters/test_stringified_asserter.py +0 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_objects_asserters/test_unordered_elements_asserter.py +0 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_objects_asserters/test_with_type_asserter.py +0 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/test_assert_object.py +0 -0
- {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/test_complex.py +0 -0
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
[flake8]
|
|
2
|
+
count = True
|
|
3
|
+
extend-exclude =
|
|
4
|
+
.*/
|
|
5
|
+
tests/*
|
|
6
|
+
|
|
7
|
+
### Rules choice
|
|
8
|
+
# DOC: We use flake8 just to run pydoclint, ruff takes care about the rest
|
|
9
|
+
select=DOC
|
|
10
|
+
# DOC5xx: Violations about “raise” and “assert” statements
|
|
11
|
+
# DOC6xx: Violations about class attributes
|
|
12
|
+
# DOC203: Return type(s) in the docstring not consistent with the return annotation
|
|
13
|
+
# DOC404: The types in the docstring’s Yields section and the return annotation in the signature are not consistent
|
|
14
|
+
ignore=DOC5,DOC6,DOC203,DOC404
|
|
15
|
+
|
|
16
|
+
### pydoclint options
|
|
17
|
+
style = sphinx
|
|
18
|
+
arg-type-hints-in-docstring = False
|
|
19
|
+
skip-checking-short-docstrings = False
|
|
20
|
+
skip-checking-raises = True
|
|
21
|
+
check-return-types = False
|
|
22
|
+
check-yield-types = False
|
|
23
|
+
check-class-attributes = False
|
|
24
|
+
check-style-mismatch = True
|
|
25
|
+
omit-stars-when-documenting-varargs = True
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
### Configuration created for mypy==
|
|
1
|
+
### Configuration created for mypy==2.4.0
|
|
2
2
|
|
|
3
3
|
[mypy]
|
|
4
4
|
|
|
@@ -125,7 +125,7 @@ no_silence_site_packages = False
|
|
|
125
125
|
### Platform configuration
|
|
126
126
|
# Specifies the Python version used to parse and check the target
|
|
127
127
|
# program. The string should be in the format MAJOR.MINOR –
|
|
128
|
-
# for example 3.
|
|
128
|
+
# for example 3.10. The default is the version of the Python
|
|
129
129
|
# interpreter used to run mypy.
|
|
130
130
|
# This option may only be set in the global section ([mypy]).
|
|
131
131
|
#python_version =
|
|
@@ -255,26 +255,33 @@ ignore_errors = False
|
|
|
255
255
|
allow_untyped_globals = False
|
|
256
256
|
|
|
257
257
|
# By default, mypy won’t allow a variable to be redefined with an
|
|
258
|
-
# unrelated type. This
|
|
259
|
-
#
|
|
260
|
-
# local_partial_types
|
|
261
|
-
# Example:
|
|
258
|
+
# unrelated type. This flag enables the redefinition of unannotated
|
|
259
|
+
# variables with an arbitrary type. This also requires
|
|
260
|
+
# local_partial_types, which is enabled by default starting
|
|
261
|
+
# from mypy 2.0. Example:
|
|
262
262
|
# This also enables an unannotated variable to have different types in different
|
|
263
263
|
# code locations:
|
|
264
|
+
# Function arguments are special, changing their type within function body
|
|
265
|
+
# is allowed even if they are annotated, but that annotation is used to infer
|
|
266
|
+
# types of r.h.s. of all subsequent assignments. Such middle-ground semantics
|
|
267
|
+
# provides good balance for majority of common use cases. For example:
|
|
264
268
|
# Note: We are planning to turn this flag on by default in a future mypy
|
|
265
|
-
# release
|
|
269
|
+
# release.
|
|
270
|
+
allow_redefinition = False
|
|
271
|
+
|
|
272
|
+
# Deprecated alias for allow_redefinition.
|
|
266
273
|
allow_redefinition_new = False
|
|
267
274
|
|
|
268
275
|
# Allows variables to be redefined with an arbitrary type, as long as the redefinition
|
|
269
276
|
# is in the same block and nesting level as the original definition.
|
|
270
277
|
# Example where this can be useful:
|
|
271
278
|
# The variable must be used before it can be redefined:
|
|
272
|
-
|
|
279
|
+
allow_redefinition_old = False
|
|
273
280
|
|
|
274
|
-
#
|
|
275
|
-
#
|
|
276
|
-
# This
|
|
277
|
-
local_partial_types =
|
|
281
|
+
# This prevents inferring a variable type from an empty container (such as a list or
|
|
282
|
+
# a dictionary) created at module top level or class body and updated in
|
|
283
|
+
# a function. This must be enabled when using the mypy daemon.
|
|
284
|
+
local_partial_types = True
|
|
278
285
|
|
|
279
286
|
# Allows disabling one or multiple error codes globally.
|
|
280
287
|
#disable_error_code =
|
|
@@ -301,16 +308,16 @@ strict_equality = True
|
|
|
301
308
|
# to be activated).
|
|
302
309
|
strict_equality_for_none = False
|
|
303
310
|
|
|
304
|
-
#
|
|
305
|
-
# This
|
|
306
|
-
strict_bytes =
|
|
311
|
+
# If disabled, mypy treats bytearray and memoryview as subtypes of bytes.
|
|
312
|
+
# This has been enabled by default since mypy 2.0.
|
|
313
|
+
strict_bytes = True
|
|
307
314
|
|
|
308
315
|
# Enable all optional error checking flags. You can see the list of
|
|
309
316
|
# flags enabled by strict mode in the full mypy --help
|
|
310
317
|
# output.
|
|
311
318
|
# Note: the exact list of flags enabled by strict may
|
|
312
319
|
# change over time.
|
|
313
|
-
strict =
|
|
320
|
+
strict = False
|
|
314
321
|
|
|
315
322
|
|
|
316
323
|
### Configuring error messages
|
|
@@ -339,11 +346,6 @@ error_summary = True
|
|
|
339
346
|
# Show absolute paths to files.
|
|
340
347
|
show_absolute_path = False
|
|
341
348
|
|
|
342
|
-
# Always use Union[] and Optional[] for union types
|
|
343
|
-
# in error messages (instead of the | operator),
|
|
344
|
-
# even on Python 3.10+.
|
|
345
|
-
force_union_syntax = False
|
|
346
|
-
|
|
347
349
|
|
|
348
350
|
### Incremental mode
|
|
349
351
|
# Enables incremental mode.
|
|
@@ -359,7 +361,7 @@ incremental = True
|
|
|
359
361
|
cache_dir = .mypy_cache
|
|
360
362
|
|
|
361
363
|
# Use an SQLite database to store the cache.
|
|
362
|
-
sqlite_cache =
|
|
364
|
+
sqlite_cache = True
|
|
363
365
|
|
|
364
366
|
# Include fine-grained dependency information in the cache for the mypy daemon.
|
|
365
367
|
cache_fine_grained = False
|
|
@@ -373,6 +375,15 @@ skip_version_check = False
|
|
|
373
375
|
skip_cache_mtime_checks = False
|
|
374
376
|
|
|
375
377
|
|
|
378
|
+
### Parallel type-checking configuration
|
|
379
|
+
# Use a specific number of parallel worker processes for type-checking or
|
|
380
|
+
# the value auto to select the number based on the CPUs available to mypy.
|
|
381
|
+
# See parallel type-checking for more details.
|
|
382
|
+
# The MYPY_NUM_WORKERS environment variable accepts the same values and
|
|
383
|
+
# overrides this setting.
|
|
384
|
+
num_workers = 0
|
|
385
|
+
|
|
386
|
+
|
|
376
387
|
### Advanced options
|
|
377
388
|
# A comma-separated list of mypy plugins. See Extending mypy using plugins.
|
|
378
389
|
#plugins =
|
|
@@ -403,6 +414,12 @@ raise_exceptions = False
|
|
|
403
414
|
# in combination with disallow_untyped_defs or disallow_incomplete_defs.
|
|
404
415
|
warn_incomplete_stub = True
|
|
405
416
|
|
|
417
|
+
# Use the fast Rust-based native parser that parses directly to mypy AST.
|
|
418
|
+
# Set this to False to use the legacy parser based on the stdlib
|
|
419
|
+
# ast module instead. See --no-native-parser
|
|
420
|
+
# for more details.
|
|
421
|
+
native_parser = True
|
|
422
|
+
|
|
406
423
|
|
|
407
424
|
### Report generation
|
|
408
425
|
# Causes mypy to generate a text file report documenting how many
|
|
@@ -453,13 +470,17 @@ warn_incomplete_stub = True
|
|
|
453
470
|
# with continuous integration (CI) tools.
|
|
454
471
|
#junit_xml =
|
|
455
472
|
|
|
473
|
+
# If junit_xml is set, specifies format.
|
|
474
|
+
# global (default): single test with all errors;
|
|
475
|
+
# per_file: one test entry per file with failures.
|
|
476
|
+
junit_format = global
|
|
477
|
+
|
|
456
478
|
# Makes script x become module x instead of __main__. This is
|
|
457
479
|
# useful when checking multiple scripts in a single run.
|
|
458
480
|
scripts_are_modules = False
|
|
459
481
|
|
|
460
482
|
# Warns about per-module sections in the config file that do not
|
|
461
483
|
# match any files processed when invoking mypy.
|
|
462
|
-
# (This requires turning off incremental mode using incremental = False.)
|
|
463
484
|
warn_unused_configs = True
|
|
464
485
|
|
|
465
486
|
# Controls how much debug output will be generated. Higher numbers are more verbose.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
### Configuration created for ruff==0.
|
|
1
|
+
### Configuration created for ruff==0.17.0
|
|
2
2
|
|
|
3
3
|
# A list of builtins to treat as defined references, in addition to the
|
|
4
4
|
# system builtins.
|
|
@@ -45,12 +45,19 @@ exclude = [
|
|
|
45
45
|
"node_modules",
|
|
46
46
|
"venv",
|
|
47
47
|
]
|
|
48
|
-
# A path to a local pyproject.toml file to merge into this
|
|
48
|
+
# A path to a local pyproject.toml or ruff.toml file to merge into this
|
|
49
49
|
# configuration. User home directory and environment variables will be
|
|
50
50
|
# expanded.
|
|
51
|
-
# To resolve the current
|
|
52
|
-
# this base configuration file, then merge in
|
|
53
|
-
# in the current configuration file.
|
|
51
|
+
# To resolve the current configuration file, Ruff will first load
|
|
52
|
+
# this base configuration file, then merge in properties defined
|
|
53
|
+
# in the current configuration file. Most settings follow simple override
|
|
54
|
+
# behavior where the child value replaces the parent value. However,
|
|
55
|
+
# rule selection (lint.select and lint.ignore) has special merging
|
|
56
|
+
# behavior: if the child configuration specifies lint.select, it
|
|
57
|
+
# establishes a new baseline rule set and the parent's lint.ignore
|
|
58
|
+
# rules are discarded; if the child configuration omits lint.select,
|
|
59
|
+
# the parent's rule selection is inherited and both parent and child
|
|
60
|
+
# lint.ignore rules are accumulated together.
|
|
54
61
|
#extend =
|
|
55
62
|
# A list of file patterns to omit from formatting and linting, in addition to those
|
|
56
63
|
# specified by exclude.
|
|
@@ -70,6 +77,13 @@ extend-exclude = []
|
|
|
70
77
|
# *.pyw, to include any file with the .pyw extension.
|
|
71
78
|
# For more information on the glob syntax, refer to the globset documentation.
|
|
72
79
|
extend-include = []
|
|
80
|
+
# A mapping of custom file extensions to known file types (overridden
|
|
81
|
+
# by the --extension command-line flag).
|
|
82
|
+
# Supported file types include python, pyi, ipynb, and markdown.
|
|
83
|
+
# Any file extensions listed here will be automatically added to the
|
|
84
|
+
# default include list as a *.{ext} glob, so that they are linted
|
|
85
|
+
# and formatted without needing any additional configuration settings.
|
|
86
|
+
extension = {}
|
|
73
87
|
# Enable fix behavior by-default when running ruff (overridden
|
|
74
88
|
# by the --fix and --no-fix command-line flags).
|
|
75
89
|
# Only includes automatic fixes unless --unsafe-fixes is provided.
|
|
@@ -88,9 +102,10 @@ fix-only = false
|
|
|
88
102
|
force-exclude = false
|
|
89
103
|
# A list of file patterns to include when linting.
|
|
90
104
|
# Inclusion are based on globs, and should be single-path patterns, like
|
|
91
|
-
# *.pyw, to include any file with the .pyw extension.
|
|
92
|
-
#
|
|
93
|
-
# [project] matches
|
|
105
|
+
# *.pyw, to include any file with the .pyw extension.
|
|
106
|
+
# pyproject.toml, ruff.toml, and .ruff.toml are included here not for
|
|
107
|
+
# configuration but because we lint whether e.g. the [project] matches
|
|
108
|
+
# the schema in pyproject.toml or that rule names are used as selectors.
|
|
94
109
|
# Notebook files (.ipynb extension) are included by default on Ruff 0.6.0+.
|
|
95
110
|
# For more information on the glob syntax, refer to the globset documentation.
|
|
96
111
|
include = [
|
|
@@ -98,7 +113,10 @@ include = [
|
|
|
98
113
|
"*.pyi",
|
|
99
114
|
"*.pyw",
|
|
100
115
|
"*.ipynb",
|
|
116
|
+
"*.md",
|
|
101
117
|
"**/pyproject.toml",
|
|
118
|
+
"**/ruff.toml",
|
|
119
|
+
"**/.ruff.toml",
|
|
102
120
|
]
|
|
103
121
|
# The number of spaces per indentation level (tab).
|
|
104
122
|
# Used by the formatter and when enforcing long-line violations (like E501) to determine the visual
|
|
@@ -111,7 +129,7 @@ indent-width = 4
|
|
|
111
129
|
# and at which isort and the formatter prefers to wrap lines.
|
|
112
130
|
# The length is determined by the number of characters per line, except for lines containing East Asian characters or emojis.
|
|
113
131
|
# For these lines, the unicode width of each character is added up to determine the length.
|
|
114
|
-
# The value must be greater than 0
|
|
132
|
+
# The value must be greater than 0.
|
|
115
133
|
# Note: While the formatter will attempt to format lines such that they remain
|
|
116
134
|
# within the line-length, it isn't a hard upper bound, and formatted lines may
|
|
117
135
|
# exceed the line-length.
|
|
@@ -127,6 +145,19 @@ namespace-packages = []
|
|
|
127
145
|
# Actions annotations), "gitlab" (GitLab CI code quality report),
|
|
128
146
|
# "pylint" (Pylint text format) or "azure" (Azure Pipeline logging commands).
|
|
129
147
|
output-format = "concise"
|
|
148
|
+
# Whether to prefer rule codes over human-readable rule names in diagnostic output, even
|
|
149
|
+
# when preview mode is enabled.
|
|
150
|
+
# Diagnostics without rule codes, such as syntax errors and formatting diagnostics, will
|
|
151
|
+
# continue to use the human-readable name, but those corresponding to lint rules will use the
|
|
152
|
+
# rule's code. For example, the concise diagnostic for an unused import will use the code
|
|
153
|
+
# F401 instead of the name unused-import:
|
|
154
|
+
# ---
|
|
155
|
+
# $ ruff check --preview --config 'output-prefer-rule-codes = true' --output-format=concise example.py
|
|
156
|
+
# example.py:1:8: F401 [*] `math` imported but unused
|
|
157
|
+
# $ ruff check --preview --config 'output-prefer-rule-codes = false' --output-format=concise example.py
|
|
158
|
+
# example.py:1:8: unused-import: [*] `math` imported but unused
|
|
159
|
+
# ---
|
|
160
|
+
output-prefer-rule-codes = false
|
|
130
161
|
# A list of mappings from glob-style file pattern to Python version to use when checking the
|
|
131
162
|
# corresponding file(s).
|
|
132
163
|
# This may be useful for overriding the global Python version settings in target-version or
|
|
@@ -185,8 +216,8 @@ src = [
|
|
|
185
216
|
# The minimum Python version to target, e.g., when considering automatic
|
|
186
217
|
# code upgrades, like rewriting type annotations. Ruff will not propose
|
|
187
218
|
# changes using features that are not available in the given version.
|
|
188
|
-
# For example, to represent supporting Python >=3.
|
|
189
|
-
# specify target-version = "
|
|
219
|
+
# For example, to represent supporting Python >=3.12 or ==3.12
|
|
220
|
+
# specify target-version = "py312".
|
|
190
221
|
# If you're already using a pyproject.toml file, we recommend
|
|
191
222
|
# project.requires-python instead, as it's based on Python packaging
|
|
192
223
|
# standards, and will be respected by other tools. For example, Ruff
|
|
@@ -208,7 +239,7 @@ src = [
|
|
|
208
239
|
# 3.10+. As such, Ruff will often recommend newer features in a stub
|
|
209
240
|
# file than it would for an equivalent runtime file with the same target
|
|
210
241
|
# version.
|
|
211
|
-
target-version = "
|
|
242
|
+
target-version = "py311"
|
|
212
243
|
# Enable application of unsafe fixes.
|
|
213
244
|
# If excluded, a hint will be displayed when unsafe fixes are available.
|
|
214
245
|
# If set to false, the hint will be hidden.
|
|
@@ -244,6 +275,10 @@ preview = false
|
|
|
244
275
|
# For example, if this is set to 2, then only strings with at least two dots (e.g., "path.to.module")
|
|
245
276
|
# would be considered valid imports.
|
|
246
277
|
string-imports-min-dots = 2
|
|
278
|
+
# Whether to include imports that are only used for type checking (i.e., imports within if TYPE_CHECKING: blocks).
|
|
279
|
+
# When enabled (default), type-checking-only imports are included in the import graph.
|
|
280
|
+
# When disabled, they are excluded.
|
|
281
|
+
type-checking-imports = true
|
|
247
282
|
|
|
248
283
|
[format]
|
|
249
284
|
# Whether to format code snippets in docstrings.
|
|
@@ -396,8 +431,17 @@ indent-style = "space"
|
|
|
396
431
|
# - cr-lf: Line endings will be converted to \r\n. The default line ending on Windows.
|
|
397
432
|
# - native: Line endings will be converted to \n on Unix and \r\n on Windows.
|
|
398
433
|
line-ending = "lf"
|
|
434
|
+
# Controls the quote style for nested strings inside interpolated string expressions.
|
|
435
|
+
# - alternating (default): Use alternating quotes.
|
|
436
|
+
# - preferred: Use the configured quote-style.
|
|
437
|
+
# ---
|
|
438
|
+
# f"{data['key']}" # alternating (default)
|
|
439
|
+
# f"{data["key"]}" # preferred
|
|
440
|
+
# ---
|
|
441
|
+
# Note: This setting has no effect when targeting Python versions below 3.12.
|
|
442
|
+
nested-string-quote-style = "alternating"
|
|
399
443
|
# Whether to enable the unstable preview style formatting.
|
|
400
|
-
preview =
|
|
444
|
+
preview = true
|
|
401
445
|
# Configures the preferred quote character for strings. The recommended options are
|
|
402
446
|
# - double (default): Use double quotes "
|
|
403
447
|
# - single: Use single quotes '
|
|
@@ -441,8 +485,9 @@ skip-magic-trailing-comma = false
|
|
|
441
485
|
allowed-confusables = []
|
|
442
486
|
# A regular expression used to identify "dummy" variables, or those which
|
|
443
487
|
# should be ignored when enforcing (e.g.) unused-variable rules. The
|
|
444
|
-
# default expression matches _, __,
|
|
445
|
-
|
|
488
|
+
# default expression matches _, __, _var, and _次, but not _var_
|
|
489
|
+
# or _次_.
|
|
490
|
+
dummy-variable-rgx = "^(_+|(_+[\\p{XID_Continue}]*[\\p{XID_Continue}--_]+?))$"
|
|
446
491
|
# A list of file patterns to exclude from linting in addition to the files excluded globally (see exclude, and extend-exclude).
|
|
447
492
|
# Exclusions are based on globs, and can be either:
|
|
448
493
|
# - Single-path patterns, like .mypy_cache (to exclude any directory
|
|
@@ -469,6 +514,19 @@ extend-per-file-ignores = {}
|
|
|
469
514
|
extend-safe-fixes = []
|
|
470
515
|
# A list of rule codes or prefixes to enable, in addition to those
|
|
471
516
|
# specified by select.
|
|
517
|
+
# Unlike select, which replaces the default rule set
|
|
518
|
+
# when specified, extend-select adds to whatever rules are already
|
|
519
|
+
# active. This makes extend-select the preferred option when you want
|
|
520
|
+
# to enable additional rules on top of the defaults without having to
|
|
521
|
+
# enumerate them.
|
|
522
|
+
# For example, to enable the defaults plus flake8-bugbear:
|
|
523
|
+
# ---
|
|
524
|
+
# [tool.ruff.lint]
|
|
525
|
+
# # Adds flake8-bugbear on top of the default rules.
|
|
526
|
+
# extend-select = ["B"]
|
|
527
|
+
# ---
|
|
528
|
+
# Using select = ["B"] instead would replace the defaults, enabling
|
|
529
|
+
# only flake8-bugbear.
|
|
472
530
|
extend-select = []
|
|
473
531
|
# A list of rule codes or prefixes for which safe fixes should be considered
|
|
474
532
|
# unsafe.
|
|
@@ -477,9 +535,7 @@ extend-unsafe-fixes = []
|
|
|
477
535
|
# preserved when (e.g.) validating # noqa directives. Useful for
|
|
478
536
|
# retaining # noqa directives that cover plugins not yet implemented
|
|
479
537
|
# by Ruff.
|
|
480
|
-
external = [
|
|
481
|
-
"DAR",
|
|
482
|
-
]
|
|
538
|
+
external = []
|
|
483
539
|
# A list of rule codes or prefixes to consider fixable. By default,
|
|
484
540
|
# all rules are considered fixable.
|
|
485
541
|
fixable = [
|
|
@@ -491,14 +547,16 @@ fixable = [
|
|
|
491
547
|
# if __future__ annotations are enabled.
|
|
492
548
|
future-annotations = false
|
|
493
549
|
# A list of rule codes or prefixes to ignore. Prefixes can specify exact
|
|
494
|
-
# rules (like F841), entire
|
|
550
|
+
# rules (like F841), entire groups (like F), or anything in
|
|
495
551
|
# between.
|
|
496
552
|
# When breaking ties between enabled and disabled rules (via select and
|
|
497
553
|
# ignore, respectively), more specific prefixes override less
|
|
498
554
|
# specific prefixes. ignore takes precedence over select if the same
|
|
499
555
|
# prefix appears in both.
|
|
556
|
+
# In preview, categories like correctness and suspicious can be used
|
|
557
|
+
# in addition to rule codes and linter group prefixes.
|
|
500
558
|
ignore = [
|
|
501
|
-
"B005", # Using
|
|
559
|
+
"B005", # Using `.{strip}()` with multi-character strings is misleading
|
|
502
560
|
"D100", # Missing docstring in public module
|
|
503
561
|
"D104", # Missing docstring in public package
|
|
504
562
|
"D105", # Missing docstring in magic method
|
|
@@ -506,12 +564,13 @@ ignore = [
|
|
|
506
564
|
"D200", # One-line docstring should fit on one line
|
|
507
565
|
"D203", # 1 blank line required before class docstring
|
|
508
566
|
"D212", # Multi-line docstring summary should start at the first line
|
|
509
|
-
"RUF012", # Mutable
|
|
567
|
+
"RUF012", # Mutable default value for class attribute
|
|
510
568
|
"S101", # Use of `assert` detected
|
|
511
|
-
"TC001", # Move application import into a type-checking block
|
|
512
|
-
"TC002", # Move third-party import into a type-checking block
|
|
513
|
-
"TC003", # Move standard library import into a type-checking block
|
|
514
|
-
"PYI041", # Use `
|
|
569
|
+
"TC001", # Move application import `{}` into a type-checking block
|
|
570
|
+
"TC002", # Move third-party import `{}` into a type-checking block
|
|
571
|
+
"TC003", # Move standard library import `{}` into a type-checking block
|
|
572
|
+
"PYI041", # Use `{supertype}` instead of `{subtype} | {supertype}`
|
|
573
|
+
"CPY001", # Missing copyright notice at top of file
|
|
515
574
|
]
|
|
516
575
|
# A list of objects that should be treated equivalently to a
|
|
517
576
|
# logging.Logger object.
|
|
@@ -531,12 +590,14 @@ logger-objects = []
|
|
|
531
590
|
# use unstable rules and fixes.
|
|
532
591
|
preview = false
|
|
533
592
|
# A list of rule codes or prefixes to enable. Prefixes can specify exact
|
|
534
|
-
# rules (like F841), entire
|
|
593
|
+
# rules (like F841), entire groups (like F), or anything in
|
|
535
594
|
# between.
|
|
536
595
|
# When breaking ties between enabled and disabled rules (via select and
|
|
537
596
|
# ignore, respectively), more specific prefixes override less
|
|
538
597
|
# specific prefixes. ignore takes precedence over select if the
|
|
539
598
|
# same prefix appears in both.
|
|
599
|
+
# In preview, categories like correctness and suspicious can be used
|
|
600
|
+
# in addition to rule codes and linter group prefixes.
|
|
540
601
|
select = [
|
|
541
602
|
"ALL",
|
|
542
603
|
]
|
|
@@ -569,14 +630,16 @@ unfixable = []
|
|
|
569
630
|
# A list of mappings from file pattern to rule codes or prefixes to
|
|
570
631
|
# exclude, when considering any matching files. An initial '!' negates
|
|
571
632
|
# the file pattern.
|
|
633
|
+
# For more information on the glob syntax, refer to the globset documentation.
|
|
572
634
|
[lint.per-file-ignores]
|
|
573
635
|
"!tests/*" = [
|
|
574
636
|
"PT", # flake8-pytest-style
|
|
575
637
|
]
|
|
576
638
|
"tests/*" = [
|
|
577
|
-
"SLF001", # Private member accessed
|
|
639
|
+
"SLF001", # Private member accessed: `{access}`
|
|
578
640
|
"FBT001", # Boolean-typed positional argument in function definition
|
|
579
|
-
"PLR0913", # Too many arguments
|
|
641
|
+
"PLR0913", # Too many arguments in function definition ({c_args} > {max_args})
|
|
642
|
+
"PLR0917", # Too many positional arguments ({c_pos} > {max_pos})
|
|
580
643
|
"RUF018", # Avoid assignment expressions in `assert` statements
|
|
581
644
|
]
|
|
582
645
|
"tests/**/test_*" = [
|
|
@@ -584,8 +647,8 @@ unfixable = []
|
|
|
584
647
|
"D101", # Missing docstring in public class
|
|
585
648
|
"D102", # Missing docstring in public method
|
|
586
649
|
"D103", # Missing docstring in public function
|
|
587
|
-
"B011", #
|
|
588
|
-
"PLR2004", # Magic value used in comparison
|
|
650
|
+
"B011", # Do not `assert False` (`python -O` removes these calls), raise `AssertionError()`
|
|
651
|
+
"PLR2004", # Magic value used in comparison, consider replacing `{value}` with a constant variable
|
|
589
652
|
]
|
|
590
653
|
|
|
591
654
|
[lint.flake8-annotations]
|
|
@@ -734,13 +797,15 @@ banned-from = [
|
|
|
734
797
|
"tomllib",
|
|
735
798
|
]
|
|
736
799
|
# A mapping from module to conventional import alias. These aliases will
|
|
737
|
-
# be added to the aliases mapping
|
|
800
|
+
# be added to the aliases mapping
|
|
801
|
+
# and will override any existing aliases if the two settings overlap.
|
|
738
802
|
extend-aliases = {}
|
|
739
803
|
|
|
740
804
|
# The conventional aliases for imports. These aliases can be extended by
|
|
741
805
|
# the extend-aliases option.
|
|
742
806
|
[lint.flake8-import-conventions.aliases]
|
|
743
807
|
"altair" = "alt"
|
|
808
|
+
"datetime" = "dt"
|
|
744
809
|
"matplotlib" = "mpl"
|
|
745
810
|
"matplotlib.pyplot" = "plt"
|
|
746
811
|
"numpy" = "np"
|
|
@@ -870,10 +935,16 @@ ignore-names = [
|
|
|
870
935
|
]
|
|
871
936
|
|
|
872
937
|
[lint.flake8-tidy-imports]
|
|
938
|
+
# Specific modules that may not be imported lazily, or "all" to forbid lazy imports except
|
|
939
|
+
# for any modules excluded from the selector. This rule is only enforced when targeting
|
|
940
|
+
# Python 3.15 or newer.
|
|
941
|
+
ban-lazy = []
|
|
873
942
|
# Whether to ban all relative imports ("all"), or only those imports
|
|
874
943
|
# that extend into the parent module or beyond ("parents").
|
|
875
944
|
ban-relative-imports = "parents"
|
|
876
945
|
# Specific modules or module members that may not be imported or accessed.
|
|
946
|
+
# These can be extended by the
|
|
947
|
+
# extend-banned-api option.
|
|
877
948
|
# Note that this rule is only meant to flag accidental uses,
|
|
878
949
|
# and can be circumvented via eval or importlib.
|
|
879
950
|
banned-api = {}
|
|
@@ -882,6 +953,17 @@ banned-api = {}
|
|
|
882
953
|
# block, or some other nested context). This also affects the rule import-outside-top-level
|
|
883
954
|
# if banned-module-level-imports is enabled.
|
|
884
955
|
banned-module-level-imports = []
|
|
956
|
+
# Additional modules or module members that may not be imported or accessed.
|
|
957
|
+
# These entries will be added to the
|
|
958
|
+
# banned-api mapping and will override
|
|
959
|
+
# any existing entries if the two settings overlap.
|
|
960
|
+
extend-banned-api = {}
|
|
961
|
+
# Specific modules that must be imported lazily in contexts where lazy import is legal, or
|
|
962
|
+
# "all" to require every lazily-convertible import to use the lazy keyword. Ruff ignores
|
|
963
|
+
# contexts where lazy import is invalid, such as functions, classes, try/except
|
|
964
|
+
# blocks, __future__ imports, and from ... import * statements. This rule is only
|
|
965
|
+
# enforced when targeting Python 3.15 or newer.
|
|
966
|
+
require-lazy = []
|
|
885
967
|
|
|
886
968
|
[lint.flake8-type-checking]
|
|
887
969
|
# Exempt certain modules from needing to be moved into type-checking
|
|
@@ -921,18 +1003,39 @@ exempt-modules = [
|
|
|
921
1003
|
# ---
|
|
922
1004
|
# Note that this setting has no effect when from __future__ import annotations
|
|
923
1005
|
# is present, as __future__ annotations are always treated equivalently
|
|
924
|
-
# to quoted annotations.
|
|
1006
|
+
# to quoted annotations. Similarly, this setting has no effect on Python
|
|
1007
|
+
# versions after 3.14 because these annotations are also deferred.
|
|
925
1008
|
quote-annotations = false
|
|
926
1009
|
# Exempt classes that list any of the enumerated classes as a base class
|
|
927
1010
|
# from needing to be moved into type-checking blocks.
|
|
928
|
-
#
|
|
929
|
-
#
|
|
930
|
-
#
|
|
931
|
-
#
|
|
932
|
-
#
|
|
933
|
-
#
|
|
1011
|
+
# This can either be configured as a list, if all entries share the same
|
|
1012
|
+
# runtime semantics of being runtime required. Or a table where each entry
|
|
1013
|
+
# is assigned to its desired runtime semantics.
|
|
1014
|
+
# A common example for "runtime" required semantics is Pydantic's pydantic.BaseModel
|
|
1015
|
+
# but can also support user-defined classes that inherit from those base classes.
|
|
1016
|
+
# For example, if you define a common BaseModel subclass that's used throughout
|
|
1017
|
+
# your project (e.g., class Base(BaseModel) ... in base.py), you can add it to
|
|
1018
|
+
# this list/table (runtime-evaluated-base-classes = ["base.Base"]) to exempt
|
|
934
1019
|
# models from being moved into type-checking blocks.
|
|
935
|
-
|
|
1020
|
+
# ---
|
|
1021
|
+
# [tool.ruff.lint.flake8-type-checking]
|
|
1022
|
+
# runtime-evaluated-base-classes = ["pydantic.BaseModel"]
|
|
1023
|
+
# ---
|
|
1024
|
+
# Or
|
|
1025
|
+
# ---
|
|
1026
|
+
# [tool.ruff.lint.flake8-type-checking.runtime-evaluated-base-classes]
|
|
1027
|
+
# "pydantic.BaseModel" = "required"
|
|
1028
|
+
# ---
|
|
1029
|
+
# For some use-cases like SQLAlchemy's sqlalchemy.orm.DeclarativeBase it makes more
|
|
1030
|
+
# sense to mark the class as runtime "ambiguous", since references to other models do
|
|
1031
|
+
# not need to resolve at runtime. With these semantics ruff will assume the annotations
|
|
1032
|
+
# already contain all of the correct forward references, and will not attempt to move
|
|
1033
|
+
# related imports and/or quote annotations.
|
|
1034
|
+
# ---
|
|
1035
|
+
# [tool.ruff.lint.flake8-type-checking.runtime-evaluated-base-classes]
|
|
1036
|
+
# "sqlalchemy.orm.DeclarativeBase" = "ambiguous"
|
|
1037
|
+
# ---
|
|
1038
|
+
runtime-evaluated-base-classes = {}
|
|
936
1039
|
# Exempt classes and functions decorated with any of the enumerated
|
|
937
1040
|
# decorators from being moved into type-checking blocks.
|
|
938
1041
|
# Common examples include Pydantic's @pydantic.validate_call decorator
|
|
@@ -940,14 +1043,16 @@ runtime-evaluated-base-classes = []
|
|
|
940
1043
|
# This also supports framework decorators like FastAPI's fastapi.FastAPI.get
|
|
941
1044
|
# which will work across assignments in the same module.
|
|
942
1045
|
# For example:
|
|
943
|
-
# import
|
|
1046
|
+
# from fastapi import FastAPI
|
|
944
1047
|
#
|
|
945
1048
|
# app = FastAPI("app")
|
|
946
1049
|
#
|
|
947
1050
|
# @app.get("/home")
|
|
948
1051
|
# def home() -> str: ...
|
|
949
1052
|
# Here app.get will correctly be identified as fastapi.FastAPI.get.
|
|
950
|
-
runtime-evaluated-
|
|
1053
|
+
# Just like with runtime-evaluated-base-classes it's possible to mark
|
|
1054
|
+
# decorators as runtime "ambiguous".
|
|
1055
|
+
runtime-evaluated-decorators = {}
|
|
951
1056
|
# Enforce TC001, TC002, and TC003 rules even when valid runtime imports
|
|
952
1057
|
# are present for the same module.
|
|
953
1058
|
# See flake8-type-checking's strict option.
|
|
@@ -1025,6 +1130,12 @@ forced-separate = []
|
|
|
1025
1130
|
# import os
|
|
1026
1131
|
# import sys
|
|
1027
1132
|
from-first = false
|
|
1133
|
+
# A mapping from import section names to their heading comments.
|
|
1134
|
+
# When set, a comment with the specified text will be added above imports
|
|
1135
|
+
# in the corresponding section. If a heading comment already exists, it
|
|
1136
|
+
# will be replaced.
|
|
1137
|
+
# Compatible with isort's import_heading_{section_name} settings.
|
|
1138
|
+
import-heading = {}
|
|
1028
1139
|
# A list of modules to consider first-party, regardless of whether they
|
|
1029
1140
|
# can be identified as such via introspection of the local filesystem.
|
|
1030
1141
|
# Supports glob patterns. For more information on the glob syntax, refer
|
|
@@ -1243,6 +1354,49 @@ ignore-one-line-docstrings = false
|
|
|
1243
1354
|
# [tool.ruff.lint.pydocstyle]
|
|
1244
1355
|
# convention = "google"
|
|
1245
1356
|
# ---
|
|
1357
|
+
# The PEP 257 convention includes all D errors apart from:
|
|
1358
|
+
# D203,
|
|
1359
|
+
# D212,
|
|
1360
|
+
# D213,
|
|
1361
|
+
# D214,
|
|
1362
|
+
# D215,
|
|
1363
|
+
# D404,
|
|
1364
|
+
# D405,
|
|
1365
|
+
# D406,
|
|
1366
|
+
# D407,
|
|
1367
|
+
# D408,
|
|
1368
|
+
# D409,
|
|
1369
|
+
# D410,
|
|
1370
|
+
# D411,
|
|
1371
|
+
# D413,
|
|
1372
|
+
# D415,
|
|
1373
|
+
# D416,
|
|
1374
|
+
# D417, and
|
|
1375
|
+
# D420.
|
|
1376
|
+
# The NumPy convention includes all D errors apart from:
|
|
1377
|
+
# D107,
|
|
1378
|
+
# D203,
|
|
1379
|
+
# D212,
|
|
1380
|
+
# D213,
|
|
1381
|
+
# D402,
|
|
1382
|
+
# D413,
|
|
1383
|
+
# D415,
|
|
1384
|
+
# D416, and
|
|
1385
|
+
# D417.
|
|
1386
|
+
# The Google convention includes all D errors apart from:
|
|
1387
|
+
# D203,
|
|
1388
|
+
# D204,
|
|
1389
|
+
# D213,
|
|
1390
|
+
# D215,
|
|
1391
|
+
# D400,
|
|
1392
|
+
# D401,
|
|
1393
|
+
# D404,
|
|
1394
|
+
# D406,
|
|
1395
|
+
# D407,
|
|
1396
|
+
# D408,
|
|
1397
|
+
# D409, and
|
|
1398
|
+
# D413.
|
|
1399
|
+
# For more information see the FAQ entry.
|
|
1246
1400
|
# To enable an additional rule that's excluded from the convention,
|
|
1247
1401
|
# select the desired rule via its fully qualified rule code (e.g.,
|
|
1248
1402
|
# D400 instead of D4 or D40):
|
|
@@ -1315,6 +1469,8 @@ max-public-methods = 20
|
|
|
1315
1469
|
max-returns = 6
|
|
1316
1470
|
# Maximum number of statements allowed for a function or method body (see PLR0915).
|
|
1317
1471
|
max-statements = 50
|
|
1472
|
+
# Maximum number of statements allowed for a try clause body (see W0717).
|
|
1473
|
+
max-statements-in-try = 5
|
|
1318
1474
|
|
|
1319
1475
|
[lint.pyupgrade]
|
|
1320
1476
|
# Whether to avoid PEP 585 (List[int] -> list[int]) and PEP 604
|
|
@@ -1348,3 +1504,6 @@ keep-runtime-typing = false
|
|
|
1348
1504
|
# Whether to prefer accessing items keyed by tuples with
|
|
1349
1505
|
# parentheses around the tuple (see RUF031).
|
|
1350
1506
|
parenthesize-tuple-in-subscript = false
|
|
1507
|
+
# Whether to require __init__.py files to contain no code at all, including imports and
|
|
1508
|
+
# __all__ assignments (see RUF067). Module and attribute docstrings are still allowed.
|
|
1509
|
+
strictly-empty-init-modules = false
|
{panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.4.0}/.github/workflows/pr-checker.yml
RENAMED
|
@@ -8,22 +8,22 @@ jobs:
|
|
|
8
8
|
strategy:
|
|
9
9
|
fail-fast: false
|
|
10
10
|
matrix:
|
|
11
|
-
python-version: ["3.
|
|
12
|
-
uv-version: ["0.
|
|
11
|
+
python-version: ["3.11", "3.12", "3.13", "3.14", "3.15"]
|
|
12
|
+
uv-version: ["0.13.0"]
|
|
13
13
|
os: ["ubuntu-latest"]
|
|
14
14
|
runs-on: ${{ matrix.os }}
|
|
15
15
|
steps:
|
|
16
16
|
|
|
17
17
|
- name: Checkout repo
|
|
18
|
-
uses: actions/checkout@
|
|
18
|
+
uses: actions/checkout@v7
|
|
19
19
|
|
|
20
20
|
- name: Install uv
|
|
21
|
-
uses: astral-sh/setup-uv@
|
|
21
|
+
uses: astral-sh/setup-uv@v10.2.0
|
|
22
22
|
with:
|
|
23
23
|
version: ${{ matrix.uv-version }}
|
|
24
24
|
|
|
25
25
|
- name: Set up Python ${{ matrix.python-version }}
|
|
26
|
-
uses: actions/setup-python@
|
|
26
|
+
uses: actions/setup-python@v7
|
|
27
27
|
with:
|
|
28
28
|
python-version: ${{ matrix.python-version }}
|
|
29
29
|
|