dcicutils 8.13.3.1b10__py3-none-any.whl → 8.13.3.1b12__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 CHANGED
@@ -984,14 +984,15 @@ def str_to_bool(x: Optional[str]) -> Optional[bool]:
984
984
  raise ValueError(f"An argument to str_or_bool must be a string or None: {x!r}")
985
985
 
986
986
 
987
- def to_integer(value: str, fallback: Optional[Any] = None) -> Optional[Any]:
987
+ def to_integer(value: str, fallback: Optional[Any] = None, strict: bool = False) -> Optional[Any]:
988
988
  try:
989
989
  return int(value)
990
990
  except Exception:
991
- try:
992
- return int(float(value))
993
- except Exception:
994
- pass
991
+ if strict is not True:
992
+ try:
993
+ return int(float(value))
994
+ except Exception:
995
+ pass
995
996
  return fallback
996
997
 
997
998
 
@@ -57,7 +57,7 @@ class StructuredDataSet:
57
57
  ref_lookup_nocache: bool = False,
58
58
  norefs: bool = False, merge: bool = False,
59
59
  progress: Optional[Callable] = None,
60
- row_reader_hook: Optional[Callable] = None,
60
+ validator_hook: Optional[Callable] = None,
61
61
  debug_sleep: Optional[str] = None) -> None:
62
62
  self._progress = progress if callable(progress) else None
63
63
  self._data = {}
@@ -76,7 +76,7 @@ class StructuredDataSet:
76
76
  self._autoadd_properties = autoadd if isinstance(autoadd, dict) and autoadd else None
77
77
  self._norefs = True if norefs is True else False
78
78
  self._merge = True if merge is True else False # New merge functionality (2024-05-25)
79
- self._row_reader_hook = row_reader_hook if callable(row_reader_hook) else None # Testing support (2024-06-12)
79
+ self._validator_hook = validator_hook if callable(validator_hook) else None # Testing support (2024-06-12)
80
80
  self._debug_sleep = None
81
81
  if debug_sleep:
82
82
  try:
@@ -379,8 +379,13 @@ class StructuredDataSet:
379
379
  structured_row_template = _StructuredRowTemplate(reader.header, schema)
380
380
  structured_row = structured_row_template.create_row()
381
381
  for column_name, value in row.items():
382
- if self._row_reader_hook:
383
- value = self._row_reader_hook(reader.sheet_name, column_name, value)
382
+ if self._validator_hook:
383
+ value, validator_error = self._validator_hook(reader.sheet_name, column_name, value)
384
+ if validator_error:
385
+ self._note_error({
386
+ "src": create_dict(type=schema_name, row=reader.row_number),
387
+ "error": validator_error
388
+ }, "validation")
384
389
  structured_row_template.set_value(structured_row, column_name, value, reader.file, reader.row_number)
385
390
  if self._autoadd_properties:
386
391
  self._add_properties(structured_row, self._autoadd_properties, schema)
@@ -706,7 +711,7 @@ class Schema(SchemaBase):
706
711
 
707
712
  def _map_function_integer(self, typeinfo: dict) -> Callable:
708
713
  def map_integer(value: str, src: Optional[str]) -> Any:
709
- return to_integer(value, value)
714
+ return to_integer(value, value, strict=True)
710
715
  return map_integer
711
716
 
712
717
  def _map_function_number(self, typeinfo: dict) -> Callable:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: dcicutils
3
- Version: 8.13.3.1b10
3
+ Version: 8.13.3.1b12
4
4
  Summary: Utility package for interacting with the 4DN Data Portal and other 4DN resources
5
5
  Home-page: https://github.com/4dn-dcic/utils
6
6
  License: MIT
@@ -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=-syqTAj8DESiiP_KHoyBv9VvfboFYB03QbBlmXnBZXw,109423
48
+ dcicutils/misc_utils.py,sha256=YRUjQ4Yg7GapOGxN_KWB96hcl1XJVGr24ktHZvD9g6A,109492
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=TA7kJ-utVj_xa5XnVs7VaG_XQicl5MUWmrVkDm0N8qE,64471
69
+ dcicutils/structured_data.py,sha256=1w832RpR6pKklRyV4KgMnTkL8PBlCOhwKZ8ED88dMjE,64761
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.1b10.dist-info/LICENSE.txt,sha256=qnwSmfnEWMl5l78VPDEzAmEbLVrRqQvfUQiHT0ehrOo,1102
79
- dcicutils-8.13.3.1b10.dist-info/METADATA,sha256=E8KQaPEnwlq1Ogqm5ZJB655vi5zP1jpNUCMopDMdYzI,3440
80
- dcicutils-8.13.3.1b10.dist-info/WHEEL,sha256=7Z8_27uaHI_UZAc4Uox4PpBhQ9Y5_modZXWMxtUi4NU,88
81
- dcicutils-8.13.3.1b10.dist-info/entry_points.txt,sha256=W6kEWdUJk9tQ4myAgpehPdebcwvCAZ7UgB-wyPgDUMg,335
82
- dcicutils-8.13.3.1b10.dist-info/RECORD,,
78
+ dcicutils-8.13.3.1b12.dist-info/LICENSE.txt,sha256=qnwSmfnEWMl5l78VPDEzAmEbLVrRqQvfUQiHT0ehrOo,1102
79
+ dcicutils-8.13.3.1b12.dist-info/METADATA,sha256=noJFXOxAJ5PwjMw07PBOj1McLkRQ4Ie1WVCMoq72Gls,3440
80
+ dcicutils-8.13.3.1b12.dist-info/WHEEL,sha256=7Z8_27uaHI_UZAc4Uox4PpBhQ9Y5_modZXWMxtUi4NU,88
81
+ dcicutils-8.13.3.1b12.dist-info/entry_points.txt,sha256=W6kEWdUJk9tQ4myAgpehPdebcwvCAZ7UgB-wyPgDUMg,335
82
+ dcicutils-8.13.3.1b12.dist-info/RECORD,,