polars-runtime-compat 1.34.0b3__cp39-abi3-win_arm64.whl → 1.34.0b4__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.
- _polars_runtime_compat/_polars_runtime_compat.pyd +0 -0
- {polars_runtime_compat-1.34.0b3.dist-info → polars_runtime_compat-1.34.0b4.dist-info}/METADATA +1 -1
- polars_runtime_compat-1.34.0b4.dist-info/RECORD +6 -0
- polars/__init__.py +0 -528
- polars/_cpu_check.py +0 -265
- polars/_dependencies.py +0 -355
- polars/_plr.py +0 -99
- polars/_plr.pyi +0 -2496
- polars/_reexport.py +0 -23
- polars/_typing.py +0 -478
- polars/_utils/__init__.py +0 -37
- polars/_utils/async_.py +0 -102
- polars/_utils/cache.py +0 -176
- polars/_utils/cloud.py +0 -40
- polars/_utils/constants.py +0 -29
- polars/_utils/construction/__init__.py +0 -46
- polars/_utils/construction/dataframe.py +0 -1397
- polars/_utils/construction/other.py +0 -72
- polars/_utils/construction/series.py +0 -560
- polars/_utils/construction/utils.py +0 -118
- polars/_utils/convert.py +0 -224
- polars/_utils/deprecation.py +0 -406
- polars/_utils/getitem.py +0 -457
- polars/_utils/logging.py +0 -11
- polars/_utils/nest_asyncio.py +0 -264
- polars/_utils/parquet.py +0 -15
- polars/_utils/parse/__init__.py +0 -12
- polars/_utils/parse/expr.py +0 -242
- polars/_utils/polars_version.py +0 -19
- polars/_utils/pycapsule.py +0 -53
- polars/_utils/scan.py +0 -27
- polars/_utils/serde.py +0 -63
- polars/_utils/slice.py +0 -215
- polars/_utils/udfs.py +0 -1251
- polars/_utils/unstable.py +0 -63
- polars/_utils/various.py +0 -782
- polars/_utils/wrap.py +0 -25
- polars/api.py +0 -370
- polars/catalog/__init__.py +0 -0
- polars/catalog/unity/__init__.py +0 -19
- polars/catalog/unity/client.py +0 -733
- polars/catalog/unity/models.py +0 -152
- polars/config.py +0 -1571
- polars/convert/__init__.py +0 -25
- polars/convert/general.py +0 -1046
- polars/convert/normalize.py +0 -261
- polars/dataframe/__init__.py +0 -5
- polars/dataframe/_html.py +0 -186
- polars/dataframe/frame.py +0 -12582
- polars/dataframe/group_by.py +0 -1067
- polars/dataframe/plotting.py +0 -257
- polars/datatype_expr/__init__.py +0 -5
- polars/datatype_expr/array.py +0 -56
- polars/datatype_expr/datatype_expr.py +0 -304
- polars/datatype_expr/list.py +0 -18
- polars/datatype_expr/struct.py +0 -69
- polars/datatypes/__init__.py +0 -122
- polars/datatypes/_parse.py +0 -195
- polars/datatypes/_utils.py +0 -48
- polars/datatypes/classes.py +0 -1213
- polars/datatypes/constants.py +0 -11
- polars/datatypes/constructor.py +0 -172
- polars/datatypes/convert.py +0 -366
- polars/datatypes/group.py +0 -130
- polars/exceptions.py +0 -230
- polars/expr/__init__.py +0 -7
- polars/expr/array.py +0 -964
- polars/expr/binary.py +0 -346
- polars/expr/categorical.py +0 -306
- polars/expr/datetime.py +0 -2620
- polars/expr/expr.py +0 -11272
- polars/expr/list.py +0 -1408
- polars/expr/meta.py +0 -444
- polars/expr/name.py +0 -321
- polars/expr/string.py +0 -3045
- polars/expr/struct.py +0 -357
- polars/expr/whenthen.py +0 -185
- polars/functions/__init__.py +0 -193
- polars/functions/aggregation/__init__.py +0 -33
- polars/functions/aggregation/horizontal.py +0 -298
- polars/functions/aggregation/vertical.py +0 -341
- polars/functions/as_datatype.py +0 -848
- polars/functions/business.py +0 -138
- polars/functions/col.py +0 -384
- polars/functions/datatype.py +0 -121
- polars/functions/eager.py +0 -524
- polars/functions/escape_regex.py +0 -29
- polars/functions/lazy.py +0 -2751
- polars/functions/len.py +0 -68
- polars/functions/lit.py +0 -210
- polars/functions/random.py +0 -22
- polars/functions/range/__init__.py +0 -19
- polars/functions/range/_utils.py +0 -15
- polars/functions/range/date_range.py +0 -303
- polars/functions/range/datetime_range.py +0 -370
- polars/functions/range/int_range.py +0 -348
- polars/functions/range/linear_space.py +0 -311
- polars/functions/range/time_range.py +0 -287
- polars/functions/repeat.py +0 -301
- polars/functions/whenthen.py +0 -353
- polars/interchange/__init__.py +0 -10
- polars/interchange/buffer.py +0 -77
- polars/interchange/column.py +0 -190
- polars/interchange/dataframe.py +0 -230
- polars/interchange/from_dataframe.py +0 -328
- polars/interchange/protocol.py +0 -303
- polars/interchange/utils.py +0 -170
- polars/io/__init__.py +0 -64
- polars/io/_utils.py +0 -317
- polars/io/avro.py +0 -49
- polars/io/clipboard.py +0 -36
- polars/io/cloud/__init__.py +0 -17
- polars/io/cloud/_utils.py +0 -80
- polars/io/cloud/credential_provider/__init__.py +0 -17
- polars/io/cloud/credential_provider/_builder.py +0 -520
- polars/io/cloud/credential_provider/_providers.py +0 -618
- polars/io/csv/__init__.py +0 -9
- polars/io/csv/_utils.py +0 -38
- polars/io/csv/batched_reader.py +0 -142
- polars/io/csv/functions.py +0 -1495
- polars/io/database/__init__.py +0 -6
- polars/io/database/_arrow_registry.py +0 -70
- polars/io/database/_cursor_proxies.py +0 -147
- polars/io/database/_executor.py +0 -578
- polars/io/database/_inference.py +0 -314
- polars/io/database/_utils.py +0 -144
- polars/io/database/functions.py +0 -516
- polars/io/delta.py +0 -499
- polars/io/iceberg/__init__.py +0 -3
- polars/io/iceberg/_utils.py +0 -697
- polars/io/iceberg/dataset.py +0 -556
- polars/io/iceberg/functions.py +0 -151
- polars/io/ipc/__init__.py +0 -8
- polars/io/ipc/functions.py +0 -514
- polars/io/json/__init__.py +0 -3
- polars/io/json/read.py +0 -101
- polars/io/ndjson.py +0 -332
- polars/io/parquet/__init__.py +0 -17
- polars/io/parquet/field_overwrites.py +0 -140
- polars/io/parquet/functions.py +0 -722
- polars/io/partition.py +0 -491
- polars/io/plugins.py +0 -187
- polars/io/pyarrow_dataset/__init__.py +0 -5
- polars/io/pyarrow_dataset/anonymous_scan.py +0 -109
- polars/io/pyarrow_dataset/functions.py +0 -79
- polars/io/scan_options/__init__.py +0 -5
- polars/io/scan_options/_options.py +0 -59
- polars/io/scan_options/cast_options.py +0 -126
- polars/io/spreadsheet/__init__.py +0 -6
- polars/io/spreadsheet/_utils.py +0 -52
- polars/io/spreadsheet/_write_utils.py +0 -647
- polars/io/spreadsheet/functions.py +0 -1323
- polars/lazyframe/__init__.py +0 -9
- polars/lazyframe/engine_config.py +0 -61
- polars/lazyframe/frame.py +0 -8564
- polars/lazyframe/group_by.py +0 -669
- polars/lazyframe/in_process.py +0 -42
- polars/lazyframe/opt_flags.py +0 -333
- polars/meta/__init__.py +0 -14
- polars/meta/build.py +0 -33
- polars/meta/index_type.py +0 -27
- polars/meta/thread_pool.py +0 -50
- polars/meta/versions.py +0 -120
- polars/ml/__init__.py +0 -0
- polars/ml/torch.py +0 -213
- polars/ml/utilities.py +0 -30
- polars/plugins.py +0 -155
- polars/py.typed +0 -0
- polars/pyproject.toml +0 -103
- polars/schema.py +0 -265
- polars/selectors.py +0 -3117
- polars/series/__init__.py +0 -5
- polars/series/array.py +0 -776
- polars/series/binary.py +0 -254
- polars/series/categorical.py +0 -246
- polars/series/datetime.py +0 -2275
- polars/series/list.py +0 -1087
- polars/series/plotting.py +0 -191
- polars/series/series.py +0 -9197
- polars/series/string.py +0 -2367
- polars/series/struct.py +0 -154
- polars/series/utils.py +0 -191
- polars/sql/__init__.py +0 -7
- polars/sql/context.py +0 -677
- polars/sql/functions.py +0 -139
- polars/string_cache.py +0 -185
- polars/testing/__init__.py +0 -13
- polars/testing/asserts/__init__.py +0 -9
- polars/testing/asserts/frame.py +0 -231
- polars/testing/asserts/series.py +0 -219
- polars/testing/asserts/utils.py +0 -12
- polars/testing/parametric/__init__.py +0 -33
- polars/testing/parametric/profiles.py +0 -107
- polars/testing/parametric/strategies/__init__.py +0 -22
- polars/testing/parametric/strategies/_utils.py +0 -14
- polars/testing/parametric/strategies/core.py +0 -615
- polars/testing/parametric/strategies/data.py +0 -452
- polars/testing/parametric/strategies/dtype.py +0 -436
- polars/testing/parametric/strategies/legacy.py +0 -169
- polars/type_aliases.py +0 -24
- polars_runtime_compat-1.34.0b3.dist-info/RECORD +0 -203
- {polars_runtime_compat-1.34.0b3.dist-info → polars_runtime_compat-1.34.0b4.dist-info}/WHEEL +0 -0
- {polars_runtime_compat-1.34.0b3.dist-info → polars_runtime_compat-1.34.0b4.dist-info}/licenses/LICENSE +0 -0
polars/testing/asserts/series.py
DELETED
|
@@ -1,219 +0,0 @@
|
|
|
1
|
-
from __future__ import annotations
|
|
2
|
-
|
|
3
|
-
import contextlib
|
|
4
|
-
from typing import Any
|
|
5
|
-
|
|
6
|
-
from polars._utils.deprecation import deprecate_renamed_parameter
|
|
7
|
-
from polars.series import Series
|
|
8
|
-
from polars.testing.asserts.utils import raise_assertion_error
|
|
9
|
-
|
|
10
|
-
with contextlib.suppress(ImportError): # Module not available when building docs
|
|
11
|
-
from polars._plr import assert_series_equal_py
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
def _assert_correct_input_type(left: Any, right: Any) -> bool:
|
|
15
|
-
__tracebackhide__ = True
|
|
16
|
-
|
|
17
|
-
if not (isinstance(left, Series) and isinstance(right, Series)):
|
|
18
|
-
raise_assertion_error(
|
|
19
|
-
"inputs",
|
|
20
|
-
"unexpected input types",
|
|
21
|
-
type(left).__name__,
|
|
22
|
-
type(right).__name__,
|
|
23
|
-
)
|
|
24
|
-
return True
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
@deprecate_renamed_parameter("check_dtype", "check_dtypes", version="0.20.31")
|
|
28
|
-
@deprecate_renamed_parameter("rtol", "rel_tol", version="1.32.3")
|
|
29
|
-
@deprecate_renamed_parameter("atol", "abs_tol", version="1.32.3")
|
|
30
|
-
def assert_series_equal(
|
|
31
|
-
left: Series,
|
|
32
|
-
right: Series,
|
|
33
|
-
*,
|
|
34
|
-
check_dtypes: bool = True,
|
|
35
|
-
check_names: bool = True,
|
|
36
|
-
check_order: bool = True,
|
|
37
|
-
check_exact: bool = False,
|
|
38
|
-
rel_tol: float = 1e-5,
|
|
39
|
-
abs_tol: float = 1e-8,
|
|
40
|
-
categorical_as_str: bool = False,
|
|
41
|
-
) -> None:
|
|
42
|
-
"""
|
|
43
|
-
Assert that the left and right Series are equal.
|
|
44
|
-
|
|
45
|
-
Raises a detailed `AssertionError` if the Series differ.
|
|
46
|
-
This function is intended for use in unit tests.
|
|
47
|
-
|
|
48
|
-
.. versionchanged:: 0.20.31
|
|
49
|
-
The `check_dtype` parameter was renamed `check_dtypes`.
|
|
50
|
-
|
|
51
|
-
.. versionchanged:: 1.32.3
|
|
52
|
-
The `rtol` and `atol` parameters were renamed to `rel_tol` and `abs_tol`,
|
|
53
|
-
respectively.
|
|
54
|
-
|
|
55
|
-
Parameters
|
|
56
|
-
----------
|
|
57
|
-
left
|
|
58
|
-
The first Series to compare.
|
|
59
|
-
right
|
|
60
|
-
The second Series to compare.
|
|
61
|
-
check_dtypes
|
|
62
|
-
Requires data types to match.
|
|
63
|
-
check_names
|
|
64
|
-
Requires names to match.
|
|
65
|
-
check_order
|
|
66
|
-
Requires elements to appear in the same order.
|
|
67
|
-
check_exact
|
|
68
|
-
Requires float values to match exactly. If set to `False`, values are considered
|
|
69
|
-
equal when within tolerance of each other (see `rel_tol` and `abs_tol`).
|
|
70
|
-
Only affects columns with a Float data type.
|
|
71
|
-
rel_tol
|
|
72
|
-
Relative tolerance for inexact checking, given as a fraction of the values in
|
|
73
|
-
`right`.
|
|
74
|
-
abs_tol
|
|
75
|
-
Absolute tolerance for inexact checking.
|
|
76
|
-
categorical_as_str
|
|
77
|
-
Cast categorical columns to string before comparing. Enabling this helps
|
|
78
|
-
compare columns that do not share the same string cache.
|
|
79
|
-
|
|
80
|
-
See Also
|
|
81
|
-
--------
|
|
82
|
-
assert_frame_equal
|
|
83
|
-
assert_series_not_equal
|
|
84
|
-
|
|
85
|
-
Notes
|
|
86
|
-
-----
|
|
87
|
-
When using pytest, it may be worthwhile to shorten Python traceback printing
|
|
88
|
-
by passing `--tb=short`. The default mode tends to be unhelpfully verbose.
|
|
89
|
-
More information in the
|
|
90
|
-
`pytest docs <https://docs.pytest.org/en/latest/how-to/output.html#modifying-python-traceback-printing>`_.
|
|
91
|
-
|
|
92
|
-
Examples
|
|
93
|
-
--------
|
|
94
|
-
>>> from polars.testing import assert_series_equal
|
|
95
|
-
>>> s1 = pl.Series([1, 2, 3])
|
|
96
|
-
>>> s2 = pl.Series([1, 5, 3])
|
|
97
|
-
>>> assert_series_equal(s1, s2)
|
|
98
|
-
Traceback (most recent call last):
|
|
99
|
-
...
|
|
100
|
-
AssertionError: Series are different (exact value mismatch)
|
|
101
|
-
[left]: shape: (3,)
|
|
102
|
-
Series: '' [i64]
|
|
103
|
-
[
|
|
104
|
-
1
|
|
105
|
-
2
|
|
106
|
-
3
|
|
107
|
-
]
|
|
108
|
-
[right]: shape: (3,)
|
|
109
|
-
Series: '' [i64]
|
|
110
|
-
[
|
|
111
|
-
1
|
|
112
|
-
5
|
|
113
|
-
3
|
|
114
|
-
]
|
|
115
|
-
"""
|
|
116
|
-
__tracebackhide__ = True
|
|
117
|
-
|
|
118
|
-
_assert_correct_input_type(left, right)
|
|
119
|
-
|
|
120
|
-
assert_series_equal_py(
|
|
121
|
-
left._s,
|
|
122
|
-
right._s,
|
|
123
|
-
check_dtypes=check_dtypes,
|
|
124
|
-
check_names=check_names,
|
|
125
|
-
check_order=check_order,
|
|
126
|
-
check_exact=check_exact,
|
|
127
|
-
rel_tol=rel_tol,
|
|
128
|
-
abs_tol=abs_tol,
|
|
129
|
-
categorical_as_str=categorical_as_str,
|
|
130
|
-
)
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
@deprecate_renamed_parameter("check_dtype", "check_dtypes", version="0.20.31")
|
|
134
|
-
@deprecate_renamed_parameter("rtol", "rel_tol", version="1.32.3")
|
|
135
|
-
@deprecate_renamed_parameter("atol", "abs_tol", version="1.32.3")
|
|
136
|
-
def assert_series_not_equal(
|
|
137
|
-
left: Series,
|
|
138
|
-
right: Series,
|
|
139
|
-
*,
|
|
140
|
-
check_dtypes: bool = True,
|
|
141
|
-
check_names: bool = True,
|
|
142
|
-
check_order: bool = True,
|
|
143
|
-
check_exact: bool = False,
|
|
144
|
-
rel_tol: float = 1e-5,
|
|
145
|
-
abs_tol: float = 1e-8,
|
|
146
|
-
categorical_as_str: bool = False,
|
|
147
|
-
) -> None:
|
|
148
|
-
"""
|
|
149
|
-
Assert that the left and right Series are **not** equal.
|
|
150
|
-
|
|
151
|
-
This function is intended for use in unit tests.
|
|
152
|
-
|
|
153
|
-
.. versionchanged:: 0.20.31
|
|
154
|
-
The `check_dtype` parameter was renamed `check_dtypes`.
|
|
155
|
-
|
|
156
|
-
.. versionchanged:: 1.32.3
|
|
157
|
-
The `rtol` and `atol` parameters were renamed to `rel_tol` and `abs_tol`,
|
|
158
|
-
respectively.
|
|
159
|
-
|
|
160
|
-
Parameters
|
|
161
|
-
----------
|
|
162
|
-
left
|
|
163
|
-
The first Series to compare.
|
|
164
|
-
right
|
|
165
|
-
The second Series to compare.
|
|
166
|
-
check_dtypes
|
|
167
|
-
Requires data types to match.
|
|
168
|
-
check_names
|
|
169
|
-
Requires names to match.
|
|
170
|
-
check_order
|
|
171
|
-
Requires elements to appear in the same order.
|
|
172
|
-
check_exact
|
|
173
|
-
Requires float values to match exactly. If set to `False`, values are considered
|
|
174
|
-
equal when within tolerance of each other (see `rel_tol` and `abs_tol`).
|
|
175
|
-
Only affects columns with a Float data type.
|
|
176
|
-
rel_tol
|
|
177
|
-
Relative tolerance for inexact checking, given as a fraction of the values in
|
|
178
|
-
`right`.
|
|
179
|
-
abs_tol
|
|
180
|
-
Absolute tolerance for inexact checking.
|
|
181
|
-
categorical_as_str
|
|
182
|
-
Cast categorical columns to string before comparing. Enabling this helps
|
|
183
|
-
compare columns that do not share the same string cache.
|
|
184
|
-
|
|
185
|
-
See Also
|
|
186
|
-
--------
|
|
187
|
-
assert_series_equal
|
|
188
|
-
assert_frame_not_equal
|
|
189
|
-
|
|
190
|
-
Examples
|
|
191
|
-
--------
|
|
192
|
-
>>> from polars.testing import assert_series_not_equal
|
|
193
|
-
>>> s1 = pl.Series([1, 2, 3])
|
|
194
|
-
>>> s2 = pl.Series([1, 2, 3])
|
|
195
|
-
>>> assert_series_not_equal(s1, s2)
|
|
196
|
-
Traceback (most recent call last):
|
|
197
|
-
...
|
|
198
|
-
AssertionError: Series are equal (but are expected not to be)
|
|
199
|
-
"""
|
|
200
|
-
__tracebackhide__ = True
|
|
201
|
-
|
|
202
|
-
_assert_correct_input_type(left, right)
|
|
203
|
-
try:
|
|
204
|
-
assert_series_equal(
|
|
205
|
-
left=left,
|
|
206
|
-
right=right,
|
|
207
|
-
check_dtypes=check_dtypes,
|
|
208
|
-
check_names=check_names,
|
|
209
|
-
check_order=check_order,
|
|
210
|
-
check_exact=check_exact,
|
|
211
|
-
rel_tol=rel_tol,
|
|
212
|
-
abs_tol=abs_tol,
|
|
213
|
-
categorical_as_str=categorical_as_str,
|
|
214
|
-
)
|
|
215
|
-
except AssertionError:
|
|
216
|
-
return
|
|
217
|
-
else:
|
|
218
|
-
msg = "Series are equal (but are expected not to be)"
|
|
219
|
-
raise AssertionError(msg)
|
polars/testing/asserts/utils.py
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
from __future__ import annotations
|
|
2
|
-
|
|
3
|
-
from typing import Any, NoReturn
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
def raise_assertion_error(
|
|
7
|
-
objects: str, detail: str, left: Any, right: Any, *, cause: Exception | None = None
|
|
8
|
-
) -> NoReturn:
|
|
9
|
-
"""Raise a detailed assertion error."""
|
|
10
|
-
__tracebackhide__ = True
|
|
11
|
-
msg = f"{objects} are different ({detail})\n[left]: {left}\n[right]: {right}"
|
|
12
|
-
raise AssertionError(msg) from cause
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
from polars._dependencies import _HYPOTHESIS_AVAILABLE
|
|
2
|
-
|
|
3
|
-
if not _HYPOTHESIS_AVAILABLE:
|
|
4
|
-
msg = (
|
|
5
|
-
"polars.testing.parametric requires the 'hypothesis' module\n"
|
|
6
|
-
"Please install it using the command: pip install hypothesis"
|
|
7
|
-
)
|
|
8
|
-
raise ModuleNotFoundError(msg)
|
|
9
|
-
|
|
10
|
-
from polars.testing.parametric.profiles import load_profile, set_profile
|
|
11
|
-
from polars.testing.parametric.strategies import (
|
|
12
|
-
column,
|
|
13
|
-
columns,
|
|
14
|
-
create_list_strategy,
|
|
15
|
-
dataframes,
|
|
16
|
-
dtypes,
|
|
17
|
-
lists,
|
|
18
|
-
series,
|
|
19
|
-
)
|
|
20
|
-
|
|
21
|
-
__all__ = [
|
|
22
|
-
# strategies
|
|
23
|
-
"dataframes",
|
|
24
|
-
"series",
|
|
25
|
-
"column",
|
|
26
|
-
"columns",
|
|
27
|
-
"dtypes",
|
|
28
|
-
"lists",
|
|
29
|
-
"create_list_strategy",
|
|
30
|
-
# profiles
|
|
31
|
-
"load_profile",
|
|
32
|
-
"set_profile",
|
|
33
|
-
]
|
|
@@ -1,107 +0,0 @@
|
|
|
1
|
-
from __future__ import annotations
|
|
2
|
-
|
|
3
|
-
import os
|
|
4
|
-
import re
|
|
5
|
-
|
|
6
|
-
from hypothesis import settings
|
|
7
|
-
|
|
8
|
-
from polars._typing import ParametricProfileNames
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
def load_profile(
|
|
12
|
-
profile: ParametricProfileNames | int = "fast", *, set_environment: bool = False
|
|
13
|
-
) -> None:
|
|
14
|
-
"""
|
|
15
|
-
Load a named (or custom) hypothesis profile for use with the parametric tests.
|
|
16
|
-
|
|
17
|
-
.. warning::
|
|
18
|
-
This functionality is currently considered **unstable**. It may be
|
|
19
|
-
changed at any point without it being considered a breaking change.
|
|
20
|
-
|
|
21
|
-
Parameters
|
|
22
|
-
----------
|
|
23
|
-
profile : {str, int}, optional
|
|
24
|
-
Name of the profile to load; one of "fast", "balanced", "expensive", or
|
|
25
|
-
the integer number of iterations to run (which will create and register
|
|
26
|
-
a custom profile with that value).
|
|
27
|
-
|
|
28
|
-
set_environment : bool, default False
|
|
29
|
-
If True, also set the environment variable `POLARS_HYPOTHESIS_PROFILE`
|
|
30
|
-
to the given profile name/value.
|
|
31
|
-
|
|
32
|
-
Examples
|
|
33
|
-
--------
|
|
34
|
-
>>> # load a custom profile that will run with 1500 iterations
|
|
35
|
-
>>> from polars.testing.parametric import load_profile
|
|
36
|
-
>>> load_profile(1500)
|
|
37
|
-
"""
|
|
38
|
-
common_settings = {"print_blob": True, "deadline": None}
|
|
39
|
-
profile_name = str(profile)
|
|
40
|
-
|
|
41
|
-
# Register standard/named profiles
|
|
42
|
-
# --------------------------------
|
|
43
|
-
for name, iterations in (
|
|
44
|
-
("fast", 100),
|
|
45
|
-
("balanced", 1_000),
|
|
46
|
-
("expensive", 10_000),
|
|
47
|
-
):
|
|
48
|
-
settings.register_profile(
|
|
49
|
-
name=f"polars.{name}",
|
|
50
|
-
max_examples=iterations,
|
|
51
|
-
**common_settings, # type: ignore[arg-type]
|
|
52
|
-
)
|
|
53
|
-
|
|
54
|
-
# Register a custom profile with 'n' iterations.
|
|
55
|
-
# ----------------------------------------------
|
|
56
|
-
# (Set the ideal number to balance time-vs-coverage for your machine).
|
|
57
|
-
if profile_name.isdigit() or re.match(r"polars\.custom\.[\d_]+$", profile_name):
|
|
58
|
-
n_iterations = int(profile_name.replace("polars.custom.", ""))
|
|
59
|
-
profile_name = f"polars.custom.{profile_name}"
|
|
60
|
-
settings.register_profile(
|
|
61
|
-
name=profile_name,
|
|
62
|
-
max_examples=n_iterations,
|
|
63
|
-
**common_settings, # type: ignore[arg-type]
|
|
64
|
-
)
|
|
65
|
-
|
|
66
|
-
# Load the chosen profile
|
|
67
|
-
profile_name = f"polars.{profile_name.replace('polars.', '')}"
|
|
68
|
-
settings.load_profile(profile_name)
|
|
69
|
-
|
|
70
|
-
if set_environment:
|
|
71
|
-
set_profile(profile_name) # type: ignore[arg-type]
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
def set_profile(profile: ParametricProfileNames | int) -> None:
|
|
75
|
-
"""
|
|
76
|
-
Set the env var `POLARS_HYPOTHESIS_PROFILE` to the given profile name/value.
|
|
77
|
-
|
|
78
|
-
.. warning::
|
|
79
|
-
This functionality is currently considered **unstable**. It may be
|
|
80
|
-
changed at any point without it being considered a breaking change.
|
|
81
|
-
|
|
82
|
-
Parameters
|
|
83
|
-
----------
|
|
84
|
-
profile : {str, int}, optional
|
|
85
|
-
Name of the profile to load; one of "fast", "balanced", "expensive", or
|
|
86
|
-
the integer number of iterations to run (which will create and register
|
|
87
|
-
a custom profile with that value).
|
|
88
|
-
|
|
89
|
-
Examples
|
|
90
|
-
--------
|
|
91
|
-
>>> # prefer the 'balanced' profile for running parametric tests
|
|
92
|
-
>>> from polars.testing.parametric import set_profile
|
|
93
|
-
>>> set_profile("balanced")
|
|
94
|
-
"""
|
|
95
|
-
profile_name = str(profile).split(".")[-1]
|
|
96
|
-
if profile_name.replace("_", "").isdigit():
|
|
97
|
-
profile_name = str(int(profile_name))
|
|
98
|
-
|
|
99
|
-
else:
|
|
100
|
-
from typing import get_args
|
|
101
|
-
|
|
102
|
-
valid_profile_names = get_args(ParametricProfileNames)
|
|
103
|
-
if profile_name not in valid_profile_names:
|
|
104
|
-
msg = f"invalid profile name {profile_name!r}; expected one of {valid_profile_names!r}"
|
|
105
|
-
raise ValueError(msg)
|
|
106
|
-
|
|
107
|
-
os.environ["POLARS_HYPOTHESIS_PROFILE"] = profile_name
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
from polars.testing.parametric.strategies.core import (
|
|
2
|
-
column,
|
|
3
|
-
dataframes,
|
|
4
|
-
series,
|
|
5
|
-
)
|
|
6
|
-
from polars.testing.parametric.strategies.data import lists
|
|
7
|
-
from polars.testing.parametric.strategies.dtype import dtypes
|
|
8
|
-
from polars.testing.parametric.strategies.legacy import columns, create_list_strategy
|
|
9
|
-
|
|
10
|
-
__all__ = [
|
|
11
|
-
# core
|
|
12
|
-
"dataframes",
|
|
13
|
-
"series",
|
|
14
|
-
"column",
|
|
15
|
-
# dtype
|
|
16
|
-
"dtypes",
|
|
17
|
-
# data
|
|
18
|
-
"lists",
|
|
19
|
-
# legacy
|
|
20
|
-
"columns",
|
|
21
|
-
"create_list_strategy",
|
|
22
|
-
]
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
from typing import Any
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
def flexhash(elem: Any) -> int:
|
|
5
|
-
"""
|
|
6
|
-
Hashing function that also handles lists and dictionaries.
|
|
7
|
-
|
|
8
|
-
Used for `unique` check in nested strategies.
|
|
9
|
-
"""
|
|
10
|
-
if isinstance(elem, list):
|
|
11
|
-
return hash(tuple(flexhash(e) for e in elem))
|
|
12
|
-
elif isinstance(elem, dict):
|
|
13
|
-
return hash(tuple((k, flexhash(v)) for k, v in elem.items()))
|
|
14
|
-
return hash(elem)
|