dataframely 1.8.0__tar.gz → 1.8.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 (186) hide show
  1. {dataframely-1.8.0 → dataframely-1.8.2}/PKG-INFO +1 -1
  2. {dataframely-1.8.0 → dataframely-1.8.2}/dataframely/collection.py +1 -1
  3. {dataframely-1.8.0 → dataframely-1.8.2}/dataframely/columns/categorical.py +3 -2
  4. {dataframely-1.8.0 → dataframely-1.8.2}/pyproject.toml +1 -1
  5. {dataframely-1.8.0 → dataframely-1.8.2}/tests/collection/test_serialization.py +16 -0
  6. {dataframely-1.8.0 → dataframely-1.8.2}/.copier-answers.yml +0 -0
  7. {dataframely-1.8.0 → dataframely-1.8.2}/.envrc +0 -0
  8. {dataframely-1.8.0 → dataframely-1.8.2}/.gitattributes +0 -0
  9. {dataframely-1.8.0 → dataframely-1.8.2}/.github/CODEOWNERS +0 -0
  10. {dataframely-1.8.0 → dataframely-1.8.2}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  11. {dataframely-1.8.0 → dataframely-1.8.2}/.github/dependabot.yml +0 -0
  12. {dataframely-1.8.0 → dataframely-1.8.2}/.github/release-drafter.yml +0 -0
  13. {dataframely-1.8.0 → dataframely-1.8.2}/.github/workflows/build.yml +0 -0
  14. {dataframely-1.8.0 → dataframely-1.8.2}/.github/workflows/chore.yml +0 -0
  15. {dataframely-1.8.0 → dataframely-1.8.2}/.github/workflows/ci.yml +0 -0
  16. {dataframely-1.8.0 → dataframely-1.8.2}/.github/workflows/nightly.yml +0 -0
  17. {dataframely-1.8.0 → dataframely-1.8.2}/.github/workflows/scorecard.yml +0 -0
  18. {dataframely-1.8.0 → dataframely-1.8.2}/.gitignore +0 -0
  19. {dataframely-1.8.0 → dataframely-1.8.2}/.pre-commit-config.yaml +0 -0
  20. {dataframely-1.8.0 → dataframely-1.8.2}/.prettierignore +0 -0
  21. {dataframely-1.8.0 → dataframely-1.8.2}/.prettierrc +0 -0
  22. {dataframely-1.8.0 → dataframely-1.8.2}/.readthedocs.yml +0 -0
  23. {dataframely-1.8.0 → dataframely-1.8.2}/Cargo.lock +0 -0
  24. {dataframely-1.8.0 → dataframely-1.8.2}/Cargo.toml +0 -0
  25. {dataframely-1.8.0 → dataframely-1.8.2}/LICENSE +0 -0
  26. {dataframely-1.8.0 → dataframely-1.8.2}/README.md +0 -0
  27. {dataframely-1.8.0 → dataframely-1.8.2}/SECURITY.md +0 -0
  28. {dataframely-1.8.0 → dataframely-1.8.2}/dataframely/__init__.py +0 -0
  29. {dataframely-1.8.0 → dataframely-1.8.2}/dataframely/_base_collection.py +0 -0
  30. {dataframely-1.8.0 → dataframely-1.8.2}/dataframely/_base_schema.py +0 -0
  31. {dataframely-1.8.0 → dataframely-1.8.2}/dataframely/_compat.py +0 -0
  32. {dataframely-1.8.0 → dataframely-1.8.2}/dataframely/_deprecation.py +0 -0
  33. {dataframely-1.8.0 → dataframely-1.8.2}/dataframely/_extre.pyi +0 -0
  34. {dataframely-1.8.0 → dataframely-1.8.2}/dataframely/_filter.py +0 -0
  35. {dataframely-1.8.0 → dataframely-1.8.2}/dataframely/_polars.py +0 -0
  36. {dataframely-1.8.0 → dataframely-1.8.2}/dataframely/_rule.py +0 -0
  37. {dataframely-1.8.0 → dataframely-1.8.2}/dataframely/_serialization.py +0 -0
  38. {dataframely-1.8.0 → dataframely-1.8.2}/dataframely/_typing.py +0 -0
  39. {dataframely-1.8.0 → dataframely-1.8.2}/dataframely/_validation.py +0 -0
  40. {dataframely-1.8.0 → dataframely-1.8.2}/dataframely/columns/__init__.py +0 -0
  41. {dataframely-1.8.0 → dataframely-1.8.2}/dataframely/columns/_base.py +0 -0
  42. {dataframely-1.8.0 → dataframely-1.8.2}/dataframely/columns/_mixins.py +0 -0
  43. {dataframely-1.8.0 → dataframely-1.8.2}/dataframely/columns/_registry.py +0 -0
  44. {dataframely-1.8.0 → dataframely-1.8.2}/dataframely/columns/_utils.py +0 -0
  45. {dataframely-1.8.0 → dataframely-1.8.2}/dataframely/columns/any.py +0 -0
  46. {dataframely-1.8.0 → dataframely-1.8.2}/dataframely/columns/array.py +0 -0
  47. {dataframely-1.8.0 → dataframely-1.8.2}/dataframely/columns/bool.py +0 -0
  48. {dataframely-1.8.0 → dataframely-1.8.2}/dataframely/columns/datetime.py +0 -0
  49. {dataframely-1.8.0 → dataframely-1.8.2}/dataframely/columns/decimal.py +0 -0
  50. {dataframely-1.8.0 → dataframely-1.8.2}/dataframely/columns/enum.py +0 -0
  51. {dataframely-1.8.0 → dataframely-1.8.2}/dataframely/columns/float.py +0 -0
  52. {dataframely-1.8.0 → dataframely-1.8.2}/dataframely/columns/integer.py +0 -0
  53. {dataframely-1.8.0 → dataframely-1.8.2}/dataframely/columns/list.py +0 -0
  54. {dataframely-1.8.0 → dataframely-1.8.2}/dataframely/columns/object.py +0 -0
  55. {dataframely-1.8.0 → dataframely-1.8.2}/dataframely/columns/string.py +0 -0
  56. {dataframely-1.8.0 → dataframely-1.8.2}/dataframely/columns/struct.py +0 -0
  57. {dataframely-1.8.0 → dataframely-1.8.2}/dataframely/config.py +0 -0
  58. {dataframely-1.8.0 → dataframely-1.8.2}/dataframely/exc.py +0 -0
  59. {dataframely-1.8.0 → dataframely-1.8.2}/dataframely/failure.py +0 -0
  60. {dataframely-1.8.0 → dataframely-1.8.2}/dataframely/functional.py +0 -0
  61. {dataframely-1.8.0 → dataframely-1.8.2}/dataframely/mypy.py +0 -0
  62. {dataframely-1.8.0 → dataframely-1.8.2}/dataframely/py.typed +0 -0
  63. {dataframely-1.8.0 → dataframely-1.8.2}/dataframely/random.py +0 -0
  64. {dataframely-1.8.0 → dataframely-1.8.2}/dataframely/schema.py +0 -0
  65. {dataframely-1.8.0 → dataframely-1.8.2}/dataframely/testing/__init__.py +0 -0
  66. {dataframely-1.8.0 → dataframely-1.8.2}/dataframely/testing/const.py +0 -0
  67. {dataframely-1.8.0 → dataframely-1.8.2}/dataframely/testing/factory.py +0 -0
  68. {dataframely-1.8.0 → dataframely-1.8.2}/dataframely/testing/mask.py +0 -0
  69. {dataframely-1.8.0 → dataframely-1.8.2}/dataframely/testing/rules.py +0 -0
  70. {dataframely-1.8.0 → dataframely-1.8.2}/dataframely/testing/typing.py +0 -0
  71. {dataframely-1.8.0 → dataframely-1.8.2}/docker-compose.yml +0 -0
  72. {dataframely-1.8.0 → dataframely-1.8.2}/docs/Makefile +0 -0
  73. {dataframely-1.8.0 → dataframely-1.8.2}/docs/_api/dataframely.collection.rst +0 -0
  74. {dataframely-1.8.0 → dataframely-1.8.2}/docs/_api/dataframely.columns.any.rst +0 -0
  75. {dataframely-1.8.0 → dataframely-1.8.2}/docs/_api/dataframely.columns.bool.rst +0 -0
  76. {dataframely-1.8.0 → dataframely-1.8.2}/docs/_api/dataframely.columns.datetime.rst +0 -0
  77. {dataframely-1.8.0 → dataframely-1.8.2}/docs/_api/dataframely.columns.decimal.rst +0 -0
  78. {dataframely-1.8.0 → dataframely-1.8.2}/docs/_api/dataframely.columns.enum.rst +0 -0
  79. {dataframely-1.8.0 → dataframely-1.8.2}/docs/_api/dataframely.columns.float.rst +0 -0
  80. {dataframely-1.8.0 → dataframely-1.8.2}/docs/_api/dataframely.columns.integer.rst +0 -0
  81. {dataframely-1.8.0 → dataframely-1.8.2}/docs/_api/dataframely.columns.list.rst +0 -0
  82. {dataframely-1.8.0 → dataframely-1.8.2}/docs/_api/dataframely.columns.rst +0 -0
  83. {dataframely-1.8.0 → dataframely-1.8.2}/docs/_api/dataframely.columns.string.rst +0 -0
  84. {dataframely-1.8.0 → dataframely-1.8.2}/docs/_api/dataframely.columns.struct.rst +0 -0
  85. {dataframely-1.8.0 → dataframely-1.8.2}/docs/_api/dataframely.config.rst +0 -0
  86. {dataframely-1.8.0 → dataframely-1.8.2}/docs/_api/dataframely.exc.rst +0 -0
  87. {dataframely-1.8.0 → dataframely-1.8.2}/docs/_api/dataframely.failure.rst +0 -0
  88. {dataframely-1.8.0 → dataframely-1.8.2}/docs/_api/dataframely.functional.rst +0 -0
  89. {dataframely-1.8.0 → dataframely-1.8.2}/docs/_api/dataframely.mypy.rst +0 -0
  90. {dataframely-1.8.0 → dataframely-1.8.2}/docs/_api/dataframely.random.rst +0 -0
  91. {dataframely-1.8.0 → dataframely-1.8.2}/docs/_api/dataframely.rst +0 -0
  92. {dataframely-1.8.0 → dataframely-1.8.2}/docs/_api/dataframely.schema.rst +0 -0
  93. {dataframely-1.8.0 → dataframely-1.8.2}/docs/_api/dataframely.testing.const.rst +0 -0
  94. {dataframely-1.8.0 → dataframely-1.8.2}/docs/_api/dataframely.testing.factory.rst +0 -0
  95. {dataframely-1.8.0 → dataframely-1.8.2}/docs/_api/dataframely.testing.mask.rst +0 -0
  96. {dataframely-1.8.0 → dataframely-1.8.2}/docs/_api/dataframely.testing.rst +0 -0
  97. {dataframely-1.8.0 → dataframely-1.8.2}/docs/_api/dataframely.testing.rules.rst +0 -0
  98. {dataframely-1.8.0 → dataframely-1.8.2}/docs/_api/dataframely.testing.typing.rst +0 -0
  99. {dataframely-1.8.0 → dataframely-1.8.2}/docs/_api/modules.rst +0 -0
  100. {dataframely-1.8.0 → dataframely-1.8.2}/docs/_static/custom.css +0 -0
  101. {dataframely-1.8.0 → dataframely-1.8.2}/docs/_static/favicon.ico +0 -0
  102. {dataframely-1.8.0 → dataframely-1.8.2}/docs/conf.py +0 -0
  103. {dataframely-1.8.0 → dataframely-1.8.2}/docs/index.rst +0 -0
  104. {dataframely-1.8.0 → dataframely-1.8.2}/docs/make.bat +0 -0
  105. {dataframely-1.8.0 → dataframely-1.8.2}/docs/sites/development.rst +0 -0
  106. {dataframely-1.8.0 → dataframely-1.8.2}/docs/sites/examples/real-world.ipynb +0 -0
  107. {dataframely-1.8.0 → dataframely-1.8.2}/docs/sites/faq.rst +0 -0
  108. {dataframely-1.8.0 → dataframely-1.8.2}/docs/sites/installation.rst +0 -0
  109. {dataframely-1.8.0 → dataframely-1.8.2}/docs/sites/quickstart.rst +0 -0
  110. {dataframely-1.8.0 → dataframely-1.8.2}/docs/sites/versioning.rst +0 -0
  111. {dataframely-1.8.0 → dataframely-1.8.2}/pixi.lock +0 -0
  112. {dataframely-1.8.0 → dataframely-1.8.2}/pixi.toml +0 -0
  113. {dataframely-1.8.0 → dataframely-1.8.2}/src/errdefs.rs +0 -0
  114. {dataframely-1.8.0 → dataframely-1.8.2}/src/lib.rs +0 -0
  115. {dataframely-1.8.0 → dataframely-1.8.2}/src/regex_repr.rs +0 -0
  116. {dataframely-1.8.0 → dataframely-1.8.2}/tests/benches/conftest.py +0 -0
  117. {dataframely-1.8.0 → dataframely-1.8.2}/tests/benches/test_collection.py +0 -0
  118. {dataframely-1.8.0 → dataframely-1.8.2}/tests/benches/test_failure.py +0 -0
  119. {dataframely-1.8.0 → dataframely-1.8.2}/tests/benches/test_schema.py +0 -0
  120. {dataframely-1.8.0 → dataframely-1.8.2}/tests/collection/test_base.py +0 -0
  121. {dataframely-1.8.0 → dataframely-1.8.2}/tests/collection/test_cast.py +0 -0
  122. {dataframely-1.8.0 → dataframely-1.8.2}/tests/collection/test_collection_future_annotations.py +0 -0
  123. {dataframely-1.8.0 → dataframely-1.8.2}/tests/collection/test_create_empty.py +0 -0
  124. {dataframely-1.8.0 → dataframely-1.8.2}/tests/collection/test_filter_one_to_n.py +0 -0
  125. {dataframely-1.8.0 → dataframely-1.8.2}/tests/collection/test_filter_validate.py +0 -0
  126. {dataframely-1.8.0 → dataframely-1.8.2}/tests/collection/test_ignore_in_filter.py +0 -0
  127. {dataframely-1.8.0 → dataframely-1.8.2}/tests/collection/test_implementation.py +0 -0
  128. {dataframely-1.8.0 → dataframely-1.8.2}/tests/collection/test_matches.py +0 -0
  129. {dataframely-1.8.0 → dataframely-1.8.2}/tests/collection/test_optional_members.py +0 -0
  130. {dataframely-1.8.0 → dataframely-1.8.2}/tests/collection/test_read_write_parquet.py +0 -0
  131. {dataframely-1.8.0 → dataframely-1.8.2}/tests/collection/test_repr.py +0 -0
  132. {dataframely-1.8.0 → dataframely-1.8.2}/tests/collection/test_sample.py +0 -0
  133. {dataframely-1.8.0 → dataframely-1.8.2}/tests/collection/test_validate_input.py +0 -0
  134. {dataframely-1.8.0 → dataframely-1.8.2}/tests/column_types/__init__.py +0 -0
  135. {dataframely-1.8.0 → dataframely-1.8.2}/tests/column_types/test_any.py +0 -0
  136. {dataframely-1.8.0 → dataframely-1.8.2}/tests/column_types/test_array.py +0 -0
  137. {dataframely-1.8.0 → dataframely-1.8.2}/tests/column_types/test_datetime.py +0 -0
  138. {dataframely-1.8.0 → dataframely-1.8.2}/tests/column_types/test_decimal.py +0 -0
  139. {dataframely-1.8.0 → dataframely-1.8.2}/tests/column_types/test_enum.py +0 -0
  140. {dataframely-1.8.0 → dataframely-1.8.2}/tests/column_types/test_float.py +0 -0
  141. {dataframely-1.8.0 → dataframely-1.8.2}/tests/column_types/test_integer.py +0 -0
  142. {dataframely-1.8.0 → dataframely-1.8.2}/tests/column_types/test_list.py +0 -0
  143. {dataframely-1.8.0 → dataframely-1.8.2}/tests/column_types/test_object.py +0 -0
  144. {dataframely-1.8.0 → dataframely-1.8.2}/tests/column_types/test_string.py +0 -0
  145. {dataframely-1.8.0 → dataframely-1.8.2}/tests/column_types/test_struct.py +0 -0
  146. {dataframely-1.8.0 → dataframely-1.8.2}/tests/columns/__init__.py +0 -0
  147. {dataframely-1.8.0 → dataframely-1.8.2}/tests/columns/test_alias.py +0 -0
  148. {dataframely-1.8.0 → dataframely-1.8.2}/tests/columns/test_check.py +0 -0
  149. {dataframely-1.8.0 → dataframely-1.8.2}/tests/columns/test_default_dtypes.py +0 -0
  150. {dataframely-1.8.0 → dataframely-1.8.2}/tests/columns/test_matches.py +0 -0
  151. {dataframely-1.8.0 → dataframely-1.8.2}/tests/columns/test_metadata.py +0 -0
  152. {dataframely-1.8.0 → dataframely-1.8.2}/tests/columns/test_polars_schema.py +0 -0
  153. {dataframely-1.8.0 → dataframely-1.8.2}/tests/columns/test_pyarrow.py +0 -0
  154. {dataframely-1.8.0 → dataframely-1.8.2}/tests/columns/test_rules.py +0 -0
  155. {dataframely-1.8.0 → dataframely-1.8.2}/tests/columns/test_sample.py +0 -0
  156. {dataframely-1.8.0 → dataframely-1.8.2}/tests/columns/test_sql_schema.py +0 -0
  157. {dataframely-1.8.0 → dataframely-1.8.2}/tests/columns/test_str.py +0 -0
  158. {dataframely-1.8.0 → dataframely-1.8.2}/tests/columns/test_utils.py +0 -0
  159. {dataframely-1.8.0 → dataframely-1.8.2}/tests/core_validation/__init__.py +0 -0
  160. {dataframely-1.8.0 → dataframely-1.8.2}/tests/core_validation/test_column_validation.py +0 -0
  161. {dataframely-1.8.0 → dataframely-1.8.2}/tests/core_validation/test_dtype_validation.py +0 -0
  162. {dataframely-1.8.0 → dataframely-1.8.2}/tests/core_validation/test_rule_evaluation.py +0 -0
  163. {dataframely-1.8.0 → dataframely-1.8.2}/tests/functional/test_concat.py +0 -0
  164. {dataframely-1.8.0 → dataframely-1.8.2}/tests/functional/test_relationships.py +0 -0
  165. {dataframely-1.8.0 → dataframely-1.8.2}/tests/schema/test_base.py +0 -0
  166. {dataframely-1.8.0 → dataframely-1.8.2}/tests/schema/test_cast.py +0 -0
  167. {dataframely-1.8.0 → dataframely-1.8.2}/tests/schema/test_create_empty.py +0 -0
  168. {dataframely-1.8.0 → dataframely-1.8.2}/tests/schema/test_create_empty_if_none.py +0 -0
  169. {dataframely-1.8.0 → dataframely-1.8.2}/tests/schema/test_filter.py +0 -0
  170. {dataframely-1.8.0 → dataframely-1.8.2}/tests/schema/test_inheritance.py +0 -0
  171. {dataframely-1.8.0 → dataframely-1.8.2}/tests/schema/test_matches.py +0 -0
  172. {dataframely-1.8.0 → dataframely-1.8.2}/tests/schema/test_read_write_parquet.py +0 -0
  173. {dataframely-1.8.0 → dataframely-1.8.2}/tests/schema/test_repr.py +0 -0
  174. {dataframely-1.8.0 → dataframely-1.8.2}/tests/schema/test_rule_implementation.py +0 -0
  175. {dataframely-1.8.0 → dataframely-1.8.2}/tests/schema/test_sample.py +0 -0
  176. {dataframely-1.8.0 → dataframely-1.8.2}/tests/schema/test_serialization.py +0 -0
  177. {dataframely-1.8.0 → dataframely-1.8.2}/tests/schema/test_validate.py +0 -0
  178. {dataframely-1.8.0 → dataframely-1.8.2}/tests/test_compat.py +0 -0
  179. {dataframely-1.8.0 → dataframely-1.8.2}/tests/test_config.py +0 -0
  180. {dataframely-1.8.0 → dataframely-1.8.2}/tests/test_deprecation.py +0 -0
  181. {dataframely-1.8.0 → dataframely-1.8.2}/tests/test_exc.py +0 -0
  182. {dataframely-1.8.0 → dataframely-1.8.2}/tests/test_extre.py +0 -0
  183. {dataframely-1.8.0 → dataframely-1.8.2}/tests/test_failure_info.py +0 -0
  184. {dataframely-1.8.0 → dataframely-1.8.2}/tests/test_random.py +0 -0
  185. {dataframely-1.8.0 → dataframely-1.8.2}/tests/test_serialization.py +0 -0
  186. {dataframely-1.8.0 → dataframely-1.8.2}/tests/test_typing.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dataframely
3
- Version: 1.8.0
3
+ Version: 1.8.2
4
4
  Classifier: Programming Language :: Python :: 3
5
5
  Classifier: Programming Language :: Python :: 3.10
6
6
  Classifier: Programming Language :: Python :: 3.11
@@ -1010,7 +1010,7 @@ def deserialize_collection(data: str) -> type[Collection]:
1010
1010
  {
1011
1011
  "__annotations__": annotations,
1012
1012
  **{
1013
- name: Filter(logic=lambda _: logic)
1013
+ name: Filter(logic=lambda _, logic=logic: logic) # type: ignore
1014
1014
  for name, logic in decoded["filters"].items()
1015
1015
  },
1016
1016
  },
@@ -1,10 +1,11 @@
1
1
  # Copyright (c) QuantCo 2025-2025
2
2
  # SPDX-License-Identifier: BSD-3-Clause
3
3
 
4
+ from __future__ import annotations
5
+
4
6
  from typing import Any
5
7
 
6
8
  import polars as pl
7
- from sqlalchemy import Dialect
8
9
 
9
10
  from dataframely._compat import pa, sa, sa_TypeEngine
10
11
  from dataframely.random import Generator
@@ -63,7 +64,7 @@ class Categorical(Column):
63
64
  def dtype(self) -> pl.DataType:
64
65
  return pl.Categorical()
65
66
 
66
- def sqlalchemy_dtype(self, dialect: Dialect) -> sa_TypeEngine:
67
+ def sqlalchemy_dtype(self, dialect: sa.Dialect) -> sa_TypeEngine:
67
68
  return sa.String()
68
69
 
69
70
  @property
@@ -25,7 +25,7 @@ description = "A declarative, polars-native data frame validation library"
25
25
  name = "dataframely"
26
26
  readme = "README.md"
27
27
  requires-python = ">=3.10"
28
- version = "1.8.0"
28
+ version = "1.8.2"
29
29
 
30
30
  [project.urls]
31
31
  Documentation = "https://dataframely.readthedocs.io/"
@@ -3,6 +3,7 @@
3
3
 
4
4
  import json
5
5
 
6
+ import polars as pl
6
7
  import pytest
7
8
 
8
9
  import dataframely as dy
@@ -59,6 +60,21 @@ class OptionalCollection(dy.Collection):
59
60
  "filter1": Filter(lambda c: c.s1.join(c.s2, on="a")),
60
61
  },
61
62
  ),
63
+ create_collection(
64
+ "test",
65
+ {
66
+ "s1": create_schema("schema1", {"a": dy.Int64(primary_key=True)}),
67
+ "s2": create_schema("schema2", {"a": dy.Int64(primary_key=True)}),
68
+ },
69
+ {
70
+ "filter1": Filter(lambda c: c.s1.join(c.s2, on="a")),
71
+ "filter2": Filter(
72
+ lambda c: c.s1.join_where(
73
+ c.s2, pl.col("a") + pl.col("a_right") < 10
74
+ )
75
+ ),
76
+ },
77
+ ),
62
78
  OptionalCollection,
63
79
  ],
64
80
  )
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes