polars-runtime-compat 1.34.0b2__cp39-abi3-manylinux_2_24_aarch64.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,191 @@
1
+ from __future__ import annotations
2
+
3
+ import inspect
4
+ from typing import TYPE_CHECKING, Callable
5
+
6
+ from polars._dependencies import altair as alt
7
+
8
+ if TYPE_CHECKING:
9
+ import sys
10
+
11
+ from altair.typing import EncodeKwds
12
+
13
+ from polars.dataframe.plotting import Encodings
14
+
15
+ if sys.version_info >= (3, 11):
16
+ from typing import Unpack
17
+ else:
18
+ from typing_extensions import Unpack
19
+
20
+ from polars import Series
21
+
22
+
23
+ class SeriesPlot:
24
+ """Series.plot namespace."""
25
+
26
+ _accessor = "plot"
27
+
28
+ def __init__(self, s: Series) -> None:
29
+ name = s.name or "value"
30
+ self._df = s.to_frame(name)
31
+ self._series_name = name
32
+
33
+ def hist(
34
+ self,
35
+ /,
36
+ **kwargs: Unpack[EncodeKwds],
37
+ ) -> alt.Chart:
38
+ """
39
+ Draw histogram.
40
+
41
+ Polars does not implement plotting logic itself but instead defers to
42
+ `Altair <https://altair-viz.github.io/>`_.
43
+
44
+ `s.plot.hist(**kwargs)` is shorthand for
45
+ `alt.Chart(s.to_frame()).mark_bar(tooltip=True).encode(x=alt.X(f'{s.name}:Q', bin=True), y='count()', **kwargs).interactive()`,
46
+ and is provided for convenience - for full customisatibility, use a plotting
47
+ library directly.
48
+
49
+ .. versionchanged:: 1.6.0
50
+ In prior versions of Polars, HvPlot was the plotting backend. If you would
51
+ like to restore the previous plotting functionality, all you need to do
52
+ is add `import hvplot.polars` at the top of your script and replace
53
+ `df.plot` with `df.hvplot`.
54
+
55
+ Parameters
56
+ ----------
57
+ **kwargs
58
+ Additional arguments and keyword arguments passed to Altair.
59
+
60
+ Examples
61
+ --------
62
+ >>> s = pl.Series("price", [1, 3, 3, 3, 5, 2, 6, 5, 5, 5, 7])
63
+ >>> s.plot.hist() # doctest: +SKIP
64
+ """ # noqa: W505
65
+ if self._series_name == "count()":
66
+ msg = "cannot use `plot.hist` when Series name is `'count()'`"
67
+ raise ValueError(msg)
68
+ encodings: Encodings = {
69
+ "x": alt.X(f"{self._series_name}:Q", bin=True),
70
+ "y": "count()",
71
+ }
72
+ return (
73
+ alt.Chart(self._df)
74
+ .mark_bar(tooltip=True)
75
+ .encode(**encodings, **kwargs)
76
+ .interactive()
77
+ )
78
+
79
+ def kde(
80
+ self,
81
+ /,
82
+ **kwargs: Unpack[EncodeKwds],
83
+ ) -> alt.Chart:
84
+ """
85
+ Draw kernel density estimate plot.
86
+
87
+ Polars does not implement plotting logic itself but instead defers to
88
+ `Altair <https://altair-viz.github.io/>`_.
89
+
90
+ `s.plot.kde(**kwargs)` is shorthand for
91
+ `alt.Chart(s.to_frame()).transform_density(s.name, as_=[s.name, 'density']).mark_area(tooltip=True).encode(x=s.name, y='density:Q', **kwargs).interactive()`,
92
+ and is provided for convenience - for full customisatibility, use a plotting
93
+ library directly.
94
+
95
+ .. versionchanged:: 1.6.0
96
+ In prior versions of Polars, HvPlot was the plotting backend. If you would
97
+ like to restore the previous plotting functionality, all you need to do
98
+ is add `import hvplot.polars` at the top of your script and replace
99
+ `df.plot` with `df.hvplot`.
100
+
101
+ Parameters
102
+ ----------
103
+ **kwargs
104
+ Additional keyword arguments passed to Altair.
105
+
106
+ Examples
107
+ --------
108
+ >>> s = pl.Series("price", [1, 3, 3, 3, 5, 2, 6, 5, 5, 5, 7])
109
+ >>> s.plot.kde() # doctest: +SKIP
110
+ """ # noqa: W505
111
+ if self._series_name == "density":
112
+ msg = "cannot use `plot.kde` when Series name is `'density'`"
113
+ raise ValueError(msg)
114
+ encodings: Encodings = {"x": self._series_name, "y": "density:Q"}
115
+ return (
116
+ alt.Chart(self._df)
117
+ .transform_density(self._series_name, as_=[self._series_name, "density"])
118
+ .mark_area(tooltip=True)
119
+ .encode(**encodings, **kwargs)
120
+ .interactive()
121
+ )
122
+
123
+ def line(
124
+ self,
125
+ /,
126
+ **kwargs: Unpack[EncodeKwds],
127
+ ) -> alt.Chart:
128
+ """
129
+ Draw line plot.
130
+
131
+ Polars does not implement plotting logic itself but instead defers to
132
+ `Altair <https://altair-viz.github.io/>`_.
133
+
134
+ `s.plot.line(**kwargs)` is shorthand for
135
+ `alt.Chart(s.to_frame().with_row_index()).mark_line(tooltip=True).encode(x='index', y=s.name, **kwargs).interactive()`,
136
+ and is provided for convenience - for full customisatibility, use a plotting
137
+ library directly.
138
+
139
+ .. versionchanged:: 1.6.0
140
+ In prior versions of Polars, HvPlot was the plotting backend. If you would
141
+ like to restore the previous plotting functionality, all you need to do
142
+ is add `import hvplot.polars` at the top of your script and replace
143
+ `df.plot` with `df.hvplot`.
144
+
145
+ Parameters
146
+ ----------
147
+ **kwargs
148
+ Additional keyword arguments passed to Altair.
149
+
150
+ Examples
151
+ --------
152
+ >>> s = pl.Series("price", [1, 3, 3, 3, 5, 2, 6, 5, 5, 5, 7])
153
+ >>> s.plot.line() # doctest: +SKIP
154
+ """ # noqa: W505
155
+ if self._series_name == "index":
156
+ msg = "cannot call `plot.line` when Series name is 'index'"
157
+ raise ValueError(msg)
158
+ encodings: Encodings = {"x": "index", "y": self._series_name}
159
+ return (
160
+ alt.Chart(self._df.with_row_index())
161
+ .mark_line(tooltip=True)
162
+ .encode(**encodings, **kwargs)
163
+ .interactive()
164
+ )
165
+
166
+ def __getattr__(self, attr: str) -> Callable[..., alt.Chart]:
167
+ if self._series_name == "index":
168
+ msg = f"Cannot call `plot.{attr}` when Series name is 'index'"
169
+ raise ValueError(msg)
170
+ if attr == "scatter":
171
+ # alias `scatter` to `point` because of how common it is
172
+ attr = "point"
173
+ method = getattr(alt.Chart(self._df.with_row_index()), f"mark_{attr}", None)
174
+ if method is None:
175
+ msg = f"Altair has no method 'mark_{attr}'"
176
+ raise AttributeError(msg)
177
+ encodings: Encodings = {"x": "index", "y": self._series_name}
178
+
179
+ accepts_tooltip_argument = "tooltip" in {
180
+ value.name for value in inspect.signature(method).parameters.values()
181
+ }
182
+ if accepts_tooltip_argument:
183
+
184
+ def func(**kwargs: EncodeKwds) -> alt.Chart:
185
+ return method(tooltip=True).encode(**encodings, **kwargs).interactive()
186
+ else:
187
+
188
+ def func(**kwargs: EncodeKwds) -> alt.Chart:
189
+ return method().encode(**encodings, **kwargs).interactive()
190
+
191
+ return func