dataframely 1.13.0__tar.gz → 2.0.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (259) hide show
  1. {dataframely-1.13.0 → dataframely-2.0.0}/.github/workflows/build.yml +12 -8
  2. {dataframely-1.13.0 → dataframely-2.0.0}/.github/workflows/chore.yml +1 -1
  3. {dataframely-1.13.0 → dataframely-2.0.0}/.github/workflows/ci.yml +23 -12
  4. {dataframely-1.13.0 → dataframely-2.0.0}/.github/workflows/nightly.yml +2 -2
  5. {dataframely-1.13.0 → dataframely-2.0.0}/.github/workflows/scorecard.yml +3 -3
  6. {dataframely-1.13.0 → dataframely-2.0.0}/.gitignore +1 -0
  7. {dataframely-1.13.0 → dataframely-2.0.0}/.pre-commit-config.yaml +17 -0
  8. {dataframely-1.13.0 → dataframely-2.0.0}/.readthedocs.yml +1 -3
  9. dataframely-2.0.0/Cargo.lock +2139 -0
  10. dataframely-2.0.0/Cargo.toml +34 -0
  11. {dataframely-1.13.0 → dataframely-2.0.0}/PKG-INFO +10 -6
  12. {dataframely-1.13.0 → dataframely-2.0.0}/README.md +2 -2
  13. {dataframely-1.13.0 → dataframely-2.0.0}/dataframely/__init__.py +6 -6
  14. {dataframely-1.13.0 → dataframely-2.0.0}/dataframely/_base_schema.py +43 -53
  15. {dataframely-1.13.0 → dataframely-2.0.0}/dataframely/_compat.py +14 -10
  16. dataframely-2.0.0/dataframely/_deprecation.py +27 -0
  17. dataframely-2.0.0/dataframely/_match_to_schema.py +89 -0
  18. dataframely-1.13.0/dataframely/_extre.pyi → dataframely-2.0.0/dataframely/_native.pyi +23 -10
  19. dataframely-2.0.0/dataframely/_plugin.py +84 -0
  20. {dataframely-1.13.0 → dataframely-2.0.0}/dataframely/_polars.py +8 -0
  21. {dataframely-1.13.0 → dataframely-2.0.0}/dataframely/_pydantic.py +4 -6
  22. {dataframely-1.13.0 → dataframely-2.0.0}/dataframely/_rule.py +50 -18
  23. {dataframely-1.13.0 → dataframely-2.0.0}/dataframely/_storage/delta.py +7 -4
  24. {dataframely-1.13.0 → dataframely-2.0.0}/dataframely/_storage/parquet.py +42 -24
  25. {dataframely-1.13.0 → dataframely-2.0.0}/dataframely/_typing.py +3 -3
  26. dataframely-2.0.0/dataframely/collection/__init__.py +20 -0
  27. dataframely-1.13.0/dataframely/_base_collection.py → dataframely-2.0.0/dataframely/collection/_base.py +42 -21
  28. {dataframely-1.13.0/dataframely → dataframely-2.0.0/dataframely/collection}/collection.py +278 -209
  29. dataframely-2.0.0/dataframely/collection/filter_result.py +70 -0
  30. {dataframely-1.13.0 → dataframely-2.0.0}/dataframely/columns/_base.py +5 -19
  31. {dataframely-1.13.0 → dataframely-2.0.0}/dataframely/columns/_mixins.py +1 -1
  32. {dataframely-1.13.0 → dataframely-2.0.0}/dataframely/columns/_registry.py +2 -2
  33. {dataframely-1.13.0 → dataframely-2.0.0}/dataframely/columns/any.py +2 -2
  34. {dataframely-1.13.0 → dataframely-2.0.0}/dataframely/columns/array.py +1 -1
  35. {dataframely-1.13.0 → dataframely-2.0.0}/dataframely/columns/categorical.py +3 -3
  36. {dataframely-1.13.0 → dataframely-2.0.0}/dataframely/columns/datetime.py +31 -31
  37. {dataframely-1.13.0 → dataframely-2.0.0}/dataframely/columns/decimal.py +5 -5
  38. {dataframely-1.13.0 → dataframely-2.0.0}/dataframely/columns/enum.py +3 -3
  39. {dataframely-1.13.0 → dataframely-2.0.0}/dataframely/columns/float.py +17 -12
  40. {dataframely-1.13.0 → dataframely-2.0.0}/dataframely/columns/integer.py +6 -6
  41. {dataframely-1.13.0 → dataframely-2.0.0}/dataframely/columns/list.py +5 -5
  42. {dataframely-1.13.0 → dataframely-2.0.0}/dataframely/columns/object.py +1 -1
  43. {dataframely-1.13.0 → dataframely-2.0.0}/dataframely/columns/string.py +5 -5
  44. {dataframely-1.13.0 → dataframely-2.0.0}/dataframely/columns/struct.py +4 -4
  45. dataframely-2.0.0/dataframely/exc.py +43 -0
  46. dataframely-1.13.0/dataframely/failure.py → dataframely-2.0.0/dataframely/filter_result.py +59 -2
  47. {dataframely-1.13.0 → dataframely-2.0.0}/dataframely/functional.py +37 -9
  48. {dataframely-1.13.0 → dataframely-2.0.0}/dataframely/random.py +37 -37
  49. {dataframely-1.13.0 → dataframely-2.0.0}/dataframely/schema.py +361 -205
  50. {dataframely-1.13.0 → dataframely-2.0.0}/dataframely/testing/factory.py +9 -3
  51. {dataframely-1.13.0 → dataframely-2.0.0}/dataframely/testing/mask.py +2 -2
  52. {dataframely-1.13.0 → dataframely-2.0.0}/dataframely/testing/storage.py +64 -48
  53. {dataframely-1.13.0 → dataframely-2.0.0}/docker-compose.yml +0 -1
  54. dataframely-2.0.0/docs/_templates/autosummary/class.rst +12 -0
  55. dataframely-2.0.0/docs/_templates/autosummary/method.rst +9 -0
  56. dataframely-2.0.0/docs/_templates/classes/column.rst +13 -0
  57. dataframely-2.0.0/docs/_templates/classes/error.rst +13 -0
  58. dataframely-2.0.0/docs/_templates/classes/filter_result.rst +14 -0
  59. dataframely-2.0.0/docs/api/collection/generation.rst +10 -0
  60. dataframely-2.0.0/docs/api/collection/index.rst +20 -0
  61. dataframely-2.0.0/docs/api/collection/io.rst +37 -0
  62. dataframely-2.0.0/docs/api/collection/metadata.rst +17 -0
  63. dataframely-2.0.0/docs/api/collection/operations.rst +11 -0
  64. dataframely-2.0.0/docs/api/collection/validation.rst +15 -0
  65. dataframely-2.0.0/docs/api/columns/index.rst +36 -0
  66. dataframely-2.0.0/docs/api/errors/index.rst +15 -0
  67. dataframely-2.0.0/docs/api/filter_result/failure_info.rst +37 -0
  68. dataframely-2.0.0/docs/api/filter_result/index.rst +19 -0
  69. dataframely-2.0.0/docs/api/index.rst +49 -0
  70. dataframely-2.0.0/docs/api/misc/index.rst +13 -0
  71. dataframely-2.0.0/docs/api/schema/conversion.rst +11 -0
  72. dataframely-2.0.0/docs/api/schema/generation.rst +11 -0
  73. dataframely-2.0.0/docs/api/schema/index.rst +20 -0
  74. dataframely-2.0.0/docs/api/schema/io.rst +37 -0
  75. dataframely-2.0.0/docs/api/schema/metadata.rst +12 -0
  76. dataframely-2.0.0/docs/api/schema/validation.rst +13 -0
  77. {dataframely-1.13.0 → dataframely-2.0.0}/docs/conf.py +92 -27
  78. dataframely-2.0.0/docs/css/custom.css +4 -0
  79. dataframely-2.0.0/docs/guides/development.md +54 -0
  80. dataframely-2.0.0/docs/guides/examples/index.md +8 -0
  81. {dataframely-1.13.0/docs/sites → dataframely-2.0.0/docs/guides}/examples/real-world.ipynb +35 -23
  82. dataframely-2.0.0/docs/guides/faq.md +48 -0
  83. dataframely-2.0.0/docs/guides/features/column-metadata.md +29 -0
  84. dataframely-2.0.0/docs/guides/features/data-generation.md +308 -0
  85. dataframely-2.0.0/docs/guides/features/index.md +12 -0
  86. dataframely-2.0.0/docs/guides/features/lazy-validation.md +41 -0
  87. dataframely-2.0.0/docs/guides/features/primary-keys.md +56 -0
  88. dataframely-2.0.0/docs/guides/features/serialization.md +203 -0
  89. dataframely-2.0.0/docs/guides/features/sql-generation.md +99 -0
  90. dataframely-2.0.0/docs/guides/index.md +22 -0
  91. dataframely-2.0.0/docs/guides/migration/index.md +39 -0
  92. dataframely-2.0.0/docs/guides/migration/v1-v2.md +161 -0
  93. dataframely-2.0.0/docs/guides/quickstart.md +244 -0
  94. dataframely-2.0.0/docs/index.md +27 -0
  95. {dataframely-1.13.0 → dataframely-2.0.0}/pixi.lock +16343 -9191
  96. {dataframely-1.13.0 → dataframely-2.0.0}/pixi.toml +31 -26
  97. {dataframely-1.13.0 → dataframely-2.0.0}/pyproject.toml +18 -10
  98. dataframely-2.0.0/rust-toolchain.toml +3 -0
  99. dataframely-2.0.0/src/lib.rs +15 -0
  100. dataframely-2.0.0/src/polars_plugin/mod.rs +90 -0
  101. dataframely-2.0.0/src/polars_plugin/rule_failure.rs +52 -0
  102. dataframely-2.0.0/src/polars_plugin/utils.rs +12 -0
  103. dataframely-2.0.0/src/polars_plugin/validation_error.rs +90 -0
  104. dataframely-1.13.0/src/lib.rs → dataframely-2.0.0/src/regex/mod.rs +5 -13
  105. dataframely-1.13.0/src/regex_repr.rs → dataframely-2.0.0/src/regex/repr.rs +55 -2
  106. {dataframely-1.13.0 → dataframely-2.0.0}/tests/benches/test_collection.py +6 -6
  107. {dataframely-1.13.0 → dataframely-2.0.0}/tests/benches/test_failure.py +1 -1
  108. {dataframely-1.13.0 → dataframely-2.0.0}/tests/benches/test_schema.py +7 -7
  109. {dataframely-1.13.0 → dataframely-2.0.0}/tests/collection/test_base.py +6 -5
  110. {dataframely-1.13.0 → dataframely-2.0.0}/tests/collection/test_cast.py +3 -3
  111. {dataframely-1.13.0 → dataframely-2.0.0}/tests/collection/test_create_empty.py +2 -2
  112. {dataframely-1.13.0 → dataframely-2.0.0}/tests/collection/test_filter_validate.py +81 -31
  113. {dataframely-1.13.0 → dataframely-2.0.0}/tests/collection/test_matches.py +3 -3
  114. {dataframely-1.13.0 → dataframely-2.0.0}/tests/collection/test_storage.py +121 -70
  115. {dataframely-1.13.0 → dataframely-2.0.0}/tests/column_types/test_array.py +22 -18
  116. {dataframely-1.13.0 → dataframely-2.0.0}/tests/column_types/test_datetime.py +27 -23
  117. {dataframely-1.13.0 → dataframely-2.0.0}/tests/column_types/test_decimal.py +9 -2
  118. {dataframely-1.13.0 → dataframely-2.0.0}/tests/column_types/test_float.py +12 -7
  119. {dataframely-1.13.0 → dataframely-2.0.0}/tests/column_types/test_integer.py +32 -3
  120. {dataframely-1.13.0 → dataframely-2.0.0}/tests/column_types/test_list.py +1 -1
  121. {dataframely-1.13.0 → dataframely-2.0.0}/tests/column_types/test_string.py +3 -3
  122. dataframely-2.0.0/tests/columns/test_base.py +12 -0
  123. {dataframely-1.13.0 → dataframely-2.0.0}/tests/columns/test_default_dtypes.py +1 -1
  124. {dataframely-1.13.0 → dataframely-2.0.0}/tests/columns/test_matches.py +5 -1
  125. {dataframely-1.13.0 → dataframely-2.0.0}/tests/columns/test_polars_schema.py +1 -1
  126. {dataframely-1.13.0 → dataframely-2.0.0}/tests/columns/test_pyarrow.py +68 -34
  127. {dataframely-1.13.0 → dataframely-2.0.0}/tests/columns/test_rules.py +3 -3
  128. {dataframely-1.13.0 → dataframely-2.0.0}/tests/columns/test_sample.py +7 -3
  129. dataframely-1.13.0/tests/columns/test_sql_schema.py → dataframely-2.0.0/tests/columns/test_sqlalchemy_columns.py +7 -7
  130. {dataframely-1.13.0 → dataframely-2.0.0}/tests/columns/test_str.py +1 -1
  131. dataframely-2.0.0/tests/conftest.py +49 -0
  132. dataframely-2.0.0/tests/core_validation/test_match_to_schema.py +74 -0
  133. {dataframely-1.13.0 → dataframely-2.0.0}/tests/failure_info/test_storage.py +37 -15
  134. {dataframely-1.13.0 → dataframely-2.0.0}/tests/functional/test_relationships.py +42 -11
  135. {dataframely-1.13.0 → dataframely-2.0.0}/tests/schema/test_base.py +35 -5
  136. {dataframely-1.13.0 → dataframely-2.0.0}/tests/schema/test_cast.py +1 -1
  137. {dataframely-1.13.0 → dataframely-2.0.0}/tests/schema/test_filter.py +68 -28
  138. {dataframely-1.13.0 → dataframely-2.0.0}/tests/schema/test_repr.py +7 -7
  139. {dataframely-1.13.0 → dataframely-2.0.0}/tests/schema/test_sample.py +54 -8
  140. {dataframely-1.13.0 → dataframely-2.0.0}/tests/schema/test_serialization.py +1 -1
  141. {dataframely-1.13.0 → dataframely-2.0.0}/tests/schema/test_storage.py +86 -35
  142. {dataframely-1.13.0 → dataframely-2.0.0}/tests/schema/test_validate.py +85 -54
  143. dataframely-2.0.0/tests/test_deprecation.py +24 -0
  144. dataframely-1.13.0/tests/test_extre.py → dataframely-2.0.0/tests/test_native_regex.py +11 -10
  145. {dataframely-1.13.0 → dataframely-2.0.0}/tests/test_pydantic.py +2 -2
  146. dataframely-2.0.0/tests/test_typing.py +82 -0
  147. dataframely-1.13.0/Cargo.lock +0 -359
  148. dataframely-1.13.0/Cargo.toml +0 -19
  149. dataframely-1.13.0/dataframely/_deprecation.py +0 -50
  150. dataframely-1.13.0/dataframely/_validation.py +0 -85
  151. dataframely-1.13.0/dataframely/exc.py +0 -112
  152. dataframely-1.13.0/dataframely/mypy.py +0 -424
  153. dataframely-1.13.0/dataframely/testing/typing.py +0 -30
  154. dataframely-1.13.0/docs/Makefile +0 -20
  155. dataframely-1.13.0/docs/_api/dataframely.collection.rst +0 -7
  156. dataframely-1.13.0/docs/_api/dataframely.columns.any.rst +0 -7
  157. dataframely-1.13.0/docs/_api/dataframely.columns.bool.rst +0 -7
  158. dataframely-1.13.0/docs/_api/dataframely.columns.datetime.rst +0 -7
  159. dataframely-1.13.0/docs/_api/dataframely.columns.decimal.rst +0 -7
  160. dataframely-1.13.0/docs/_api/dataframely.columns.enum.rst +0 -7
  161. dataframely-1.13.0/docs/_api/dataframely.columns.float.rst +0 -7
  162. dataframely-1.13.0/docs/_api/dataframely.columns.integer.rst +0 -7
  163. dataframely-1.13.0/docs/_api/dataframely.columns.list.rst +0 -7
  164. dataframely-1.13.0/docs/_api/dataframely.columns.rst +0 -106
  165. dataframely-1.13.0/docs/_api/dataframely.columns.string.rst +0 -7
  166. dataframely-1.13.0/docs/_api/dataframely.columns.struct.rst +0 -7
  167. dataframely-1.13.0/docs/_api/dataframely.config.rst +0 -7
  168. dataframely-1.13.0/docs/_api/dataframely.exc.rst +0 -7
  169. dataframely-1.13.0/docs/_api/dataframely.failure.rst +0 -7
  170. dataframely-1.13.0/docs/_api/dataframely.functional.rst +0 -7
  171. dataframely-1.13.0/docs/_api/dataframely.mypy.rst +0 -7
  172. dataframely-1.13.0/docs/_api/dataframely.random.rst +0 -7
  173. dataframely-1.13.0/docs/_api/dataframely.rst +0 -83
  174. dataframely-1.13.0/docs/_api/dataframely.schema.rst +0 -7
  175. dataframely-1.13.0/docs/_api/dataframely.testing.const.rst +0 -7
  176. dataframely-1.13.0/docs/_api/dataframely.testing.factory.rst +0 -7
  177. dataframely-1.13.0/docs/_api/dataframely.testing.mask.rst +0 -7
  178. dataframely-1.13.0/docs/_api/dataframely.testing.rst +0 -50
  179. dataframely-1.13.0/docs/_api/dataframely.testing.rules.rst +0 -7
  180. dataframely-1.13.0/docs/_api/dataframely.testing.typing.rst +0 -7
  181. dataframely-1.13.0/docs/_api/modules.rst +0 -7
  182. dataframely-1.13.0/docs/index.rst +0 -46
  183. dataframely-1.13.0/docs/make.bat +0 -35
  184. dataframely-1.13.0/docs/sites/development.rst +0 -49
  185. dataframely-1.13.0/docs/sites/faq.rst +0 -5
  186. dataframely-1.13.0/docs/sites/installation.rst +0 -9
  187. dataframely-1.13.0/docs/sites/quickstart.rst +0 -262
  188. dataframely-1.13.0/docs/sites/versioning.rst +0 -20
  189. dataframely-1.13.0/tests/core_validation/test_column_validation.py +0 -27
  190. dataframely-1.13.0/tests/core_validation/test_dtype_validation.py +0 -106
  191. dataframely-1.13.0/tests/test_deprecation.py +0 -63
  192. dataframely-1.13.0/tests/test_exc.py +0 -43
  193. dataframely-1.13.0/tests/test_typing.py +0 -288
  194. {dataframely-1.13.0 → dataframely-2.0.0}/.copier-answers.yml +0 -0
  195. {dataframely-1.13.0 → dataframely-2.0.0}/.envrc +0 -0
  196. {dataframely-1.13.0 → dataframely-2.0.0}/.gitattributes +0 -0
  197. {dataframely-1.13.0 → dataframely-2.0.0}/.github/CODEOWNERS +0 -0
  198. {dataframely-1.13.0 → dataframely-2.0.0}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  199. {dataframely-1.13.0 → dataframely-2.0.0}/.github/dependabot.yml +0 -0
  200. {dataframely-1.13.0 → dataframely-2.0.0}/.github/release-drafter.yml +0 -0
  201. {dataframely-1.13.0 → dataframely-2.0.0}/.prettierignore +0 -0
  202. {dataframely-1.13.0 → dataframely-2.0.0}/.prettierrc +0 -0
  203. {dataframely-1.13.0 → dataframely-2.0.0}/LICENSE +0 -0
  204. {dataframely-1.13.0 → dataframely-2.0.0}/SECURITY.md +0 -0
  205. {dataframely-1.13.0 → dataframely-2.0.0}/dataframely/_filter.py +0 -0
  206. {dataframely-1.13.0 → dataframely-2.0.0}/dataframely/_serialization.py +0 -0
  207. {dataframely-1.13.0 → dataframely-2.0.0}/dataframely/_storage/__init__.py +0 -0
  208. {dataframely-1.13.0 → dataframely-2.0.0}/dataframely/_storage/_base.py +0 -0
  209. {dataframely-1.13.0 → dataframely-2.0.0}/dataframely/_storage/_exc.py +0 -0
  210. {dataframely-1.13.0 → dataframely-2.0.0}/dataframely/_storage/constants.py +0 -0
  211. {dataframely-1.13.0 → dataframely-2.0.0}/dataframely/columns/__init__.py +0 -0
  212. {dataframely-1.13.0 → dataframely-2.0.0}/dataframely/columns/_utils.py +0 -0
  213. {dataframely-1.13.0 → dataframely-2.0.0}/dataframely/columns/binary.py +0 -0
  214. {dataframely-1.13.0 → dataframely-2.0.0}/dataframely/columns/bool.py +0 -0
  215. {dataframely-1.13.0 → dataframely-2.0.0}/dataframely/config.py +0 -0
  216. {dataframely-1.13.0 → dataframely-2.0.0}/dataframely/py.typed +0 -0
  217. {dataframely-1.13.0 → dataframely-2.0.0}/dataframely/testing/__init__.py +0 -0
  218. {dataframely-1.13.0 → dataframely-2.0.0}/dataframely/testing/const.py +0 -0
  219. {dataframely-1.13.0 → dataframely-2.0.0}/dataframely/testing/rules.py +0 -0
  220. {dataframely-1.13.0 → dataframely-2.0.0}/docs/_static/custom.css +0 -0
  221. {dataframely-1.13.0 → dataframely-2.0.0}/docs/_static/favicon.ico +0 -0
  222. {dataframely-1.13.0/src → dataframely-2.0.0/src/regex}/errdefs.rs +0 -0
  223. {dataframely-1.13.0 → dataframely-2.0.0}/tests/benches/conftest.py +0 -0
  224. {dataframely-1.13.0 → dataframely-2.0.0}/tests/collection/test_collection_future_annotations.py +0 -0
  225. {dataframely-1.13.0 → dataframely-2.0.0}/tests/collection/test_filter_one_to_n.py +0 -0
  226. {dataframely-1.13.0 → dataframely-2.0.0}/tests/collection/test_ignore_in_filter.py +0 -0
  227. {dataframely-1.13.0 → dataframely-2.0.0}/tests/collection/test_implementation.py +0 -0
  228. {dataframely-1.13.0 → dataframely-2.0.0}/tests/collection/test_join.py +0 -0
  229. {dataframely-1.13.0 → dataframely-2.0.0}/tests/collection/test_optional_members.py +0 -0
  230. {dataframely-1.13.0 → dataframely-2.0.0}/tests/collection/test_repr.py +0 -0
  231. {dataframely-1.13.0 → dataframely-2.0.0}/tests/collection/test_sample.py +0 -0
  232. {dataframely-1.13.0 → dataframely-2.0.0}/tests/collection/test_serialization.py +0 -0
  233. {dataframely-1.13.0 → dataframely-2.0.0}/tests/collection/test_validate_input.py +0 -0
  234. {dataframely-1.13.0 → dataframely-2.0.0}/tests/column_types/__init__.py +0 -0
  235. {dataframely-1.13.0 → dataframely-2.0.0}/tests/column_types/test_any.py +0 -0
  236. {dataframely-1.13.0 → dataframely-2.0.0}/tests/column_types/test_binary.py +0 -0
  237. {dataframely-1.13.0 → dataframely-2.0.0}/tests/column_types/test_enum.py +0 -0
  238. {dataframely-1.13.0 → dataframely-2.0.0}/tests/column_types/test_object.py +0 -0
  239. {dataframely-1.13.0 → dataframely-2.0.0}/tests/column_types/test_struct.py +0 -0
  240. {dataframely-1.13.0 → dataframely-2.0.0}/tests/columns/__init__.py +0 -0
  241. {dataframely-1.13.0 → dataframely-2.0.0}/tests/columns/test_alias.py +0 -0
  242. {dataframely-1.13.0 → dataframely-2.0.0}/tests/columns/test_check.py +0 -0
  243. {dataframely-1.13.0 → dataframely-2.0.0}/tests/columns/test_metadata.py +0 -0
  244. {dataframely-1.13.0 → dataframely-2.0.0}/tests/columns/test_utils.py +0 -0
  245. {dataframely-1.13.0 → dataframely-2.0.0}/tests/core_validation/__init__.py +0 -0
  246. {dataframely-1.13.0 → dataframely-2.0.0}/tests/core_validation/test_rule_evaluation.py +0 -0
  247. {dataframely-1.13.0 → dataframely-2.0.0}/tests/functional/test_concat.py +0 -0
  248. {dataframely-1.13.0 → dataframely-2.0.0}/tests/schema/test_create_empty.py +0 -0
  249. {dataframely-1.13.0 → dataframely-2.0.0}/tests/schema/test_create_empty_if_none.py +0 -0
  250. {dataframely-1.13.0 → dataframely-2.0.0}/tests/schema/test_inheritance.py +0 -0
  251. {dataframely-1.13.0 → dataframely-2.0.0}/tests/schema/test_matches.py +0 -0
  252. {dataframely-1.13.0 → dataframely-2.0.0}/tests/schema/test_read_write_parquet.py +0 -0
  253. {dataframely-1.13.0 → dataframely-2.0.0}/tests/schema/test_rule_implementation.py +0 -0
  254. {dataframely-1.13.0 → dataframely-2.0.0}/tests/storage/test_delta.py +0 -0
  255. {dataframely-1.13.0 → dataframely-2.0.0}/tests/test_compat.py +0 -0
  256. {dataframely-1.13.0 → dataframely-2.0.0}/tests/test_config.py +0 -0
  257. {dataframely-1.13.0 → dataframely-2.0.0}/tests/test_factory.py +0 -0
  258. {dataframely-1.13.0 → dataframely-2.0.0}/tests/test_random.py +0 -0
  259. {dataframely-1.13.0 → dataframely-2.0.0}/tests/test_serialization.py +0 -0
@@ -13,11 +13,11 @@ jobs:
13
13
  permissions:
14
14
  contents: read
15
15
  steps:
16
- - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
16
+ - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
17
17
  with:
18
18
  fetch-depth: 0
19
19
  - name: Set up pixi
20
- uses: prefix-dev/setup-pixi@8ca4608ef7f4daeb54f5205b20d0b7cb42f11143 # v0.8.14
20
+ uses: prefix-dev/setup-pixi@194d461b21b6c5717c722ffc597fa91ed2ff29fa # v0.9.1
21
21
  with:
22
22
  environments: build
23
23
  - name: Set version
@@ -48,21 +48,25 @@ jobs:
48
48
  - target-platform: win-64
49
49
  os: windows-latest
50
50
  steps:
51
- - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
51
+ - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
52
52
  with:
53
53
  fetch-depth: 0
54
54
  - name: Set up pixi
55
- uses: prefix-dev/setup-pixi@8ca4608ef7f4daeb54f5205b20d0b7cb42f11143 # v0.8.14
55
+ uses: prefix-dev/setup-pixi@194d461b21b6c5717c722ffc597fa91ed2ff29fa # v0.9.1
56
56
  with:
57
57
  environments: build
58
58
  - name: Set version
59
59
  run: pixi run -e build set-version
60
+ - uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6.0.0
61
+ with:
62
+ python-version: "3.10"
60
63
  - name: Build wheel
61
- uses: PyO3/maturin-action@e10f6c464b90acceb5f640d31beda6d586ba7b4a # v1.49.3
64
+ uses: PyO3/maturin-action@86b9d133d34bc1b40018696f782949dac11bd380 # v1.49.4
62
65
  with:
63
66
  command: build
64
- args: --out dist -i python3.10
67
+ args: --out dist --release
65
68
  manylinux: auto
69
+ sccache: true
66
70
  - name: Check package
67
71
  run: pixi run -e build check-wheel
68
72
  - name: Upload package
@@ -80,9 +84,9 @@ jobs:
80
84
  id-token: write
81
85
  environment: pypi
82
86
  steps:
83
- - uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
87
+ - uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
84
88
  with:
85
89
  path: dist
86
90
  merge-multiple: true
87
91
  - name: Publish package on PyPi
88
- uses: pypa/gh-action-pypi-publish@76f52bc884231f62b9a034ebfe128415bbaabdfc # v1.12.4
92
+ uses: pypa/gh-action-pypi-publish@ed0c53931b1dc9bd32cbe73a98c7f6766f8a527e # v1.13.0
@@ -21,7 +21,7 @@ jobs:
21
21
  steps:
22
22
  - name: Check valid conventional commit message
23
23
  id: lint
24
- uses: amannn/action-semantic-pull-request@0723387faaf9b38adef4775cd42cfd5155ed6017 # v5.5.3
24
+ uses: amannn/action-semantic-pull-request@48f256284bd46cdaab1048c3721360e808335d50 # v6.1.1
25
25
  with:
26
26
  subjectPattern: ^[A-Z].+[^. ]$ # subject must start with uppercase letter and may not end with a dot/space
27
27
  env:
@@ -19,49 +19,60 @@ jobs:
19
19
  runs-on: ubuntu-latest
20
20
  steps:
21
21
  - name: Checkout branch
22
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
22
+ uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
23
23
  with:
24
24
  # needed for 'pre-commit-mirrors-insert-license'
25
25
  fetch-depth: 0
26
26
  - name: Set up pixi
27
- uses: prefix-dev/setup-pixi@8ca4608ef7f4daeb54f5205b20d0b7cb42f11143 # v0.8.14
27
+ uses: prefix-dev/setup-pixi@194d461b21b6c5717c722ffc597fa91ed2ff29fa # v0.9.1
28
28
  with:
29
29
  environments: default lint
30
- - name: Install repository
31
- run: pixi run -e default postinstall
30
+ - name: Install Rust
31
+ run: rustup show
32
+ - name: Cache Rust dependencies
33
+ uses: Swatinem/rust-cache@f13886b937689c021905a6b90929199931d60db1 # v2.8.1
32
34
  - name: pre-commit
33
35
  run: pixi run pre-commit-run --color=always --show-diff-on-failure
34
36
 
35
37
  unit-tests:
36
- name: Unit Tests (${{ matrix.os == 'ubuntu-latest' && 'Linux' || 'Windows' }}) - ${{ matrix.environment }}
38
+ name: Unit Tests (${{ contains(matrix.os, 'ubuntu') && 'Linux' || (contains(matrix.os, 'windows') && 'Windows' || 'macOS') }}) - ${{ matrix.environment }}
37
39
  timeout-minutes: 30
38
40
  runs-on: ${{ matrix.os }}
39
41
  strategy:
40
42
  fail-fast: true
41
43
  matrix:
42
- os: [ubuntu-latest, windows-latest]
43
- environment: [py310, py311, py312, py313]
44
+ os: [ubuntu-latest, windows-latest, macos-latest]
45
+ environment: [py310, py311, py312, py313, py314]
44
46
  with_optionals: [false]
45
47
  include:
46
48
  - os: ubuntu-latest
47
- environment: py313-optionals
49
+ environment: py314-optionals
48
50
  with_optionals: true
49
51
  - os: windows-latest
50
- environment: py313-optionals
52
+ environment: py314-optionals
53
+ with_optionals: true
54
+ - os: macos-latest
55
+ environment: py314-optionals
51
56
  with_optionals: true
52
57
  steps:
53
58
  - name: Checkout branch
54
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
59
+ uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
55
60
  - name: Set up pixi
56
- uses: prefix-dev/setup-pixi@8ca4608ef7f4daeb54f5205b20d0b7cb42f11143 # v0.8.14
61
+ uses: prefix-dev/setup-pixi@194d461b21b6c5717c722ffc597fa91ed2ff29fa # v0.9.1
57
62
  with:
58
63
  environments: ${{ matrix.environment }}
64
+ # FIXME: Remove when `s3_server` fixture does not start a process anymore
65
+ post-cleanup: ${{ matrix.os != 'windows-latest' }}
66
+ - name: Install Rust
67
+ run: rustup show
68
+ - name: Cache Rust dependencies
69
+ uses: Swatinem/rust-cache@f13886b937689c021905a6b90929199931d60db1 # v2.8.1
59
70
  - name: Install repository
60
71
  run: pixi run -e ${{ matrix.environment }} postinstall
61
72
  - name: Run pytest
62
73
  run: pixi run -e ${{ matrix.environment }} test-coverage --color=yes ${{ matrix.with_optionals && '-m with_optionals' || '-m "not with_optionals"'}} --cov=dataframely --cov-report=xml
63
74
  - name: Upload codecov
64
- uses: codecov/codecov-action@18283e04ce6e62d37312384ff67231eb8fd56d24 # v5.4.3
75
+ uses: codecov/codecov-action@5a1091511ad55cbe89839c7260b706298ca349f7 # v5.5.1
65
76
  with:
66
77
  files: ./coverage.xml
67
78
  token: ${{ secrets.CODECOV_TOKEN }}
@@ -23,9 +23,9 @@ jobs:
23
23
  os: [ubuntu-latest, windows-latest]
24
24
  steps:
25
25
  - name: Checkout branch
26
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
26
+ uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
27
27
  - name: Set up pixi
28
- uses: prefix-dev/setup-pixi@8ca4608ef7f4daeb54f5205b20d0b7cb42f11143 # v0.8.14
28
+ uses: prefix-dev/setup-pixi@194d461b21b6c5717c722ffc597fa91ed2ff29fa # v0.9.1
29
29
  with:
30
30
  environments: nightly
31
31
  - name: Install polars nightly
@@ -35,12 +35,12 @@ jobs:
35
35
 
36
36
  steps:
37
37
  - name: "Checkout code"
38
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
38
+ uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
39
39
  with:
40
40
  persist-credentials: false
41
41
 
42
42
  - name: "Run analysis"
43
- uses: ossf/scorecard-action@05b42c624433fc40578a4040d5cf5e36ddca8cde # v2.4.2
43
+ uses: ossf/scorecard-action@4eaacf0543bb3f2c246792bd56e8cdeffafb205a # v2.4.3
44
44
  with:
45
45
  results_file: results.sarif
46
46
  results_format: sarif
@@ -74,6 +74,6 @@ jobs:
74
74
  # Upload the results to GitHub's code scanning dashboard (optional).
75
75
  # Commenting out will disable upload of results to your repo's Code Scanning dashboard
76
76
  - name: "Upload to code-scanning"
77
- uses: github/codeql-action/upload-sarif@51f77329afa6477de8c49fc9c7046c15b9a4e79d # v3.29.5
77
+ uses: github/codeql-action/upload-sarif@3599b3baa15b485a2e49ef411a7a4bb2452e7f93 # v3.29.5
78
78
  with:
79
79
  sarif_file: results.sarif
@@ -213,6 +213,7 @@ instance/
213
213
 
214
214
  # Sphinx documentation
215
215
  docs/_build/
216
+ docs/**/_gen/
216
217
 
217
218
  # PyBuilder
218
219
  .pybuilder/
@@ -48,6 +48,22 @@ repos:
48
48
  language: system
49
49
  types: [python]
50
50
  require_serial: true
51
+ # cargo-fmt
52
+ - id: cargo-fmt
53
+ name: cargo-fmt
54
+ entry: cargo fmt
55
+ language: system
56
+ types: [rust]
57
+ require_serial: true
58
+ pass_filenames: false
59
+ # cargo-clippy
60
+ - id: cargo-clippy
61
+ name: cargo-clippy
62
+ entry: cargo clippy --all-targets
63
+ language: system
64
+ types: [rust]
65
+ require_serial: true
66
+ pass_filenames: false
51
67
  # prettier
52
68
  - id: prettier
53
69
  name: prettier
@@ -77,6 +93,7 @@ repos:
77
93
  entry: pixi run -e lint check-merge-conflict --assume-in-merge
78
94
  language: system
79
95
  types: [text]
96
+ exclude: \.rst$
80
97
  # typos
81
98
  - id: typos
82
99
  name: typos
@@ -4,9 +4,7 @@ build:
4
4
  tools:
5
5
  python: mambaforge-latest
6
6
  commands:
7
- - mamba install -c conda-forge -c nodefaults pixi
8
- - pixi run -e docs postinstall
9
- - pixi run -e docs docs
7
+ - mamba install -c conda-forge/label/rust_dev -c conda-forge -c nodefaults pixi rust
10
8
  - pixi run -e docs readthedocs
11
9
  sphinx:
12
10
  configuration: docs/conf.py