panda-pytest-assertions 0.3.0__tar.gz → 0.3.1__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 (181) hide show
  1. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/.config/.editorconfig +1 -1
  2. panda_pytest_assertions-0.3.1/.config/.flake8 +25 -0
  3. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/.config/mypy.ini +41 -22
  4. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/.config/ruff.toml +123 -15
  5. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/.github/workflows/pr-checker.yml +4 -4
  6. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/.github/workflows/release.yml +7 -6
  7. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/CHANGELOG.md +4 -0
  8. panda_pytest_assertions-0.3.1/NOTICE +1 -0
  9. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/PKG-INFO +1 -1
  10. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/README-DEV.MD +3 -3
  11. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/docs/assert_object/20.expectations.md +1 -1
  12. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/pyproject.toml +20 -16
  13. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/src/panda_pytest_assertions/assert_context/_assert_context.py +3 -3
  14. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/src/panda_pytest_assertions/assert_object/_expectation_modificators/identity.py +2 -0
  15. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/src/panda_pytest_assertions/assert_object/_expectation_modificators/is_type.py +5 -0
  16. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/src/panda_pytest_assertions/assert_object/_expectation_modificators/mapping_subset.py +2 -0
  17. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/src/panda_pytest_assertions/assert_object/_expectation_modificators/object_attibutes.py +2 -0
  18. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/src/panda_pytest_assertions/assert_object/_expectation_modificators/stringified.py +2 -0
  19. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/src/panda_pytest_assertions/assert_object/_expectation_modificators/unordered.py +2 -0
  20. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/src/panda_pytest_assertions/assert_object/_expectation_modificators/with_type.py +8 -0
  21. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/src/panda_pytest_assertions/assert_object/_objects_asserters/asserter.py +4 -0
  22. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/src/panda_pytest_assertions/assert_object/_objects_asserters/equality_asserter.py +3 -0
  23. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/src/panda_pytest_assertions/assert_object/_objects_asserters/identity_asserter.py +3 -0
  24. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/src/panda_pytest_assertions/assert_object/_objects_asserters/is_type_asserter.py +3 -0
  25. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/src/panda_pytest_assertions/assert_object/_objects_asserters/mapping_asserter.py +3 -0
  26. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/src/panda_pytest_assertions/assert_object/_objects_asserters/mapping_subset_asserter.py +3 -0
  27. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/src/panda_pytest_assertions/assert_object/_objects_asserters/object_attributes_asserter.py +3 -0
  28. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/src/panda_pytest_assertions/assert_object/_objects_asserters/ordered_elements_asserter.py +3 -0
  29. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/src/panda_pytest_assertions/assert_object/_objects_asserters/stringified_asserter.py +3 -0
  30. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/src/panda_pytest_assertions/assert_object/_objects_asserters/unordered_elements_asserter.py +3 -0
  31. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/src/panda_pytest_assertions/assert_object/_objects_asserters/with_type_asserter.py +3 -0
  32. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/src/panda_pytest_assertions/assert_object/_protocols.py +11 -0
  33. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/src/panda_pytest_assertions/assert_object/generators/_expectation_definitions/is_type.py +2 -0
  34. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/src/panda_pytest_assertions/assert_object/generators/_expectation_definitions/mapping.py +3 -0
  35. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/src/panda_pytest_assertions/assert_object/generators/_expectation_definitions/mapping_subset.py +3 -0
  36. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/src/panda_pytest_assertions/assert_object/generators/_expectation_definitions/object_attributes.py +2 -0
  37. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/src/panda_pytest_assertions/assert_object/generators/_expectation_definitions/of_type.py +3 -0
  38. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/src/panda_pytest_assertions/assert_object/generators/_expectation_definitions/uniform_mapping.py +3 -0
  39. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/src/panda_pytest_assertions/assert_object/generators/_expectation_definitions/uniform_mapping_subset.py +3 -0
  40. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/src/panda_pytest_assertions/assert_object/generators/_expectation_definitions/uniform_ordered.py +3 -0
  41. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/src/panda_pytest_assertions/assert_object/generators/_expectation_definitions/uniform_unordered.py +2 -0
  42. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/src/panda_pytest_assertions/assert_object/generators/_expectation_definitions/union.py +2 -0
  43. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/src/panda_pytest_assertions/assert_object/generators/_expectation_definitions/with_type.py +3 -0
  44. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/src/panda_pytest_assertions/assert_object/generators/_generators/equality_generator.py +3 -0
  45. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/src/panda_pytest_assertions/assert_object/generators/_generators/equality_key_mapping_generator.py +3 -0
  46. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/src/panda_pytest_assertions/assert_object/generators/_generators/generator.py +5 -0
  47. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/src/panda_pytest_assertions/assert_object/generators/_generators/is_type_generator.py +3 -0
  48. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/src/panda_pytest_assertions/assert_object/generators/_generators/mapping_generator.py +3 -0
  49. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/src/panda_pytest_assertions/assert_object/generators/_generators/mapping_subset_generator.py +3 -0
  50. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/src/panda_pytest_assertions/assert_object/generators/_generators/object_attributes_generator.py +3 -0
  51. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/src/panda_pytest_assertions/assert_object/generators/_generators/of_type_generator.py +3 -0
  52. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/src/panda_pytest_assertions/assert_object/generators/_generators/ordered_generator.py +3 -0
  53. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/src/panda_pytest_assertions/assert_object/generators/_generators/stringified_generator.py +3 -0
  54. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/src/panda_pytest_assertions/assert_object/generators/_generators/uniform_mapping_generator.py +3 -0
  55. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/src/panda_pytest_assertions/assert_object/generators/_generators/uniform_mapping_subset_generator.py +3 -0
  56. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/src/panda_pytest_assertions/assert_object/generators/_generators/uniform_ordered_generator.py +3 -0
  57. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/src/panda_pytest_assertions/assert_object/generators/_generators/union_generator.py +3 -0
  58. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/src/panda_pytest_assertions/assert_object/generators/_generators/unordered_generator.py +3 -0
  59. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/src/panda_pytest_assertions/assert_object/generators/_generators/with_type_generator.py +3 -0
  60. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/tests/panda_pytest_assertions/assert_object/test_error_messages.py +8 -4
  61. panda_pytest_assertions-0.3.1/uv.lock +1203 -0
  62. panda_pytest_assertions-0.3.1/version.txt +1 -0
  63. panda_pytest_assertions-0.3.0/.config/.flake8 +0 -13
  64. panda_pytest_assertions-0.3.0/NOTICE +0 -1
  65. panda_pytest_assertions-0.3.0/uv.lock +0 -1075
  66. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/.config/.coveragerc +0 -0
  67. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/.config/pytest.ini +0 -0
  68. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/.coveragerc +0 -0
  69. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/.editorconfig +0 -0
  70. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/.flake8 +0 -0
  71. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/.gitattributes +0 -0
  72. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/.gitignore +0 -0
  73. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/LICENSE +0 -0
  74. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/README.md +0 -0
  75. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/docs/assert_context/index.md +0 -0
  76. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/docs/assert_object/10.asserting.md +0 -0
  77. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/docs/assert_object/30.using_yaml.md +0 -0
  78. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/docs/assert_object/40.asserters.md +0 -0
  79. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/docs/assert_object/generating_expectation/10.definition.md +0 -0
  80. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/docs/assert_object/generating_expectation/20.generators.md +0 -0
  81. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/docs/assert_object/generating_expectation/index.md +0 -0
  82. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/docs/assert_object/index.md +0 -0
  83. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/docs/index.md +0 -0
  84. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/mkdocs.yml +0 -0
  85. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/mypy.ini +0 -0
  86. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/pytest.ini +0 -0
  87. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/ruff.toml +0 -0
  88. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/src/panda_pytest_assertions/__init__.py +0 -0
  89. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/src/panda_pytest_assertions/assert_context/__init__.py +0 -0
  90. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/src/panda_pytest_assertions/assert_object/__init__.py +0 -0
  91. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/src/panda_pytest_assertions/assert_object/_assert_object.py +0 -0
  92. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/src/panda_pytest_assertions/assert_object/_asserter_factories/__init__.py +0 -0
  93. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/src/panda_pytest_assertions/assert_object/_asserter_factories/asserter_factory.py +0 -0
  94. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/src/panda_pytest_assertions/assert_object/_asserter_factories/built_in_asserter_factory.py +0 -0
  95. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/src/panda_pytest_assertions/assert_object/_converters/__init__.py +0 -0
  96. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/src/panda_pytest_assertions/assert_object/_converters/expectation_from_yaml.py +0 -0
  97. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/src/panda_pytest_assertions/assert_object/_converters/expectation_to_yaml.py +0 -0
  98. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/src/panda_pytest_assertions/assert_object/_expectation_modificators/__init__.py +0 -0
  99. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/src/panda_pytest_assertions/assert_object/_objects_asserters/__init__.py +0 -0
  100. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/src/panda_pytest_assertions/assert_object/generators/__init__.py +0 -0
  101. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/src/panda_pytest_assertions/assert_object/generators/_expectation_definitions/__init__.py +0 -0
  102. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/src/panda_pytest_assertions/assert_object/generators/_expectation_definitions/equality.py +0 -0
  103. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/src/panda_pytest_assertions/assert_object/generators/_expectation_definitions/stringified.py +0 -0
  104. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/src/panda_pytest_assertions/assert_object/generators/_generate_expectation.py +0 -0
  105. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/src/panda_pytest_assertions/assert_object/generators/_generator_factories/__init__.py +0 -0
  106. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/src/panda_pytest_assertions/assert_object/generators/_generator_factories/built_in_generator_factory.py +0 -0
  107. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/src/panda_pytest_assertions/assert_object/generators/_generator_factories/generator_factory.py +0 -0
  108. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/src/panda_pytest_assertions/assert_object/generators/_generators/__init__.py +0 -0
  109. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/src/panda_pytest_assertions/assert_object/generators/_generators/exceptions.py +0 -0
  110. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/src/panda_pytest_assertions/py.typed +0 -0
  111. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/tests/__init__.py +0 -0
  112. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/tests/panda_pytest_assertions/__init__.py +0 -0
  113. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/tests/panda_pytest_assertions/assert_context/__init__.py +0 -0
  114. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/tests/panda_pytest_assertions/assert_context/test_assert_context.py +0 -0
  115. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/tests/panda_pytest_assertions/assert_object/__init__.py +0 -0
  116. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/tests/panda_pytest_assertions/assert_object/_asserter_factories/__init__.py +0 -0
  117. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/tests/panda_pytest_assertions/assert_object/_asserter_factories/test_asserter_factory.py +0 -0
  118. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/tests/panda_pytest_assertions/assert_object/_asserter_factories/test_built_in_asserter_factory.py +0 -0
  119. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/tests/panda_pytest_assertions/assert_object/_converters/__init__.py +0 -0
  120. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/tests/panda_pytest_assertions/assert_object/_converters/conftest.py +0 -0
  121. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/tests/panda_pytest_assertions/assert_object/_converters/test_expectation_from_yaml.py +0 -0
  122. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/tests/panda_pytest_assertions/assert_object/_converters/test_expectation_to_yaml.py +0 -0
  123. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/tests/panda_pytest_assertions/assert_object/_expectation_modificators/__init__.py +0 -0
  124. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/tests/panda_pytest_assertions/assert_object/_expectation_modificators/test_is.py +0 -0
  125. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/tests/panda_pytest_assertions/assert_object/_expectation_modificators/test_is_type.py +0 -0
  126. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/tests/panda_pytest_assertions/assert_object/_expectation_modificators/test_mapping_subset.py +0 -0
  127. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/tests/panda_pytest_assertions/assert_object/_expectation_modificators/test_object_attibutes.py +0 -0
  128. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/tests/panda_pytest_assertions/assert_object/_expectation_modificators/test_stringified.py +0 -0
  129. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/tests/panda_pytest_assertions/assert_object/_expectation_modificators/test_unordered.py +0 -0
  130. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/tests/panda_pytest_assertions/assert_object/_expectation_modificators/test_with_type.py +0 -0
  131. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/tests/panda_pytest_assertions/assert_object/_generators/__init__.py +0 -0
  132. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/tests/panda_pytest_assertions/assert_object/_generators/_expectation_definitions/__init__.py +0 -0
  133. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/tests/panda_pytest_assertions/assert_object/_generators/_expectation_definitions/test_equality.py +0 -0
  134. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/tests/panda_pytest_assertions/assert_object/_generators/_expectation_definitions/test_is_type.py +0 -0
  135. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/tests/panda_pytest_assertions/assert_object/_generators/_expectation_definitions/test_mapping.py +0 -0
  136. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/tests/panda_pytest_assertions/assert_object/_generators/_expectation_definitions/test_mapping_subset.py +0 -0
  137. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/tests/panda_pytest_assertions/assert_object/_generators/_expectation_definitions/test_object_attributes.py +0 -0
  138. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/tests/panda_pytest_assertions/assert_object/_generators/_expectation_definitions/test_of_type.py +0 -0
  139. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/tests/panda_pytest_assertions/assert_object/_generators/_expectation_definitions/test_stringified.py +0 -0
  140. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/tests/panda_pytest_assertions/assert_object/_generators/_expectation_definitions/test_uniform_mapping.py +0 -0
  141. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/tests/panda_pytest_assertions/assert_object/_generators/_expectation_definitions/test_uniform_mapping_subset.py +0 -0
  142. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/tests/panda_pytest_assertions/assert_object/_generators/_expectation_definitions/test_uniform_ordered.py +0 -0
  143. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/tests/panda_pytest_assertions/assert_object/_generators/_expectation_definitions/test_uniform_unordered.py +0 -0
  144. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/tests/panda_pytest_assertions/assert_object/_generators/_expectation_definitions/test_union.py +0 -0
  145. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/tests/panda_pytest_assertions/assert_object/_generators/_expectation_definitions/test_with_type.py +0 -0
  146. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/tests/panda_pytest_assertions/assert_object/_generators/_generator_factories/__init__.py +0 -0
  147. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/tests/panda_pytest_assertions/assert_object/_generators/_generator_factories/test_built_in_generator_factory.py +0 -0
  148. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/tests/panda_pytest_assertions/assert_object/_generators/_generator_factories/test_generator_factory.py +0 -0
  149. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/tests/panda_pytest_assertions/assert_object/_generators/_generators/__init__.py +0 -0
  150. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/tests/panda_pytest_assertions/assert_object/_generators/_generators/conftest.py +0 -0
  151. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/tests/panda_pytest_assertions/assert_object/_generators/_generators/test_equality_generator.py +0 -0
  152. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/tests/panda_pytest_assertions/assert_object/_generators/_generators/test_equality_key_mapping_generator.py +0 -0
  153. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/tests/panda_pytest_assertions/assert_object/_generators/_generators/test_is_type_generator.py +0 -0
  154. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/tests/panda_pytest_assertions/assert_object/_generators/_generators/test_mapping_generator.py +0 -0
  155. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/tests/panda_pytest_assertions/assert_object/_generators/_generators/test_mapping_subset_generator.py +0 -0
  156. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/tests/panda_pytest_assertions/assert_object/_generators/_generators/test_object_attributes_generator.py +0 -0
  157. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/tests/panda_pytest_assertions/assert_object/_generators/_generators/test_of_type_generator.py +0 -0
  158. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/tests/panda_pytest_assertions/assert_object/_generators/_generators/test_ordered_generator.py +0 -0
  159. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/tests/panda_pytest_assertions/assert_object/_generators/_generators/test_stringified_generator.py +0 -0
  160. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/tests/panda_pytest_assertions/assert_object/_generators/_generators/test_uniform_mapping_generator.py +0 -0
  161. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/tests/panda_pytest_assertions/assert_object/_generators/_generators/test_uniform_mapping_subset_generator.py +0 -0
  162. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/tests/panda_pytest_assertions/assert_object/_generators/_generators/test_uniform_ordered_generator.py +0 -0
  163. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/tests/panda_pytest_assertions/assert_object/_generators/_generators/test_union_generator.py +0 -0
  164. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/tests/panda_pytest_assertions/assert_object/_generators/_generators/test_unordered_generator.py +0 -0
  165. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/tests/panda_pytest_assertions/assert_object/_generators/_generators/test_with_type_generator.py +0 -0
  166. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/tests/panda_pytest_assertions/assert_object/_generators/test_complex.py +0 -0
  167. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/tests/panda_pytest_assertions/assert_object/_generators/test_generate_expectation.py +0 -0
  168. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/tests/panda_pytest_assertions/assert_object/_objects_asserters/__init__.py +0 -0
  169. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/tests/panda_pytest_assertions/assert_object/_objects_asserters/conftest.py +0 -0
  170. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/tests/panda_pytest_assertions/assert_object/_objects_asserters/test_equality_asserter.py +0 -0
  171. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/tests/panda_pytest_assertions/assert_object/_objects_asserters/test_identity_asserter.py +0 -0
  172. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/tests/panda_pytest_assertions/assert_object/_objects_asserters/test_is_type_asserter.py +0 -0
  173. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/tests/panda_pytest_assertions/assert_object/_objects_asserters/test_mapping_asserter.py +0 -0
  174. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/tests/panda_pytest_assertions/assert_object/_objects_asserters/test_mapping_subset_asserter.py +0 -0
  175. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/tests/panda_pytest_assertions/assert_object/_objects_asserters/test_object_attributes_asserter.py +0 -0
  176. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/tests/panda_pytest_assertions/assert_object/_objects_asserters/test_ordered_elements_asserter.py +0 -0
  177. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/tests/panda_pytest_assertions/assert_object/_objects_asserters/test_stringified_asserter.py +0 -0
  178. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/tests/panda_pytest_assertions/assert_object/_objects_asserters/test_unordered_elements_asserter.py +0 -0
  179. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/tests/panda_pytest_assertions/assert_object/_objects_asserters/test_with_type_asserter.py +0 -0
  180. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/tests/panda_pytest_assertions/assert_object/test_assert_object.py +0 -0
  181. {panda_pytest_assertions-0.3.0 → panda_pytest_assertions-0.3.1}/tests/panda_pytest_assertions/assert_object/test_complex.py +0 -0
@@ -9,7 +9,7 @@ end_of_line = lf
9
9
  indent_style = space
10
10
  indent_size = 4
11
11
 
12
- [*.{json,yaml,yml}]
12
+ [*.{json,yaml,yml,xml}]
13
13
  indent_size = 2
14
14
 
15
15
  [*.{md}]
@@ -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.18.2
1
+ ### Configuration created for mypy==2.3.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.9. The default is the version of the Python
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 experimental flag enables the redefinition of
259
- # unannotated variables with an arbitrary type. You will also need to enable
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, along with local_partial_types.
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
- allow_redefinition = False
279
+ allow_redefinition_old = False
273
280
 
274
- # Disallows inferring variable type for None from two assignments in different scopes.
275
- # This is always implicitly enabled when using the mypy daemon.
276
- # This will be enabled by default in a future mypy release.
277
- local_partial_types = False
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
- # Disable treating bytearray and memoryview as subtypes of bytes.
305
- # This will be enabled by default in mypy 2.0.
306
- strict_bytes = False
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 = True
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 = False
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,14 @@ skip_version_check = False
373
375
  skip_cache_mtime_checks = False
374
376
 
375
377
 
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.
383
+ num_workers = 0
384
+
385
+
376
386
  ### Advanced options
377
387
  # A comma-separated list of mypy plugins. See Extending mypy using plugins.
378
388
  #plugins =
@@ -403,6 +413,10 @@ raise_exceptions = False
403
413
  # in combination with disallow_untyped_defs or disallow_incomplete_defs.
404
414
  warn_incomplete_stub = True
405
415
 
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
419
+
406
420
 
407
421
  ### Report generation
408
422
  # Causes mypy to generate a text file report documenting how many
@@ -453,6 +467,11 @@ warn_incomplete_stub = True
453
467
  # with continuous integration (CI) tools.
454
468
  #junit_xml =
455
469
 
470
+ # If junit_xml is set, specifies format.
471
+ # global (default): single test with all errors;
472
+ # per_file: one test entry per file with failures.
473
+ junit_format = global
474
+
456
475
  # Makes script x become module x instead of __main__. This is
457
476
  # useful when checking multiple scripts in a single run.
458
477
  scripts_are_modules = False
@@ -1,4 +1,4 @@
1
- ### Configuration created for ruff==0.14.0
1
+ ### Configuration created for ruff==0.16.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 pyproject.toml file, Ruff will first resolve
52
- # this base configuration file, then merge in any properties defined
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. pyproject.toml is
92
- # included here not for configuration but because we lint whether e.g. the
93
- # [project] matches the schema.
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 and less than or equal to 320.
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.
@@ -244,6 +262,10 @@ preview = false
244
262
  # For example, if this is set to 2, then only strings with at least two dots (e.g., "path.to.module")
245
263
  # would be considered valid imports.
246
264
  string-imports-min-dots = 2
265
+ # Whether to include imports that are only used for type checking (i.e., imports within if TYPE_CHECKING: blocks).
266
+ # When enabled (default), type-checking-only imports are included in the import graph.
267
+ # When disabled, they are excluded.
268
+ type-checking-imports = true
247
269
 
248
270
  [format]
249
271
  # Whether to format code snippets in docstrings.
@@ -396,8 +418,17 @@ indent-style = "space"
396
418
  # - cr-lf: Line endings will be converted to \r\n. The default line ending on Windows.
397
419
  # - native: Line endings will be converted to \n on Unix and \r\n on Windows.
398
420
  line-ending = "lf"
421
+ # Controls the quote style for nested strings inside interpolated string expressions.
422
+ # - alternating (default): Use alternating quotes.
423
+ # - preferred: Use the configured quote-style.
424
+ # ---
425
+ # f"{data['key']}" # alternating (default)
426
+ # f"{data["key"]}" # preferred
427
+ # ---
428
+ # Note: This setting has no effect when targeting Python versions below 3.12.
429
+ nested-string-quote-style = "alternating"
399
430
  # Whether to enable the unstable preview style formatting.
400
- preview = false
431
+ preview = true
401
432
  # Configures the preferred quote character for strings. The recommended options are
402
433
  # - double (default): Use double quotes "
403
434
  # - single: Use single quotes '
@@ -469,6 +500,19 @@ extend-per-file-ignores = {}
469
500
  extend-safe-fixes = []
470
501
  # A list of rule codes or prefixes to enable, in addition to those
471
502
  # specified by select.
503
+ # Unlike select, which replaces the default rule set
504
+ # when specified, extend-select adds to whatever rules are already
505
+ # active. This makes extend-select the preferred option when you want
506
+ # to enable additional rules on top of the defaults without having to
507
+ # enumerate them.
508
+ # For example, to enable the defaults plus flake8-bugbear:
509
+ # ---
510
+ # [tool.ruff.lint]
511
+ # # Adds flake8-bugbear on top of the default rules.
512
+ # extend-select = ["B"]
513
+ # ---
514
+ # Using select = ["B"] instead would replace the defaults, enabling
515
+ # only flake8-bugbear.
472
516
  extend-select = []
473
517
  # A list of rule codes or prefixes for which safe fixes should be considered
474
518
  # unsafe.
@@ -477,9 +521,7 @@ extend-unsafe-fixes = []
477
521
  # preserved when (e.g.) validating # noqa directives. Useful for
478
522
  # retaining # noqa directives that cover plugins not yet implemented
479
523
  # by Ruff.
480
- external = [
481
- "DAR",
482
- ]
524
+ external = []
483
525
  # A list of rule codes or prefixes to consider fixable. By default,
484
526
  # all rules are considered fixable.
485
527
  fixable = [
@@ -512,6 +554,7 @@ ignore = [
512
554
  "TC002", # Move third-party import into a type-checking block
513
555
  "TC003", # Move standard library import into a type-checking block
514
556
  "PYI041", # Use `float` instead of `int | float`
557
+ "CPY001", # Missing copyright notice at top of file
515
558
  ]
516
559
  # A list of objects that should be treated equivalently to a
517
560
  # logging.Logger object.
@@ -870,6 +913,10 @@ ignore-names = [
870
913
  ]
871
914
 
872
915
  [lint.flake8-tidy-imports]
916
+ # Specific modules that may not be imported lazily, or "all" to forbid lazy imports except
917
+ # for any modules excluded from the selector. This rule is only enforced when targeting
918
+ # Python 3.15 or newer.
919
+ ban-lazy = []
873
920
  # Whether to ban all relative imports ("all"), or only those imports
874
921
  # that extend into the parent module or beyond ("parents").
875
922
  ban-relative-imports = "parents"
@@ -882,6 +929,12 @@ banned-api = {}
882
929
  # block, or some other nested context). This also affects the rule import-outside-top-level
883
930
  # if banned-module-level-imports is enabled.
884
931
  banned-module-level-imports = []
932
+ # Specific modules that must be imported lazily in contexts where lazy import is legal, or
933
+ # "all" to require every lazily-convertible import to use the lazy keyword. Ruff ignores
934
+ # contexts where lazy import is invalid, such as functions, classes, try/except
935
+ # blocks, __future__ imports, and from ... import * statements. This rule is only
936
+ # enforced when targeting Python 3.15 or newer.
937
+ require-lazy = []
885
938
 
886
939
  [lint.flake8-type-checking]
887
940
  # Exempt certain modules from needing to be moved into type-checking
@@ -921,7 +974,8 @@ exempt-modules = [
921
974
  # ---
922
975
  # Note that this setting has no effect when from __future__ import annotations
923
976
  # is present, as __future__ annotations are always treated equivalently
924
- # to quoted annotations.
977
+ # to quoted annotations. Similarly, this setting has no effect on Python
978
+ # versions after 3.14 because these annotations are also deferred.
925
979
  quote-annotations = false
926
980
  # Exempt classes that list any of the enumerated classes as a base class
927
981
  # from needing to be moved into type-checking blocks.
@@ -940,7 +994,7 @@ runtime-evaluated-base-classes = []
940
994
  # This also supports framework decorators like FastAPI's fastapi.FastAPI.get
941
995
  # which will work across assignments in the same module.
942
996
  # For example:
943
- # import fastapi
997
+ # from fastapi import FastAPI
944
998
  #
945
999
  # app = FastAPI("app")
946
1000
  #
@@ -1025,6 +1079,12 @@ forced-separate = []
1025
1079
  # import os
1026
1080
  # import sys
1027
1081
  from-first = false
1082
+ # A mapping from import section names to their heading comments.
1083
+ # When set, a comment with the specified text will be added above imports
1084
+ # in the corresponding section. If a heading comment already exists, it
1085
+ # will be replaced.
1086
+ # Compatible with isort's import_heading_{section_name} settings.
1087
+ import-heading = {}
1028
1088
  # A list of modules to consider first-party, regardless of whether they
1029
1089
  # can be identified as such via introspection of the local filesystem.
1030
1090
  # Supports glob patterns. For more information on the glob syntax, refer
@@ -1243,6 +1303,49 @@ ignore-one-line-docstrings = false
1243
1303
  # [tool.ruff.lint.pydocstyle]
1244
1304
  # convention = "google"
1245
1305
  # ---
1306
+ # The PEP 257 convention includes all D errors apart from:
1307
+ # D203,
1308
+ # D212,
1309
+ # D213,
1310
+ # D214,
1311
+ # D215,
1312
+ # D404,
1313
+ # D405,
1314
+ # D406,
1315
+ # D407,
1316
+ # D408,
1317
+ # D409,
1318
+ # D410,
1319
+ # D411,
1320
+ # D413,
1321
+ # D415,
1322
+ # D416,
1323
+ # D417, and
1324
+ # D420.
1325
+ # The NumPy convention includes all D errors apart from:
1326
+ # D107,
1327
+ # D203,
1328
+ # D212,
1329
+ # D213,
1330
+ # D402,
1331
+ # D413,
1332
+ # D415,
1333
+ # D416, and
1334
+ # D417.
1335
+ # The Google convention includes all D errors apart from:
1336
+ # D203,
1337
+ # D204,
1338
+ # D213,
1339
+ # D215,
1340
+ # D400,
1341
+ # D401,
1342
+ # D404,
1343
+ # D406,
1344
+ # D407,
1345
+ # D408,
1346
+ # D409, and
1347
+ # D413.
1348
+ # For more information see the FAQ entry.
1246
1349
  # To enable an additional rule that's excluded from the convention,
1247
1350
  # select the desired rule via its fully qualified rule code (e.g.,
1248
1351
  # D400 instead of D4 or D40):
@@ -1315,6 +1418,8 @@ max-public-methods = 20
1315
1418
  max-returns = 6
1316
1419
  # Maximum number of statements allowed for a function or method body (see PLR0915).
1317
1420
  max-statements = 50
1421
+ # Maximum number of statements allowed for a try clause body (see W0717).
1422
+ max-statements-in-try = 5
1318
1423
 
1319
1424
  [lint.pyupgrade]
1320
1425
  # Whether to avoid PEP 585 (List[int] -> list[int]) and PEP 604
@@ -1348,3 +1453,6 @@ keep-runtime-typing = false
1348
1453
  # Whether to prefer accessing items keyed by tuples with
1349
1454
  # parentheses around the tuple (see RUF031).
1350
1455
  parenthesize-tuple-in-subscript = false
1456
+ # Whether to require __init__.py files to contain no code at all, including imports and
1457
+ # docstrings (see RUF067).
1458
+ strictly-empty-init-modules = false
@@ -9,21 +9,21 @@ jobs:
9
9
  fail-fast: false
10
10
  matrix:
11
11
  python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"]
12
- uv-version: ["0.9.2"]
12
+ uv-version: ["0.11.31"]
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@v5
18
+ uses: actions/checkout@v7
19
19
 
20
20
  - name: Install uv
21
- uses: astral-sh/setup-uv@v7
21
+ uses: astral-sh/setup-uv@v9.0.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@v6
26
+ uses: actions/setup-python@v7
27
27
  with:
28
28
  python-version: ${{ matrix.python-version }}
29
29
 
@@ -11,31 +11,32 @@ jobs:
11
11
  fail-fast: false
12
12
  matrix:
13
13
  python-version: ["3.14"]
14
- uv-version: ["0.9.2"]
14
+ uv-version: ["0.11.32"]
15
15
  os: ["ubuntu-latest"]
16
16
  runs-on: ${{ matrix.os }}
17
17
  steps:
18
18
  - name: Checkout repo
19
- uses: actions/checkout@v5
19
+ uses: actions/checkout@v7
20
20
  - name: Install uv
21
- uses: astral-sh/setup-uv@v7
21
+ uses: astral-sh/setup-uv@v9.0.0
22
22
  with:
23
23
  version: ${{ matrix.uv-version }}
24
24
  - name: Set up Python ${{ matrix.python-version }}
25
- uses: actions/setup-python@v6
25
+ uses: actions/setup-python@v7
26
26
  with:
27
27
  python-version: ${{ matrix.python-version }}
28
28
  - name: Build
29
29
  run: |
30
30
  uv build
31
31
  - name: Upload built packages
32
- uses: actions/upload-artifact@v4
32
+ uses: actions/upload-artifact@v7
33
33
  with:
34
34
  name: built-packages-${{ matrix.os }}-${{ matrix.python-version }}
35
35
  path: dist
36
36
 
37
37
  pypi-publish:
38
38
  name: Upload release to PyPI
39
+ needs: build
39
40
  strategy:
40
41
  fail-fast: false
41
42
  matrix:
@@ -48,7 +49,7 @@ jobs:
48
49
  permissions:
49
50
  id-token: write # IMPORTANT: this permission is mandatory for trusted publishing
50
51
  steps:
51
- - uses: actions/download-artifact@v5
52
+ - uses: actions/download-artifact@v8
52
53
  with:
53
54
  name: built-packages-${{ matrix.os }}-${{ matrix.python-version }}
54
55
  path: dist
@@ -5,6 +5,10 @@ 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.3.1] - 2026-07-25
9
+
10
+ No user-facing changes, just internal maintenance.
11
+
8
12
  ## [0.3.0] - 2025-10-15
9
13
 
10
14
  ### Changed
@@ -0,0 +1 @@
1
+ Copyright 2024-2026, Jacek Chałupka <krunchfrompoland@gmail.com>
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: panda-pytest-assertions
3
- Version: 0.3.0
3
+ Version: 0.3.1
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
@@ -81,7 +81,7 @@ If you don't have permission to create symlinks, this section describes how to f
81
81
  1. Verify that you have permissions to create symlinks.
82
82
  1. See [Git settings](#git-settings) below.
83
83
 
84
- Reference: [Allowing non-administrators to create symbolic links](https://github.com/git-for-windows/git/wiki/Symbolic-Links#allowing-non-administrators-to-create-symbolic-links)
84
+ Reference: [Allowing non-administrators to create symbolic links](https://gitforwindows.org/symbolic-links.html#allowing-non-administrators-to-create-symbolic-links)
85
85
 
86
86
  #### Git settings
87
87
 
@@ -128,13 +128,13 @@ Static checkers are being run on the repository by the PR checker, and therefore
128
128
 
129
129
  #### Linter
130
130
 
131
- `ruff` is the linter of choice for this repository. Additionally, `darglint` is used to check docstrings content (arguments, returns, etc.). As `darglint` has limited configuration capabilities when it comes to choosing linted files, `flake8` is used as `darglint`'s wrapper.
131
+ `ruff` is the linter of choice for this repository. Additionally, `pydoclint` is used to check docstrings content (arguments, returns, etc.). As `pydoclint` has limited configuration capabilities when it comes to choosing linted files, `flake8` is used as `pydoclint`'s wrapper.
132
132
 
133
133
  To lint all python code use the `ruff .` and `flake8` commands in the main folder of the repo.
134
134
 
135
135
  Full linting reports from both tools will be written to standard output.
136
136
 
137
- `flake8` and `darglint` configuration is in the `.flake8` file.
137
+ `flake8` and `pydoclint` configuration is in the `.flake8` file.
138
138
 
139
139
  `ruff` configuration is in the `ruff.toml` file.
140
140
 
@@ -227,7 +227,7 @@ Example with potential behavior change due to order:
227
227
  ```python
228
228
  assert_object(
229
229
  expectation=Unordered([Stringified('1'), 1]),
230
- object_=[1, '1']
230
+ object_=[1, '1'],
231
231
  )
232
232
  ```
233
233
 
@@ -1,10 +1,8 @@
1
1
  [project]
2
2
  name = "panda-pytest-assertions"
3
+ dynamic = ["version"]
3
4
  description = "Complex assertions that can be used when writing test with pytest"
4
- version = "0.3.0"
5
- authors = [
6
- { name = "Cyber Panda", email = "krunchfrompoland@gmail.com" },
7
- ]
5
+ authors = [{ name = "Cyber Panda", email = "krunchfrompoland@gmail.com" }]
8
6
  license = "Apache-2.0"
9
7
  readme = "README.md"
10
8
  requires-python = ">=3.10,<4.0"
@@ -13,19 +11,9 @@ dependencies = [
13
11
  "pyyaml >=6.0.1,<7",
14
12
  ]
15
13
 
16
- [project.urls]
17
- homepage = "https://github.com/KRunchPL/panda-pytest-assertions"
18
- repository = "https://github.com/KRunchPL/panda-pytest-assertions"
19
- documentation = "https://github.com/KRunchPL/panda-pytest-assertions"
20
-
21
- [tool.hatch.build.targets.wheel]
22
- packages = [
23
- "src/panda_pytest_assertions",
24
- ]
25
-
26
14
  [dependency-groups]
27
15
  dev = [
28
- "darglint",
16
+ "pydoclint",
29
17
  "flake8",
30
18
  "mypy",
31
19
  "pytest-cov",
@@ -40,6 +28,22 @@ docs = [
40
28
  "mike >=2.1.3,<3",
41
29
  ]
42
30
 
31
+ [project.urls]
32
+ homepage = "https://github.com/KRunchPL/panda-pytest-assertions"
33
+ repository = "https://github.com/KRunchPL/panda-pytest-assertions"
34
+ documentation = "https://github.com/KRunchPL/panda-pytest-assertions"
35
+
36
+ [tool.hatch.build.targets.wheel]
37
+ packages = ["src/panda_pytest_assertions"]
38
+
39
+ [tool.hatch.version]
40
+ scheme = "semver"
41
+ path = "version.txt"
42
+ pattern = "(?P<version>.*)"
43
+
43
44
  [build-system]
44
- requires = ["hatchling"]
45
+ requires = ["hatchling", "hatch-semver"]
45
46
  build-backend = "hatchling.build"
47
+
48
+ [tool.uv]
49
+ system-certs = true
@@ -8,7 +8,7 @@ import pytest
8
8
  class _Unset:
9
9
  __instance: '_Unset | None' = None
10
10
 
11
- def __new__(cls) -> '_Unset':
11
+ def __new__(cls) -> '_Unset': # noqa: PYI034
12
12
  if cls.__instance is None:
13
13
  cls.__instance = object.__new__(cls)
14
14
  return cls.__instance
@@ -43,7 +43,7 @@ class ExceptionMatch(NamedTuple):
43
43
  @contextmanager
44
44
  def assert_context( # noqa: D418
45
45
  *,
46
- exception: type[BaseException] | ExceptionMatch | None | _Unset = ...,
46
+ exception: type[BaseException] | ExceptionMatch | _Unset | None = ...,
47
47
  result: Any | _Unset = ..., # noqa: ANN401
48
48
  ) -> Generator[AssertContext, None, None]:
49
49
  """
@@ -99,7 +99,7 @@ def assert_context( # noqa: D418
99
99
  @contextmanager
100
100
  def assert_context(
101
101
  *,
102
- exception: type[BaseException] | ExceptionMatch | None | _Unset = _UNSET,
102
+ exception: type[BaseException] | ExceptionMatch | _Unset | None = _UNSET,
103
103
  result: Any | _Unset = _UNSET,
104
104
  behaviour: type[BaseException] | ExceptionMatch | Any | _Unset = _UNSET,
105
105
  ) -> Generator[AssertContext, None, None]:
@@ -4,6 +4,8 @@ from typing import Any
4
4
  class Is:
5
5
  """
6
6
  Wrapper for the expectation that describes object identity (compared with `is` operator).
7
+
8
+ :param value: expected object
7
9
  """
8
10
 
9
11
  def __init__(self, value: Any, /) -> None: # noqa: ANN401