pointblank 0.17.0__py3-none-any.whl → 0.18.0__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.
- pointblank/__init__.py +2 -0
- pointblank/_agg.py +120 -0
- pointblank/_constants.py +192 -5
- pointblank/_datascan_utils.py +28 -10
- pointblank/_interrogation.py +202 -149
- pointblank/_typing.py +12 -0
- pointblank/_utils.py +81 -44
- pointblank/_utils_ai.py +4 -5
- pointblank/_utils_check_args.py +3 -3
- pointblank/_utils_llms_txt.py +40 -2
- pointblank/actions.py +1 -1
- pointblank/assistant.py +2 -3
- pointblank/cli.py +1 -1
- pointblank/column.py +162 -46
- pointblank/data/api-docs.txt +2695 -49
- pointblank/datascan.py +17 -17
- pointblank/draft.py +2 -3
- pointblank/scan_profile.py +2 -1
- pointblank/schema.py +61 -20
- pointblank/thresholds.py +15 -13
- pointblank/validate.py +780 -231
- pointblank/validate.pyi +1104 -0
- pointblank/yaml.py +10 -6
- {pointblank-0.17.0.dist-info → pointblank-0.18.0.dist-info}/METADATA +2 -2
- {pointblank-0.17.0.dist-info → pointblank-0.18.0.dist-info}/RECORD +29 -27
- {pointblank-0.17.0.dist-info → pointblank-0.18.0.dist-info}/licenses/LICENSE +1 -1
- {pointblank-0.17.0.dist-info → pointblank-0.18.0.dist-info}/WHEEL +0 -0
- {pointblank-0.17.0.dist-info → pointblank-0.18.0.dist-info}/entry_points.txt +0 -0
- {pointblank-0.17.0.dist-info → pointblank-0.18.0.dist-info}/top_level.txt +0 -0
pointblank/__init__.py
CHANGED
|
@@ -20,6 +20,7 @@ from pointblank.column import (
|
|
|
20
20
|
first_n,
|
|
21
21
|
last_n,
|
|
22
22
|
matches,
|
|
23
|
+
ref,
|
|
23
24
|
starts_with,
|
|
24
25
|
)
|
|
25
26
|
from pointblank.datascan import DataScan, col_summary_tbl
|
|
@@ -59,6 +60,7 @@ __all__ = [
|
|
|
59
60
|
"DataScan",
|
|
60
61
|
"DraftValidation",
|
|
61
62
|
"col",
|
|
63
|
+
"ref",
|
|
62
64
|
"expr_col",
|
|
63
65
|
"col_summary_tbl",
|
|
64
66
|
"starts_with",
|
pointblank/_agg.py
ADDED
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
import itertools
|
|
4
|
+
from collections.abc import Callable
|
|
5
|
+
from typing import Any
|
|
6
|
+
|
|
7
|
+
import narwhals as nw
|
|
8
|
+
|
|
9
|
+
# TODO: Should take any frame type
|
|
10
|
+
Aggregator = Callable[[nw.DataFrame], float | int]
|
|
11
|
+
Comparator = Callable[[Any, Any, Any], bool]
|
|
12
|
+
|
|
13
|
+
AGGREGATOR_REGISTRY: dict[str, Aggregator] = {}
|
|
14
|
+
|
|
15
|
+
COMPARATOR_REGISTRY: dict[str, Comparator] = {}
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
def register(fn):
|
|
19
|
+
"""Register an aggregator or comparator function."""
|
|
20
|
+
name: str = fn.__name__
|
|
21
|
+
if name.startswith("comp_"):
|
|
22
|
+
COMPARATOR_REGISTRY[name.removeprefix("comp_")] = fn
|
|
23
|
+
elif name.startswith("agg_"):
|
|
24
|
+
AGGREGATOR_REGISTRY[name.removeprefix("agg_")] = fn
|
|
25
|
+
else:
|
|
26
|
+
raise NotImplementedError # pragma: no cover
|
|
27
|
+
return fn
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
## Aggregator Functions
|
|
31
|
+
@register
|
|
32
|
+
def agg_sum(column: nw.DataFrame) -> float:
|
|
33
|
+
return column.select(nw.all().sum()).item()
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
@register
|
|
37
|
+
def agg_avg(column: nw.DataFrame) -> float:
|
|
38
|
+
return column.select(nw.all().mean()).item()
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
@register
|
|
42
|
+
def agg_sd(column: nw.DataFrame) -> float:
|
|
43
|
+
return column.select(nw.all().std()).item()
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
## Comparator functions:
|
|
47
|
+
@register
|
|
48
|
+
def comp_eq(real: float, lower: float, upper: float) -> bool:
|
|
49
|
+
if lower == upper:
|
|
50
|
+
return bool(real == lower)
|
|
51
|
+
return _generic_between(real, lower, upper)
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
@register
|
|
55
|
+
def comp_gt(real: float, lower: float, upper: float) -> bool:
|
|
56
|
+
return bool(real > lower)
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
@register
|
|
60
|
+
def comp_ge(real: Any, lower: float, upper: float) -> bool:
|
|
61
|
+
return bool(real >= lower)
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
@register
|
|
65
|
+
def comp_lt(real: float, lower: float, upper: float) -> bool:
|
|
66
|
+
return bool(real < upper)
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
@register
|
|
70
|
+
def comp_le(real: float, lower: float, upper: float) -> bool:
|
|
71
|
+
return bool(real <= upper)
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
def _generic_between(real: Any, lower: Any, upper: Any) -> bool:
|
|
75
|
+
"""Call if comparator needs to check between two values."""
|
|
76
|
+
return bool(lower <= real <= upper)
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
def resolve_agg_registries(name: str) -> tuple[Aggregator, Comparator]:
|
|
80
|
+
"""Resolve the assertion name to a valid aggregator
|
|
81
|
+
|
|
82
|
+
Args:
|
|
83
|
+
name (str): The name of the assertion.
|
|
84
|
+
|
|
85
|
+
Returns:
|
|
86
|
+
tuple[Aggregator, Comparator]: The aggregator and comparator functions.
|
|
87
|
+
"""
|
|
88
|
+
name = name.removeprefix("col_")
|
|
89
|
+
agg_name, comp_name = name.split("_")[-2:]
|
|
90
|
+
|
|
91
|
+
aggregator = AGGREGATOR_REGISTRY.get(agg_name)
|
|
92
|
+
comparator = COMPARATOR_REGISTRY.get(comp_name)
|
|
93
|
+
|
|
94
|
+
if aggregator is None: # pragma: no cover
|
|
95
|
+
raise ValueError(f"Aggregator '{agg_name}' not found in registry.")
|
|
96
|
+
|
|
97
|
+
if comparator is None: # pragma: no cover
|
|
98
|
+
raise ValueError(f"Comparator '{comp_name}' not found in registry.")
|
|
99
|
+
|
|
100
|
+
return aggregator, comparator
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
def is_valid_agg(name: str) -> bool:
|
|
104
|
+
try:
|
|
105
|
+
resolve_agg_registries(name)
|
|
106
|
+
return True
|
|
107
|
+
except ValueError:
|
|
108
|
+
return False
|
|
109
|
+
|
|
110
|
+
|
|
111
|
+
def load_validation_method_grid() -> tuple[str, ...]:
|
|
112
|
+
"""Generate all possible validation methods."""
|
|
113
|
+
methods = []
|
|
114
|
+
for agg_name, comp_name in itertools.product(
|
|
115
|
+
AGGREGATOR_REGISTRY.keys(), COMPARATOR_REGISTRY.keys()
|
|
116
|
+
):
|
|
117
|
+
method = f"col_{agg_name}_{comp_name}"
|
|
118
|
+
methods.append(method)
|
|
119
|
+
|
|
120
|
+
return tuple(methods)
|
pointblank/_constants.py
CHANGED
|
@@ -52,6 +52,7 @@ ASSERTION_TYPE_METHOD_MAP: dict[str, str] = {
|
|
|
52
52
|
"tbl_match": "tbl_match",
|
|
53
53
|
"conjointly": "conjointly",
|
|
54
54
|
"specially": "specially",
|
|
55
|
+
"col_sum_eq": "sum_eq",
|
|
55
56
|
}
|
|
56
57
|
|
|
57
58
|
COMPARISON_OPERATORS = {
|
|
@@ -220,7 +221,49 @@ LOG_LEVELS_MAP = {"warning": 30, "error": 40, "critical": 50}
|
|
|
220
221
|
CHECK_MARK_SPAN = "<span style='color: #4CA64C;'>✓</span>"
|
|
221
222
|
CROSS_MARK_SPAN = "<span style='color: #CF142B;'>✗</span>"
|
|
222
223
|
|
|
223
|
-
SVG_ICONS_FOR_ASSERTION_TYPES = {
|
|
224
|
+
SVG_ICONS_FOR_ASSERTION_TYPES: dict[str, str] = {
|
|
225
|
+
## EQ Icons
|
|
226
|
+
"col_vals_eq": """<?xml version="1.0" encoding="UTF-8"?>
|
|
227
|
+
<svg width="67px" height="67px" viewBox="0 0 67 67" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
|
228
|
+
<title>col_vals_eq</title>
|
|
229
|
+
<g id="All-Icons" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
|
230
|
+
<g id="col_vals_eq" transform="translate(0.000000, 0.275862)">
|
|
231
|
+
<path d="M56.712234,1 C59.1975153,1 61.4475153,2.00735931 63.076195,3.63603897 C64.7048747,5.26471863 65.712234,7.51471863 65.712234,10 L65.712234,10 L65.712234,65 L10.712234,65 C8.22695259,65 5.97695259,63.9926407 4.34827294,62.363961 C2.71959328,60.7352814 1.71223397,58.4852814 1.71223397,56 L1.71223397,56 L1.71223397,10 C1.71223397,7.51471863 2.71959328,5.26471863 4.34827294,3.63603897 C5.97695259,2.00735931 8.22695259,1 10.712234,1 L10.712234,1 Z" id="rectangle" stroke="#000000" stroke-width="2" fill="#FFFFFF"></path>
|
|
232
|
+
<path d="M52.712234,11 L14.712234,11 C13.05989,11 11.712234,12.347656 11.712234,14 L11.712234,52 C11.712234,53.652344 13.05989,55 14.712234,55 L52.712234,55 C54.364578,55 55.712234,53.652344 55.712234,52 L55.712234,14 C55.712234,12.347656 54.364578,11 52.712234,11 Z M46.712234,38 L20.712234,38 L20.712234,36 L46.712234,36 L46.712234,38 Z M46.712234,30 L20.712234,30 L20.712234,28 L46.712234,28 L46.712234,30 Z" id="equals" fill="#000000" fill-rule="nonzero"></path>
|
|
233
|
+
</g>
|
|
234
|
+
</g>
|
|
235
|
+
</svg>""",
|
|
236
|
+
"col_sum_eq": """<?xml version="1.0" encoding="UTF-8"?>
|
|
237
|
+
<svg width="67px" height="67px" viewBox="0 0 67 67" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
|
238
|
+
<title>col_vals_gt</title>
|
|
239
|
+
<g id="All-Icons" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
|
240
|
+
<g id="col_vals_gt" transform="translate(0.000000, 0.724138)">
|
|
241
|
+
<path d="M56.712234,1 C59.1975153,1 61.4475153,2.00735931 63.076195,3.63603897 C64.7048747,5.26471863 65.712234,7.51471863 65.712234,10 L65.712234,10 L65.712234,65 L10.712234,65 C8.22695259,65 5.97695259,63.9926407 4.34827294,62.363961 C2.71959328,60.7352814 1.71223397,58.4852814 1.71223397,56 L1.71223397,56 L1.71223397,10 C1.71223397,7.51471863 2.71959328,5.26471863 4.34827294,3.63603897 C5.97695259,2.00735931 8.22695259,1 10.712234,1 L10.712234,1 Z" id="rectangle" stroke="#000000" stroke-width="2" fill="#FFFFFF"></path>
|
|
242
|
+
<path d="M49.7099609,12 L17.7099609,12 C14.9499609,12 12.7099609,14.24 12.7099609,17 L12.7099609,49 C12.7099609,51.76 14.9499609,54 17.7099609,54 L49.7099609,54 C52.4699609,54 54.7099609,51.76 54.7099609,49 L54.7099609,17 C54.7099609,14.24 52.4699609,12 49.7099609,12 Z M27.2799609,44.82 L26.1399609,43.18 L40.9499609,33 L26.1399609,22.82 L27.2799609,21.18 L44.4799609,33 L27.2799609,44.82 Z" id="greater_than" fill="#000000" fill-rule="nonzero"></path>
|
|
243
|
+
</g>
|
|
244
|
+
</g>
|
|
245
|
+
</svg>""",
|
|
246
|
+
"col_sd_eq": """<?xml version="1.0" encoding="UTF-8"?>
|
|
247
|
+
<svg width="67px" height="67px" viewBox="0 0 67 67" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
|
248
|
+
<title>col_vals_gt</title>
|
|
249
|
+
<g id="All-Icons" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
|
250
|
+
<g id="col_vals_gt" transform="translate(0.000000, 0.724138)">
|
|
251
|
+
<path d="M56.712234,1 C59.1975153,1 61.4475153,2.00735931 63.076195,3.63603897 C64.7048747,5.26471863 65.712234,7.51471863 65.712234,10 L65.712234,10 L65.712234,65 L10.712234,65 C8.22695259,65 5.97695259,63.9926407 4.34827294,62.363961 C2.71959328,60.7352814 1.71223397,58.4852814 1.71223397,56 L1.71223397,56 L1.71223397,10 C1.71223397,7.51471863 2.71959328,5.26471863 4.34827294,3.63603897 C5.97695259,2.00735931 8.22695259,1 10.712234,1 L10.712234,1 Z" id="rectangle" stroke="#000000" stroke-width="2" fill="#FFFFFF"></path>
|
|
252
|
+
<path d="M49.7099609,12 L17.7099609,12 C14.9499609,12 12.7099609,14.24 12.7099609,17 L12.7099609,49 C12.7099609,51.76 14.9499609,54 17.7099609,54 L49.7099609,54 C52.4699609,54 54.7099609,51.76 54.7099609,49 L54.7099609,17 C54.7099609,14.24 52.4699609,12 49.7099609,12 Z M27.2799609,44.82 L26.1399609,43.18 L40.9499609,33 L26.1399609,22.82 L27.2799609,21.18 L44.4799609,33 L27.2799609,44.82 Z" id="greater_than" fill="#000000" fill-rule="nonzero"></path>
|
|
253
|
+
</g>
|
|
254
|
+
</g>
|
|
255
|
+
</svg>""",
|
|
256
|
+
"col_avg_eq": """<?xml version="1.0" encoding="UTF-8"?>
|
|
257
|
+
<svg width="67px" height="67px" viewBox="0 0 67 67" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
|
258
|
+
<title>col_vals_gt</title>
|
|
259
|
+
<g id="All-Icons" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
|
260
|
+
<g id="col_vals_gt" transform="translate(0.000000, 0.724138)">
|
|
261
|
+
<path d="M56.712234,1 C59.1975153,1 61.4475153,2.00735931 63.076195,3.63603897 C64.7048747,5.26471863 65.712234,7.51471863 65.712234,10 L65.712234,10 L65.712234,65 L10.712234,65 C8.22695259,65 5.97695259,63.9926407 4.34827294,62.363961 C2.71959328,60.7352814 1.71223397,58.4852814 1.71223397,56 L1.71223397,56 L1.71223397,10 C1.71223397,7.51471863 2.71959328,5.26471863 4.34827294,3.63603897 C5.97695259,2.00735931 8.22695259,1 10.712234,1 L10.712234,1 Z" id="rectangle" stroke="#000000" stroke-width="2" fill="#FFFFFF"></path>
|
|
262
|
+
<path d="M49.7099609,12 L17.7099609,12 C14.9499609,12 12.7099609,14.24 12.7099609,17 L12.7099609,49 C12.7099609,51.76 14.9499609,54 17.7099609,54 L49.7099609,54 C52.4699609,54 54.7099609,51.76 54.7099609,49 L54.7099609,17 C54.7099609,14.24 52.4699609,12 49.7099609,12 Z M27.2799609,44.82 L26.1399609,43.18 L40.9499609,33 L26.1399609,22.82 L27.2799609,21.18 L44.4799609,33 L27.2799609,44.82 Z" id="greater_than" fill="#000000" fill-rule="nonzero"></path>
|
|
263
|
+
</g>
|
|
264
|
+
</g>
|
|
265
|
+
</svg>""",
|
|
266
|
+
## GT Icons
|
|
224
267
|
"col_vals_gt": """<?xml version="1.0" encoding="UTF-8"?>
|
|
225
268
|
<svg width="67px" height="67px" viewBox="0 0 67 67" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
|
226
269
|
<title>col_vals_gt</title>
|
|
@@ -231,6 +274,37 @@ SVG_ICONS_FOR_ASSERTION_TYPES = {
|
|
|
231
274
|
</g>
|
|
232
275
|
</g>
|
|
233
276
|
</svg>""",
|
|
277
|
+
"col_sum_gt": """<?xml version="1.0" encoding="UTF-8"?>
|
|
278
|
+
<svg width="67px" height="67px" viewBox="0 0 67 67" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
|
279
|
+
<title>col_vals_gt</title>
|
|
280
|
+
<g id="All-Icons" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
|
281
|
+
<g id="col_vals_gt" transform="translate(0.000000, 0.724138)">
|
|
282
|
+
<path d="M56.712234,1 C59.1975153,1 61.4475153,2.00735931 63.076195,3.63603897 C64.7048747,5.26471863 65.712234,7.51471863 65.712234,10 L65.712234,10 L65.712234,65 L10.712234,65 C8.22695259,65 5.97695259,63.9926407 4.34827294,62.363961 C2.71959328,60.7352814 1.71223397,58.4852814 1.71223397,56 L1.71223397,56 L1.71223397,10 C1.71223397,7.51471863 2.71959328,5.26471863 4.34827294,3.63603897 C5.97695259,2.00735931 8.22695259,1 10.712234,1 L10.712234,1 Z" id="rectangle" stroke="#000000" stroke-width="2" fill="#FFFFFF"></path>
|
|
283
|
+
<path d="M49.7099609,12 L17.7099609,12 C14.9499609,12 12.7099609,14.24 12.7099609,17 L12.7099609,49 C12.7099609,51.76 14.9499609,54 17.7099609,54 L49.7099609,54 C52.4699609,54 54.7099609,51.76 54.7099609,49 L54.7099609,17 C54.7099609,14.24 52.4699609,12 49.7099609,12 Z M27.2799609,44.82 L26.1399609,43.18 L40.9499609,33 L26.1399609,22.82 L27.2799609,21.18 L44.4799609,33 L27.2799609,44.82 Z" id="greater_than" fill="#000000" fill-rule="nonzero"></path>
|
|
284
|
+
</g>
|
|
285
|
+
</g>
|
|
286
|
+
</svg>""",
|
|
287
|
+
"col_sd_gt": """<?xml version="1.0" encoding="UTF-8"?>
|
|
288
|
+
<svg width="67px" height="67px" viewBox="0 0 67 67" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
|
289
|
+
<title>col_vals_gt</title>
|
|
290
|
+
<g id="All-Icons" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
|
291
|
+
<g id="col_vals_gt" transform="translate(0.000000, 0.724138)">
|
|
292
|
+
<path d="M56.712234,1 C59.1975153,1 61.4475153,2.00735931 63.076195,3.63603897 C64.7048747,5.26471863 65.712234,7.51471863 65.712234,10 L65.712234,10 L65.712234,65 L10.712234,65 C8.22695259,65 5.97695259,63.9926407 4.34827294,62.363961 C2.71959328,60.7352814 1.71223397,58.4852814 1.71223397,56 L1.71223397,56 L1.71223397,10 C1.71223397,7.51471863 2.71959328,5.26471863 4.34827294,3.63603897 C5.97695259,2.00735931 8.22695259,1 10.712234,1 L10.712234,1 Z" id="rectangle" stroke="#000000" stroke-width="2" fill="#FFFFFF"></path>
|
|
293
|
+
<path d="M49.7099609,12 L17.7099609,12 C14.9499609,12 12.7099609,14.24 12.7099609,17 L12.7099609,49 C12.7099609,51.76 14.9499609,54 17.7099609,54 L49.7099609,54 C52.4699609,54 54.7099609,51.76 54.7099609,49 L54.7099609,17 C54.7099609,14.24 52.4699609,12 49.7099609,12 Z M27.2799609,44.82 L26.1399609,43.18 L40.9499609,33 L26.1399609,22.82 L27.2799609,21.18 L44.4799609,33 L27.2799609,44.82 Z" id="greater_than" fill="#000000" fill-rule="nonzero"></path>
|
|
294
|
+
</g>
|
|
295
|
+
</g>
|
|
296
|
+
</svg>""",
|
|
297
|
+
"col_avg_gt": """<?xml version="1.0" encoding="UTF-8"?>
|
|
298
|
+
<svg width="67px" height="67px" viewBox="0 0 67 67" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
|
299
|
+
<title>col_vals_gt</title>
|
|
300
|
+
<g id="All-Icons" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
|
301
|
+
<g id="col_vals_gt" transform="translate(0.000000, 0.724138)">
|
|
302
|
+
<path d="M56.712234,1 C59.1975153,1 61.4475153,2.00735931 63.076195,3.63603897 C64.7048747,5.26471863 65.712234,7.51471863 65.712234,10 L65.712234,10 L65.712234,65 L10.712234,65 C8.22695259,65 5.97695259,63.9926407 4.34827294,62.363961 C2.71959328,60.7352814 1.71223397,58.4852814 1.71223397,56 L1.71223397,56 L1.71223397,10 C1.71223397,7.51471863 2.71959328,5.26471863 4.34827294,3.63603897 C5.97695259,2.00735931 8.22695259,1 10.712234,1 L10.712234,1 Z" id="rectangle" stroke="#000000" stroke-width="2" fill="#FFFFFF"></path>
|
|
303
|
+
<path d="M49.7099609,12 L17.7099609,12 C14.9499609,12 12.7099609,14.24 12.7099609,17 L12.7099609,49 C12.7099609,51.76 14.9499609,54 17.7099609,54 L49.7099609,54 C52.4699609,54 54.7099609,51.76 54.7099609,49 L54.7099609,17 C54.7099609,14.24 52.4699609,12 49.7099609,12 Z M27.2799609,44.82 L26.1399609,43.18 L40.9499609,33 L26.1399609,22.82 L27.2799609,21.18 L44.4799609,33 L27.2799609,44.82 Z" id="greater_than" fill="#000000" fill-rule="nonzero"></path>
|
|
304
|
+
</g>
|
|
305
|
+
</g>
|
|
306
|
+
</svg>""",
|
|
307
|
+
## LT Icons
|
|
234
308
|
"col_vals_lt": """<?xml version="1.0" encoding="UTF-8"?>
|
|
235
309
|
<svg width="67px" height="67px" viewBox="0 0 67 67" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
|
236
310
|
<title>col_vals_lt</title>
|
|
@@ -241,16 +315,37 @@ SVG_ICONS_FOR_ASSERTION_TYPES = {
|
|
|
241
315
|
</g>
|
|
242
316
|
</g>
|
|
243
317
|
</svg>""",
|
|
244
|
-
"
|
|
318
|
+
"col_sum_lt": """<?xml version="1.0" encoding="UTF-8"?>
|
|
245
319
|
<svg width="67px" height="67px" viewBox="0 0 67 67" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
|
246
|
-
<title>
|
|
320
|
+
<title>col_vals_lt</title>
|
|
247
321
|
<g id="All-Icons" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
|
248
|
-
<g id="
|
|
322
|
+
<g id="col_vals_lt" transform="translate(0.000000, 0.310345)">
|
|
249
323
|
<path d="M56.712234,1 C59.1975153,1 61.4475153,2.00735931 63.076195,3.63603897 C64.7048747,5.26471863 65.712234,7.51471863 65.712234,10 L65.712234,10 L65.712234,65 L10.712234,65 C8.22695259,65 5.97695259,63.9926407 4.34827294,62.363961 C2.71959328,60.7352814 1.71223397,58.4852814 1.71223397,56 L1.71223397,56 L1.71223397,10 C1.71223397,7.51471863 2.71959328,5.26471863 4.34827294,3.63603897 C5.97695259,2.00735931 8.22695259,1 10.712234,1 L10.712234,1 Z" id="rectangle" stroke="#000000" stroke-width="2" fill="#FFFFFF"></path>
|
|
250
|
-
<path d="M52.712234,11 L14.712234,11 C13.05989,11 11.712234,12.347656 11.712234,14 L11.712234,52 C11.712234,53.652344 13.05989,55 14.712234,55 L52.712234,55 C54.364578,55 55.712234,53.652344 55.712234,52 L55.712234,14 C55.712234,12.347656 54.364578,11 52.712234,11 Z
|
|
324
|
+
<path d="M52.712234,11 L14.712234,11 C13.05989,11 11.712234,12.347656 11.712234,14 L11.712234,52 C11.712234,53.652344 13.05989,55 14.712234,55 L52.712234,55 C54.364578,55 55.712234,53.652344 55.712234,52 L55.712234,14 C55.712234,12.347656 54.364578,11 52.712234,11 Z M40.419265,46.292969 L39.005203,47.707031 L24.298172,33 L39.005203,18.292969 L40.419265,19.707031 L27.126297,33 L40.419265,46.292969 Z" id="less_than" fill="#000000" fill-rule="nonzero"></path>
|
|
325
|
+
</g>
|
|
326
|
+
</g>
|
|
327
|
+
</svg>""",
|
|
328
|
+
"col_sd_lt": """<?xml version="1.0" encoding="UTF-8"?>
|
|
329
|
+
<svg width="67px" height="67px" viewBox="0 0 67 67" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
|
330
|
+
<title>col_vals_lt</title>
|
|
331
|
+
<g id="All-Icons" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
|
332
|
+
<g id="col_vals_lt" transform="translate(0.000000, 0.310345)">
|
|
333
|
+
<path d="M56.712234,1 C59.1975153,1 61.4475153,2.00735931 63.076195,3.63603897 C64.7048747,5.26471863 65.712234,7.51471863 65.712234,10 L65.712234,10 L65.712234,65 L10.712234,65 C8.22695259,65 5.97695259,63.9926407 4.34827294,62.363961 C2.71959328,60.7352814 1.71223397,58.4852814 1.71223397,56 L1.71223397,56 L1.71223397,10 C1.71223397,7.51471863 2.71959328,5.26471863 4.34827294,3.63603897 C5.97695259,2.00735931 8.22695259,1 10.712234,1 L10.712234,1 Z" id="rectangle" stroke="#000000" stroke-width="2" fill="#FFFFFF"></path>
|
|
334
|
+
<path d="M52.712234,11 L14.712234,11 C13.05989,11 11.712234,12.347656 11.712234,14 L11.712234,52 C11.712234,53.652344 13.05989,55 14.712234,55 L52.712234,55 C54.364578,55 55.712234,53.652344 55.712234,52 L55.712234,14 C55.712234,12.347656 54.364578,11 52.712234,11 Z M40.419265,46.292969 L39.005203,47.707031 L24.298172,33 L39.005203,18.292969 L40.419265,19.707031 L27.126297,33 L40.419265,46.292969 Z" id="less_than" fill="#000000" fill-rule="nonzero"></path>
|
|
335
|
+
</g>
|
|
336
|
+
</g>
|
|
337
|
+
</svg>""",
|
|
338
|
+
"col_avg_lt": """<?xml version="1.0" encoding="UTF-8"?>
|
|
339
|
+
<svg width="67px" height="67px" viewBox="0 0 67 67" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
|
340
|
+
<title>col_vals_lt</title>
|
|
341
|
+
<g id="All-Icons" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
|
342
|
+
<g id="col_vals_lt" transform="translate(0.000000, 0.310345)">
|
|
343
|
+
<path d="M56.712234,1 C59.1975153,1 61.4475153,2.00735931 63.076195,3.63603897 C64.7048747,5.26471863 65.712234,7.51471863 65.712234,10 L65.712234,10 L65.712234,65 L10.712234,65 C8.22695259,65 5.97695259,63.9926407 4.34827294,62.363961 C2.71959328,60.7352814 1.71223397,58.4852814 1.71223397,56 L1.71223397,56 L1.71223397,10 C1.71223397,7.51471863 2.71959328,5.26471863 4.34827294,3.63603897 C5.97695259,2.00735931 8.22695259,1 10.712234,1 L10.712234,1 Z" id="rectangle" stroke="#000000" stroke-width="2" fill="#FFFFFF"></path>
|
|
344
|
+
<path d="M52.712234,11 L14.712234,11 C13.05989,11 11.712234,12.347656 11.712234,14 L11.712234,52 C11.712234,53.652344 13.05989,55 14.712234,55 L52.712234,55 C54.364578,55 55.712234,53.652344 55.712234,52 L55.712234,14 C55.712234,12.347656 54.364578,11 52.712234,11 Z M40.419265,46.292969 L39.005203,47.707031 L24.298172,33 L39.005203,18.292969 L40.419265,19.707031 L27.126297,33 L40.419265,46.292969 Z" id="less_than" fill="#000000" fill-rule="nonzero"></path>
|
|
251
345
|
</g>
|
|
252
346
|
</g>
|
|
253
347
|
</svg>""",
|
|
348
|
+
## NE Icons
|
|
254
349
|
"col_vals_ne": """<?xml version="1.0" encoding="UTF-8"?>
|
|
255
350
|
<svg width="67px" height="67px" viewBox="0 0 67 67" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
|
256
351
|
<title>col_vals_ne</title>
|
|
@@ -261,6 +356,37 @@ SVG_ICONS_FOR_ASSERTION_TYPES = {
|
|
|
261
356
|
</g>
|
|
262
357
|
</g>
|
|
263
358
|
</svg>""",
|
|
359
|
+
"col_sum_ne": """<?xml version="1.0" encoding="UTF-8"?>
|
|
360
|
+
<svg width="67px" height="67px" viewBox="0 0 67 67" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
|
361
|
+
<title>col_vals_ne</title>
|
|
362
|
+
<g id="All-Icons" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
|
363
|
+
<g id="col_vals_ne" transform="translate(0.000000, 0.758621)">
|
|
364
|
+
<path d="M56.712234,1 C59.1975153,1 61.4475153,2.00735931 63.076195,3.63603897 C64.7048747,5.26471863 65.712234,7.51471863 65.712234,10 L65.712234,10 L65.712234,65 L10.712234,65 C8.22695259,65 5.97695259,63.9926407 4.34827294,62.363961 C2.71959328,60.7352814 1.71223397,58.4852814 1.71223397,56 L1.71223397,56 L1.71223397,10 C1.71223397,7.51471863 2.71959328,5.26471863 4.34827294,3.63603897 C5.97695259,2.00735931 8.22695259,1 10.712234,1 L10.712234,1 Z" id="rectangle" stroke="#000000" stroke-width="2" fill="#FFFFFF"></path>
|
|
365
|
+
<path d="M53.712234,12 L13.712234,12 C13.161453,12 12.712234,12.449219 12.712234,13 L12.712234,53 C12.712234,53.550781 13.161453,54 13.712234,54 L53.712234,54 C54.263015,54 54.712234,53.550781 54.712234,53 L54.712234,13 C54.712234,12.449219 54.263015,12 53.712234,12 Z M46.712234,30 L32.989578,30 L36.805984,36 L46.712234,36 L46.712234,38 L38.079422,38 L43.169265,46 L40.798172,46 L35.708328,38 L20.712234,38 L20.712234,36 L34.43489,36 L30.618484,30 L20.712234,30 L20.712234,28 L29.345047,28 L24.251297,20 L26.62239,20 L31.71614,28 L46.712234,28 L46.712234,30 Z" id="not_equal" fill="#000000" fill-rule="nonzero"></path>
|
|
366
|
+
</g>
|
|
367
|
+
</g>
|
|
368
|
+
</svg>""",
|
|
369
|
+
"col_sd_ne": """<?xml version="1.0" encoding="UTF-8"?>
|
|
370
|
+
<svg width="67px" height="67px" viewBox="0 0 67 67" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
|
371
|
+
<title>col_vals_ne</title>
|
|
372
|
+
<g id="All-Icons" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
|
373
|
+
<g id="col_vals_ne" transform="translate(0.000000, 0.758621)">
|
|
374
|
+
<path d="M56.712234,1 C59.1975153,1 61.4475153,2.00735931 63.076195,3.63603897 C64.7048747,5.26471863 65.712234,7.51471863 65.712234,10 L65.712234,10 L65.712234,65 L10.712234,65 C8.22695259,65 5.97695259,63.9926407 4.34827294,62.363961 C2.71959328,60.7352814 1.71223397,58.4852814 1.71223397,56 L1.71223397,56 L1.71223397,10 C1.71223397,7.51471863 2.71959328,5.26471863 4.34827294,3.63603897 C5.97695259,2.00735931 8.22695259,1 10.712234,1 L10.712234,1 Z" id="rectangle" stroke="#000000" stroke-width="2" fill="#FFFFFF"></path>
|
|
375
|
+
<path d="M53.712234,12 L13.712234,12 C13.161453,12 12.712234,12.449219 12.712234,13 L12.712234,53 C12.712234,53.550781 13.161453,54 13.712234,54 L53.712234,54 C54.263015,54 54.712234,53.550781 54.712234,53 L54.712234,13 C54.712234,12.449219 54.263015,12 53.712234,12 Z M46.712234,30 L32.989578,30 L36.805984,36 L46.712234,36 L46.712234,38 L38.079422,38 L43.169265,46 L40.798172,46 L35.708328,38 L20.712234,38 L20.712234,36 L34.43489,36 L30.618484,30 L20.712234,30 L20.712234,28 L29.345047,28 L24.251297,20 L26.62239,20 L31.71614,28 L46.712234,28 L46.712234,30 Z" id="not_equal" fill="#000000" fill-rule="nonzero"></path>
|
|
376
|
+
</g>
|
|
377
|
+
</g>
|
|
378
|
+
</svg>""",
|
|
379
|
+
"col_avg_ne": """<?xml version="1.0" encoding="UTF-8"?>
|
|
380
|
+
<svg width="67px" height="67px" viewBox="0 0 67 67" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
|
381
|
+
<title>col_vals_ne</title>
|
|
382
|
+
<g id="All-Icons" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
|
383
|
+
<g id="col_vals_ne" transform="translate(0.000000, 0.758621)">
|
|
384
|
+
<path d="M56.712234,1 C59.1975153,1 61.4475153,2.00735931 63.076195,3.63603897 C64.7048747,5.26471863 65.712234,7.51471863 65.712234,10 L65.712234,10 L65.712234,65 L10.712234,65 C8.22695259,65 5.97695259,63.9926407 4.34827294,62.363961 C2.71959328,60.7352814 1.71223397,58.4852814 1.71223397,56 L1.71223397,56 L1.71223397,10 C1.71223397,7.51471863 2.71959328,5.26471863 4.34827294,3.63603897 C5.97695259,2.00735931 8.22695259,1 10.712234,1 L10.712234,1 Z" id="rectangle" stroke="#000000" stroke-width="2" fill="#FFFFFF"></path>
|
|
385
|
+
<path d="M53.712234,12 L13.712234,12 C13.161453,12 12.712234,12.449219 12.712234,13 L12.712234,53 C12.712234,53.550781 13.161453,54 13.712234,54 L53.712234,54 C54.263015,54 54.712234,53.550781 54.712234,53 L54.712234,13 C54.712234,12.449219 54.263015,12 53.712234,12 Z M46.712234,30 L32.989578,30 L36.805984,36 L46.712234,36 L46.712234,38 L38.079422,38 L43.169265,46 L40.798172,46 L35.708328,38 L20.712234,38 L20.712234,36 L34.43489,36 L30.618484,30 L20.712234,30 L20.712234,28 L29.345047,28 L24.251297,20 L26.62239,20 L31.71614,28 L46.712234,28 L46.712234,30 Z" id="not_equal" fill="#000000" fill-rule="nonzero"></path>
|
|
386
|
+
</g>
|
|
387
|
+
</g>
|
|
388
|
+
</svg>""",
|
|
389
|
+
## GE Icons
|
|
264
390
|
"col_vals_ge": """<?xml version="1.0" encoding="UTF-8"?>
|
|
265
391
|
<svg width="67px" height="67px" viewBox="0 0 67 67" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
|
266
392
|
<title>col_vals_ge</title>
|
|
@@ -271,6 +397,37 @@ SVG_ICONS_FOR_ASSERTION_TYPES = {
|
|
|
271
397
|
</g>
|
|
272
398
|
</g>
|
|
273
399
|
</svg>""",
|
|
400
|
+
"col_sum_ge": """<?xml version="1.0" encoding="UTF-8"?>
|
|
401
|
+
<svg width="67px" height="67px" viewBox="0 0 67 67" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
|
402
|
+
<title>col_vals_ge</title>
|
|
403
|
+
<g id="All-Icons" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
|
404
|
+
<g id="col_vals_ge" transform="translate(0.000000, 0.241379)">
|
|
405
|
+
<path d="M56.712234,1 C59.1975153,1 61.4475153,2.00735931 63.076195,3.63603897 C64.7048747,5.26471863 65.712234,7.51471863 65.712234,10 L65.712234,10 L65.712234,65 L10.712234,65 C8.22695259,65 5.97695259,63.9926407 4.34827294,62.363961 C2.71959328,60.7352814 1.71223397,58.4852814 1.71223397,56 L1.71223397,56 L1.71223397,10 C1.71223397,7.51471863 2.71959328,5.26471863 4.34827294,3.63603897 C5.97695259,2.00735931 8.22695259,1 10.712234,1 L10.712234,1 Z" id="rectangle" stroke="#000000" stroke-width="2" fill="#FFFFFF"></path>
|
|
406
|
+
<path d="M49.712234,12 L17.712234,12 C14.952234,12 12.712234,14.24 12.712234,17 L12.712234,49 C12.712234,51.76 14.952234,54 17.712234,54 L49.712234,54 C52.472234,54 54.712234,51.76 54.712234,49 L54.712234,17 C54.712234,14.24 52.472234,12 49.712234,12 Z M44.712234,47 L22.712234,47 L22.712234,45 L44.712234,45 L44.712234,47 Z M24.182234,40.88 L23.242234,39.12 L40.562234,30 L23.242234,20.88 L24.182234,19.12 L44.862234,30 L24.182234,40.88 Z" id="greater_than_equal" fill="#000000" fill-rule="nonzero"></path>
|
|
407
|
+
</g>
|
|
408
|
+
</g>
|
|
409
|
+
</svg>""",
|
|
410
|
+
"col_sd_ge": """<?xml version="1.0" encoding="UTF-8"?>
|
|
411
|
+
<svg width="67px" height="67px" viewBox="0 0 67 67" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
|
412
|
+
<title>col_vals_ge</title>
|
|
413
|
+
<g id="All-Icons" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
|
414
|
+
<g id="col_vals_ge" transform="translate(0.000000, 0.241379)">
|
|
415
|
+
<path d="M56.712234,1 C59.1975153,1 61.4475153,2.00735931 63.076195,3.63603897 C64.7048747,5.26471863 65.712234,7.51471863 65.712234,10 L65.712234,10 L65.712234,65 L10.712234,65 C8.22695259,65 5.97695259,63.9926407 4.34827294,62.363961 C2.71959328,60.7352814 1.71223397,58.4852814 1.71223397,56 L1.71223397,56 L1.71223397,10 C1.71223397,7.51471863 2.71959328,5.26471863 4.34827294,3.63603897 C5.97695259,2.00735931 8.22695259,1 10.712234,1 L10.712234,1 Z" id="rectangle" stroke="#000000" stroke-width="2" fill="#FFFFFF"></path>
|
|
416
|
+
<path d="M49.712234,12 L17.712234,12 C14.952234,12 12.712234,14.24 12.712234,17 L12.712234,49 C12.712234,51.76 14.952234,54 17.712234,54 L49.712234,54 C52.472234,54 54.712234,51.76 54.712234,49 L54.712234,17 C54.712234,14.24 52.472234,12 49.712234,12 Z M44.712234,47 L22.712234,47 L22.712234,45 L44.712234,45 L44.712234,47 Z M24.182234,40.88 L23.242234,39.12 L40.562234,30 L23.242234,20.88 L24.182234,19.12 L44.862234,30 L24.182234,40.88 Z" id="greater_than_equal" fill="#000000" fill-rule="nonzero"></path>
|
|
417
|
+
</g>
|
|
418
|
+
</g>
|
|
419
|
+
</svg>""",
|
|
420
|
+
"col_avg_ge": """<?xml version="1.0" encoding="UTF-8"?>
|
|
421
|
+
<svg width="67px" height="67px" viewBox="0 0 67 67" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
|
422
|
+
<title>col_vals_ge</title>
|
|
423
|
+
<g id="All-Icons" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
|
424
|
+
<g id="col_vals_ge" transform="translate(0.000000, 0.241379)">
|
|
425
|
+
<path d="M56.712234,1 C59.1975153,1 61.4475153,2.00735931 63.076195,3.63603897 C64.7048747,5.26471863 65.712234,7.51471863 65.712234,10 L65.712234,10 L65.712234,65 L10.712234,65 C8.22695259,65 5.97695259,63.9926407 4.34827294,62.363961 C2.71959328,60.7352814 1.71223397,58.4852814 1.71223397,56 L1.71223397,56 L1.71223397,10 C1.71223397,7.51471863 2.71959328,5.26471863 4.34827294,3.63603897 C5.97695259,2.00735931 8.22695259,1 10.712234,1 L10.712234,1 Z" id="rectangle" stroke="#000000" stroke-width="2" fill="#FFFFFF"></path>
|
|
426
|
+
<path d="M49.712234,12 L17.712234,12 C14.952234,12 12.712234,14.24 12.712234,17 L12.712234,49 C12.712234,51.76 14.952234,54 17.712234,54 L49.712234,54 C52.472234,54 54.712234,51.76 54.712234,49 L54.712234,17 C54.712234,14.24 52.472234,12 49.712234,12 Z M44.712234,47 L22.712234,47 L22.712234,45 L44.712234,45 L44.712234,47 Z M24.182234,40.88 L23.242234,39.12 L40.562234,30 L23.242234,20.88 L24.182234,19.12 L44.862234,30 L24.182234,40.88 Z" id="greater_than_equal" fill="#000000" fill-rule="nonzero"></path>
|
|
427
|
+
</g>
|
|
428
|
+
</g>
|
|
429
|
+
</svg>""",
|
|
430
|
+
## LE Icons
|
|
274
431
|
"col_vals_le": """<?xml version="1.0" encoding="UTF-8"?>
|
|
275
432
|
<svg width="67px" height="67px" viewBox="0 0 67 67" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
|
276
433
|
<title>col_vals_le</title>
|
|
@@ -280,6 +437,36 @@ SVG_ICONS_FOR_ASSERTION_TYPES = {
|
|
|
280
437
|
<path d="M53.712234,12 L13.712234,12 C13.157547,12 12.712234,12.449219 12.712234,13 L12.712234,53 C12.712234,53.550781 13.157547,54 13.712234,54 L53.712234,54 C54.266922,54 54.712234,53.550781 54.712234,53 L54.712234,13 C54.712234,12.449219 54.266922,12 53.712234,12 Z M42.227859,19.125 L43.196609,20.875 L26.770828,30 L43.196609,39.125 L42.227859,40.875 L22.65364,30 L42.227859,19.125 Z M44.712234,47 L22.712234,47 L22.712234,45 L44.712234,45 L44.712234,47 Z" id="less_than_equal" fill="#000000" fill-rule="nonzero"></path>
|
|
281
438
|
</g>
|
|
282
439
|
</g>
|
|
440
|
+
</svg>""",
|
|
441
|
+
"col_sum_le": """<?xml version="1.0" encoding="UTF-8"?>
|
|
442
|
+
<svg width="67px" height="67px" viewBox="0 0 67 67" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
|
443
|
+
<title>col_vals_le</title>
|
|
444
|
+
<g id="All-Icons" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
|
445
|
+
<g id="col_vals_le" transform="translate(0.000000, 0.793103)">
|
|
446
|
+
<path d="M56.712234,1 C59.1975153,1 61.4475153,2.00735931 63.076195,3.63603897 C64.7048747,5.26471863 65.712234,7.51471863 65.712234,10 L65.712234,10 L65.712234,65 L10.712234,65 C8.22695259,65 5.97695259,63.9926407 4.34827294,62.363961 C2.71959328,60.7352814 1.71223397,58.4852814 1.71223397,56 L1.71223397,56 L1.71223397,10 C1.71223397,7.51471863 2.71959328,5.26471863 4.34827294,3.63603897 C5.97695259,2.00735931 8.22695259,1 10.712234,1 L10.712234,1 Z" id="rectangle" stroke="#000000" stroke-width="2" fill="#FFFFFF"></path>
|
|
447
|
+
<path d="M53.712234,12 L13.712234,12 C13.157547,12 12.712234,12.449219 12.712234,13 L12.712234,53 C12.712234,53.550781 13.157547,54 13.712234,54 L53.712234,54 C54.266922,54 54.712234,53.550781 54.712234,53 L54.712234,13 C54.712234,12.449219 54.266922,12 53.712234,12 Z M42.227859,19.125 L43.196609,20.875 L26.770828,30 L43.196609,39.125 L42.227859,40.875 L22.65364,30 L42.227859,19.125 Z M44.712234,47 L22.712234,47 L22.712234,45 L44.712234,45 L44.712234,47 Z" id="less_than_equal" fill="#000000" fill-rule="nonzero"></path>
|
|
448
|
+
</g>
|
|
449
|
+
</g>
|
|
450
|
+
</svg>""",
|
|
451
|
+
"col_sd_le": """<?xml version="1.0" encoding="UTF-8"?>
|
|
452
|
+
<svg width="67px" height="67px" viewBox="0 0 67 67" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
|
453
|
+
<title>col_vals_le</title>
|
|
454
|
+
<g id="All-Icons" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
|
455
|
+
<g id="col_vals_le" transform="translate(0.000000, 0.793103)">
|
|
456
|
+
<path d="M56.712234,1 C59.1975153,1 61.4475153,2.00735931 63.076195,3.63603897 C64.7048747,5.26471863 65.712234,7.51471863 65.712234,10 L65.712234,10 L65.712234,65 L10.712234,65 C8.22695259,65 5.97695259,63.9926407 4.34827294,62.363961 C2.71959328,60.7352814 1.71223397,58.4852814 1.71223397,56 L1.71223397,56 L1.71223397,10 C1.71223397,7.51471863 2.71959328,5.26471863 4.34827294,3.63603897 C5.97695259,2.00735931 8.22695259,1 10.712234,1 L10.712234,1 Z" id="rectangle" stroke="#000000" stroke-width="2" fill="#FFFFFF"></path>
|
|
457
|
+
<path d="M53.712234,12 L13.712234,12 C13.157547,12 12.712234,12.449219 12.712234,13 L12.712234,53 C12.712234,53.550781 13.157547,54 13.712234,54 L53.712234,54 C54.266922,54 54.712234,53.550781 54.712234,53 L54.712234,13 C54.712234,12.449219 54.266922,12 53.712234,12 Z M42.227859,19.125 L43.196609,20.875 L26.770828,30 L43.196609,39.125 L42.227859,40.875 L22.65364,30 L42.227859,19.125 Z M44.712234,47 L22.712234,47 L22.712234,45 L44.712234,45 L44.712234,47 Z" id="less_than_equal" fill="#000000" fill-rule="nonzero"></path>
|
|
458
|
+
</g>
|
|
459
|
+
</g>
|
|
460
|
+
</svg>""",
|
|
461
|
+
"col_avg_le": """<?xml version="1.0" encoding="UTF-8"?>
|
|
462
|
+
<svg width="67px" height="67px" viewBox="0 0 67 67" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
|
463
|
+
<title>col_vals_le</title>
|
|
464
|
+
<g id="All-Icons" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
|
465
|
+
<g id="col_vals_le" transform="translate(0.000000, 0.793103)">
|
|
466
|
+
<path d="M56.712234,1 C59.1975153,1 61.4475153,2.00735931 63.076195,3.63603897 C64.7048747,5.26471863 65.712234,7.51471863 65.712234,10 L65.712234,10 L65.712234,65 L10.712234,65 C8.22695259,65 5.97695259,63.9926407 4.34827294,62.363961 C2.71959328,60.7352814 1.71223397,58.4852814 1.71223397,56 L1.71223397,56 L1.71223397,10 C1.71223397,7.51471863 2.71959328,5.26471863 4.34827294,3.63603897 C5.97695259,2.00735931 8.22695259,1 10.712234,1 L10.712234,1 Z" id="rectangle" stroke="#000000" stroke-width="2" fill="#FFFFFF"></path>
|
|
467
|
+
<path d="M53.712234,12 L13.712234,12 C13.157547,12 12.712234,12.449219 12.712234,13 L12.712234,53 C12.712234,53.550781 13.157547,54 13.712234,54 L53.712234,54 C54.266922,54 54.712234,53.550781 54.712234,53 L54.712234,13 C54.712234,12.449219 54.266922,12 53.712234,12 Z M42.227859,19.125 L43.196609,20.875 L26.770828,30 L43.196609,39.125 L42.227859,40.875 L22.65364,30 L42.227859,19.125 Z M44.712234,47 L22.712234,47 L22.712234,45 L44.712234,45 L44.712234,47 Z" id="less_than_equal" fill="#000000" fill-rule="nonzero"></path>
|
|
468
|
+
</g>
|
|
469
|
+
</g>
|
|
283
470
|
</svg>""",
|
|
284
471
|
"col_vals_between": """<?xml version="1.0" encoding="UTF-8"?>
|
|
285
472
|
<svg width="67px" height="67px" viewBox="0 0 67 67" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
pointblank/_datascan_utils.py
CHANGED
|
@@ -17,11 +17,15 @@ def _round_to_sig_figs(value: float, sig_figs: int) -> float:
|
|
|
17
17
|
|
|
18
18
|
def _compact_integer_fmt(value: float | int) -> str:
|
|
19
19
|
if value == 0:
|
|
20
|
-
formatted = "0"
|
|
20
|
+
formatted: str = "0"
|
|
21
21
|
elif abs(value) >= 1 and abs(value) < 10_000:
|
|
22
|
-
formatted = fmt_integer(value, use_seps=False)
|
|
22
|
+
formatted = fmt_integer(value, use_seps=False)
|
|
23
|
+
assert isinstance(formatted, list)
|
|
24
|
+
formatted: str = formatted[0]
|
|
23
25
|
else:
|
|
24
|
-
formatted = fmt_scientific(value, decimals=1, exp_style="E1")
|
|
26
|
+
formatted = fmt_scientific(value, decimals=1, exp_style="E1")
|
|
27
|
+
assert isinstance(formatted, list)
|
|
28
|
+
formatted: str = formatted[0]
|
|
25
29
|
|
|
26
30
|
return formatted
|
|
27
31
|
|
|
@@ -30,15 +34,25 @@ def _compact_decimal_fmt(value: float | int) -> str:
|
|
|
30
34
|
if value == 0:
|
|
31
35
|
formatted = "0.00"
|
|
32
36
|
elif abs(value) < 1 and abs(value) >= 0.01:
|
|
33
|
-
formatted = fmt_number(value, decimals=2)
|
|
37
|
+
formatted = fmt_number(value, decimals=2)
|
|
38
|
+
assert isinstance(formatted, list)
|
|
39
|
+
formatted: str = formatted[0]
|
|
34
40
|
elif abs(value) < 0.01:
|
|
35
|
-
formatted = fmt_scientific(value, decimals=1, exp_style="E1")
|
|
41
|
+
formatted = fmt_scientific(value, decimals=1, exp_style="E1")
|
|
42
|
+
assert isinstance(formatted, list)
|
|
43
|
+
formatted: str = formatted[0]
|
|
36
44
|
elif abs(value) >= 1 and abs(value) < 1000:
|
|
37
|
-
formatted = fmt_number(value, n_sigfig=3)
|
|
45
|
+
formatted = fmt_number(value, n_sigfig=3)
|
|
46
|
+
assert isinstance(formatted, list)
|
|
47
|
+
formatted: str = formatted[0]
|
|
38
48
|
elif abs(value) >= 1000 and abs(value) < 10_000:
|
|
39
|
-
formatted = fmt_number(value, decimals=0, use_seps=False)
|
|
49
|
+
formatted = fmt_number(value, decimals=0, use_seps=False)
|
|
50
|
+
assert isinstance(formatted, list)
|
|
51
|
+
formatted: str = formatted[0]
|
|
40
52
|
else:
|
|
41
|
-
formatted = fmt_scientific(value, decimals=1, exp_style="E1")
|
|
53
|
+
formatted = fmt_scientific(value, decimals=1, exp_style="E1")
|
|
54
|
+
assert isinstance(formatted, list)
|
|
55
|
+
formatted: str = formatted[0]
|
|
42
56
|
|
|
43
57
|
return formatted
|
|
44
58
|
|
|
@@ -54,7 +68,9 @@ def _compact_0_1_fmt(value: float | int | None) -> str | None:
|
|
|
54
68
|
return " 1.00"
|
|
55
69
|
|
|
56
70
|
if abs(value) < 1 and abs(value) >= 0.01:
|
|
57
|
-
|
|
71
|
+
formatted = fmt_number(value, decimals=2)
|
|
72
|
+
assert isinstance(formatted, list)
|
|
73
|
+
return " " + formatted[0]
|
|
58
74
|
|
|
59
75
|
if abs(value) < 0.01:
|
|
60
76
|
return "<0.01"
|
|
@@ -62,4 +78,6 @@ def _compact_0_1_fmt(value: float | int | None) -> str | None:
|
|
|
62
78
|
if abs(value) > 0.99:
|
|
63
79
|
return ">0.99"
|
|
64
80
|
|
|
65
|
-
|
|
81
|
+
formatted = fmt_number(value, n_sigfig=3)
|
|
82
|
+
assert isinstance(formatted, list)
|
|
83
|
+
return formatted[0]
|