pointblank 0.13.1__py3-none-any.whl → 0.13.2__py3-none-any.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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pointblank
3
- Version: 0.13.1
3
+ Version: 0.13.2
4
4
  Summary: Find out if your data is what you think it is.
5
5
  Author-email: Richard Iannone <riannone@me.com>
6
6
  License: MIT License
@@ -49,10 +49,11 @@ Requires-Dist: requests>=2.31.0
49
49
  Requires-Dist: click>=8.0.0
50
50
  Requires-Dist: rich>=13.0.0
51
51
  Requires-Dist: pyyaml>=6.0.0
52
+ Requires-Dist: polars>=1.33.0
52
53
  Provides-Extra: pd
53
54
  Requires-Dist: pandas>=2.2.3; extra == "pd"
54
55
  Provides-Extra: pl
55
- Requires-Dist: polars>=1.24.0; extra == "pl"
56
+ Requires-Dist: polars>=1.33.0; extra == "pl"
56
57
  Provides-Extra: pyspark
57
58
  Requires-Dist: pyspark==3.5.6; extra == "pyspark"
58
59
  Provides-Extra: generate
@@ -1,9 +1,9 @@
1
- pointblank/__init__.py,sha256=Qt6HEcSoduSkphatxf2Bqy4KNP-wXssRv9zlEslhTJk,1915
2
- pointblank/_constants.py,sha256=rB8qTnhabwmSQURevHqokC1pp5lfaWMCzhmbMZ0CP8A,81512
1
+ pointblank/__init__.py,sha256=IZ-JwGWr2DOFBfq4XvE0SzceWMkFewtBN10V4F9pIGg,1876
2
+ pointblank/_constants.py,sha256=HHiGuso_To-PsKQLxVDYa_Iczy92iPoIYurTy6BAtL4,80778
3
3
  pointblank/_constants_docs.py,sha256=JBmtt16zTYQ-zaM4ElLExtKs-dKlnN553Ys2ML1Y1C8,2099
4
- pointblank/_constants_translations.py,sha256=HXcCYmKoMjoaFv-Ym4UWv3AsIVXik2zDyAy7xvTvv0Y,186710
4
+ pointblank/_constants_translations.py,sha256=NBVGX9veULXMwEHwSrlzpCpM9hcFeyS1xBmyBt_8_mU,190053
5
5
  pointblank/_datascan_utils.py,sha256=EMfeabXm_ZsCUKPROB7rFhyOpjtRs8jcnZ_9nBtMyws,1750
6
- pointblank/_interrogation.py,sha256=p3qPTgcsYiDEyV9d5pWLzAqz9rU9-IsfmSFV4sWRBNI,76932
6
+ pointblank/_interrogation.py,sha256=FbzFa_QJIYQjH0l4D6XaMW73r71gwMrfA8lXiF4r2a4,76540
7
7
  pointblank/_typing.py,sha256=aItbCbzhbzqjK3lCbL27ltRyXoAH1c3-U6xQdRzg-lU,1594
8
8
  pointblank/_utils.py,sha256=ikgkFomoAEOxaiItHZUo3NTHu0MJHWfKAF_fnX9rRnA,30685
9
9
  pointblank/_utils_check_args.py,sha256=rFEc1nbCN8ftsQQWVjCNWmQ2QmUDxkfgmoJclrZeTLs,5489
@@ -11,17 +11,16 @@ pointblank/_utils_html.py,sha256=uJWvS9JwQVEZgwsGmScA_u_EBRND75rzUvnJPalbRVs,373
11
11
  pointblank/actions.py,sha256=D6o9B2_ES9PNQg9HZwREacrrt-3A5bhdrBkL1UXz__s,18281
12
12
  pointblank/assistant.py,sha256=vcdFgXmdVSiylQgTW3e62c13X3vAicBPjyG8OTZXmGM,15902
13
13
  pointblank/cli.py,sha256=p2cO-NKInQ41hqRMy6TNmxOj48pR5vq8s7JTLXfcP4M,228188
14
- pointblank/column.py,sha256=_FJjpjv760D1p6YGgqbwmKYktouG7AJ2A9uIMYQBTYA,76560
14
+ pointblank/column.py,sha256=w41CBg3lt3ZzKS_j-SYdkRmnOWcP5xXa0rRjsPVRE_M,76781
15
15
  pointblank/compare.py,sha256=kFd18CehHz7g-2MF1kSmJSdOoAP80q_9PaF6QzHC1ds,866
16
- pointblank/datascan.py,sha256=nmTcRLW8nAZfvRS_Nf00Wgx4oUX-o6WFOZqLDbedbu8,24563
16
+ pointblank/datascan.py,sha256=tQiwe9x0jAbK9OJLQe53R_qRl2uBKireaWsMlM8K1sw,24630
17
17
  pointblank/draft.py,sha256=cusr4fBiNncCKIOU8UwvJcvkBeBuUnqH_UfYp9dtNss,15777
18
18
  pointblank/scan_profile.py,sha256=lZU5hlnzznDATNn9W3gNdyuFm05WDP8y1RjDJEcE5zg,10426
19
19
  pointblank/scan_profile_stats.py,sha256=qdzoGXB-zi2hmpA4mTz6LLTqMnb-NRG9ndxU9cxS72w,4461
20
- pointblank/schema.py,sha256=vwGF8UKy2riRSQzcwatcI6L0t_6ccdbOayrKonvyodE,45777
20
+ pointblank/schema.py,sha256=hjALMuYppNfELC_nAqfM9fLjPdN1w2M3rDMusrPqFYA,50757
21
21
  pointblank/segments.py,sha256=RXp3lPr3FboVseadNqLgIeoMBh_mykrQSFp1WtV41Yg,5570
22
- pointblank/tf.py,sha256=8o_8m4i01teulEe3-YYMotSNf3tImjBMInsvdjSAO5Q,8844
23
22
  pointblank/thresholds.py,sha256=mybeLzTVdmN04NLKoV-jiSBXsWknwHO0Gox0ttVN_MU,25766
24
- pointblank/validate.py,sha256=py6w239Mh7tbAfXJkanDLARCkWE5EFhTlfvS0KOjnWA,697215
23
+ pointblank/validate.py,sha256=vFIxDSFxBdNNGtXggjpuzpp2qryDhCa9qa7gRGRmwa4,709119
25
24
  pointblank/yaml.py,sha256=Sy802CZBOgEZGwbIes8wcXPPt2a5rXO0b3lh9tsLS8w,58966
26
25
  pointblank/data/api-docs.txt,sha256=w2nIkIL_fJpXlPR9clogqcgdiv-uHvdSDI8gjkP_mCQ,531711
27
26
  pointblank/data/game_revenue-duckdb.zip,sha256=tKIVx48OGLYGsQPS3h5AjA2Nyq_rfEpLCjBiFUWhagU,35880
@@ -33,9 +32,9 @@ pointblank/data/nycflights.zip,sha256=yVjbUaKUz2LydSdF9cABuir0VReHBBgV7shiNWSd0m
33
32
  pointblank/data/polars-api-docs.txt,sha256=KGcS-BOtUs9zgpkWfXD-GFdFh4O_zjdkpX7msHjztLg,198045
34
33
  pointblank/data/small_table-duckdb.zip,sha256=BhTaZ2CRS4-9Z1uVhOU6HggvW3XCar7etMznfENIcOc,2028
35
34
  pointblank/data/small_table.zip,sha256=lmFb90Nb-v5X559Ikjg31YLAXuRyMkD9yLRElkXPMzQ,472
36
- pointblank-0.13.1.dist-info/licenses/LICENSE,sha256=apLF-HWPNU7pT5bmf5KmZpD5Cklpy2u-BN_0xBoRMLY,1081
37
- pointblank-0.13.1.dist-info/METADATA,sha256=nuywCyQQooecMF-WiWVnM-AHN2kCL0roQgWi5s2hSwU,19529
38
- pointblank-0.13.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
39
- pointblank-0.13.1.dist-info/entry_points.txt,sha256=GqqqOTOH8uZe22wLcvYjzpizqk_j4MNcUo2YM14ryCw,42
40
- pointblank-0.13.1.dist-info/top_level.txt,sha256=-wHrS1SvV8-nhvc3w-PPYs1C1WtEc1pK-eGjubbCCKc,11
41
- pointblank-0.13.1.dist-info/RECORD,,
35
+ pointblank-0.13.2.dist-info/licenses/LICENSE,sha256=apLF-HWPNU7pT5bmf5KmZpD5Cklpy2u-BN_0xBoRMLY,1081
36
+ pointblank-0.13.2.dist-info/METADATA,sha256=b0hTUi2ub8KqJYhSGa1e0W0_02uNvHQhJUGhsgHzADA,19559
37
+ pointblank-0.13.2.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
38
+ pointblank-0.13.2.dist-info/entry_points.txt,sha256=GqqqOTOH8uZe22wLcvYjzpizqk_j4MNcUo2YM14ryCw,42
39
+ pointblank-0.13.2.dist-info/top_level.txt,sha256=-wHrS1SvV8-nhvc3w-PPYs1C1WtEc1pK-eGjubbCCKc,11
40
+ pointblank-0.13.2.dist-info/RECORD,,
pointblank/tf.py DELETED
@@ -1,287 +0,0 @@
1
- from __future__ import annotations
2
-
3
- from dataclasses import dataclass
4
-
5
- from narwhals.typing import FrameT
6
-
7
- from pointblank._constants import COMPATIBLE_DTYPES
8
- from pointblank._constants_docs import ARG_DOCSTRINGS
9
- from pointblank._interrogation import (
10
- ColValsCompareOne,
11
- ColValsCompareSet,
12
- ColValsCompareTwo,
13
- )
14
- from pointblank._utils import _get_assertion_from_fname
15
-
16
-
17
- def _col_vals_compare_one_title_docstring(comparison: str) -> str:
18
- return "Test whether column values are ___ a single value.".replace("___", comparison)
19
-
20
-
21
- def _col_vals_compare_two_title_docstring(comparison: str) -> str:
22
- return "Test whether column values are ___ two values.".replace("___", comparison)
23
-
24
-
25
- def _col_vals_compare_set_title_docstring(inside: bool) -> str:
26
- return "Test whether column values are ___ a set of values.".replace(
27
- "___", "in" if inside else "not in"
28
- )
29
-
30
-
31
- def _col_vals_compare_one_args_docstring() -> str:
32
- return f"""
33
- Parameters
34
- ----------
35
- {ARG_DOCSTRINGS["data"]}
36
- {ARG_DOCSTRINGS["column"]}
37
- {ARG_DOCSTRINGS["value"]}
38
- {ARG_DOCSTRINGS["na_pass"]}
39
- {ARG_DOCSTRINGS["threshold"]}"""
40
-
41
-
42
- def _col_vals_compare_two_args_docstring() -> str:
43
- return f"""
44
- Parameters
45
- ----------
46
- {ARG_DOCSTRINGS["data"]}
47
- {ARG_DOCSTRINGS["column"]}
48
- {ARG_DOCSTRINGS["left"]}
49
- {ARG_DOCSTRINGS["right"]}
50
- {ARG_DOCSTRINGS["inclusive"]}
51
- {ARG_DOCSTRINGS["na_pass"]}
52
- {ARG_DOCSTRINGS["threshold"]}"""
53
-
54
-
55
- def _col_vals_compare_set_args_docstring() -> str:
56
- return f"""
57
- Parameters
58
- ----------
59
- {ARG_DOCSTRINGS["data"]}
60
- {ARG_DOCSTRINGS["column"]}
61
- {ARG_DOCSTRINGS["set"]}
62
- {ARG_DOCSTRINGS["threshold"]}"""
63
-
64
-
65
- @dataclass
66
- class TF:
67
- """
68
- Tests with TF functions use tabular data as input and return a single boolean value per check.
69
- """
70
-
71
- def col_vals_gt(
72
- data: FrameT, column: str, value: float | int, na_pass: bool = False, threshold: int = 1
73
- ) -> bool:
74
- assertion_method = _get_assertion_from_fname()
75
- compatible_types = COMPATIBLE_DTYPES.get(assertion_method, [])
76
-
77
- return ColValsCompareOne(
78
- data_tbl=data,
79
- column=column,
80
- value=value,
81
- na_pass=na_pass,
82
- threshold=threshold,
83
- assertion_method=assertion_method,
84
- allowed_types=compatible_types,
85
- ).test()
86
-
87
- col_vals_gt.__doc__ = f"""{_col_vals_compare_one_title_docstring(comparison="greater than")}
88
- {_col_vals_compare_one_args_docstring()}
89
- """
90
-
91
- def col_vals_lt(
92
- data: FrameT, column: str, value: float | int, na_pass: bool = False, threshold: int = 1
93
- ) -> bool:
94
- assertion_method = _get_assertion_from_fname()
95
- compatible_types = COMPATIBLE_DTYPES.get(assertion_method, [])
96
-
97
- return ColValsCompareOne(
98
- data_tbl=data,
99
- column=column,
100
- value=value,
101
- na_pass=na_pass,
102
- threshold=threshold,
103
- assertion_method=assertion_method,
104
- allowed_types=compatible_types,
105
- ).test()
106
-
107
- col_vals_lt.__doc__ = f"""{_col_vals_compare_one_title_docstring(comparison="less than")}
108
- {_col_vals_compare_one_args_docstring()}
109
- """
110
-
111
- def col_vals_eq(
112
- data: FrameT, column: str, value: float | int, na_pass: bool = False, threshold: int = 1
113
- ) -> bool:
114
- assertion_method = _get_assertion_from_fname()
115
- compatible_types = COMPATIBLE_DTYPES.get(assertion_method, [])
116
-
117
- return ColValsCompareOne(
118
- data_tbl=data,
119
- column=column,
120
- value=value,
121
- na_pass=na_pass,
122
- threshold=threshold,
123
- assertion_method=assertion_method,
124
- allowed_types=compatible_types,
125
- ).test()
126
-
127
- col_vals_eq.__doc__ = f"""{_col_vals_compare_one_title_docstring(comparison="equal to")}
128
- {_col_vals_compare_one_args_docstring()}
129
- """
130
-
131
- def col_vals_ne(
132
- data: FrameT, column: str, value: float | int, na_pass: bool = False, threshold: int = 1
133
- ) -> bool:
134
- assertion_method = _get_assertion_from_fname()
135
- compatible_types = COMPATIBLE_DTYPES.get(assertion_method, [])
136
-
137
- return ColValsCompareOne(
138
- data_tbl=data,
139
- column=column,
140
- value=value,
141
- na_pass=na_pass,
142
- threshold=threshold,
143
- assertion_method=assertion_method,
144
- allowed_types=compatible_types,
145
- ).test()
146
-
147
- col_vals_ne.__doc__ = f"""{_col_vals_compare_one_title_docstring(comparison="not equal to")}
148
- {_col_vals_compare_one_args_docstring()}
149
- """
150
-
151
- def col_vals_ge(
152
- data: FrameT, column: str, value: float | int, na_pass: bool = False, threshold: int = 1
153
- ) -> bool:
154
- assertion_method = _get_assertion_from_fname()
155
- compatible_types = COMPATIBLE_DTYPES.get(assertion_method, [])
156
-
157
- return ColValsCompareOne(
158
- data_tbl=data,
159
- column=column,
160
- value=value,
161
- na_pass=na_pass,
162
- threshold=threshold,
163
- assertion_method=assertion_method,
164
- allowed_types=compatible_types,
165
- ).test()
166
-
167
- col_vals_ge.__doc__ = f"""{_col_vals_compare_one_title_docstring(comparison="greater than or equal to")}
168
- {_col_vals_compare_one_args_docstring()}
169
- """
170
-
171
- def col_vals_le(
172
- data: FrameT, column: str, value: float | int, na_pass: bool = False, threshold: int = 1
173
- ) -> bool:
174
- assertion_method = _get_assertion_from_fname()
175
- compatible_types = COMPATIBLE_DTYPES.get(assertion_method, [])
176
-
177
- return ColValsCompareOne(
178
- data_tbl=data,
179
- column=column,
180
- value=value,
181
- na_pass=na_pass,
182
- threshold=threshold,
183
- assertion_method=assertion_method,
184
- allowed_types=compatible_types,
185
- ).test()
186
-
187
- col_vals_le.__doc__ = f"""{_col_vals_compare_one_title_docstring(comparison="less than or equal to")}
188
- {_col_vals_compare_one_args_docstring()}
189
- """
190
-
191
- def col_vals_between(
192
- data: FrameT,
193
- column: str,
194
- left: float | int,
195
- right: float | int,
196
- inclusive: tuple[bool, bool] = (True, True),
197
- na_pass: bool = False,
198
- threshold: int = 1,
199
- ) -> bool:
200
- assertion_method = _get_assertion_from_fname()
201
- compatible_types = COMPATIBLE_DTYPES.get(assertion_method, [])
202
-
203
- return ColValsCompareTwo(
204
- data_tbl=data,
205
- column=column,
206
- value1=left,
207
- value2=right,
208
- inclusive=inclusive,
209
- na_pass=na_pass,
210
- threshold=threshold,
211
- assertion_method=assertion_method,
212
- allowed_types=compatible_types,
213
- ).test()
214
-
215
- col_vals_between.__doc__ = f"""{_col_vals_compare_two_title_docstring(comparison="between")}
216
- {_col_vals_compare_two_args_docstring()}
217
- """
218
-
219
- def col_vals_outside(
220
- data: FrameT,
221
- column: str,
222
- left: float | int,
223
- right: float | int,
224
- inclusive: tuple[bool, bool] = (True, True),
225
- na_pass: bool = False,
226
- threshold: int = 1,
227
- ) -> bool:
228
- assertion_method = _get_assertion_from_fname()
229
- compatible_types = COMPATIBLE_DTYPES.get(assertion_method, [])
230
-
231
- return ColValsCompareTwo(
232
- data_tbl=data,
233
- column=column,
234
- value1=left,
235
- value2=right,
236
- inclusive=inclusive,
237
- na_pass=na_pass,
238
- threshold=threshold,
239
- assertion_method=assertion_method,
240
- allowed_types=compatible_types,
241
- ).test()
242
-
243
- col_vals_outside.__doc__ = f"""{_col_vals_compare_two_title_docstring(comparison="outside of")}
244
- {_col_vals_compare_two_args_docstring()}
245
- """
246
-
247
- def col_vals_in_set(
248
- data: FrameT,
249
- column: str,
250
- set: list[float | int],
251
- threshold: int = 1,
252
- ) -> bool:
253
- compatible_types = COMPATIBLE_DTYPES.get("in_set", [])
254
-
255
- return ColValsCompareSet(
256
- data_tbl=data,
257
- column=column,
258
- values=set,
259
- threshold=threshold,
260
- inside=True,
261
- allowed_types=compatible_types,
262
- ).test()
263
-
264
- col_vals_in_set.__doc__ = f"""{_col_vals_compare_set_title_docstring(inside=True)}
265
- {_col_vals_compare_set_args_docstring()}
266
- """
267
-
268
- def col_vals_not_in_set(
269
- data: FrameT,
270
- column: str,
271
- set: list[float | int],
272
- threshold: int = 1,
273
- ) -> bool:
274
- compatible_types = COMPATIBLE_DTYPES.get("not_in_set", [])
275
-
276
- return ColValsCompareSet(
277
- data_tbl=data,
278
- column=column,
279
- values=set,
280
- threshold=threshold,
281
- inside=False,
282
- allowed_types=compatible_types,
283
- ).test()
284
-
285
- col_vals_not_in_set.__doc__ = f"""{_col_vals_compare_set_title_docstring(inside=False)}
286
- {_col_vals_compare_set_args_docstring()}
287
- """