panda-pytest-assertions 0.3.1__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.
Files changed (180) hide show
  1. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/.config/.editorconfig +1 -1
  2. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/.config/.flake8 +1 -1
  3. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/.config/mypy.ini +11 -9
  4. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/.config/ruff.toml +79 -28
  5. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/.github/workflows/pr-checker.yml +3 -3
  6. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/.github/workflows/release.yml +4 -4
  7. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/CHANGELOG.md +10 -0
  8. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/PKG-INFO +3 -3
  9. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/README-DEV.MD +1 -1
  10. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/pyproject.toml +1 -1
  11. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/_objects_asserters/ordered_elements_asserter.py +1 -1
  12. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/generators/_generators/union_generator.py +1 -1
  13. panda_pytest_assertions-0.4.0/uv.lock +1361 -0
  14. panda_pytest_assertions-0.4.0/version.txt +1 -0
  15. panda_pytest_assertions-0.3.1/uv.lock +0 -1203
  16. panda_pytest_assertions-0.3.1/version.txt +0 -1
  17. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/.config/.coveragerc +0 -0
  18. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/.config/pytest.ini +0 -0
  19. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/.coveragerc +0 -0
  20. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/.editorconfig +0 -0
  21. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/.flake8 +0 -0
  22. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/.gitattributes +0 -0
  23. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/.gitignore +0 -0
  24. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/LICENSE +0 -0
  25. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/NOTICE +0 -0
  26. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/README.md +0 -0
  27. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/docs/assert_context/index.md +0 -0
  28. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/docs/assert_object/10.asserting.md +0 -0
  29. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/docs/assert_object/20.expectations.md +0 -0
  30. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/docs/assert_object/30.using_yaml.md +0 -0
  31. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/docs/assert_object/40.asserters.md +0 -0
  32. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/docs/assert_object/generating_expectation/10.definition.md +0 -0
  33. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/docs/assert_object/generating_expectation/20.generators.md +0 -0
  34. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/docs/assert_object/generating_expectation/index.md +0 -0
  35. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/docs/assert_object/index.md +0 -0
  36. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/docs/index.md +0 -0
  37. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/mkdocs.yml +0 -0
  38. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/mypy.ini +0 -0
  39. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/pytest.ini +0 -0
  40. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/ruff.toml +0 -0
  41. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/__init__.py +0 -0
  42. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_context/__init__.py +0 -0
  43. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_context/_assert_context.py +0 -0
  44. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/__init__.py +0 -0
  45. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/_assert_object.py +0 -0
  46. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/_asserter_factories/__init__.py +0 -0
  47. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/_asserter_factories/asserter_factory.py +0 -0
  48. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/_asserter_factories/built_in_asserter_factory.py +0 -0
  49. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/_converters/__init__.py +0 -0
  50. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/_converters/expectation_from_yaml.py +0 -0
  51. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/_converters/expectation_to_yaml.py +0 -0
  52. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/_expectation_modificators/__init__.py +0 -0
  53. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/_expectation_modificators/identity.py +0 -0
  54. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/_expectation_modificators/is_type.py +0 -0
  55. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/_expectation_modificators/mapping_subset.py +0 -0
  56. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/_expectation_modificators/object_attibutes.py +0 -0
  57. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/_expectation_modificators/stringified.py +0 -0
  58. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/_expectation_modificators/unordered.py +0 -0
  59. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/_expectation_modificators/with_type.py +0 -0
  60. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/_objects_asserters/__init__.py +0 -0
  61. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/_objects_asserters/asserter.py +0 -0
  62. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/_objects_asserters/equality_asserter.py +0 -0
  63. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/_objects_asserters/identity_asserter.py +0 -0
  64. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/_objects_asserters/is_type_asserter.py +0 -0
  65. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/_objects_asserters/mapping_asserter.py +0 -0
  66. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/_objects_asserters/mapping_subset_asserter.py +0 -0
  67. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/_objects_asserters/object_attributes_asserter.py +0 -0
  68. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/_objects_asserters/stringified_asserter.py +0 -0
  69. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/_objects_asserters/unordered_elements_asserter.py +0 -0
  70. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/_objects_asserters/with_type_asserter.py +0 -0
  71. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/_protocols.py +0 -0
  72. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/generators/__init__.py +0 -0
  73. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/generators/_expectation_definitions/__init__.py +0 -0
  74. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/generators/_expectation_definitions/equality.py +0 -0
  75. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/generators/_expectation_definitions/is_type.py +0 -0
  76. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/generators/_expectation_definitions/mapping.py +0 -0
  77. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/generators/_expectation_definitions/mapping_subset.py +0 -0
  78. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/generators/_expectation_definitions/object_attributes.py +0 -0
  79. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/generators/_expectation_definitions/of_type.py +0 -0
  80. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/generators/_expectation_definitions/stringified.py +0 -0
  81. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/generators/_expectation_definitions/uniform_mapping.py +0 -0
  82. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/generators/_expectation_definitions/uniform_mapping_subset.py +0 -0
  83. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/generators/_expectation_definitions/uniform_ordered.py +0 -0
  84. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/generators/_expectation_definitions/uniform_unordered.py +0 -0
  85. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/generators/_expectation_definitions/union.py +0 -0
  86. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/generators/_expectation_definitions/with_type.py +0 -0
  87. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/generators/_generate_expectation.py +0 -0
  88. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/generators/_generator_factories/__init__.py +0 -0
  89. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/generators/_generator_factories/built_in_generator_factory.py +0 -0
  90. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/generators/_generator_factories/generator_factory.py +0 -0
  91. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/generators/_generators/__init__.py +0 -0
  92. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/generators/_generators/equality_generator.py +0 -0
  93. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/generators/_generators/equality_key_mapping_generator.py +0 -0
  94. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/generators/_generators/exceptions.py +0 -0
  95. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/generators/_generators/generator.py +0 -0
  96. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/generators/_generators/is_type_generator.py +0 -0
  97. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/generators/_generators/mapping_generator.py +0 -0
  98. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/generators/_generators/mapping_subset_generator.py +0 -0
  99. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/generators/_generators/object_attributes_generator.py +0 -0
  100. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/generators/_generators/of_type_generator.py +0 -0
  101. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/generators/_generators/ordered_generator.py +0 -0
  102. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/generators/_generators/stringified_generator.py +0 -0
  103. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/generators/_generators/uniform_mapping_generator.py +0 -0
  104. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/generators/_generators/uniform_mapping_subset_generator.py +0 -0
  105. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/generators/_generators/uniform_ordered_generator.py +0 -0
  106. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/generators/_generators/unordered_generator.py +0 -0
  107. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/assert_object/generators/_generators/with_type_generator.py +0 -0
  108. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/src/panda_pytest_assertions/py.typed +0 -0
  109. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/tests/__init__.py +0 -0
  110. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/__init__.py +0 -0
  111. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_context/__init__.py +0 -0
  112. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_context/test_assert_context.py +0 -0
  113. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/__init__.py +0 -0
  114. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_asserter_factories/__init__.py +0 -0
  115. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_asserter_factories/test_asserter_factory.py +0 -0
  116. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_asserter_factories/test_built_in_asserter_factory.py +0 -0
  117. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_converters/__init__.py +0 -0
  118. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_converters/conftest.py +0 -0
  119. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_converters/test_expectation_from_yaml.py +0 -0
  120. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_converters/test_expectation_to_yaml.py +0 -0
  121. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_expectation_modificators/__init__.py +0 -0
  122. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_expectation_modificators/test_is.py +0 -0
  123. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_expectation_modificators/test_is_type.py +0 -0
  124. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_expectation_modificators/test_mapping_subset.py +0 -0
  125. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_expectation_modificators/test_object_attibutes.py +0 -0
  126. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_expectation_modificators/test_stringified.py +0 -0
  127. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_expectation_modificators/test_unordered.py +0 -0
  128. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_expectation_modificators/test_with_type.py +0 -0
  129. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_generators/__init__.py +0 -0
  130. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_generators/_expectation_definitions/__init__.py +0 -0
  131. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_generators/_expectation_definitions/test_equality.py +0 -0
  132. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_generators/_expectation_definitions/test_is_type.py +0 -0
  133. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_generators/_expectation_definitions/test_mapping.py +0 -0
  134. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_generators/_expectation_definitions/test_mapping_subset.py +0 -0
  135. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_generators/_expectation_definitions/test_object_attributes.py +0 -0
  136. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_generators/_expectation_definitions/test_of_type.py +0 -0
  137. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_generators/_expectation_definitions/test_stringified.py +0 -0
  138. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_generators/_expectation_definitions/test_uniform_mapping.py +0 -0
  139. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_generators/_expectation_definitions/test_uniform_mapping_subset.py +0 -0
  140. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_generators/_expectation_definitions/test_uniform_ordered.py +0 -0
  141. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_generators/_expectation_definitions/test_uniform_unordered.py +0 -0
  142. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_generators/_expectation_definitions/test_union.py +0 -0
  143. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_generators/_expectation_definitions/test_with_type.py +0 -0
  144. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_generators/_generator_factories/__init__.py +0 -0
  145. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_generators/_generator_factories/test_built_in_generator_factory.py +0 -0
  146. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_generators/_generator_factories/test_generator_factory.py +0 -0
  147. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_generators/_generators/__init__.py +0 -0
  148. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_generators/_generators/conftest.py +0 -0
  149. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_generators/_generators/test_equality_generator.py +0 -0
  150. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_generators/_generators/test_equality_key_mapping_generator.py +0 -0
  151. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_generators/_generators/test_is_type_generator.py +0 -0
  152. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_generators/_generators/test_mapping_generator.py +0 -0
  153. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_generators/_generators/test_mapping_subset_generator.py +0 -0
  154. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_generators/_generators/test_object_attributes_generator.py +0 -0
  155. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_generators/_generators/test_of_type_generator.py +0 -0
  156. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_generators/_generators/test_ordered_generator.py +0 -0
  157. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_generators/_generators/test_stringified_generator.py +0 -0
  158. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_generators/_generators/test_uniform_mapping_generator.py +0 -0
  159. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_generators/_generators/test_uniform_mapping_subset_generator.py +0 -0
  160. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_generators/_generators/test_uniform_ordered_generator.py +0 -0
  161. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_generators/_generators/test_union_generator.py +0 -0
  162. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_generators/_generators/test_unordered_generator.py +0 -0
  163. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_generators/_generators/test_with_type_generator.py +0 -0
  164. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_generators/test_complex.py +0 -0
  165. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_generators/test_generate_expectation.py +0 -0
  166. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_objects_asserters/__init__.py +0 -0
  167. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_objects_asserters/conftest.py +0 -0
  168. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_objects_asserters/test_equality_asserter.py +0 -0
  169. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_objects_asserters/test_identity_asserter.py +0 -0
  170. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_objects_asserters/test_is_type_asserter.py +0 -0
  171. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_objects_asserters/test_mapping_asserter.py +0 -0
  172. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_objects_asserters/test_mapping_subset_asserter.py +0 -0
  173. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_objects_asserters/test_object_attributes_asserter.py +0 -0
  174. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_objects_asserters/test_ordered_elements_asserter.py +0 -0
  175. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_objects_asserters/test_stringified_asserter.py +0 -0
  176. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_objects_asserters/test_unordered_elements_asserter.py +0 -0
  177. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/_objects_asserters/test_with_type_asserter.py +0 -0
  178. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/test_assert_object.py +0 -0
  179. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/test_complex.py +0 -0
  180. {panda_pytest_assertions-0.3.1 → panda_pytest_assertions-0.4.0}/tests/panda_pytest_assertions/assert_object/test_error_messages.py +0 -0
@@ -12,6 +12,6 @@ indent_size = 4
12
12
  [*.{json,yaml,yml,xml}]
13
13
  indent_size = 2
14
14
 
15
- [*.{md}]
15
+ [*.md]
16
16
  indent_size = 4
17
17
  trim_trailing_whitespace = false
@@ -2,7 +2,7 @@
2
2
  count = True
3
3
  extend-exclude =
4
4
  .*/
5
- tests/
5
+ tests/*
6
6
 
7
7
  ### Rules choice
8
8
  # DOC: We use flake8 just to run pydoclint, ruff takes care about the rest
@@ -1,4 +1,4 @@
1
- ### Configuration created for mypy==2.3.0
1
+ ### Configuration created for mypy==2.4.0
2
2
 
3
3
  [mypy]
4
4
 
@@ -376,10 +376,11 @@ skip_cache_mtime_checks = False
376
376
 
377
377
 
378
378
  ### Parallel type-checking configuration
379
- # Use specific number of parallel worker processes for type-checking, see
380
- # parallel type-checking for more details.
381
- # This setting will be overridden by the MYPY_NUM_WORKERS environment
382
- # variable.
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.
383
384
  num_workers = 0
384
385
 
385
386
 
@@ -413,9 +414,11 @@ raise_exceptions = False
413
414
  # in combination with disallow_untyped_defs or disallow_incomplete_defs.
414
415
  warn_incomplete_stub = True
415
416
 
416
- # This enables fast Rust-based parser that parses directly to mypy AST.
417
- # It will become the default parser in one of the next mypy releases.
418
- native_parser = False
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
419
422
 
420
423
 
421
424
  ### Report generation
@@ -478,7 +481,6 @@ scripts_are_modules = False
478
481
 
479
482
  # Warns about per-module sections in the config file that do not
480
483
  # match any files processed when invoking mypy.
481
- # (This requires turning off incremental mode using incremental = False.)
482
484
  warn_unused_configs = True
483
485
 
484
486
  # Controls how much debug output will be generated. Higher numbers are more verbose.
@@ -1,4 +1,4 @@
1
- ### Configuration created for ruff==0.16.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.
@@ -145,6 +145,19 @@ namespace-packages = []
145
145
  # Actions annotations), "gitlab" (GitLab CI code quality report),
146
146
  # "pylint" (Pylint text format) or "azure" (Azure Pipeline logging commands).
147
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
148
161
  # A list of mappings from glob-style file pattern to Python version to use when checking the
149
162
  # corresponding file(s).
150
163
  # This may be useful for overriding the global Python version settings in target-version or
@@ -203,8 +216,8 @@ src = [
203
216
  # The minimum Python version to target, e.g., when considering automatic
204
217
  # code upgrades, like rewriting type annotations. Ruff will not propose
205
218
  # changes using features that are not available in the given version.
206
- # For example, to represent supporting Python >=3.11 or ==3.11
207
- # specify target-version = "py311".
219
+ # For example, to represent supporting Python >=3.12 or ==3.12
220
+ # specify target-version = "py312".
208
221
  # If you're already using a pyproject.toml file, we recommend
209
222
  # project.requires-python instead, as it's based on Python packaging
210
223
  # standards, and will be respected by other tools. For example, Ruff
@@ -226,7 +239,7 @@ src = [
226
239
  # 3.10+. As such, Ruff will often recommend newer features in a stub
227
240
  # file than it would for an equivalent runtime file with the same target
228
241
  # version.
229
- target-version = "py310"
242
+ target-version = "py311"
230
243
  # Enable application of unsafe fixes.
231
244
  # If excluded, a hint will be displayed when unsafe fixes are available.
232
245
  # If set to false, the hint will be hidden.
@@ -472,8 +485,9 @@ skip-magic-trailing-comma = false
472
485
  allowed-confusables = []
473
486
  # A regular expression used to identify "dummy" variables, or those which
474
487
  # should be ignored when enforcing (e.g.) unused-variable rules. The
475
- # default expression matches _, __, and _var, but not _var_.
476
- dummy-variable-rgx = "^(_+|(_+[a-zA-Z0-9_]*[a-zA-Z0-9]+?))$"
488
+ # default expression matches _, __, _var, and _次, but not _var_
489
+ # or _次_.
490
+ dummy-variable-rgx = "^(_+|(_+[\\p{XID_Continue}]*[\\p{XID_Continue}--_]+?))$"
477
491
  # A list of file patterns to exclude from linting in addition to the files excluded globally (see exclude, and extend-exclude).
478
492
  # Exclusions are based on globs, and can be either:
479
493
  # - Single-path patterns, like .mypy_cache (to exclude any directory
@@ -533,14 +547,16 @@ fixable = [
533
547
  # if __future__ annotations are enabled.
534
548
  future-annotations = false
535
549
  # A list of rule codes or prefixes to ignore. Prefixes can specify exact
536
- # rules (like F841), entire categories (like F), or anything in
550
+ # rules (like F841), entire groups (like F), or anything in
537
551
  # between.
538
552
  # When breaking ties between enabled and disabled rules (via select and
539
553
  # ignore, respectively), more specific prefixes override less
540
554
  # specific prefixes. ignore takes precedence over select if the same
541
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.
542
558
  ignore = [
543
- "B005", # Using .strip() with multi-character strings is misleading
559
+ "B005", # Using `.{strip}()` with multi-character strings is misleading
544
560
  "D100", # Missing docstring in public module
545
561
  "D104", # Missing docstring in public package
546
562
  "D105", # Missing docstring in magic method
@@ -548,12 +564,12 @@ ignore = [
548
564
  "D200", # One-line docstring should fit on one line
549
565
  "D203", # 1 blank line required before class docstring
550
566
  "D212", # Multi-line docstring summary should start at the first line
551
- "RUF012", # Mutable class attributes should be annotated with `typing.ClassVar`
567
+ "RUF012", # Mutable default value for class attribute
552
568
  "S101", # Use of `assert` detected
553
- "TC001", # Move application import into a type-checking block
554
- "TC002", # Move third-party import into a type-checking block
555
- "TC003", # Move standard library import into a type-checking block
556
- "PYI041", # Use `float` instead of `int | float`
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}`
557
573
  "CPY001", # Missing copyright notice at top of file
558
574
  ]
559
575
  # A list of objects that should be treated equivalently to a
@@ -574,12 +590,14 @@ logger-objects = []
574
590
  # use unstable rules and fixes.
575
591
  preview = false
576
592
  # A list of rule codes or prefixes to enable. Prefixes can specify exact
577
- # rules (like F841), entire categories (like F), or anything in
593
+ # rules (like F841), entire groups (like F), or anything in
578
594
  # between.
579
595
  # When breaking ties between enabled and disabled rules (via select and
580
596
  # ignore, respectively), more specific prefixes override less
581
597
  # specific prefixes. ignore takes precedence over select if the
582
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.
583
601
  select = [
584
602
  "ALL",
585
603
  ]
@@ -612,14 +630,16 @@ unfixable = []
612
630
  # A list of mappings from file pattern to rule codes or prefixes to
613
631
  # exclude, when considering any matching files. An initial '!' negates
614
632
  # the file pattern.
633
+ # For more information on the glob syntax, refer to the globset documentation.
615
634
  [lint.per-file-ignores]
616
635
  "!tests/*" = [
617
636
  "PT", # flake8-pytest-style
618
637
  ]
619
638
  "tests/*" = [
620
- "SLF001", # Private member accessed
639
+ "SLF001", # Private member accessed: `{access}`
621
640
  "FBT001", # Boolean-typed positional argument in function definition
622
- "PLR0913", # Too many arguments to function call
641
+ "PLR0913", # Too many arguments in function definition ({c_args} > {max_args})
642
+ "PLR0917", # Too many positional arguments ({c_pos} > {max_pos})
623
643
  "RUF018", # Avoid assignment expressions in `assert` statements
624
644
  ]
625
645
  "tests/**/test_*" = [
@@ -627,8 +647,8 @@ unfixable = []
627
647
  "D101", # Missing docstring in public class
628
648
  "D102", # Missing docstring in public method
629
649
  "D103", # Missing docstring in public function
630
- "B011", # [*] Do not `assert False` (`python -O` removes these calls), raise `AssertionError()`
631
- "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
632
652
  ]
633
653
 
634
654
  [lint.flake8-annotations]
@@ -777,13 +797,15 @@ banned-from = [
777
797
  "tomllib",
778
798
  ]
779
799
  # A mapping from module to conventional import alias. These aliases will
780
- # 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.
781
802
  extend-aliases = {}
782
803
 
783
804
  # The conventional aliases for imports. These aliases can be extended by
784
805
  # the extend-aliases option.
785
806
  [lint.flake8-import-conventions.aliases]
786
807
  "altair" = "alt"
808
+ "datetime" = "dt"
787
809
  "matplotlib" = "mpl"
788
810
  "matplotlib.pyplot" = "plt"
789
811
  "numpy" = "np"
@@ -921,6 +943,8 @@ ban-lazy = []
921
943
  # that extend into the parent module or beyond ("parents").
922
944
  ban-relative-imports = "parents"
923
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.
924
948
  # Note that this rule is only meant to flag accidental uses,
925
949
  # and can be circumvented via eval or importlib.
926
950
  banned-api = {}
@@ -929,6 +953,11 @@ banned-api = {}
929
953
  # block, or some other nested context). This also affects the rule import-outside-top-level
930
954
  # if banned-module-level-imports is enabled.
931
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 = {}
932
961
  # Specific modules that must be imported lazily in contexts where lazy import is legal, or
933
962
  # "all" to require every lazily-convertible import to use the lazy keyword. Ruff ignores
934
963
  # contexts where lazy import is invalid, such as functions, classes, try/except
@@ -979,14 +1008,34 @@ exempt-modules = [
979
1008
  quote-annotations = false
980
1009
  # Exempt classes that list any of the enumerated classes as a base class
981
1010
  # from needing to be moved into type-checking blocks.
982
- # Common examples include Pydantic's pydantic.BaseModel and SQLAlchemy's
983
- # sqlalchemy.orm.DeclarativeBase, but can also support user-defined
984
- # classes that inherit from those base classes. For example, if you define
985
- # a common DeclarativeBase subclass that's used throughout your project
986
- # (e.g., class Base(DeclarativeBase) ... in base.py), you can add it to
987
- # this list (runtime-evaluated-base-classes = ["base.Base"]) to exempt
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
988
1019
  # models from being moved into type-checking blocks.
989
- runtime-evaluated-base-classes = []
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 = {}
990
1039
  # Exempt classes and functions decorated with any of the enumerated
991
1040
  # decorators from being moved into type-checking blocks.
992
1041
  # Common examples include Pydantic's @pydantic.validate_call decorator
@@ -1001,7 +1050,9 @@ runtime-evaluated-base-classes = []
1001
1050
  # @app.get("/home")
1002
1051
  # def home() -> str: ...
1003
1052
  # Here app.get will correctly be identified as fastapi.FastAPI.get.
1004
- runtime-evaluated-decorators = []
1053
+ # Just like with runtime-evaluated-base-classes it's possible to mark
1054
+ # decorators as runtime "ambiguous".
1055
+ runtime-evaluated-decorators = {}
1005
1056
  # Enforce TC001, TC002, and TC003 rules even when valid runtime imports
1006
1057
  # are present for the same module.
1007
1058
  # See flake8-type-checking's strict option.
@@ -1454,5 +1505,5 @@ keep-runtime-typing = false
1454
1505
  # parentheses around the tuple (see RUF031).
1455
1506
  parenthesize-tuple-in-subscript = false
1456
1507
  # Whether to require __init__.py files to contain no code at all, including imports and
1457
- # docstrings (see RUF067).
1508
+ # __all__ assignments (see RUF067). Module and attribute docstrings are still allowed.
1458
1509
  strictly-empty-init-modules = false
@@ -8,8 +8,8 @@ jobs:
8
8
  strategy:
9
9
  fail-fast: false
10
10
  matrix:
11
- python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"]
12
- uv-version: ["0.11.31"]
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:
@@ -18,7 +18,7 @@ jobs:
18
18
  uses: actions/checkout@v7
19
19
 
20
20
  - name: Install uv
21
- uses: astral-sh/setup-uv@v9.0.0
21
+ uses: astral-sh/setup-uv@v10.2.0
22
22
  with:
23
23
  version: ${{ matrix.uv-version }}
24
24
 
@@ -10,15 +10,15 @@ jobs:
10
10
  strategy:
11
11
  fail-fast: false
12
12
  matrix:
13
- python-version: ["3.14"]
14
- uv-version: ["0.11.32"]
13
+ python-version: ["3.15"]
14
+ uv-version: ["0.13.0"]
15
15
  os: ["ubuntu-latest"]
16
16
  runs-on: ${{ matrix.os }}
17
17
  steps:
18
18
  - name: Checkout repo
19
19
  uses: actions/checkout@v7
20
20
  - name: Install uv
21
- uses: astral-sh/setup-uv@v9.0.0
21
+ uses: astral-sh/setup-uv@v10.2.0
22
22
  with:
23
23
  version: ${{ matrix.uv-version }}
24
24
  - name: Set up Python ${{ matrix.python-version }}
@@ -40,7 +40,7 @@ jobs:
40
40
  strategy:
41
41
  fail-fast: false
42
42
  matrix:
43
- python-version: ["3.14"]
43
+ python-version: ["3.15"]
44
44
  os: ["ubuntu-latest"]
45
45
  runs-on: ${{ matrix.os }}
46
46
  environment:
@@ -5,6 +5,16 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [0.4.0] - 2026-10-10
9
+
10
+ ### Added
11
+
12
+ * Testing on Python 3.15
13
+
14
+ ### Removed
15
+
16
+ * Support for Python 3.10
17
+
8
18
  ## [0.3.1] - 2026-07-25
9
19
 
10
20
  No user-facing changes, just internal maintenance.
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.4
1
+ Metadata-Version: 2.5
2
2
  Name: panda-pytest-assertions
3
- Version: 0.3.1
3
+ Version: 0.4.0
4
4
  Summary: Complex assertions that can be used when writing test with pytest
5
5
  Project-URL: homepage, https://github.com/KRunchPL/panda-pytest-assertions
6
6
  Project-URL: repository, https://github.com/KRunchPL/panda-pytest-assertions
@@ -9,7 +9,7 @@ Author-email: Cyber Panda <krunchfrompoland@gmail.com>
9
9
  License-Expression: Apache-2.0
10
10
  License-File: LICENSE
11
11
  License-File: NOTICE
12
- Requires-Python: <4.0,>=3.10
12
+ Requires-Python: <4.0,>=3.11
13
13
  Requires-Dist: pytest>4.6.0
14
14
  Requires-Dist: pyyaml<7,>=6.0.1
15
15
  Description-Content-Type: text/markdown
@@ -97,7 +97,7 @@ git config --unset core.symlinks
97
97
 
98
98
  Python part of the code shall follow those base guidelines:
99
99
 
100
- * is compatible with Python version >=3.10.0,
100
+ * is compatible with Python version >=3.11.0,
101
101
  * all code shall pass configured static code checks,
102
102
  * all defined test shall pass,
103
103
  * all code shall be covered by unit tests.
@@ -5,7 +5,7 @@ description = "Complex assertions that can be used when writing test with pytest
5
5
  authors = [{ name = "Cyber Panda", email = "krunchfrompoland@gmail.com" }]
6
6
  license = "Apache-2.0"
7
7
  readme = "README.md"
8
- requires-python = ">=3.10,<4.0"
8
+ requires-python = ">=3.11,<4.0"
9
9
  dependencies = [
10
10
  "pytest >4.6.0",
11
11
  "pyyaml >=6.0.1,<7",
@@ -53,6 +53,6 @@ class OrderedElementsAsserter(Asserter):
53
53
  for index, (element, asserter) in enumerate(zip(elements, self._elements_asserters, strict=True)):
54
54
  try:
55
55
  asserter.assert_object(element)
56
- except AssertionError as exc: # noqa: PERF203
56
+ except AssertionError as exc:
57
57
  msg = f'Element with index [{index}] has invalid value. {exc!s}'
58
58
  raise AssertionError(msg) from None
@@ -48,7 +48,7 @@ class UnionGenerator(Generator):
48
48
  for generator in self.generators:
49
49
  try:
50
50
  return generator.generate_expectation(object_)
51
- except ObjectNotMatchingDefinitionError as exc: # noqa: PERF203
51
+ except ObjectNotMatchingDefinitionError as exc:
52
52
  exceptions.append(exc)
53
53
  msg = f'Object "{object_}" did not match any of the expectation definition. Errors: {exceptions!r}'
54
54
  raise ObjectNotMatchingDefinitionError(msg)