dcicutils 8.16.6.1b3__py3-none-any.whl → 8.16.6.1b5__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/data_readers.py CHANGED
@@ -184,6 +184,9 @@ class Excel:
184
184
  def sheet_reader(self, sheet_name: str) -> ExcelSheetReader:
185
185
  return self._reader_class(self, sheet_name=sheet_name, workbook=self._workbook)
186
186
 
187
+ def effective_sheet_name(self, sheet_name: str) -> str:
188
+ return sheet_name
189
+
187
190
  def open(self) -> None:
188
191
  if self._workbook is None:
189
192
  import warnings
dcicutils/misc_utils.py CHANGED
@@ -1088,7 +1088,10 @@ def to_number(value: str,
1088
1088
  if (dot_index := value.rfind(".")) >= 0:
1089
1089
  if value_fraction := value[dot_index + 1:].strip():
1090
1090
  if not value_fraction.isdigit():
1091
- return fallback
1091
+ try:
1092
+ value_fraction = float(value_fraction)
1093
+ except Exception:
1094
+ return fallback
1092
1095
  if not (value := value[:dot_index].strip()):
1093
1096
  if not value_fraction:
1094
1097
  return fallback
@@ -320,7 +320,16 @@ class StructuredDataSet:
320
320
  # Order the sheet names by any specified ordering (e.g. ala snovault.loadxl).
321
321
  order = {Schema.type_name(key): index for index, key in enumerate(self._order)} if self._order else {}
322
322
  for sheet_name in sorted(excel.sheet_names, key=lambda key: order.get(Schema.type_name(key), sys.maxsize)):
323
- self._load_reader(excel.sheet_reader(sheet_name), type_name=Schema.type_name(sheet_name))
323
+ # This effective_sheet_name function added 2025-01-21 to allow sheets whose sheet names are
324
+ # other than simply the name of the type, but which do contain that type somehow; i.e. e.g.
325
+ # specifically where the sheet name is like "DSA:ExternalQualityMetric" where the "DSA"
326
+ # part is purely informational, and the "ExternalQualityMetric" is the type name; so we
327
+ # now can have multiple sheets of the same type (impossible before as sheet names need
328
+ # to be unique); this is simply a mechanism to allow the user to partition/organize their
329
+ # sheets with some data/rows for a given type split across multiple actual sheets.
330
+ type_name = Schema.type_name(excel.effective_sheet_name(sheet_name))
331
+ self._load_reader(excel.sheet_reader(sheet_name), type_name=type_name)
332
+ # self._load_reader(excel.sheet_reader(sheet_name), type_name=Schema.type_name(sheet_name))
324
333
  if self._validator_sheet_hook and self.data.get(sheet_name):
325
334
  self._validator_sheet_hook(self, sheet_name, self.data[sheet_name])
326
335
  # TODO: Do we really need progress reporting for the below?
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: dcicutils
3
- Version: 8.16.6.1b3
3
+ Version: 8.16.6.1b5
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
@@ -10,7 +10,7 @@ dcicutils/common.py,sha256=U6tedhp6FFl9EUGoMqiMAqON_WqGJ_317JE_Tr4dXDs,3926
10
10
  dcicutils/contribution_scripts.py,sha256=0k5Gw1TumcD5SAcXVkDd6-yvuMEw-jUp5Kfb7FJH6XQ,2015
11
11
  dcicutils/contribution_utils.py,sha256=vYLS1JUB3sKd24BUxZ29qUBqYeQBLK9cwo8x3k64uPg,25653
12
12
  dcicutils/creds_utils.py,sha256=64BbIfS90T1eJmmQJrDyfrRa3V2F1x7T8lOrEeFfqJY,11127
13
- dcicutils/data_readers.py,sha256=CgxWPB2hJzFfKqVUWL_0fERe4CZRMvt-5Afo9lqEt74,7813
13
+ dcicutils/data_readers.py,sha256=Hszem-XAEzMmq-Haw2xUzSSqpw5o0fGsw4BylwWBbLc,7900
14
14
  dcicutils/data_utils.py,sha256=k2OxOlsx7AJ6jF-YNlMyGus_JqSUBe4_n1s65Mv1gQQ,3098
15
15
  dcicutils/datetime_utils.py,sha256=xaJ9rzSsk4uBPidwV2sByrl2xcQiFWXTnx6HLpt8EcY,13650
16
16
  dcicutils/deployment_utils.py,sha256=6Sv1cM9T944d_9CTJt8O2RPtpw9MiTIPKw_DgYLOnCU,69916
@@ -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=xNQtavXS6vw_x9rQNhZEryo9b19oWYg-A8TzjhVDuxg,115949
48
+ dcicutils/misc_utils.py,sha256=U6dABhaswQA_QPJgkx535WZuZ_ECfc3KvamOEdIMUtc,116079
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=fnqrB5d59EoD6AcilUUmR2THGdjYeNK17eLoAhBCT4w,66580
69
+ dcicutils/structured_data.py,sha256=PMrW-bBnuULzBTyl5D7FM1r83rC6P5xAoFHUUqks6_A,67450
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.16.6.1b3.dist-info/LICENSE.txt,sha256=IrWHOFtMb2inTgr2ZqwQriRC8H3uMQfQVO6lniaaoE0,1102
79
- dcicutils-8.16.6.1b3.dist-info/METADATA,sha256=NMooRRWHCGqrfzf8D0lOhEuFyf7jQSM_TmgC4o3CfTk,3493
80
- dcicutils-8.16.6.1b3.dist-info/WHEEL,sha256=7Z8_27uaHI_UZAc4Uox4PpBhQ9Y5_modZXWMxtUi4NU,88
81
- dcicutils-8.16.6.1b3.dist-info/entry_points.txt,sha256=W6kEWdUJk9tQ4myAgpehPdebcwvCAZ7UgB-wyPgDUMg,335
82
- dcicutils-8.16.6.1b3.dist-info/RECORD,,
78
+ dcicutils-8.16.6.1b5.dist-info/LICENSE.txt,sha256=IrWHOFtMb2inTgr2ZqwQriRC8H3uMQfQVO6lniaaoE0,1102
79
+ dcicutils-8.16.6.1b5.dist-info/METADATA,sha256=9feHP-Akh4ZI7EexBuKGCZ7G3x2I3ITQdMEaz3ESQYo,3493
80
+ dcicutils-8.16.6.1b5.dist-info/WHEEL,sha256=7Z8_27uaHI_UZAc4Uox4PpBhQ9Y5_modZXWMxtUi4NU,88
81
+ dcicutils-8.16.6.1b5.dist-info/entry_points.txt,sha256=W6kEWdUJk9tQ4myAgpehPdebcwvCAZ7UgB-wyPgDUMg,335
82
+ dcicutils-8.16.6.1b5.dist-info/RECORD,,