assertpy2 2.28.0__tar.gz → 2.29.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 (265) hide show
  1. {assertpy2-2.28.0 → assertpy2-2.29.1}/PKG-INFO +1 -1
  2. {assertpy2-2.28.0 → assertpy2-2.29.1}/assertpy2/_engine/_compare.py +1 -1
  3. assertpy2-2.29.1/assertpy2/_engine/_contract.py +927 -0
  4. assertpy2-2.29.1/assertpy2/_engine/_diff.py +916 -0
  5. {assertpy2-2.28.0 → assertpy2-2.29.1}/assertpy2/_engine/_equality.py +86 -18
  6. {assertpy2-2.28.0 → assertpy2-2.29.1}/assertpy2/_engine/_membership.py +2 -0
  7. {assertpy2-2.28.0 → assertpy2-2.29.1}/assertpy2/_engine/_ordering.py +34 -4
  8. {assertpy2-2.28.0 → assertpy2-2.29.1}/assertpy2/_engine/_path.py +70 -12
  9. {assertpy2-2.28.0 → assertpy2-2.29.1}/assertpy2/_matcher_impls.py +54 -31
  10. {assertpy2-2.28.0 → assertpy2-2.29.1}/assertpy2/_satisfies.py +36 -26
  11. {assertpy2-2.28.0 → assertpy2-2.29.1}/assertpy2/assertpy.py +27 -14
  12. {assertpy2-2.28.0 → assertpy2-2.29.1}/assertpy2/base.py +12 -7
  13. {assertpy2-2.28.0 → assertpy2-2.29.1}/assertpy2/collection.py +21 -6
  14. {assertpy2-2.28.0 → assertpy2-2.29.1}/assertpy2/contains.py +34 -21
  15. {assertpy2-2.28.0 → assertpy2-2.29.1}/assertpy2/date.py +5 -5
  16. {assertpy2-2.28.0 → assertpy2-2.29.1}/assertpy2/dynamic.py +3 -1
  17. {assertpy2-2.28.0 → assertpy2-2.29.1}/assertpy2/errors.py +13 -0
  18. {assertpy2-2.28.0 → assertpy2-2.29.1}/assertpy2/helpers.py +34 -31
  19. {assertpy2-2.28.0 → assertpy2-2.29.1}/assertpy2/numeric.py +6 -6
  20. {assertpy2-2.28.0 → assertpy2-2.29.1}/assertpy2/snapshot.py +3 -3
  21. {assertpy2-2.28.0 → assertpy2-2.29.1}/assertpy2/string.py +21 -12
  22. {assertpy2-2.28.0 → assertpy2-2.29.1}/docs/concepts/type-safety.md +29 -1
  23. {assertpy2-2.28.0 → assertpy2-2.29.1}/pyproject.toml +1 -1
  24. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_complexity.py +4 -10
  25. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_datetime.py +25 -24
  26. assertpy2-2.29.1/tests/test_deep_nesting.py +437 -0
  27. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_duality.py +13 -156
  28. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_evaluation_core.py +486 -2
  29. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_match_result.py +53 -0
  30. assertpy2-2.29.1/tests/test_matcher_algebra.py +230 -0
  31. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_property_based.py +9 -4
  32. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_recursive_compare.py +17 -0
  33. assertpy2-2.29.1/tests/test_structural.py +2580 -0
  34. assertpy2-2.29.1/tests/test_unrenderable_values.py +244 -0
  35. assertpy2-2.28.0/assertpy2/_engine/_contract.py +0 -166
  36. assertpy2-2.28.0/assertpy2/_engine/_diff.py +0 -718
  37. assertpy2-2.28.0/tests/test_structural.py +0 -1214
  38. {assertpy2-2.28.0 → assertpy2-2.29.1}/.gitignore +0 -0
  39. {assertpy2-2.28.0 → assertpy2-2.29.1}/CONTRIBUTING.md +0 -0
  40. {assertpy2-2.28.0 → assertpy2-2.29.1}/LICENSE +0 -0
  41. {assertpy2-2.28.0 → assertpy2-2.29.1}/README.md +0 -0
  42. {assertpy2-2.28.0 → assertpy2-2.29.1}/SECURITY.md +0 -0
  43. {assertpy2-2.28.0 → assertpy2-2.29.1}/assertpy2/__init__.py +0 -0
  44. {assertpy2-2.28.0 → assertpy2-2.29.1}/assertpy2/_clustering.py +0 -0
  45. {assertpy2-2.28.0 → assertpy2-2.29.1}/assertpy2/_dangling.py +0 -0
  46. {assertpy2-2.28.0 → assertpy2-2.29.1}/assertpy2/_engine/__init__.py +0 -0
  47. {assertpy2-2.28.0 → assertpy2-2.29.1}/assertpy2/_engine/_builder_check_typing.py +0 -0
  48. {assertpy2-2.28.0 → assertpy2-2.29.1}/assertpy2/_engine/_capable_typing.py +0 -0
  49. {assertpy2-2.28.0 → assertpy2-2.29.1}/assertpy2/_engine/_check_typing.py +0 -0
  50. {assertpy2-2.28.0 → assertpy2-2.29.1}/assertpy2/_engine/_compat.py +0 -0
  51. {assertpy2-2.28.0 → assertpy2-2.29.1}/assertpy2/_engine/_introspection.py +0 -0
  52. {assertpy2-2.28.0 → assertpy2-2.29.1}/assertpy2/_engine/_mixin_base.py +0 -0
  53. {assertpy2-2.28.0 → assertpy2-2.29.1}/assertpy2/_engine/_negated_typing.py +0 -0
  54. {assertpy2-2.28.0 → assertpy2-2.29.1}/assertpy2/_engine/_operations.py +0 -0
  55. {assertpy2-2.28.0 → assertpy2-2.29.1}/assertpy2/_engine/_pairing.py +0 -0
  56. {assertpy2-2.28.0 → assertpy2-2.29.1}/assertpy2/_engine/_poll_typing.py +0 -0
  57. {assertpy2-2.28.0 → assertpy2-2.29.1}/assertpy2/_engine/_require.py +0 -0
  58. {assertpy2-2.28.0 → assertpy2-2.29.1}/assertpy2/_engine/_size.py +0 -0
  59. {assertpy2-2.28.0 → assertpy2-2.29.1}/assertpy2/_engine/_text.py +0 -0
  60. {assertpy2-2.28.0 → assertpy2-2.29.1}/assertpy2/_engine/_typing.py +0 -0
  61. {assertpy2-2.28.0 → assertpy2-2.29.1}/assertpy2/_hints.py +0 -0
  62. {assertpy2-2.28.0 → assertpy2-2.29.1}/assertpy2/_inline.py +0 -0
  63. {assertpy2-2.28.0 → assertpy2-2.29.1}/assertpy2/_snapshot_codec.py +0 -0
  64. {assertpy2-2.28.0 → assertpy2-2.29.1}/assertpy2/async_assertions.py +0 -0
  65. {assertpy2-2.28.0 → assertpy2-2.29.1}/assertpy2/behave_matchers.py +0 -0
  66. {assertpy2-2.28.0 → assertpy2-2.29.1}/assertpy2/bytes_mixin.py +0 -0
  67. {assertpy2-2.28.0 → assertpy2-2.29.1}/assertpy2/dataframe.py +0 -0
  68. {assertpy2-2.28.0 → assertpy2-2.29.1}/assertpy2/dict.py +0 -0
  69. {assertpy2-2.28.0 → assertpy2-2.29.1}/assertpy2/exception.py +0 -0
  70. {assertpy2-2.28.0 → assertpy2-2.29.1}/assertpy2/extracting.py +0 -0
  71. {assertpy2-2.28.0 → assertpy2-2.29.1}/assertpy2/file.py +0 -0
  72. {assertpy2-2.28.0 → assertpy2-2.29.1}/assertpy2/http_mixin.py +0 -0
  73. {assertpy2-2.28.0 → assertpy2-2.29.1}/assertpy2/json_mixin.py +0 -0
  74. {assertpy2-2.28.0 → assertpy2-2.29.1}/assertpy2/matchers.py +0 -0
  75. {assertpy2-2.28.0 → assertpy2-2.29.1}/assertpy2/outcome.py +0 -0
  76. {assertpy2-2.28.0 → assertpy2-2.29.1}/assertpy2/py.typed +0 -0
  77. {assertpy2-2.28.0 → assertpy2-2.29.1}/assertpy2/pytest_plugin.py +0 -0
  78. {assertpy2-2.28.0 → assertpy2-2.29.1}/assertpy2/warning.py +0 -0
  79. {assertpy2-2.28.0 → assertpy2-2.29.1}/benchmarks/test_perf.py +0 -0
  80. {assertpy2-2.28.0 → assertpy2-2.29.1}/docs/assets/diff-equal.png +0 -0
  81. {assertpy2-2.28.0 → assertpy2-2.29.1}/docs/assets/diff-equal.svg +0 -0
  82. {assertpy2-2.28.0 → assertpy2-2.29.1}/docs/assets/diff-gallery.png +0 -0
  83. {assertpy2-2.28.0 → assertpy2-2.29.1}/docs/assets/diff-match.svg +0 -0
  84. {assertpy2-2.28.0 → assertpy2-2.29.1}/docs/assets/diff-sequence.svg +0 -0
  85. {assertpy2-2.28.0 → assertpy2-2.29.1}/docs/assets/diff-set.svg +0 -0
  86. {assertpy2-2.28.0 → assertpy2-2.29.1}/docs/assets/diff-string.svg +0 -0
  87. {assertpy2-2.28.0 → assertpy2-2.29.1}/docs/concepts/stability.md +0 -0
  88. {assertpy2-2.28.0 → assertpy2-2.29.1}/docs/extending/custom-assertions.md +0 -0
  89. {assertpy2-2.28.0 → assertpy2-2.29.1}/docs/extending/integrations.md +0 -0
  90. {assertpy2-2.28.0 → assertpy2-2.29.1}/docs/getting-started/comparison.md +0 -0
  91. {assertpy2-2.28.0 → assertpy2-2.29.1}/docs/getting-started/migration.md +0 -0
  92. {assertpy2-2.28.0 → assertpy2-2.29.1}/docs/getting-started/quickstart.md +0 -0
  93. {assertpy2-2.28.0 → assertpy2-2.29.1}/docs/guides/assertions.md +0 -0
  94. {assertpy2-2.28.0 → assertpy2-2.29.1}/docs/guides/data.md +0 -0
  95. {assertpy2-2.28.0 → assertpy2-2.29.1}/docs/guides/errors.md +0 -0
  96. {assertpy2-2.28.0 → assertpy2-2.29.1}/docs/guides/fluent.md +0 -0
  97. {assertpy2-2.28.0 → assertpy2-2.29.1}/docs/guides/matchers.md +0 -0
  98. {assertpy2-2.28.0 → assertpy2-2.29.1}/docs/guides/testing.md +0 -0
  99. {assertpy2-2.28.0 → assertpy2-2.29.1}/docs/index.md +0 -0
  100. {assertpy2-2.28.0 → assertpy2-2.29.1}/docs/logo-dark.svg +0 -0
  101. {assertpy2-2.28.0 → assertpy2-2.29.1}/docs/logo.svg +0 -0
  102. {assertpy2-2.28.0 → assertpy2-2.29.1}/docs/recipes.md +0 -0
  103. {assertpy2-2.28.0 → assertpy2-2.29.1}/docs/reference/async.md +0 -0
  104. {assertpy2-2.28.0 → assertpy2-2.29.1}/docs/reference/bytes.md +0 -0
  105. {assertpy2-2.28.0 → assertpy2-2.29.1}/docs/reference/collections.md +0 -0
  106. {assertpy2-2.28.0 → assertpy2-2.29.1}/docs/reference/containment.md +0 -0
  107. {assertpy2-2.28.0 → assertpy2-2.29.1}/docs/reference/core.md +0 -0
  108. {assertpy2-2.28.0 → assertpy2-2.29.1}/docs/reference/dataframes.md +0 -0
  109. {assertpy2-2.28.0 → assertpy2-2.29.1}/docs/reference/dates.md +0 -0
  110. {assertpy2-2.28.0 → assertpy2-2.29.1}/docs/reference/dicts.md +0 -0
  111. {assertpy2-2.28.0 → assertpy2-2.29.1}/docs/reference/dynamic.md +0 -0
  112. {assertpy2-2.28.0 → assertpy2-2.29.1}/docs/reference/entry-points.md +0 -0
  113. {assertpy2-2.28.0 → assertpy2-2.29.1}/docs/reference/errors.md +0 -0
  114. {assertpy2-2.28.0 → assertpy2-2.29.1}/docs/reference/exceptions.md +0 -0
  115. {assertpy2-2.28.0 → assertpy2-2.29.1}/docs/reference/extracting.md +0 -0
  116. {assertpy2-2.28.0 → assertpy2-2.29.1}/docs/reference/files.md +0 -0
  117. {assertpy2-2.28.0 → assertpy2-2.29.1}/docs/reference/http.md +0 -0
  118. {assertpy2-2.28.0 → assertpy2-2.29.1}/docs/reference/json.md +0 -0
  119. {assertpy2-2.28.0 → assertpy2-2.29.1}/docs/reference/matchers.md +0 -0
  120. {assertpy2-2.28.0 → assertpy2-2.29.1}/docs/reference/numbers.md +0 -0
  121. {assertpy2-2.28.0 → assertpy2-2.29.1}/docs/reference/overview.md +0 -0
  122. {assertpy2-2.28.0 → assertpy2-2.29.1}/docs/reference/snapshots.md +0 -0
  123. {assertpy2-2.28.0 → assertpy2-2.29.1}/docs/reference/strings.md +0 -0
  124. {assertpy2-2.28.0 → assertpy2-2.29.1}/docs/reference/warnings.md +0 -0
  125. {assertpy2-2.28.0 → assertpy2-2.29.1}/docs/stylesheets/extra.css +0 -0
  126. {assertpy2-2.28.0 → assertpy2-2.29.1}/mkdocs.yml +0 -0
  127. {assertpy2-2.28.0 → assertpy2-2.29.1}/mkdocs_hooks.py +0 -0
  128. {assertpy2-2.28.0 → assertpy2-2.29.1}/scripts/generate_check_protocols.py +0 -0
  129. {assertpy2-2.28.0 → assertpy2-2.29.1}/scripts/generate_poll_protocols.py +0 -0
  130. {assertpy2-2.28.0 → assertpy2-2.29.1}/scripts/mutation_report.py +0 -0
  131. {assertpy2-2.28.0 → assertpy2-2.29.1}/scripts/regenerate.py +0 -0
  132. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/api_snapshot.json +0 -0
  133. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/api_surface.py +0 -0
  134. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/chain_corpus.py +0 -0
  135. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/chain_model.py +0 -0
  136. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/chain_surfaces.py +0 -0
  137. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/conftest.py +0 -0
  138. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/docs_fixtures.py +0 -0
  139. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/group_compat.py +0 -0
  140. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/poll_parity_baseline.py +0 -0
  141. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/poll_parity_cases.py +0 -0
  142. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/pyright_baseline.py +0 -0
  143. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_api_compatibility.py +0 -0
  144. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_api_vocabulary.py +0 -0
  145. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_architecture_doc.py +0 -0
  146. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_async.py +0 -0
  147. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_async_predicates.py +0 -0
  148. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_attrs_support.py +0 -0
  149. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_behave_matchers.py +0 -0
  150. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_bool.py +0 -0
  151. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_boundary_cases.py +0 -0
  152. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_bytes.py +0 -0
  153. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_call_awaitables.py +0 -0
  154. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_callable.py +0 -0
  155. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_capable_protocol.py +0 -0
  156. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_chain_machine.py +0 -0
  157. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_chaining.py +0 -0
  158. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_check.py +0 -0
  159. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_check_protocols.py +0 -0
  160. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_class.py +0 -0
  161. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_clustering.py +0 -0
  162. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_collection.py +0 -0
  163. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_core.py +0 -0
  164. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_custom_dict.py +0 -0
  165. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_custom_list.py +0 -0
  166. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_dangling.py +0 -0
  167. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_dataframe.py +0 -0
  168. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_declared_floors.py +0 -0
  169. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_description.py +0 -0
  170. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_dict.py +0 -0
  171. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_dict_compare.py +0 -0
  172. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_docs_examples.py +0 -0
  173. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_docs_typing.py +0 -0
  174. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_dynamic.py +0 -0
  175. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_equality_signals.py +0 -0
  176. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_equals.py +0 -0
  177. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_errors.py +0 -0
  178. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_exception_context.py +0 -0
  179. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_expected_contract.py +0 -0
  180. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_expected_exception.py +0 -0
  181. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_expected_warning.py +0 -0
  182. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_extensions.py +0 -0
  183. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_extracting.py +0 -0
  184. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_fail.py +0 -0
  185. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_file.py +0 -0
  186. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_grouped_soft.py +0 -0
  187. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_hints.py +0 -0
  188. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_hostile_values.py +0 -0
  189. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_http.py +0 -0
  190. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_in.py +0 -0
  191. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_inline_record.py +0 -0
  192. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_inline_snapshot.py +0 -0
  193. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_integer_arguments.py +0 -0
  194. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_iterable_cluster.py +0 -0
  195. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_json.py +0 -0
  196. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_list.py +0 -0
  197. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_matcher_parity.py +0 -0
  198. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_matcher_registry.py +0 -0
  199. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_matchers.py +0 -0
  200. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_message_elision.py +0 -0
  201. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_namedtuple.py +0 -0
  202. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_negated_protocols.py +0 -0
  203. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_none.py +0 -0
  204. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_not.py +0 -0
  205. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_number_zoo.py +0 -0
  206. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_numbers.py +0 -0
  207. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_numeric_questions.py +0 -0
  208. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_openapi_contract.py +0 -0
  209. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_operation_contract.py +0 -0
  210. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_optional_integration_contracts.py +0 -0
  211. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_overload_order.py +0 -0
  212. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_overloads.py +0 -0
  213. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_pin_coverage.py +0 -0
  214. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_pipeline.py +0 -0
  215. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_poll_parity.py +0 -0
  216. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_poll_protocols.py +0 -0
  217. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_prerequisites.py +0 -0
  218. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_property_attrs.py +0 -0
  219. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_protocol_parity.py +0 -0
  220. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_public_surface.py +0 -0
  221. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_pyright_baseline.py +0 -0
  222. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_pytest_plugin.py +0 -0
  223. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_recursive_assertion.py +0 -0
  224. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_recursive_compare_attrs.py +0 -0
  225. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_recursive_compare_config.py +0 -0
  226. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_recursive_compare_pydantic.py +0 -0
  227. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_refusals.py +0 -0
  228. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_regex_groups.py +0 -0
  229. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_requirement.py +0 -0
  230. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_rich_diff.py +0 -0
  231. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_same_as.py +0 -0
  232. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_satisfy.py +0 -0
  233. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_skip_guard.py +0 -0
  234. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_snapshots.py +0 -0
  235. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_soft.py +0 -0
  236. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_soft_fail.py +0 -0
  237. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_string.py +0 -0
  238. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_surface_conformance.py +0 -0
  239. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_sync_eventually.py +0 -0
  240. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_traceback.py +0 -0
  241. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_type.py +0 -0
  242. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_type_expression_failures.py +0 -0
  243. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_typing.py +0 -0
  244. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_typing_chain_corpus.py +0 -0
  245. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_typing_claims.py +0 -0
  246. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_typing_completeness.py +0 -0
  247. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_typing_conformance.py +0 -0
  248. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_typing_from_a_wheel.py +0 -0
  249. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_typing_http.py +0 -0
  250. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_typing_integrations.py +0 -0
  251. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_typing_negative.py +0 -0
  252. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_typing_promises.py +0 -0
  253. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_vacuity_contract.py +0 -0
  254. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_verdict_corpus.py +0 -0
  255. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/test_warn.py +0 -0
  256. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/typing_cases.py +0 -0
  257. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/typing_chain_corpus_baseline.json +0 -0
  258. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/typing_harness.py +0 -0
  259. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/typing_http.py +0 -0
  260. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/typing_integrations.py +0 -0
  261. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/typing_integrations_baseline.py +0 -0
  262. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/typing_negative_baseline.py +0 -0
  263. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/typing_promises.py +0 -0
  264. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/verdict_corpus.py +0 -0
  265. {assertpy2-2.28.0 → assertpy2-2.29.1}/tests/verdict_golden.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: assertpy2
3
- Version: 2.28.0
3
+ Version: 2.29.1
4
4
  Summary: Fluent, fully typed assertion library for Python: your type checker sees only the assertions that fit the value, and every failure carries a structured diff. Soft assertions, polling, inline snapshots, OpenAPI contracts.
5
5
  Project-URL: Homepage, https://github.com/Solganis/assertpy2
6
6
  Project-URL: Repository, https://github.com/Solganis/assertpy2
@@ -630,7 +630,7 @@ def _node_decision(actual, expected, config: _CompareConfig | None, *, field=Non
630
630
  ``"strict"`` is the fourth: the two sides are equal, but ``strict_types`` or a comparator still has to
631
631
  look inside, because a container's ``==`` says nothing about the types of its members, nor about what a
632
632
  comparator says of them. It differs from ``"recurse"`` only in what an undecomposable value means,
633
- which `assertpy2._engine._diff._child_entries()` is the single place to know.
633
+ which `assertpy2._engine._diff._Walk.descend()` is the single place to know.
634
634
  """
635
635
  if config is not None:
636
636
  if config.ignore_null and field is not None and as_held(expected) is None: