dcicutils 8.13.3.1b22__py3-none-any.whl → 8.13.3.1b23__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.
- dcicutils/misc_utils.py +14 -7
- dcicutils/structured_data.py +2 -2
- {dcicutils-8.13.3.1b22.dist-info → dcicutils-8.13.3.1b23.dist-info}/METADATA +1 -1
- {dcicutils-8.13.3.1b22.dist-info → dcicutils-8.13.3.1b23.dist-info}/RECORD +7 -7
- {dcicutils-8.13.3.1b22.dist-info → dcicutils-8.13.3.1b23.dist-info}/LICENSE.txt +0 -0
- {dcicutils-8.13.3.1b22.dist-info → dcicutils-8.13.3.1b23.dist-info}/WHEEL +0 -0
- {dcicutils-8.13.3.1b22.dist-info → dcicutils-8.13.3.1b23.dist-info}/entry_points.txt +0 -0
dcicutils/misc_utils.py
CHANGED
@@ -1022,17 +1022,17 @@ _MULTIPLIER_SUFFIXES = {
|
|
1022
1022
|
def to_number(value: str,
|
1023
1023
|
allow_commas: bool = False,
|
1024
1024
|
allow_multiplier_suffix: bool = False,
|
1025
|
-
|
1025
|
+
allow_float: bool = False,
|
1026
1026
|
fallback: Optional[Union[int, float]] = None) -> Optional[Union[int, float]]:
|
1027
1027
|
|
1028
1028
|
"""
|
1029
|
-
Converts the give string value to an int, or float if
|
1029
|
+
Converts the give string value to an int, or possibly float if allow_float is True.
|
1030
1030
|
If allow_commas is True (default: False) then allow commas (only) every three digits.
|
1031
1031
|
If allow_multiplier_suffix is True (default: False) allow any of K, Kb, KB; or M, Mb, MB;
|
1032
1032
|
or G, Gb, or GB; or T, Tb, TB, to mean multiply value by one thousand; one million;
|
1033
|
-
one billion; or one trillion; respectively. If
|
1033
|
+
one billion; or one trillion; respectively. If allow_float is True (default: False)
|
1034
1034
|
allow the value to be floating point (i.e. with a decimal point and a fractional part),
|
1035
|
-
in which case the returned value will be of type float
|
1035
|
+
in which case the returned value will be of type float, if it needs to be, and not int.
|
1036
1036
|
If the string is not well formated then returns None.
|
1037
1037
|
"""
|
1038
1038
|
if not (isinstance(value, str) and (value := value.strip())):
|
@@ -1058,10 +1058,11 @@ def to_number(value: str,
|
|
1058
1058
|
return fallback
|
1059
1059
|
break
|
1060
1060
|
|
1061
|
-
if
|
1061
|
+
if allow_float is True:
|
1062
1062
|
if (dot_index := value.rfind(".")) >= 0:
|
1063
1063
|
if value_fraction := value[dot_index + 1:].strip():
|
1064
1064
|
try:
|
1065
|
+
# value_fraction = float(f"0.{value_fraction}")
|
1065
1066
|
value_fraction = float(f"0.{value_fraction}")
|
1066
1067
|
except Exception:
|
1067
1068
|
return fallback
|
@@ -1075,15 +1076,21 @@ def to_number(value: str,
|
|
1075
1076
|
if not value.isdigit():
|
1076
1077
|
return fallback
|
1077
1078
|
|
1078
|
-
result = int(value)
|
1079
|
+
result = int(value)
|
1079
1080
|
|
1080
1081
|
if value_fraction:
|
1081
1082
|
result += value_fraction
|
1082
1083
|
|
1084
|
+
result *= value_multiplier
|
1085
|
+
|
1083
1086
|
if value_negative:
|
1084
1087
|
result = -result
|
1085
1088
|
|
1086
|
-
|
1089
|
+
if allow_float is True:
|
1090
|
+
if result == int(result):
|
1091
|
+
result = int(result)
|
1092
|
+
|
1093
|
+
return result
|
1087
1094
|
|
1088
1095
|
|
1089
1096
|
def to_float(value: str, fallback: Optional[Any] = None) -> Optional[Any]:
|
dcicutils/structured_data.py
CHANGED
@@ -727,7 +727,7 @@ class Schema(SchemaBase):
|
|
727
727
|
allow_multiplier_suffix = typeinfo.get("allow_multiplier_suffix") is True
|
728
728
|
def map_integer(value: str, src: Optional[str]) -> Any: # noqa
|
729
729
|
nonlocal allow_commas, allow_multiplier_suffix
|
730
|
-
return to_number(value, fallback=value,
|
730
|
+
return to_number(value, fallback=value, allow_float=False,
|
731
731
|
allow_commas=allow_commas,
|
732
732
|
allow_multiplier_suffix=allow_multiplier_suffix)
|
733
733
|
return map_integer
|
@@ -737,7 +737,7 @@ class Schema(SchemaBase):
|
|
737
737
|
allow_multiplier_suffix = typeinfo.get("allow_multiplier_suffix") is True
|
738
738
|
def map_number(value: str, src: Optional[str]) -> Any: # noqa
|
739
739
|
nonlocal allow_commas, allow_multiplier_suffix
|
740
|
-
return to_number(value, fallback=value,
|
740
|
+
return to_number(value, fallback=value, allow_float=True,
|
741
741
|
allow_commas=allow_commas,
|
742
742
|
allow_multiplier_suffix=allow_multiplier_suffix)
|
743
743
|
return map_number
|
@@ -45,7 +45,7 @@ dcicutils/license_policies/park-lab-gpl-pipeline.jsonc,sha256=vLZkwm3Js-kjV44nug
|
|
45
45
|
dcicutils/license_policies/park-lab-pipeline.jsonc,sha256=9qlY0ASy3iUMQlr3gorVcXrSfRHnVGbLhkS427UaRy4,283
|
46
46
|
dcicutils/license_utils.py,sha256=2Yxnh1T1iuMe6wluwbvpFO_zYSGPxB4-STAMc-vz-YM,47202
|
47
47
|
dcicutils/log_utils.py,sha256=7pWMc6vyrorUZQf-V-M3YC6zrPgNhuV_fzm9xqTPph0,10883
|
48
|
-
dcicutils/misc_utils.py,sha256=
|
48
|
+
dcicutils/misc_utils.py,sha256=GwabwKfZvv8tXcEtPBwzNHPbOfzgAbRswTkYDoW6pFE,112984
|
49
49
|
dcicutils/obfuscation_utils.py,sha256=fo2jOmDRC6xWpYX49u80bVNisqRRoPskFNX3ymFAmjw,5963
|
50
50
|
dcicutils/opensearch_utils.py,sha256=V2exmFYW8Xl2_pGFixF4I2Cc549Opwe4PhFi5twC0M8,1017
|
51
51
|
dcicutils/portal_object_utils.py,sha256=Az3n1aL-PQkN5gOFE6ZqC2XkYsqiwKlq7-tZggs1QN4,11062
|
@@ -66,7 +66,7 @@ dcicutils/secrets_utils.py,sha256=8dppXAsiHhJzI6NmOcvJV5ldvKkQZzh3Fl-cb8Wm7MI,19
|
|
66
66
|
dcicutils/sheet_utils.py,sha256=VlmzteONW5VF_Q4vo0yA5vesz1ViUah1MZ_yA1rwZ0M,33629
|
67
67
|
dcicutils/snapshot_utils.py,sha256=YDeI3vD-MhAtHwKDzfEm2q-n3l-da2yRpRR3xp0Ah1M,23021
|
68
68
|
dcicutils/ssl_certificate_utils.py,sha256=F0ifz_wnRRN9dfrfsz7aCp4UDLgHEY8LaK7PjnNvrAQ,9707
|
69
|
-
dcicutils/structured_data.py,sha256=
|
69
|
+
dcicutils/structured_data.py,sha256=OfGV92SxUosCuh3hwvRJGwreGx1Q43q73mryIZurrxk,66157
|
70
70
|
dcicutils/submitr/progress_constants.py,sha256=5bxyX77ql8qEJearfHEvsvXl7D0GuUODW0T65mbRmnE,2895
|
71
71
|
dcicutils/submitr/ref_lookup_strategy.py,sha256=VJN-Oo0LLna6Vo2cu47eC-eU-yUC9NFlQP29xajejVU,4741
|
72
72
|
dcicutils/task_utils.py,sha256=MF8ujmTD6-O2AC2gRGPHyGdUrVKgtr8epT5XU8WtNjk,8082
|
@@ -75,8 +75,8 @@ dcicutils/trace_utils.py,sha256=g8kwV4ebEy5kXW6oOrEAUsurBcCROvwtZqz9fczsGRE,1769
|
|
75
75
|
dcicutils/validation_utils.py,sha256=cMZIU2cY98FYtzK52z5WUYck7urH6JcqOuz9jkXpqzg,14797
|
76
76
|
dcicutils/variant_utils.py,sha256=2H9azNx3xAj-MySg-uZ2SFqbWs4kZvf61JnK6b-h4Qw,4343
|
77
77
|
dcicutils/zip_utils.py,sha256=_Y9EmL3D2dUZhxucxHvrtmmlbZmK4FpSsHEb7rGSJLU,3265
|
78
|
-
dcicutils-8.13.3.
|
79
|
-
dcicutils-8.13.3.
|
80
|
-
dcicutils-8.13.3.
|
81
|
-
dcicutils-8.13.3.
|
82
|
-
dcicutils-8.13.3.
|
78
|
+
dcicutils-8.13.3.1b23.dist-info/LICENSE.txt,sha256=qnwSmfnEWMl5l78VPDEzAmEbLVrRqQvfUQiHT0ehrOo,1102
|
79
|
+
dcicutils-8.13.3.1b23.dist-info/METADATA,sha256=ENxCidpL5wyavgS1kKnIj09sMPK42qj0Q9sl1s8WAoU,3440
|
80
|
+
dcicutils-8.13.3.1b23.dist-info/WHEEL,sha256=7Z8_27uaHI_UZAc4Uox4PpBhQ9Y5_modZXWMxtUi4NU,88
|
81
|
+
dcicutils-8.13.3.1b23.dist-info/entry_points.txt,sha256=W6kEWdUJk9tQ4myAgpehPdebcwvCAZ7UgB-wyPgDUMg,335
|
82
|
+
dcicutils-8.13.3.1b23.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|