dcicutils 8.13.3.1b22__py3-none-any.whl → 8.13.3.1b24__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 +16 -12
- dcicutils/structured_data.py +2 -2
- {dcicutils-8.13.3.1b22.dist-info → dcicutils-8.13.3.1b24.dist-info}/METADATA +1 -1
- {dcicutils-8.13.3.1b22.dist-info → dcicutils-8.13.3.1b24.dist-info}/RECORD +7 -7
- {dcicutils-8.13.3.1b22.dist-info → dcicutils-8.13.3.1b24.dist-info}/LICENSE.txt +0 -0
- {dcicutils-8.13.3.1b22.dist-info → dcicutils-8.13.3.1b24.dist-info}/WHEEL +0 -0
- {dcicutils-8.13.3.1b22.dist-info → dcicutils-8.13.3.1b24.dist-info}/entry_points.txt +0 -0
dcicutils/misc_utils.py
CHANGED
@@ -1005,16 +1005,12 @@ _MULTIPLIER_T = 1000 * _MULTIPLIER_G
|
|
1005
1005
|
|
1006
1006
|
_MULTIPLIER_SUFFIXES = {
|
1007
1007
|
"K": _MULTIPLIER_K,
|
1008
|
-
"Kb": _MULTIPLIER_K,
|
1009
1008
|
"KB": _MULTIPLIER_K,
|
1010
1009
|
"M": _MULTIPLIER_M,
|
1011
|
-
"Mb": _MULTIPLIER_M,
|
1012
1010
|
"MB": _MULTIPLIER_M,
|
1013
1011
|
"G": _MULTIPLIER_G,
|
1014
|
-
"Gb": _MULTIPLIER_G,
|
1015
1012
|
"GB": _MULTIPLIER_G,
|
1016
1013
|
"T": _MULTIPLIER_T,
|
1017
|
-
"Tb": _MULTIPLIER_T,
|
1018
1014
|
"TB": _MULTIPLIER_T
|
1019
1015
|
}
|
1020
1016
|
|
@@ -1022,17 +1018,17 @@ _MULTIPLIER_SUFFIXES = {
|
|
1022
1018
|
def to_number(value: str,
|
1023
1019
|
allow_commas: bool = False,
|
1024
1020
|
allow_multiplier_suffix: bool = False,
|
1025
|
-
|
1021
|
+
allow_float: bool = False,
|
1026
1022
|
fallback: Optional[Union[int, float]] = None) -> Optional[Union[int, float]]:
|
1027
1023
|
|
1028
1024
|
"""
|
1029
|
-
Converts the give string value to an int, or float if
|
1025
|
+
Converts the give string value to an int, or possibly float if allow_float is True.
|
1030
1026
|
If allow_commas is True (default: False) then allow commas (only) every three digits.
|
1031
1027
|
If allow_multiplier_suffix is True (default: False) allow any of K, Kb, KB; or M, Mb, MB;
|
1032
1028
|
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
|
1029
|
+
one billion; or one trillion; respectively. If allow_float is True (default: False)
|
1034
1030
|
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
|
1031
|
+
in which case the returned value will be of type float, if it needs to be, and not int.
|
1036
1032
|
If the string is not well formated then returns None.
|
1037
1033
|
"""
|
1038
1034
|
if not (isinstance(value, str) and (value := value.strip())):
|
@@ -1051,17 +1047,19 @@ def to_number(value: str,
|
|
1051
1047
|
return fallback
|
1052
1048
|
|
1053
1049
|
if allow_multiplier_suffix is True:
|
1050
|
+
value_upper = value.upper()
|
1054
1051
|
for suffix in _MULTIPLIER_SUFFIXES:
|
1055
|
-
if
|
1052
|
+
if value_upper.endswith(suffix):
|
1056
1053
|
value_multiplier *= _MULTIPLIER_SUFFIXES[suffix]
|
1057
1054
|
if not (value := value[:-len(suffix)].strip()):
|
1058
1055
|
return fallback
|
1059
1056
|
break
|
1060
1057
|
|
1061
|
-
if
|
1058
|
+
if allow_float is True:
|
1062
1059
|
if (dot_index := value.rfind(".")) >= 0:
|
1063
1060
|
if value_fraction := value[dot_index + 1:].strip():
|
1064
1061
|
try:
|
1062
|
+
# value_fraction = float(f"0.{value_fraction}")
|
1065
1063
|
value_fraction = float(f"0.{value_fraction}")
|
1066
1064
|
except Exception:
|
1067
1065
|
return fallback
|
@@ -1075,15 +1073,21 @@ def to_number(value: str,
|
|
1075
1073
|
if not value.isdigit():
|
1076
1074
|
return fallback
|
1077
1075
|
|
1078
|
-
result = int(value)
|
1076
|
+
result = int(value)
|
1079
1077
|
|
1080
1078
|
if value_fraction:
|
1081
1079
|
result += value_fraction
|
1082
1080
|
|
1081
|
+
result *= value_multiplier
|
1082
|
+
|
1083
1083
|
if value_negative:
|
1084
1084
|
result = -result
|
1085
1085
|
|
1086
|
-
|
1086
|
+
if allow_float is True:
|
1087
|
+
if result == int(result):
|
1088
|
+
result = int(result)
|
1089
|
+
|
1090
|
+
return result
|
1087
1091
|
|
1088
1092
|
|
1089
1093
|
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=IIppGKxdEZmKQKFQnUFylLZIg1YUYjAkMslnUhA4h54,112926
|
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.1b24.dist-info/LICENSE.txt,sha256=qnwSmfnEWMl5l78VPDEzAmEbLVrRqQvfUQiHT0ehrOo,1102
|
79
|
+
dcicutils-8.13.3.1b24.dist-info/METADATA,sha256=Z2pf6DW_2O_gZWUcenMJmDRknNzA3BpQ6C63aybr-kk,3440
|
80
|
+
dcicutils-8.13.3.1b24.dist-info/WHEEL,sha256=7Z8_27uaHI_UZAc4Uox4PpBhQ9Y5_modZXWMxtUi4NU,88
|
81
|
+
dcicutils-8.13.3.1b24.dist-info/entry_points.txt,sha256=W6kEWdUJk9tQ4myAgpehPdebcwvCAZ7UgB-wyPgDUMg,335
|
82
|
+
dcicutils-8.13.3.1b24.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|