dataframely 2.13.1__tar.gz → 2.13.2__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 (233) hide show
  1. {dataframely-2.13.1 → dataframely-2.13.2}/PKG-INFO +1 -1
  2. {dataframely-2.13.1 → dataframely-2.13.2}/dataframely/collection/_base.py +10 -4
  3. {dataframely-2.13.1 → dataframely-2.13.2}/pixi.lock +175 -70
  4. {dataframely-2.13.1 → dataframely-2.13.2}/pixi.toml +1 -1
  5. {dataframely-2.13.1 → dataframely-2.13.2}/pyproject.toml +3 -1
  6. {dataframely-2.13.1 → dataframely-2.13.2}/src/polars_plugin/mod.rs +6 -6
  7. {dataframely-2.13.1 → dataframely-2.13.2}/tests/benches/test_collection.py +11 -0
  8. {dataframely-2.13.1 → dataframely-2.13.2}/tests/benches/test_schema.py +8 -2
  9. {dataframely-2.13.1 → dataframely-2.13.2}/tests/collection/test_implementation.py +25 -0
  10. {dataframely-2.13.1 → dataframely-2.13.2}/tests/collection/test_propagate_row_failures.py +34 -0
  11. {dataframely-2.13.1 → dataframely-2.13.2}/tests/schema/test_validate.py +21 -0
  12. {dataframely-2.13.1 → dataframely-2.13.2}/.claude/CLAUDE.md +0 -0
  13. {dataframely-2.13.1 → dataframely-2.13.2}/.copier-answers.yml +0 -0
  14. {dataframely-2.13.1 → dataframely-2.13.2}/.envrc +0 -0
  15. {dataframely-2.13.1 → dataframely-2.13.2}/.gitattributes +0 -0
  16. {dataframely-2.13.1 → dataframely-2.13.2}/.github/CODEOWNERS +0 -0
  17. {dataframely-2.13.1 → dataframely-2.13.2}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  18. {dataframely-2.13.1 → dataframely-2.13.2}/.github/copilot-instructions.md +0 -0
  19. {dataframely-2.13.1 → dataframely-2.13.2}/.github/dependabot.yml +0 -0
  20. {dataframely-2.13.1 → dataframely-2.13.2}/.github/instructions/tests.instructions.md +0 -0
  21. {dataframely-2.13.1 → dataframely-2.13.2}/.github/release-drafter.yml +0 -0
  22. {dataframely-2.13.1 → dataframely-2.13.2}/.github/workflows/build.yml +0 -0
  23. {dataframely-2.13.1 → dataframely-2.13.2}/.github/workflows/chore.yml +0 -0
  24. {dataframely-2.13.1 → dataframely-2.13.2}/.github/workflows/ci.yml +0 -0
  25. {dataframely-2.13.1 → dataframely-2.13.2}/.github/workflows/copilot-setup-steps.yml +0 -0
  26. {dataframely-2.13.1 → dataframely-2.13.2}/.github/workflows/nightly.yml +0 -0
  27. {dataframely-2.13.1 → dataframely-2.13.2}/.github/workflows/release-drafter.yml +0 -0
  28. {dataframely-2.13.1 → dataframely-2.13.2}/.github/workflows/scorecard.yml +0 -0
  29. {dataframely-2.13.1 → dataframely-2.13.2}/.gitignore +0 -0
  30. {dataframely-2.13.1 → dataframely-2.13.2}/.lefthook.yaml +0 -0
  31. {dataframely-2.13.1 → dataframely-2.13.2}/.prettierignore +0 -0
  32. {dataframely-2.13.1 → dataframely-2.13.2}/.prettierrc +0 -0
  33. {dataframely-2.13.1 → dataframely-2.13.2}/.readthedocs.yml +0 -0
  34. {dataframely-2.13.1 → dataframely-2.13.2}/AGENTS.md +0 -0
  35. {dataframely-2.13.1 → dataframely-2.13.2}/Cargo.lock +0 -0
  36. {dataframely-2.13.1 → dataframely-2.13.2}/Cargo.toml +0 -0
  37. {dataframely-2.13.1 → dataframely-2.13.2}/LICENSE +0 -0
  38. {dataframely-2.13.1 → dataframely-2.13.2}/README.md +0 -0
  39. {dataframely-2.13.1 → dataframely-2.13.2}/SECURITY.md +0 -0
  40. {dataframely-2.13.1 → dataframely-2.13.2}/dataframely/__init__.py +0 -0
  41. {dataframely-2.13.1 → dataframely-2.13.2}/dataframely/_base_schema.py +0 -0
  42. {dataframely-2.13.1 → dataframely-2.13.2}/dataframely/_compat.py +0 -0
  43. {dataframely-2.13.1 → dataframely-2.13.2}/dataframely/_deprecation.py +0 -0
  44. {dataframely-2.13.1 → dataframely-2.13.2}/dataframely/_filter.py +0 -0
  45. {dataframely-2.13.1 → dataframely-2.13.2}/dataframely/_match_to_schema.py +0 -0
  46. {dataframely-2.13.1 → dataframely-2.13.2}/dataframely/_native.pyi +0 -0
  47. {dataframely-2.13.1 → dataframely-2.13.2}/dataframely/_plugin.py +0 -0
  48. {dataframely-2.13.1 → dataframely-2.13.2}/dataframely/_polars.py +0 -0
  49. {dataframely-2.13.1 → dataframely-2.13.2}/dataframely/_pydantic.py +0 -0
  50. {dataframely-2.13.1 → dataframely-2.13.2}/dataframely/_rule.py +0 -0
  51. {dataframely-2.13.1 → dataframely-2.13.2}/dataframely/_serialization.py +0 -0
  52. {dataframely-2.13.1 → dataframely-2.13.2}/dataframely/_storage/__init__.py +0 -0
  53. {dataframely-2.13.1 → dataframely-2.13.2}/dataframely/_storage/_base.py +0 -0
  54. {dataframely-2.13.1 → dataframely-2.13.2}/dataframely/_storage/_exc.py +0 -0
  55. {dataframely-2.13.1 → dataframely-2.13.2}/dataframely/_storage/_fsspec.py +0 -0
  56. {dataframely-2.13.1 → dataframely-2.13.2}/dataframely/_storage/constants.py +0 -0
  57. {dataframely-2.13.1 → dataframely-2.13.2}/dataframely/_storage/delta.py +0 -0
  58. {dataframely-2.13.1 → dataframely-2.13.2}/dataframely/_storage/parquet.py +0 -0
  59. {dataframely-2.13.1 → dataframely-2.13.2}/dataframely/_typing.py +0 -0
  60. {dataframely-2.13.1 → dataframely-2.13.2}/dataframely/collection/__init__.py +0 -0
  61. {dataframely-2.13.1 → dataframely-2.13.2}/dataframely/collection/collection.py +0 -0
  62. {dataframely-2.13.1 → dataframely-2.13.2}/dataframely/collection/filter_result.py +0 -0
  63. {dataframely-2.13.1 → dataframely-2.13.2}/dataframely/columns/__init__.py +0 -0
  64. {dataframely-2.13.1 → dataframely-2.13.2}/dataframely/columns/_base.py +0 -0
  65. {dataframely-2.13.1 → dataframely-2.13.2}/dataframely/columns/_mixins.py +0 -0
  66. {dataframely-2.13.1 → dataframely-2.13.2}/dataframely/columns/_registry.py +0 -0
  67. {dataframely-2.13.1 → dataframely-2.13.2}/dataframely/columns/_utils.py +0 -0
  68. {dataframely-2.13.1 → dataframely-2.13.2}/dataframely/columns/any.py +0 -0
  69. {dataframely-2.13.1 → dataframely-2.13.2}/dataframely/columns/array.py +0 -0
  70. {dataframely-2.13.1 → dataframely-2.13.2}/dataframely/columns/binary.py +0 -0
  71. {dataframely-2.13.1 → dataframely-2.13.2}/dataframely/columns/bool.py +0 -0
  72. {dataframely-2.13.1 → dataframely-2.13.2}/dataframely/columns/categorical.py +0 -0
  73. {dataframely-2.13.1 → dataframely-2.13.2}/dataframely/columns/datetime.py +0 -0
  74. {dataframely-2.13.1 → dataframely-2.13.2}/dataframely/columns/decimal.py +0 -0
  75. {dataframely-2.13.1 → dataframely-2.13.2}/dataframely/columns/enum.py +0 -0
  76. {dataframely-2.13.1 → dataframely-2.13.2}/dataframely/columns/float.py +0 -0
  77. {dataframely-2.13.1 → dataframely-2.13.2}/dataframely/columns/integer.py +0 -0
  78. {dataframely-2.13.1 → dataframely-2.13.2}/dataframely/columns/list.py +0 -0
  79. {dataframely-2.13.1 → dataframely-2.13.2}/dataframely/columns/object.py +0 -0
  80. {dataframely-2.13.1 → dataframely-2.13.2}/dataframely/columns/string.py +0 -0
  81. {dataframely-2.13.1 → dataframely-2.13.2}/dataframely/columns/struct.py +0 -0
  82. {dataframely-2.13.1 → dataframely-2.13.2}/dataframely/config.py +0 -0
  83. {dataframely-2.13.1 → dataframely-2.13.2}/dataframely/exc.py +0 -0
  84. {dataframely-2.13.1 → dataframely-2.13.2}/dataframely/experimental/__init__.py +0 -0
  85. {dataframely-2.13.1 → dataframely-2.13.2}/dataframely/experimental/infer_schema.py +0 -0
  86. {dataframely-2.13.1 → dataframely-2.13.2}/dataframely/filter_result.py +0 -0
  87. {dataframely-2.13.1 → dataframely-2.13.2}/dataframely/functional.py +0 -0
  88. {dataframely-2.13.1 → dataframely-2.13.2}/dataframely/py.typed +0 -0
  89. {dataframely-2.13.1 → dataframely-2.13.2}/dataframely/random.py +0 -0
  90. {dataframely-2.13.1 → dataframely-2.13.2}/dataframely/schema.py +0 -0
  91. {dataframely-2.13.1 → dataframely-2.13.2}/dataframely/testing/__init__.py +0 -0
  92. {dataframely-2.13.1 → dataframely-2.13.2}/dataframely/testing/const.py +0 -0
  93. {dataframely-2.13.1 → dataframely-2.13.2}/dataframely/testing/factory.py +0 -0
  94. {dataframely-2.13.1 → dataframely-2.13.2}/dataframely/testing/mask.py +0 -0
  95. {dataframely-2.13.1 → dataframely-2.13.2}/dataframely/testing/rules.py +0 -0
  96. {dataframely-2.13.1 → dataframely-2.13.2}/dataframely/testing/storage.py +0 -0
  97. {dataframely-2.13.1 → dataframely-2.13.2}/docker-compose.yml +0 -0
  98. {dataframely-2.13.1 → dataframely-2.13.2}/docs/_static/custom.css +0 -0
  99. {dataframely-2.13.1 → dataframely-2.13.2}/docs/_static/favicon.ico +0 -0
  100. {dataframely-2.13.1 → dataframely-2.13.2}/docs/_templates/autosummary/class.rst +0 -0
  101. {dataframely-2.13.1 → dataframely-2.13.2}/docs/_templates/autosummary/method.rst +0 -0
  102. {dataframely-2.13.1 → dataframely-2.13.2}/docs/_templates/classes/column.rst +0 -0
  103. {dataframely-2.13.1 → dataframely-2.13.2}/docs/_templates/classes/error.rst +0 -0
  104. {dataframely-2.13.1 → dataframely-2.13.2}/docs/_templates/classes/filter_result.rst +0 -0
  105. {dataframely-2.13.1 → dataframely-2.13.2}/docs/api/collection/generation.rst +0 -0
  106. {dataframely-2.13.1 → dataframely-2.13.2}/docs/api/collection/index.rst +0 -0
  107. {dataframely-2.13.1 → dataframely-2.13.2}/docs/api/collection/io.rst +0 -0
  108. {dataframely-2.13.1 → dataframely-2.13.2}/docs/api/collection/metadata.rst +0 -0
  109. {dataframely-2.13.1 → dataframely-2.13.2}/docs/api/collection/operations.rst +0 -0
  110. {dataframely-2.13.1 → dataframely-2.13.2}/docs/api/collection/validation.rst +0 -0
  111. {dataframely-2.13.1 → dataframely-2.13.2}/docs/api/columns/index.rst +0 -0
  112. {dataframely-2.13.1 → dataframely-2.13.2}/docs/api/errors/index.rst +0 -0
  113. {dataframely-2.13.1 → dataframely-2.13.2}/docs/api/experimental/index.rst +0 -0
  114. {dataframely-2.13.1 → dataframely-2.13.2}/docs/api/filter_result/failure_info.rst +0 -0
  115. {dataframely-2.13.1 → dataframely-2.13.2}/docs/api/filter_result/index.rst +0 -0
  116. {dataframely-2.13.1 → dataframely-2.13.2}/docs/api/index.rst +0 -0
  117. {dataframely-2.13.1 → dataframely-2.13.2}/docs/api/misc/index.rst +0 -0
  118. {dataframely-2.13.1 → dataframely-2.13.2}/docs/api/schema/conversion.rst +0 -0
  119. {dataframely-2.13.1 → dataframely-2.13.2}/docs/api/schema/generation.rst +0 -0
  120. {dataframely-2.13.1 → dataframely-2.13.2}/docs/api/schema/index.rst +0 -0
  121. {dataframely-2.13.1 → dataframely-2.13.2}/docs/api/schema/io.rst +0 -0
  122. {dataframely-2.13.1 → dataframely-2.13.2}/docs/api/schema/metadata.rst +0 -0
  123. {dataframely-2.13.1 → dataframely-2.13.2}/docs/api/schema/validation.rst +0 -0
  124. {dataframely-2.13.1 → dataframely-2.13.2}/docs/conf.py +0 -0
  125. {dataframely-2.13.1 → dataframely-2.13.2}/docs/css/custom.css +0 -0
  126. {dataframely-2.13.1 → dataframely-2.13.2}/docs/guides/coding-agents.md +0 -0
  127. {dataframely-2.13.1 → dataframely-2.13.2}/docs/guides/development.md +0 -0
  128. {dataframely-2.13.1 → dataframely-2.13.2}/docs/guides/examples/index.md +0 -0
  129. {dataframely-2.13.1 → dataframely-2.13.2}/docs/guides/examples/real-world.ipynb +0 -0
  130. {dataframely-2.13.1 → dataframely-2.13.2}/docs/guides/faq.md +0 -0
  131. {dataframely-2.13.1 → dataframely-2.13.2}/docs/guides/features/column-metadata.md +0 -0
  132. {dataframely-2.13.1 → dataframely-2.13.2}/docs/guides/features/data-generation.md +0 -0
  133. {dataframely-2.13.1 → dataframely-2.13.2}/docs/guides/features/index.md +0 -0
  134. {dataframely-2.13.1 → dataframely-2.13.2}/docs/guides/features/lazy-validation.md +0 -0
  135. {dataframely-2.13.1 → dataframely-2.13.2}/docs/guides/features/primary-keys.md +0 -0
  136. {dataframely-2.13.1 → dataframely-2.13.2}/docs/guides/features/serialization.md +0 -0
  137. {dataframely-2.13.1 → dataframely-2.13.2}/docs/guides/features/sql-generation.md +0 -0
  138. {dataframely-2.13.1 → dataframely-2.13.2}/docs/guides/index.md +0 -0
  139. {dataframely-2.13.1 → dataframely-2.13.2}/docs/guides/migration/index.md +0 -0
  140. {dataframely-2.13.1 → dataframely-2.13.2}/docs/guides/migration/v1-v2.md +0 -0
  141. {dataframely-2.13.1 → dataframely-2.13.2}/docs/guides/quickstart.md +0 -0
  142. {dataframely-2.13.1 → dataframely-2.13.2}/docs/index.md +0 -0
  143. {dataframely-2.13.1 → dataframely-2.13.2}/rust-toolchain.toml +0 -0
  144. {dataframely-2.13.1 → dataframely-2.13.2}/skills/SKILL.md +0 -0
  145. {dataframely-2.13.1 → dataframely-2.13.2}/src/lib.rs +0 -0
  146. {dataframely-2.13.1 → dataframely-2.13.2}/src/polars_plugin/rule_failure.rs +0 -0
  147. {dataframely-2.13.1 → dataframely-2.13.2}/src/polars_plugin/utils.rs +0 -0
  148. {dataframely-2.13.1 → dataframely-2.13.2}/src/polars_plugin/validation_error.rs +0 -0
  149. {dataframely-2.13.1 → dataframely-2.13.2}/src/regex/errdefs.rs +0 -0
  150. {dataframely-2.13.1 → dataframely-2.13.2}/src/regex/mod.rs +0 -0
  151. {dataframely-2.13.1 → dataframely-2.13.2}/src/regex/repr.rs +0 -0
  152. {dataframely-2.13.1 → dataframely-2.13.2}/tests/benches/conftest.py +0 -0
  153. {dataframely-2.13.1 → dataframely-2.13.2}/tests/benches/test_failure.py +0 -0
  154. {dataframely-2.13.1 → dataframely-2.13.2}/tests/collection/test_base.py +0 -0
  155. {dataframely-2.13.1 → dataframely-2.13.2}/tests/collection/test_cast.py +0 -0
  156. {dataframely-2.13.1 → dataframely-2.13.2}/tests/collection/test_collection_future_annotations.py +0 -0
  157. {dataframely-2.13.1 → dataframely-2.13.2}/tests/collection/test_create_empty.py +0 -0
  158. {dataframely-2.13.1 → dataframely-2.13.2}/tests/collection/test_dataframe_members.py +0 -0
  159. {dataframely-2.13.1 → dataframely-2.13.2}/tests/collection/test_filter_one_to_n.py +0 -0
  160. {dataframely-2.13.1 → dataframely-2.13.2}/tests/collection/test_filter_validate.py +0 -0
  161. {dataframely-2.13.1 → dataframely-2.13.2}/tests/collection/test_ignore_in_filter.py +0 -0
  162. {dataframely-2.13.1 → dataframely-2.13.2}/tests/collection/test_join.py +0 -0
  163. {dataframely-2.13.1 → dataframely-2.13.2}/tests/collection/test_matches.py +0 -0
  164. {dataframely-2.13.1 → dataframely-2.13.2}/tests/collection/test_optional_members.py +0 -0
  165. {dataframely-2.13.1 → dataframely-2.13.2}/tests/collection/test_pipe.py +0 -0
  166. {dataframely-2.13.1 → dataframely-2.13.2}/tests/collection/test_repr.py +0 -0
  167. {dataframely-2.13.1 → dataframely-2.13.2}/tests/collection/test_sample.py +0 -0
  168. {dataframely-2.13.1 → dataframely-2.13.2}/tests/collection/test_serialization.py +0 -0
  169. {dataframely-2.13.1 → dataframely-2.13.2}/tests/collection/test_skip_member_validation.py +0 -0
  170. {dataframely-2.13.1 → dataframely-2.13.2}/tests/collection/test_storage.py +0 -0
  171. {dataframely-2.13.1 → dataframely-2.13.2}/tests/collection/test_validate_input.py +0 -0
  172. {dataframely-2.13.1 → dataframely-2.13.2}/tests/column_types/__init__.py +0 -0
  173. {dataframely-2.13.1 → dataframely-2.13.2}/tests/column_types/test_any.py +0 -0
  174. {dataframely-2.13.1 → dataframely-2.13.2}/tests/column_types/test_array.py +0 -0
  175. {dataframely-2.13.1 → dataframely-2.13.2}/tests/column_types/test_binary.py +0 -0
  176. {dataframely-2.13.1 → dataframely-2.13.2}/tests/column_types/test_datetime.py +0 -0
  177. {dataframely-2.13.1 → dataframely-2.13.2}/tests/column_types/test_decimal.py +0 -0
  178. {dataframely-2.13.1 → dataframely-2.13.2}/tests/column_types/test_enum.py +0 -0
  179. {dataframely-2.13.1 → dataframely-2.13.2}/tests/column_types/test_float.py +0 -0
  180. {dataframely-2.13.1 → dataframely-2.13.2}/tests/column_types/test_integer.py +0 -0
  181. {dataframely-2.13.1 → dataframely-2.13.2}/tests/column_types/test_list.py +0 -0
  182. {dataframely-2.13.1 → dataframely-2.13.2}/tests/column_types/test_object.py +0 -0
  183. {dataframely-2.13.1 → dataframely-2.13.2}/tests/column_types/test_string.py +0 -0
  184. {dataframely-2.13.1 → dataframely-2.13.2}/tests/column_types/test_struct.py +0 -0
  185. {dataframely-2.13.1 → dataframely-2.13.2}/tests/columns/__init__.py +0 -0
  186. {dataframely-2.13.1 → dataframely-2.13.2}/tests/columns/test_alias.py +0 -0
  187. {dataframely-2.13.1 → dataframely-2.13.2}/tests/columns/test_base.py +0 -0
  188. {dataframely-2.13.1 → dataframely-2.13.2}/tests/columns/test_check.py +0 -0
  189. {dataframely-2.13.1 → dataframely-2.13.2}/tests/columns/test_default_dtypes.py +0 -0
  190. {dataframely-2.13.1 → dataframely-2.13.2}/tests/columns/test_description.py +0 -0
  191. {dataframely-2.13.1 → dataframely-2.13.2}/tests/columns/test_matches.py +0 -0
  192. {dataframely-2.13.1 → dataframely-2.13.2}/tests/columns/test_metadata.py +0 -0
  193. {dataframely-2.13.1 → dataframely-2.13.2}/tests/columns/test_polars_schema.py +0 -0
  194. {dataframely-2.13.1 → dataframely-2.13.2}/tests/columns/test_pyarrow.py +0 -0
  195. {dataframely-2.13.1 → dataframely-2.13.2}/tests/columns/test_pydantic.py +0 -0
  196. {dataframely-2.13.1 → dataframely-2.13.2}/tests/columns/test_rules.py +0 -0
  197. {dataframely-2.13.1 → dataframely-2.13.2}/tests/columns/test_sample.py +0 -0
  198. {dataframely-2.13.1 → dataframely-2.13.2}/tests/columns/test_sqlalchemy_columns.py +0 -0
  199. {dataframely-2.13.1 → dataframely-2.13.2}/tests/columns/test_str.py +0 -0
  200. {dataframely-2.13.1 → dataframely-2.13.2}/tests/columns/test_utils.py +0 -0
  201. {dataframely-2.13.1 → dataframely-2.13.2}/tests/conftest.py +0 -0
  202. {dataframely-2.13.1 → dataframely-2.13.2}/tests/core_validation/__init__.py +0 -0
  203. {dataframely-2.13.1 → dataframely-2.13.2}/tests/core_validation/test_match_to_schema.py +0 -0
  204. {dataframely-2.13.1 → dataframely-2.13.2}/tests/core_validation/test_rule_evaluation.py +0 -0
  205. {dataframely-2.13.1 → dataframely-2.13.2}/tests/experimental/test_infer_schema.py +0 -0
  206. {dataframely-2.13.1 → dataframely-2.13.2}/tests/failure_info/test_storage.py +0 -0
  207. {dataframely-2.13.1 → dataframely-2.13.2}/tests/functional/test_concat.py +0 -0
  208. {dataframely-2.13.1 → dataframely-2.13.2}/tests/functional/test_relationships.py +0 -0
  209. {dataframely-2.13.1 → dataframely-2.13.2}/tests/schema/test_base.py +0 -0
  210. {dataframely-2.13.1 → dataframely-2.13.2}/tests/schema/test_cast.py +0 -0
  211. {dataframely-2.13.1 → dataframely-2.13.2}/tests/schema/test_create_empty.py +0 -0
  212. {dataframely-2.13.1 → dataframely-2.13.2}/tests/schema/test_create_empty_if_none.py +0 -0
  213. {dataframely-2.13.1 → dataframely-2.13.2}/tests/schema/test_filter.py +0 -0
  214. {dataframely-2.13.1 → dataframely-2.13.2}/tests/schema/test_inheritance.py +0 -0
  215. {dataframely-2.13.1 → dataframely-2.13.2}/tests/schema/test_matches.py +0 -0
  216. {dataframely-2.13.1 → dataframely-2.13.2}/tests/schema/test_pydantic_model.py +0 -0
  217. {dataframely-2.13.1 → dataframely-2.13.2}/tests/schema/test_read_write_parquet.py +0 -0
  218. {dataframely-2.13.1 → dataframely-2.13.2}/tests/schema/test_repr.py +0 -0
  219. {dataframely-2.13.1 → dataframely-2.13.2}/tests/schema/test_rule_implementation.py +0 -0
  220. {dataframely-2.13.1 → dataframely-2.13.2}/tests/schema/test_sample.py +0 -0
  221. {dataframely-2.13.1 → dataframely-2.13.2}/tests/schema/test_serialization.py +0 -0
  222. {dataframely-2.13.1 → dataframely-2.13.2}/tests/schema/test_storage.py +0 -0
  223. {dataframely-2.13.1 → dataframely-2.13.2}/tests/storage/test_delta.py +0 -0
  224. {dataframely-2.13.1 → dataframely-2.13.2}/tests/storage/test_fsspec.py +0 -0
  225. {dataframely-2.13.1 → dataframely-2.13.2}/tests/test_compat.py +0 -0
  226. {dataframely-2.13.1 → dataframely-2.13.2}/tests/test_config.py +0 -0
  227. {dataframely-2.13.1 → dataframely-2.13.2}/tests/test_deprecation.py +0 -0
  228. {dataframely-2.13.1 → dataframely-2.13.2}/tests/test_factory.py +0 -0
  229. {dataframely-2.13.1 → dataframely-2.13.2}/tests/test_native_regex.py +0 -0
  230. {dataframely-2.13.1 → dataframely-2.13.2}/tests/test_pydantic.py +0 -0
  231. {dataframely-2.13.1 → dataframely-2.13.2}/tests/test_random.py +0 -0
  232. {dataframely-2.13.1 → dataframely-2.13.2}/tests/test_serialization.py +0 -0
  233. {dataframely-2.13.1 → dataframely-2.13.2}/tests/test_typing.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dataframely
3
- Version: 2.13.1
3
+ Version: 2.13.2
4
4
  Classifier: Programming Language :: Python :: 3
5
5
  Classifier: Programming Language :: Python :: 3.10
6
6
  Classifier: Programming Language :: Python :: 3.11
@@ -133,12 +133,18 @@ class CollectionMeta(ABCMeta):
133
133
  ]
134
134
 
135
135
  # 1) Check that there are overlapping primary keys that allow the application
136
- # of filters.
137
- if len(non_ignored_member_schemas) > 0 and len(result.filters) > 0:
136
+ # of filters and the propagation of row failures.
137
+ has_failure_propagation = any(
138
+ member.propagate_row_failures and not member.ignored_in_filters
139
+ for member in result.members.values()
140
+ )
141
+ if len(non_ignored_member_schemas) > 0 and (
142
+ len(result.filters) > 0 or has_failure_propagation
143
+ ):
138
144
  if len(_common_primary_key(non_ignored_member_schemas)) == 0:
139
145
  raise ImplementationError(
140
146
  "Members of a collection must have an overlapping primary key "
141
- "but did not find any."
147
+ "if they use filters or failure-propagation, but did not find any."
142
148
  )
143
149
 
144
150
  # 2) Check that filter names do not overlap with any column or rule names
@@ -371,7 +377,7 @@ class BaseCollection(metaclass=CollectionMeta):
371
377
  return {
372
378
  name
373
379
  for name, member in cls.members().items()
374
- if member.propagate_row_failures
380
+ if member.propagate_row_failures and not member.ignored_in_filters
375
381
  }
376
382
 
377
383
  @classmethod