polars-runtime-compat 1.34.0b2__cp39-abi3-win_arm64.whl

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.

Potentially problematic release.


This version of polars-runtime-compat might be problematic. Click here for more details.

Files changed (203) hide show
  1. _polars_runtime_compat/.gitkeep +0 -0
  2. _polars_runtime_compat/_polars_runtime_compat.pyd +0 -0
  3. polars/__init__.py +528 -0
  4. polars/_cpu_check.py +265 -0
  5. polars/_dependencies.py +355 -0
  6. polars/_plr.py +99 -0
  7. polars/_plr.pyi +2496 -0
  8. polars/_reexport.py +23 -0
  9. polars/_typing.py +478 -0
  10. polars/_utils/__init__.py +37 -0
  11. polars/_utils/async_.py +102 -0
  12. polars/_utils/cache.py +176 -0
  13. polars/_utils/cloud.py +40 -0
  14. polars/_utils/constants.py +29 -0
  15. polars/_utils/construction/__init__.py +46 -0
  16. polars/_utils/construction/dataframe.py +1397 -0
  17. polars/_utils/construction/other.py +72 -0
  18. polars/_utils/construction/series.py +560 -0
  19. polars/_utils/construction/utils.py +118 -0
  20. polars/_utils/convert.py +224 -0
  21. polars/_utils/deprecation.py +406 -0
  22. polars/_utils/getitem.py +457 -0
  23. polars/_utils/logging.py +11 -0
  24. polars/_utils/nest_asyncio.py +264 -0
  25. polars/_utils/parquet.py +15 -0
  26. polars/_utils/parse/__init__.py +12 -0
  27. polars/_utils/parse/expr.py +242 -0
  28. polars/_utils/polars_version.py +19 -0
  29. polars/_utils/pycapsule.py +53 -0
  30. polars/_utils/scan.py +27 -0
  31. polars/_utils/serde.py +63 -0
  32. polars/_utils/slice.py +215 -0
  33. polars/_utils/udfs.py +1251 -0
  34. polars/_utils/unstable.py +63 -0
  35. polars/_utils/various.py +782 -0
  36. polars/_utils/wrap.py +25 -0
  37. polars/api.py +370 -0
  38. polars/catalog/__init__.py +0 -0
  39. polars/catalog/unity/__init__.py +19 -0
  40. polars/catalog/unity/client.py +733 -0
  41. polars/catalog/unity/models.py +152 -0
  42. polars/config.py +1571 -0
  43. polars/convert/__init__.py +25 -0
  44. polars/convert/general.py +1046 -0
  45. polars/convert/normalize.py +261 -0
  46. polars/dataframe/__init__.py +5 -0
  47. polars/dataframe/_html.py +186 -0
  48. polars/dataframe/frame.py +12582 -0
  49. polars/dataframe/group_by.py +1067 -0
  50. polars/dataframe/plotting.py +257 -0
  51. polars/datatype_expr/__init__.py +5 -0
  52. polars/datatype_expr/array.py +56 -0
  53. polars/datatype_expr/datatype_expr.py +304 -0
  54. polars/datatype_expr/list.py +18 -0
  55. polars/datatype_expr/struct.py +69 -0
  56. polars/datatypes/__init__.py +122 -0
  57. polars/datatypes/_parse.py +195 -0
  58. polars/datatypes/_utils.py +48 -0
  59. polars/datatypes/classes.py +1213 -0
  60. polars/datatypes/constants.py +11 -0
  61. polars/datatypes/constructor.py +172 -0
  62. polars/datatypes/convert.py +366 -0
  63. polars/datatypes/group.py +130 -0
  64. polars/exceptions.py +230 -0
  65. polars/expr/__init__.py +7 -0
  66. polars/expr/array.py +964 -0
  67. polars/expr/binary.py +346 -0
  68. polars/expr/categorical.py +306 -0
  69. polars/expr/datetime.py +2620 -0
  70. polars/expr/expr.py +11272 -0
  71. polars/expr/list.py +1408 -0
  72. polars/expr/meta.py +444 -0
  73. polars/expr/name.py +321 -0
  74. polars/expr/string.py +3045 -0
  75. polars/expr/struct.py +357 -0
  76. polars/expr/whenthen.py +185 -0
  77. polars/functions/__init__.py +193 -0
  78. polars/functions/aggregation/__init__.py +33 -0
  79. polars/functions/aggregation/horizontal.py +298 -0
  80. polars/functions/aggregation/vertical.py +341 -0
  81. polars/functions/as_datatype.py +848 -0
  82. polars/functions/business.py +138 -0
  83. polars/functions/col.py +384 -0
  84. polars/functions/datatype.py +121 -0
  85. polars/functions/eager.py +524 -0
  86. polars/functions/escape_regex.py +29 -0
  87. polars/functions/lazy.py +2751 -0
  88. polars/functions/len.py +68 -0
  89. polars/functions/lit.py +210 -0
  90. polars/functions/random.py +22 -0
  91. polars/functions/range/__init__.py +19 -0
  92. polars/functions/range/_utils.py +15 -0
  93. polars/functions/range/date_range.py +303 -0
  94. polars/functions/range/datetime_range.py +370 -0
  95. polars/functions/range/int_range.py +348 -0
  96. polars/functions/range/linear_space.py +311 -0
  97. polars/functions/range/time_range.py +287 -0
  98. polars/functions/repeat.py +301 -0
  99. polars/functions/whenthen.py +353 -0
  100. polars/interchange/__init__.py +10 -0
  101. polars/interchange/buffer.py +77 -0
  102. polars/interchange/column.py +190 -0
  103. polars/interchange/dataframe.py +230 -0
  104. polars/interchange/from_dataframe.py +328 -0
  105. polars/interchange/protocol.py +303 -0
  106. polars/interchange/utils.py +170 -0
  107. polars/io/__init__.py +64 -0
  108. polars/io/_utils.py +317 -0
  109. polars/io/avro.py +49 -0
  110. polars/io/clipboard.py +36 -0
  111. polars/io/cloud/__init__.py +17 -0
  112. polars/io/cloud/_utils.py +80 -0
  113. polars/io/cloud/credential_provider/__init__.py +17 -0
  114. polars/io/cloud/credential_provider/_builder.py +520 -0
  115. polars/io/cloud/credential_provider/_providers.py +618 -0
  116. polars/io/csv/__init__.py +9 -0
  117. polars/io/csv/_utils.py +38 -0
  118. polars/io/csv/batched_reader.py +142 -0
  119. polars/io/csv/functions.py +1495 -0
  120. polars/io/database/__init__.py +6 -0
  121. polars/io/database/_arrow_registry.py +70 -0
  122. polars/io/database/_cursor_proxies.py +147 -0
  123. polars/io/database/_executor.py +578 -0
  124. polars/io/database/_inference.py +314 -0
  125. polars/io/database/_utils.py +144 -0
  126. polars/io/database/functions.py +516 -0
  127. polars/io/delta.py +499 -0
  128. polars/io/iceberg/__init__.py +3 -0
  129. polars/io/iceberg/_utils.py +697 -0
  130. polars/io/iceberg/dataset.py +556 -0
  131. polars/io/iceberg/functions.py +151 -0
  132. polars/io/ipc/__init__.py +8 -0
  133. polars/io/ipc/functions.py +514 -0
  134. polars/io/json/__init__.py +3 -0
  135. polars/io/json/read.py +101 -0
  136. polars/io/ndjson.py +332 -0
  137. polars/io/parquet/__init__.py +17 -0
  138. polars/io/parquet/field_overwrites.py +140 -0
  139. polars/io/parquet/functions.py +722 -0
  140. polars/io/partition.py +491 -0
  141. polars/io/plugins.py +187 -0
  142. polars/io/pyarrow_dataset/__init__.py +5 -0
  143. polars/io/pyarrow_dataset/anonymous_scan.py +109 -0
  144. polars/io/pyarrow_dataset/functions.py +79 -0
  145. polars/io/scan_options/__init__.py +5 -0
  146. polars/io/scan_options/_options.py +59 -0
  147. polars/io/scan_options/cast_options.py +126 -0
  148. polars/io/spreadsheet/__init__.py +6 -0
  149. polars/io/spreadsheet/_utils.py +52 -0
  150. polars/io/spreadsheet/_write_utils.py +647 -0
  151. polars/io/spreadsheet/functions.py +1323 -0
  152. polars/lazyframe/__init__.py +9 -0
  153. polars/lazyframe/engine_config.py +61 -0
  154. polars/lazyframe/frame.py +8564 -0
  155. polars/lazyframe/group_by.py +669 -0
  156. polars/lazyframe/in_process.py +42 -0
  157. polars/lazyframe/opt_flags.py +333 -0
  158. polars/meta/__init__.py +14 -0
  159. polars/meta/build.py +33 -0
  160. polars/meta/index_type.py +27 -0
  161. polars/meta/thread_pool.py +50 -0
  162. polars/meta/versions.py +120 -0
  163. polars/ml/__init__.py +0 -0
  164. polars/ml/torch.py +213 -0
  165. polars/ml/utilities.py +30 -0
  166. polars/plugins.py +155 -0
  167. polars/py.typed +0 -0
  168. polars/pyproject.toml +96 -0
  169. polars/schema.py +265 -0
  170. polars/selectors.py +3117 -0
  171. polars/series/__init__.py +5 -0
  172. polars/series/array.py +776 -0
  173. polars/series/binary.py +254 -0
  174. polars/series/categorical.py +246 -0
  175. polars/series/datetime.py +2275 -0
  176. polars/series/list.py +1087 -0
  177. polars/series/plotting.py +191 -0
  178. polars/series/series.py +9197 -0
  179. polars/series/string.py +2367 -0
  180. polars/series/struct.py +154 -0
  181. polars/series/utils.py +191 -0
  182. polars/sql/__init__.py +7 -0
  183. polars/sql/context.py +677 -0
  184. polars/sql/functions.py +139 -0
  185. polars/string_cache.py +185 -0
  186. polars/testing/__init__.py +13 -0
  187. polars/testing/asserts/__init__.py +9 -0
  188. polars/testing/asserts/frame.py +231 -0
  189. polars/testing/asserts/series.py +219 -0
  190. polars/testing/asserts/utils.py +12 -0
  191. polars/testing/parametric/__init__.py +33 -0
  192. polars/testing/parametric/profiles.py +107 -0
  193. polars/testing/parametric/strategies/__init__.py +22 -0
  194. polars/testing/parametric/strategies/_utils.py +14 -0
  195. polars/testing/parametric/strategies/core.py +615 -0
  196. polars/testing/parametric/strategies/data.py +452 -0
  197. polars/testing/parametric/strategies/dtype.py +436 -0
  198. polars/testing/parametric/strategies/legacy.py +169 -0
  199. polars/type_aliases.py +24 -0
  200. polars_runtime_compat-1.34.0b2.dist-info/METADATA +31 -0
  201. polars_runtime_compat-1.34.0b2.dist-info/RECORD +203 -0
  202. polars_runtime_compat-1.34.0b2.dist-info/WHEEL +4 -0
  203. polars_runtime_compat-1.34.0b2.dist-info/licenses/LICENSE +1 -0
polars/_utils/cache.py ADDED
@@ -0,0 +1,176 @@
1
+ from __future__ import annotations
2
+
3
+ from collections import OrderedDict
4
+ from collections.abc import MutableMapping
5
+ from typing import TYPE_CHECKING, Any, TypeVar, overload
6
+
7
+ from polars._utils.various import no_default
8
+
9
+ if TYPE_CHECKING:
10
+ import sys
11
+ from collections.abc import ItemsView, Iterable, Iterator, KeysView, ValuesView
12
+
13
+ from polars._utils.various import NoDefault
14
+
15
+ if sys.version_info >= (3, 11):
16
+ from typing import Self
17
+ else:
18
+ from typing_extensions import Self
19
+
20
+ D = TypeVar("D")
21
+ K = TypeVar("K")
22
+ V = TypeVar("V")
23
+
24
+
25
+ class LRUCache(MutableMapping[K, V]):
26
+ def __init__(self, maxsize: int) -> None:
27
+ """
28
+ Initialize an LRU (Least Recently Used) cache with a specified maximum size.
29
+
30
+ Parameters
31
+ ----------
32
+ maxsize : int
33
+ The maximum number of items the cache can hold.
34
+
35
+ Examples
36
+ --------
37
+ >>> from polars._utils.cache import LRUCache
38
+ >>> cache = LRUCache[str, int](maxsize=3)
39
+ >>> cache["a"] = 1
40
+ >>> cache["b"] = 2
41
+ >>> cache["c"] = 3
42
+ >>> cache["d"] = 4 # evicts the least recently used item ("a"), as maxsize=3
43
+ >>> print(cache["b"]) # accessing "b" marks it as recently used
44
+ 2
45
+ >>> print(list(cache.keys())) # show the current keys in LRU order
46
+ ['c', 'd', 'b']
47
+ >>> cache.get("xyz", "not found")
48
+ 'not found'
49
+ """
50
+ self._items: OrderedDict[K, V] = OrderedDict()
51
+ self.maxsize = maxsize
52
+
53
+ def __bool__(self) -> bool:
54
+ """Returns True if the cache is not empty, False otherwise."""
55
+ return bool(self._items)
56
+
57
+ def __contains__(self, key: Any) -> bool:
58
+ """Check if the key is in the cache."""
59
+ return key in self._items
60
+
61
+ def __delitem__(self, key: K) -> None:
62
+ """Remove the item with the specified key from the cache."""
63
+ if key not in self._items:
64
+ msg = f"{key!r} not found in cache"
65
+ raise KeyError(msg)
66
+ del self._items[key]
67
+
68
+ def __getitem__(self, key: K) -> V:
69
+ """Raises KeyError if the key is not found."""
70
+ if key not in self._items:
71
+ msg = f"{key!r} not found in cache"
72
+ raise KeyError(msg)
73
+
74
+ # moving accessed items to the end marks them as recently used
75
+ self._items.move_to_end(key)
76
+ return self._items[key]
77
+
78
+ def __iter__(self) -> Iterator[K]:
79
+ """Iterate over the keys in the cache."""
80
+ yield from self._items
81
+
82
+ def __len__(self) -> int:
83
+ """Number of items in the cache."""
84
+ return len(self._items)
85
+
86
+ def __setitem__(self, key: K, value: V) -> None:
87
+ """Insert a value into the cache."""
88
+ if self._max_size == 0:
89
+ return
90
+ while len(self) >= self._max_size:
91
+ self.popitem()
92
+ if key in self:
93
+ # moving accessed items to the end marks them as recently used
94
+ self._items.move_to_end(key)
95
+ self._items[key] = value
96
+
97
+ def __repr__(self) -> str:
98
+ """Return a string representation of the cache."""
99
+ all_items = list(self._items.items())
100
+ if len(self) > 4:
101
+ items = (
102
+ ", ".join(f"{k!r}: {v!r}" for k, v in all_items[:2])
103
+ + " ..., "
104
+ + ", ".join(f"{k!r}: {v!r}" for k, v in all_items[-2:])
105
+ )
106
+ else:
107
+ items = ", ".join(f"{k!r}: {v!r}" for k, v in all_items)
108
+ return f"{self.__class__.__name__}({{{items}}}, maxsize={self._max_size}, currsize={len(self)})"
109
+
110
+ def clear(self) -> None:
111
+ """Clear the cache, removing all items."""
112
+ self._items.clear()
113
+
114
+ @overload
115
+ def get(self, key: K, default: None = None) -> V | None: ...
116
+
117
+ @overload
118
+ def get(self, key: K, default: D = ...) -> V | D: ...
119
+
120
+ def get(self, key: K, default: D | V | None = None) -> V | D | None:
121
+ """Return value associated with `key` if present, otherwise return `default`."""
122
+ if key in self:
123
+ # moving accessed items to the end marks them as recently used
124
+ self._items.move_to_end(key)
125
+ return self._items[key]
126
+ return default
127
+
128
+ @classmethod
129
+ def fromkeys(cls, maxsize: int, *, keys: Iterable[K], value: V) -> Self:
130
+ """Initialize cache with keys from an iterable, all set to the same value."""
131
+ cache = cls(maxsize)
132
+ for key in keys:
133
+ cache[key] = value
134
+ return cache
135
+
136
+ def items(self) -> ItemsView[K, V]:
137
+ """Return an iterable view of the cache's items (keys and values)."""
138
+ return self._items.items()
139
+
140
+ def keys(self) -> KeysView[K]:
141
+ """Return an iterable view of the cache's keys."""
142
+ return self._items.keys()
143
+
144
+ @property
145
+ def maxsize(self) -> int:
146
+ return self._max_size
147
+
148
+ @maxsize.setter
149
+ def maxsize(self, n: int) -> None:
150
+ """Set new maximum cache size; cache is trimmed if value is smaller."""
151
+ if n < 0:
152
+ msg = f"`maxsize` cannot be negative; found {n}"
153
+ raise ValueError(msg)
154
+ while len(self) > n:
155
+ self.popitem()
156
+ self._max_size = n
157
+
158
+ def pop(self, key: K, default: D | NoDefault = no_default) -> V | D:
159
+ """
160
+ Remove specified key from the cache and return the associated value.
161
+
162
+ If the key is not found, `default` is returned (if given).
163
+ Otherwise, a KeyError is raised.
164
+ """
165
+ if (item := self._items.pop(key, default)) is no_default:
166
+ msg = f"{key!r} not found in cache"
167
+ raise KeyError(msg)
168
+ return item
169
+
170
+ def popitem(self) -> tuple[K, V]:
171
+ """Remove the least recently used value; raises KeyError if cache is empty."""
172
+ return self._items.popitem(last=False)
173
+
174
+ def values(self) -> ValuesView[V]:
175
+ """Return an iterable view of the cache's values."""
176
+ return self._items.values()
polars/_utils/cloud.py ADDED
@@ -0,0 +1,40 @@
1
+ from __future__ import annotations
2
+
3
+ from typing import TYPE_CHECKING
4
+
5
+ import polars._plr as plr
6
+ from polars.lazyframe.opt_flags import DEFAULT_QUERY_OPT_FLAGS
7
+
8
+ if TYPE_CHECKING:
9
+ from polars import LazyFrame, QueryOptFlags
10
+
11
+
12
+ def prepare_cloud_plan(
13
+ lf: LazyFrame,
14
+ *,
15
+ optimizations: QueryOptFlags = DEFAULT_QUERY_OPT_FLAGS,
16
+ ) -> bytes:
17
+ """
18
+ Prepare the given LazyFrame for execution on Polars Cloud.
19
+
20
+ Parameters
21
+ ----------
22
+ lf
23
+ The LazyFrame to prepare.
24
+ optimizations
25
+ Optimizations to enable or disable in the query optimizer.
26
+
27
+ Raises
28
+ ------
29
+ InvalidOperationError
30
+ If the given LazyFrame is not eligible to be run on Polars Cloud.
31
+ The following conditions will disqualify a LazyFrame from being eligible:
32
+
33
+ - Contains a user-defined function
34
+ - Scans or sinks to a local filesystem
35
+ ComputeError
36
+ If the given LazyFrame cannot be serialized.
37
+ """
38
+ optimizations = optimizations.__copy__()
39
+ pylf = lf._ldf.with_optimizations(optimizations._pyoptflags)
40
+ return plr.prepare_cloud_plan(pylf)
@@ -0,0 +1,29 @@
1
+ from datetime import date, datetime, timezone
2
+
3
+ # Integer ranges
4
+ I8_MIN = -(2**7)
5
+ I16_MIN = -(2**15)
6
+ I32_MIN = -(2**31)
7
+ I64_MIN = -(2**63)
8
+ I128_MIN = -(2**127)
9
+ I8_MAX = 2**7 - 1
10
+ I16_MAX = 2**15 - 1
11
+ I32_MAX = 2**31 - 1
12
+ I64_MAX = 2**63 - 1
13
+ I128_MAX = 2**127 - 1
14
+ U8_MAX = 2**8 - 1
15
+ U16_MAX = 2**16 - 1
16
+ U32_MAX = 2**32 - 1
17
+ U64_MAX = 2**64 - 1
18
+ U128_MAX = 2**128 - 1
19
+
20
+ # Temporal
21
+ SECONDS_PER_DAY = 86_400
22
+ SECONDS_PER_HOUR = 3_600
23
+ NS_PER_SECOND = 1_000_000_000
24
+ US_PER_SECOND = 1_000_000
25
+ MS_PER_SECOND = 1_000
26
+
27
+ EPOCH_DATE = date(1970, 1, 1)
28
+ EPOCH = datetime(1970, 1, 1).replace(tzinfo=None)
29
+ EPOCH_UTC = datetime(1970, 1, 1, tzinfo=timezone.utc)
@@ -0,0 +1,46 @@
1
+ from polars._utils.construction.dataframe import (
2
+ arrow_to_pydf,
3
+ dataframe_to_pydf,
4
+ dict_to_pydf,
5
+ iterable_to_pydf,
6
+ numpy_to_pydf,
7
+ pandas_to_pydf,
8
+ sequence_to_pydf,
9
+ series_to_pydf,
10
+ )
11
+ from polars._utils.construction.other import (
12
+ coerce_arrow,
13
+ pandas_series_to_arrow,
14
+ )
15
+ from polars._utils.construction.series import (
16
+ arrow_to_pyseries,
17
+ dataframe_to_pyseries,
18
+ iterable_to_pyseries,
19
+ numpy_to_pyseries,
20
+ pandas_to_pyseries,
21
+ sequence_to_pyseries,
22
+ series_to_pyseries,
23
+ )
24
+
25
+ __all__ = [
26
+ # dataframe
27
+ "arrow_to_pydf",
28
+ "dataframe_to_pydf",
29
+ "dict_to_pydf",
30
+ "iterable_to_pydf",
31
+ "numpy_to_pydf",
32
+ "pandas_to_pydf",
33
+ "sequence_to_pydf",
34
+ "series_to_pydf",
35
+ # series
36
+ "arrow_to_pyseries",
37
+ "dataframe_to_pyseries",
38
+ "iterable_to_pyseries",
39
+ "numpy_to_pyseries",
40
+ "pandas_to_pyseries",
41
+ "sequence_to_pyseries",
42
+ "series_to_pyseries",
43
+ # other
44
+ "coerce_arrow",
45
+ "pandas_series_to_arrow",
46
+ ]