patito 0.8.4__tar.gz → 0.8.5__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 (77) hide show
  1. {patito-0.8.4 → patito-0.8.5}/PKG-INFO +2 -2
  2. {patito-0.8.4 → patito-0.8.5}/pyproject.toml +2 -2
  3. {patito-0.8.4 → patito-0.8.5}/src/patito/polars.py +3 -4
  4. {patito-0.8.4 → patito-0.8.5}/uv.lock +13 -13
  5. {patito-0.8.4 → patito-0.8.5}/.github/workflows/ci.yml +0 -0
  6. {patito-0.8.4 → patito-0.8.5}/.github/workflows/coverage.yml +0 -0
  7. {patito-0.8.4 → patito-0.8.5}/.github/workflows/pre-commit.yml +0 -0
  8. {patito-0.8.4 → patito-0.8.5}/.github/workflows/release.yml +0 -0
  9. {patito-0.8.4 → patito-0.8.5}/.gitignore +0 -0
  10. {patito-0.8.4 → patito-0.8.5}/.pre-commit-config.yaml +0 -0
  11. {patito-0.8.4 → patito-0.8.5}/.readthedocs.yaml +0 -0
  12. {patito-0.8.4 → patito-0.8.5}/.tool-versions +0 -0
  13. {patito-0.8.4 → patito-0.8.5}/LICENSE +0 -0
  14. {patito-0.8.4 → patito-0.8.5}/README.md +0 -0
  15. {patito-0.8.4 → patito-0.8.5}/docs/_static/css/custom.css +0 -0
  16. {patito-0.8.4 → patito-0.8.5}/docs/api/index.rst +0 -0
  17. {patito-0.8.4 → patito-0.8.5}/docs/api/patito/DataFrame/cast.rst +0 -0
  18. {patito-0.8.4 → patito-0.8.5}/docs/api/patito/DataFrame/derive.rst +0 -0
  19. {patito-0.8.4 → patito-0.8.5}/docs/api/patito/DataFrame/drop.rst +0 -0
  20. {patito-0.8.4 → patito-0.8.5}/docs/api/patito/DataFrame/fill_null.rst +0 -0
  21. {patito-0.8.4 → patito-0.8.5}/docs/api/patito/DataFrame/get.rst +0 -0
  22. {patito-0.8.4 → patito-0.8.5}/docs/api/patito/DataFrame/index.rst +0 -0
  23. {patito-0.8.4 → patito-0.8.5}/docs/api/patito/DataFrame/iter_models.rst +0 -0
  24. {patito-0.8.4 → patito-0.8.5}/docs/api/patito/DataFrame/read_csv.rst +0 -0
  25. {patito-0.8.4 → patito-0.8.5}/docs/api/patito/DataFrame/set_model.rst +0 -0
  26. {patito-0.8.4 → patito-0.8.5}/docs/api/patito/DataFrame/validate.rst +0 -0
  27. {patito-0.8.4 → patito-0.8.5}/docs/api/patito/Field/index.rst +0 -0
  28. {patito-0.8.4 → patito-0.8.5}/docs/api/patito/Model/DataFrame.rst +0 -0
  29. {patito-0.8.4 → patito-0.8.5}/docs/api/patito/Model/LazyFrame.rst +0 -0
  30. {patito-0.8.4 → patito-0.8.5}/docs/api/patito/Model/columns.rst +0 -0
  31. {patito-0.8.4 → patito-0.8.5}/docs/api/patito/Model/defaults.rst +0 -0
  32. {patito-0.8.4 → patito-0.8.5}/docs/api/patito/Model/drop.rst +0 -0
  33. {patito-0.8.4 → patito-0.8.5}/docs/api/patito/Model/dtypes.rst +0 -0
  34. {patito-0.8.4 → patito-0.8.5}/docs/api/patito/Model/example.rst +0 -0
  35. {patito-0.8.4 → patito-0.8.5}/docs/api/patito/Model/example_value.rst +0 -0
  36. {patito-0.8.4 → patito-0.8.5}/docs/api/patito/Model/examples.rst +0 -0
  37. {patito-0.8.4 → patito-0.8.5}/docs/api/patito/Model/from_row.rst +0 -0
  38. {patito-0.8.4 → patito-0.8.5}/docs/api/patito/Model/index.rst +0 -0
  39. {patito-0.8.4 → patito-0.8.5}/docs/api/patito/Model/iter_models.rst +0 -0
  40. {patito-0.8.4 → patito-0.8.5}/docs/api/patito/Model/join.rst +0 -0
  41. {patito-0.8.4 → patito-0.8.5}/docs/api/patito/Model/non_nullable_columns.rst +0 -0
  42. {patito-0.8.4 → patito-0.8.5}/docs/api/patito/Model/nullable_columns.rst +0 -0
  43. {patito-0.8.4 → patito-0.8.5}/docs/api/patito/Model/pandas_examples.rst +0 -0
  44. {patito-0.8.4 → patito-0.8.5}/docs/api/patito/Model/prefix.rst +0 -0
  45. {patito-0.8.4 → patito-0.8.5}/docs/api/patito/Model/rename.rst +0 -0
  46. {patito-0.8.4 → patito-0.8.5}/docs/api/patito/Model/select.rst +0 -0
  47. {patito-0.8.4 → patito-0.8.5}/docs/api/patito/Model/suffix.rst +0 -0
  48. {patito-0.8.4 → patito-0.8.5}/docs/api/patito/Model/unique_columns.rst +0 -0
  49. {patito-0.8.4 → patito-0.8.5}/docs/api/patito/Model/valid_dtypes.rst +0 -0
  50. {patito-0.8.4 → patito-0.8.5}/docs/api/patito/Model/validate.rst +0 -0
  51. {patito-0.8.4 → patito-0.8.5}/docs/api/patito/Model/with_fields.rst +0 -0
  52. {patito-0.8.4 → patito-0.8.5}/docs/conf.py +0 -0
  53. {patito-0.8.4 → patito-0.8.5}/docs/fix_header_underline.py +0 -0
  54. {patito-0.8.4 → patito-0.8.5}/docs/index.rst +0 -0
  55. {patito-0.8.4 → patito-0.8.5}/docs/license.rst +0 -0
  56. {patito-0.8.4 → patito-0.8.5}/docs/tutorial/dataframe-validation.rst +0 -0
  57. {patito-0.8.4 → patito-0.8.5}/docs/tutorial/index.rst +0 -0
  58. {patito-0.8.4 → patito-0.8.5}/noxfile.py +0 -0
  59. {patito-0.8.4 → patito-0.8.5}/src/patito/__init__.py +0 -0
  60. {patito-0.8.4 → patito-0.8.5}/src/patito/_docs.py +0 -0
  61. {patito-0.8.4 → patito-0.8.5}/src/patito/_pydantic/__init__.py +0 -0
  62. {patito-0.8.4 → patito-0.8.5}/src/patito/_pydantic/column_info.py +0 -0
  63. {patito-0.8.4 → patito-0.8.5}/src/patito/_pydantic/dtypes/__init__.py +0 -0
  64. {patito-0.8.4 → patito-0.8.5}/src/patito/_pydantic/dtypes/dtypes.py +0 -0
  65. {patito-0.8.4 → patito-0.8.5}/src/patito/_pydantic/dtypes/utils.py +0 -0
  66. {patito-0.8.4 → patito-0.8.5}/src/patito/_pydantic/repr.py +0 -0
  67. {patito-0.8.4 → patito-0.8.5}/src/patito/_pydantic/schema.py +0 -0
  68. {patito-0.8.4 → patito-0.8.5}/src/patito/exceptions.py +0 -0
  69. {patito-0.8.4 → patito-0.8.5}/src/patito/pydantic.py +0 -0
  70. {patito-0.8.4 → patito-0.8.5}/src/patito/validators.py +0 -0
  71. {patito-0.8.4 → patito-0.8.5}/tests/__init__.py +0 -0
  72. {patito-0.8.4 → patito-0.8.5}/tests/examples.py +0 -0
  73. {patito-0.8.4 → patito-0.8.5}/tests/test_dtypes.py +0 -0
  74. {patito-0.8.4 → patito-0.8.5}/tests/test_dummy_data.py +0 -0
  75. {patito-0.8.4 → patito-0.8.5}/tests/test_model.py +0 -0
  76. {patito-0.8.4 → patito-0.8.5}/tests/test_polars.py +0 -0
  77. {patito-0.8.4 → patito-0.8.5}/tests/test_validators.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: patito
3
- Version: 0.8.4
3
+ Version: 0.8.5
4
4
  Summary: A dataframe modelling library built on top of polars and pydantic.
5
5
  Project-URL: Homepage, https://github.com/JakobGM/patito
6
6
  Project-URL: Repository, https://github.com/JakobGM/patito
@@ -10,7 +10,7 @@ License-Expression: MIT
10
10
  License-File: LICENSE
11
11
  Keywords: dataframe,validation
12
12
  Requires-Python: >=3.9
13
- Requires-Dist: polars>=1.10.0
13
+ Requires-Dist: polars>=1.32.0
14
14
  Requires-Dist: pydantic>=2.7.0
15
15
  Requires-Dist: typing-extensions
16
16
  Provides-Extra: caching
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "patito"
3
- version = "0.8.4"
3
+ version = "0.8.5"
4
4
  description = "A dataframe modelling library built on top of polars and pydantic."
5
5
  authors = [
6
6
  { name = "Jakob Gerhard Martinussen", email = "jakobgm@gmail.com" },
@@ -15,7 +15,7 @@ keywords = [
15
15
  ]
16
16
  dependencies = [
17
17
  "pydantic>=2.7.0",
18
- "polars>=1.10.0",
18
+ "polars>=1.32.0",
19
19
  "typing-extensions",
20
20
  ]
21
21
 
@@ -443,7 +443,7 @@ class DataFrame(pl.DataFrame, Generic[ModelType]):
443
443
  >>> casted_classes.validate()
444
444
 
445
445
  """
446
- return model.DataFrame(self._df)
446
+ return model.DataFrame._from_pydf(self._df)
447
447
 
448
448
  def unalias(self: DF) -> DF:
449
449
  """Un-aliases column names using information from pydantic validation_alias.
@@ -537,9 +537,8 @@ class DataFrame(pl.DataFrame, Generic[ModelType]):
537
537
 
538
538
  """
539
539
  if columns is not None:
540
- # I get a single null row if I try to use super() here, so go via
541
- # pl.DataFrame instead.
542
- return self._from_pydf(pl.DataFrame(self._df).drop(columns)._df)
540
+ # Use super() to call polars DataFrame drop method directly
541
+ return self._from_pydf(super().drop(columns)._df)
543
542
  else:
544
543
  return self.drop(list(set(self.columns) - set(self.model.columns)))
545
544
 
@@ -1,5 +1,5 @@
1
1
  version = 1
2
- revision = 2
2
+ revision = 3
3
3
  requires-python = ">=3.9"
4
4
  resolution-markers = [
5
5
  "python_full_version >= '3.13'",
@@ -1518,7 +1518,7 @@ wheels = [
1518
1518
 
1519
1519
  [[package]]
1520
1520
  name = "patito"
1521
- version = "0.8.4"
1521
+ version = "0.8.5"
1522
1522
  source = { editable = "." }
1523
1523
  dependencies = [
1524
1524
  { name = "polars" },
@@ -1550,7 +1550,7 @@ dev = [
1550
1550
  { name = "pyright" },
1551
1551
  { name = "pytest" },
1552
1552
  { name = "pytest-cov" },
1553
- { name = "pytest-watcher", marker = "python_full_version < '4.0'" },
1553
+ { name = "pytest-watcher", marker = "python_full_version < '4'" },
1554
1554
  { name = "ruff" },
1555
1555
  { name = "sphinx" },
1556
1556
  { name = "types-setuptools" },
@@ -1568,7 +1568,7 @@ docs = [
1568
1568
  [package.metadata]
1569
1569
  requires-dist = [
1570
1570
  { name = "pandas", marker = "extra == 'pandas'" },
1571
- { name = "polars", specifier = ">=1.10.0" },
1571
+ { name = "polars", specifier = ">=1.32.0" },
1572
1572
  { name = "pyarrow", marker = "extra == 'caching'", specifier = ">=5.0.0" },
1573
1573
  { name = "pydantic", specifier = ">=2.7.0" },
1574
1574
  { name = "typing-extensions" },
@@ -1589,7 +1589,7 @@ dev = [
1589
1589
  { name = "pyright", specifier = ">=1.1.239" },
1590
1590
  { name = "pytest", specifier = ">=7.1.2" },
1591
1591
  { name = "pytest-cov", specifier = ">=3.0.0" },
1592
- { name = "pytest-watcher", marker = "python_full_version >= '3.9' and python_full_version < '4.0'", specifier = ">=0.2.3" },
1592
+ { name = "pytest-watcher", marker = "python_full_version >= '3.9' and python_full_version < '4'", specifier = ">=0.2.3" },
1593
1593
  { name = "ruff", specifier = ">=0.2.1" },
1594
1594
  { name = "sphinx", specifier = "<7" },
1595
1595
  { name = "types-setuptools", specifier = ">=57.4.14" },
@@ -1636,16 +1636,16 @@ wheels = [
1636
1636
 
1637
1637
  [[package]]
1638
1638
  name = "polars"
1639
- version = "1.31.0"
1639
+ version = "1.32.0"
1640
1640
  source = { registry = "https://pypi.org/simple" }
1641
- sdist = { url = "https://files.pythonhosted.org/packages/fd/f5/de1b5ecd7d0bd0dd87aa392937f759f9cc3997c5866a9a7f94eabf37cd48/polars-1.31.0.tar.gz", hash = "sha256:59a88054a5fc0135386268ceefdbb6a6cc012d21b5b44fed4f1d3faabbdcbf32", size = 4681224, upload-time = "2025-06-18T12:00:46.24Z" }
1641
+ sdist = { url = "https://files.pythonhosted.org/packages/67/23/6a5f151981f3ac409bed6dc48a3eaecd0592a03eb382693d4c7e749eda8b/polars-1.32.0.tar.gz", hash = "sha256:b01045981c0f23eeccfbfc870b782f93e73b74b29212fdfc8aae0be9024bc1fb", size = 4761045, upload-time = "2025-08-01T01:43:22.413Z" }
1642
1642
  wheels = [
1643
- { url = "https://files.pythonhosted.org/packages/3d/6e/bdd0937653c1e7a564a09ae3bc7757ce83fedbf19da600c8b35d62c0182a/polars-1.31.0-cp39-abi3-macosx_10_12_x86_64.whl", hash = "sha256:ccc68cd6877deecd46b13cbd2663ca89ab2a2cb1fe49d5cfc66a9cef166566d9", size = 34511354, upload-time = "2025-06-18T11:59:40.048Z" },
1644
- { url = "https://files.pythonhosted.org/packages/77/fe/81aaca3540c1a5530b4bc4fd7f1b6f77100243d7bb9b7ad3478b770d8b3e/polars-1.31.0-cp39-abi3-macosx_11_0_arm64.whl", hash = "sha256:a94c5550df397ad3c2d6adc212e59fd93d9b044ec974dd3653e121e6487a7d21", size = 31377712, upload-time = "2025-06-18T11:59:45.104Z" },
1645
- { url = "https://files.pythonhosted.org/packages/b8/d9/5e2753784ea30d84b3e769a56f5e50ac5a89c129e87baa16ac0773eb4ef7/polars-1.31.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ada7940ed92bea65d5500ae7ac1f599798149df8faa5a6db150327c9ddbee4f1", size = 35050729, upload-time = "2025-06-18T11:59:48.538Z" },
1646
- { url = "https://files.pythonhosted.org/packages/20/e8/a6bdfe7b687c1fe84bceb1f854c43415eaf0d2fdf3c679a9dc9c4776e462/polars-1.31.0-cp39-abi3-manylinux_2_24_aarch64.whl", hash = "sha256:b324e6e3e8c6cc6593f9d72fe625f06af65e8d9d47c8686583585533a5e731e1", size = 32260836, upload-time = "2025-06-18T11:59:52.543Z" },
1647
- { url = "https://files.pythonhosted.org/packages/6e/f6/9d9ad9dc4480d66502497e90ce29efc063373e1598f4bd9b6a38af3e08e7/polars-1.31.0-cp39-abi3-win_amd64.whl", hash = "sha256:3fd874d3432fc932863e8cceff2cff8a12a51976b053f2eb6326a0672134a632", size = 35156211, upload-time = "2025-06-18T11:59:55.805Z" },
1648
- { url = "https://files.pythonhosted.org/packages/40/4b/0673a68ac4d6527fac951970e929c3b4440c654f994f0c957bd5556deb38/polars-1.31.0-cp39-abi3-win_arm64.whl", hash = "sha256:62ef23bb9d10dca4c2b945979f9a50812ac4ace4ed9e158a6b5d32a7322e6f75", size = 31469078, upload-time = "2025-06-18T11:59:59.242Z" },
1643
+ { url = "https://files.pythonhosted.org/packages/e2/40/5b27067d10b5a77ab4094932118e16629ffb20ea9ae5f7d1178e04087891/polars-1.32.0-cp39-abi3-macosx_10_12_x86_64.whl", hash = "sha256:94f7c6a3b30bc99bc6b682ea42bb1ae983e33a302ca21aacbac50ae19e34fcf2", size = 37479518, upload-time = "2025-08-01T01:42:18.603Z" },
1644
+ { url = "https://files.pythonhosted.org/packages/08/b7/ca28ac10d340fb91bffb2751efd52aebc9799ae161b867214c6299c8f75b/polars-1.32.0-cp39-abi3-macosx_11_0_arm64.whl", hash = "sha256:8bf14c16164839e62c741a863942a94a9a463db21e797452fca996c8afaf8827", size = 34214196, upload-time = "2025-08-01T01:42:22.667Z" },
1645
+ { url = "https://files.pythonhosted.org/packages/61/97/fe3797e8e1d4f9eadab32ffe218a841b8874585b6c9bd0f1a26469fb2992/polars-1.32.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f4c15adb97d44766d30c759f5cebbdb64d361e8349ef10b5afc7413f71bf4b72", size = 37985353, upload-time = "2025-08-01T01:42:26.033Z" },
1646
+ { url = "https://files.pythonhosted.org/packages/a0/7e/2baa2858556e970cc6a35c0d8ad34b2f9d982f1766c0a1fec20ca529a947/polars-1.32.0-cp39-abi3-manylinux_2_24_aarch64.whl", hash = "sha256:13af55890734f89b76016a395fb2e7460e7d9feecf50ed2f55cf0f05a1c0c991", size = 35183912, upload-time = "2025-08-01T01:42:30.446Z" },
1647
+ { url = "https://files.pythonhosted.org/packages/ef/41/0e6821dccc5871186a9b95af3990404aa283318263918d33ac974b35cb37/polars-1.32.0-cp39-abi3-win_amd64.whl", hash = "sha256:0397fc2501a5d5f1bb3fe8d27e0c26c7a5349b4110157c0fb7833cd3f5921c9e", size = 37747905, upload-time = "2025-08-01T01:42:33.975Z" },
1648
+ { url = "https://files.pythonhosted.org/packages/c2/93/d06df0817da93f922a67e27e9e0f407856991374daa62687e2a45a18935c/polars-1.32.0-cp39-abi3-win_arm64.whl", hash = "sha256:dd84e24422509e1ec9be46f67f758d0bd9944d1ae4eacecee4f53adaa8ecd822", size = 33978543, upload-time = "2025-08-01T01:42:36.779Z" },
1649
1649
  ]
1650
1650
 
1651
1651
  [[package]]
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
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes