polars-runtime-compat 1.34.0b2__cp39-abi3-macosx_11_0_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.abi3.so +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 +190 -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 +20 -0
@@ -0,0 +1,341 @@
1
+ from __future__ import annotations
2
+
3
+ from typing import TYPE_CHECKING
4
+
5
+ import polars.functions as F
6
+
7
+ if TYPE_CHECKING:
8
+ from polars import Expr
9
+
10
+
11
+ def all(*names: str, ignore_nulls: bool = True) -> Expr:
12
+ """
13
+ Either return an expression representing all columns, or evaluate a bitwise AND operation.
14
+
15
+ If no arguments are passed, this function is syntactic sugar for `col("*")`.
16
+ Otherwise, this function is syntactic sugar for `col(names).all()`.
17
+
18
+ Parameters
19
+ ----------
20
+ *names
21
+ Name(s) of the columns to use in the aggregation.
22
+ ignore_nulls
23
+
24
+ * If set to `True` (default), null values are ignored. If there
25
+ are no non-null values, the output is `True`.
26
+ * If set to `False`, `Kleene logic`_ is used to deal with nulls:
27
+ if the column contains any null values and no `False` values,
28
+ the output is null.
29
+
30
+ .. _Kleene logic: https://en.wikipedia.org/wiki/Three-valued_logic
31
+
32
+ See Also
33
+ --------
34
+ all_horizontal
35
+
36
+ Examples
37
+ --------
38
+ Selecting all columns.
39
+
40
+ >>> df = pl.DataFrame(
41
+ ... {
42
+ ... "a": [True, False, True],
43
+ ... "b": [False, False, False],
44
+ ... }
45
+ ... )
46
+ >>> df.select(pl.all().sum())
47
+ shape: (1, 2)
48
+ ┌─────┬─────┐
49
+ │ a ┆ b │
50
+ │ --- ┆ --- │
51
+ │ u32 ┆ u32 │
52
+ ╞═════╪═════╡
53
+ │ 2 ┆ 0 │
54
+ └─────┴─────┘
55
+
56
+ Evaluate bitwise AND for a column.
57
+
58
+ >>> df.select(pl.all("a"))
59
+ shape: (1, 1)
60
+ ┌───────┐
61
+ │ a │
62
+ │ --- │
63
+ │ bool │
64
+ ╞═══════╡
65
+ │ false │
66
+ └───────┘
67
+ """ # noqa: W505
68
+ if not names:
69
+ return F.col("*")
70
+
71
+ return F.col(*names).all(ignore_nulls=ignore_nulls)
72
+
73
+
74
+ def any(*names: str, ignore_nulls: bool = True) -> Expr | bool | None:
75
+ """
76
+ Evaluate a bitwise OR operation.
77
+
78
+ Syntactic sugar for `col(names).any()`.
79
+
80
+ See Also
81
+ --------
82
+ any_horizontal
83
+
84
+ Parameters
85
+ ----------
86
+ *names
87
+ Name(s) of the columns to use in the aggregation.
88
+ ignore_nulls
89
+
90
+ * If set to `True` (default), null values are ignored. If there
91
+ are no non-null values, the output is `False`.
92
+ * If set to `False`, `Kleene logic`_ is used to deal with nulls:
93
+ if the column contains any null values and no `True` values,
94
+ the output is null.
95
+
96
+ .. _Kleene logic: https://en.wikipedia.org/wiki/Three-valued_logic
97
+
98
+ Examples
99
+ --------
100
+ >>> df = pl.DataFrame(
101
+ ... {
102
+ ... "a": [True, False, True],
103
+ ... "b": [False, False, False],
104
+ ... }
105
+ ... )
106
+ >>> df.select(pl.any("a"))
107
+ shape: (1, 1)
108
+ ┌──────┐
109
+ │ a │
110
+ │ --- │
111
+ │ bool │
112
+ ╞══════╡
113
+ │ true │
114
+ └──────┘
115
+ """
116
+ return F.col(*names).any(ignore_nulls=ignore_nulls)
117
+
118
+
119
+ def max(*names: str) -> Expr:
120
+ """
121
+ Get the maximum value.
122
+
123
+ Syntactic sugar for `col(names).max()`.
124
+
125
+ Parameters
126
+ ----------
127
+ *names
128
+ Name(s) of the columns to use in the aggregation.
129
+
130
+ See Also
131
+ --------
132
+ max_horizontal
133
+
134
+ Examples
135
+ --------
136
+ Get the maximum value of a column.
137
+
138
+ >>> df = pl.DataFrame(
139
+ ... {
140
+ ... "a": [1, 8, 3],
141
+ ... "b": [4, 5, 2],
142
+ ... "c": ["foo", "bar", "foo"],
143
+ ... }
144
+ ... )
145
+ >>> df.select(pl.max("a"))
146
+ shape: (1, 1)
147
+ ┌─────┐
148
+ │ a │
149
+ │ --- │
150
+ │ i64 │
151
+ ╞═════╡
152
+ │ 8 │
153
+ └─────┘
154
+
155
+ Get the maximum value of multiple columns.
156
+
157
+ >>> df.select(pl.max("^a|b$"))
158
+ shape: (1, 2)
159
+ ┌─────┬─────┐
160
+ │ a ┆ b │
161
+ │ --- ┆ --- │
162
+ │ i64 ┆ i64 │
163
+ ╞═════╪═════╡
164
+ │ 8 ┆ 5 │
165
+ └─────┴─────┘
166
+ >>> df.select(pl.max("a", "b"))
167
+ shape: (1, 2)
168
+ ┌─────┬─────┐
169
+ │ a ┆ b │
170
+ │ --- ┆ --- │
171
+ │ i64 ┆ i64 │
172
+ ╞═════╪═════╡
173
+ │ 8 ┆ 5 │
174
+ └─────┴─────┘
175
+ """
176
+ return F.col(*names).max()
177
+
178
+
179
+ def min(*names: str) -> Expr:
180
+ """
181
+ Get the minimum value.
182
+
183
+ Syntactic sugar for `col(names).min()`.
184
+
185
+ Parameters
186
+ ----------
187
+ *names
188
+ Name(s) of the columns to use in the aggregation.
189
+
190
+ See Also
191
+ --------
192
+ min_horizontal
193
+
194
+ Examples
195
+ --------
196
+ Get the minimum value of a column.
197
+
198
+ >>> df = pl.DataFrame(
199
+ ... {
200
+ ... "a": [1, 8, 3],
201
+ ... "b": [4, 5, 2],
202
+ ... "c": ["foo", "bar", "foo"],
203
+ ... }
204
+ ... )
205
+ >>> df.select(pl.min("a"))
206
+ shape: (1, 1)
207
+ ┌─────┐
208
+ │ a │
209
+ │ --- │
210
+ │ i64 │
211
+ ╞═════╡
212
+ │ 1 │
213
+ └─────┘
214
+
215
+ Get the minimum value of multiple columns.
216
+
217
+ >>> df.select(pl.min("^a|b$"))
218
+ shape: (1, 2)
219
+ ┌─────┬─────┐
220
+ │ a ┆ b │
221
+ │ --- ┆ --- │
222
+ │ i64 ┆ i64 │
223
+ ╞═════╪═════╡
224
+ │ 1 ┆ 2 │
225
+ └─────┴─────┘
226
+ >>> df.select(pl.min("a", "b"))
227
+ shape: (1, 2)
228
+ ┌─────┬─────┐
229
+ │ a ┆ b │
230
+ │ --- ┆ --- │
231
+ │ i64 ┆ i64 │
232
+ ╞═════╪═════╡
233
+ │ 1 ┆ 2 │
234
+ └─────┴─────┘
235
+ """
236
+ return F.col(*names).min()
237
+
238
+
239
+ def sum(*names: str) -> Expr:
240
+ """
241
+ Sum all values.
242
+
243
+ Syntactic sugar for `col(name).sum()`.
244
+
245
+ Parameters
246
+ ----------
247
+ *names
248
+ Name(s) of the columns to use in the aggregation.
249
+
250
+ Notes
251
+ -----
252
+ If there are no non-null values, then the output is `0`.
253
+ If you would prefer empty sums to return `None`, you can
254
+ use `pl.when(pl.col(name).count()>0).then(pl.sum(name))` instead
255
+ of `pl.sum(name)`.
256
+
257
+ See Also
258
+ --------
259
+ sum_horizontal
260
+
261
+ Examples
262
+ --------
263
+ Sum a column.
264
+
265
+ >>> df = pl.DataFrame(
266
+ ... {
267
+ ... "a": [1, 2],
268
+ ... "b": [3, 4],
269
+ ... "c": [5, 6],
270
+ ... }
271
+ ... )
272
+ >>> df.select(pl.sum("a"))
273
+ shape: (1, 1)
274
+ ┌─────┐
275
+ │ a │
276
+ │ --- │
277
+ │ i64 │
278
+ ╞═════╡
279
+ │ 3 │
280
+ └─────┘
281
+
282
+ Sum multiple columns.
283
+
284
+ >>> df.select(pl.sum("a", "c"))
285
+ shape: (1, 2)
286
+ ┌─────┬─────┐
287
+ │ a ┆ c │
288
+ │ --- ┆ --- │
289
+ │ i64 ┆ i64 │
290
+ ╞═════╪═════╡
291
+ │ 3 ┆ 11 │
292
+ └─────┴─────┘
293
+ >>> df.select(pl.sum("^.*[bc]$"))
294
+ shape: (1, 2)
295
+ ┌─────┬─────┐
296
+ │ b ┆ c │
297
+ │ --- ┆ --- │
298
+ │ i64 ┆ i64 │
299
+ ╞═════╪═════╡
300
+ │ 7 ┆ 11 │
301
+ └─────┴─────┘
302
+ """
303
+ return F.col(*names).sum()
304
+
305
+
306
+ def cum_sum(*names: str) -> Expr:
307
+ """
308
+ Cumulatively sum all values.
309
+
310
+ Syntactic sugar for `col(names).cum_sum()`.
311
+
312
+ Parameters
313
+ ----------
314
+ *names
315
+ Name(s) of the columns to use in the aggregation.
316
+
317
+ See Also
318
+ --------
319
+ cumsum_horizontal
320
+
321
+ Examples
322
+ --------
323
+ >>> df = pl.DataFrame(
324
+ ... {
325
+ ... "a": [1, 2, 3],
326
+ ... "b": [4, 5, 6],
327
+ ... }
328
+ ... )
329
+ >>> df.select(pl.cum_sum("a"))
330
+ shape: (3, 1)
331
+ ┌─────┐
332
+ │ a │
333
+ │ --- │
334
+ │ i64 │
335
+ ╞═════╡
336
+ │ 1 │
337
+ │ 3 │
338
+ │ 6 │
339
+ └─────┘
340
+ """
341
+ return F.col(*names).cum_sum()