dcicutils 8.10.0.1b1__py3-none-any.whl → 8.11.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.
@@ -248,12 +248,6 @@
248
248
  "docutils" // Used only privately as a separate documentation-generation task for ReadTheDocs
249
249
  ],
250
250
 
251
-
252
- "GNU General Public License v2 (GPLv2)": [
253
- "pyinstaller",
254
- "pyinstaller-hooks-contrib"
255
- ],
256
-
257
251
  "MIT/X11 Derivative": [
258
252
  // The license used by libxkbcommon is complicated and involves numerous included licenses,
259
253
  // but all are permissive.
dcicutils/schema_utils.py CHANGED
@@ -1,5 +1,6 @@
1
1
  import os
2
2
  from typing import Any, Dict, List, Optional, Tuple
3
+
3
4
  from dcicutils.misc_utils import to_camel_case
4
5
 
5
6
 
@@ -8,6 +9,7 @@ class JsonSchemaConstants:
8
9
  ARRAY = "array"
9
10
  BOOLEAN = "boolean"
10
11
  DEFAULT = "default"
12
+ DEPENDENT_REQUIRED = "dependentRequired"
11
13
  ENUM = "enum"
12
14
  FORMAT = "format"
13
15
  INTEGER = "integer"
@@ -29,6 +31,10 @@ class EncodedSchemaConstants:
29
31
  LINK_TO = "linkTo"
30
32
  MERGE_REF = "$merge"
31
33
  MIXIN_PROPERTIES = "mixinProperties"
34
+ SUBMISSION_COMMENT = "submissionComment"
35
+ SUBMISSION_EXAMPLES = "submissionExamples"
36
+ SUBMITTER_REQUIRED = "submitterRequired"
37
+ SUGGESTED_ENUM = "suggested_enum"
32
38
  UNIQUE_KEY = "uniqueKey"
33
39
 
34
40
 
@@ -203,6 +209,50 @@ def get_description(schema: Dict[str, Any]) -> str:
203
209
  return schema.get(SchemaConstants.DESCRIPTION, "")
204
210
 
205
211
 
212
+ def is_submitter_required(schema: Dict[str, Any]) -> bool:
213
+ """Return True if the schema is marked as required for submitters.
214
+
215
+ Specifically, required for external (i.e. non-admin) submitters.
216
+
217
+ This is typically validated within the context of a oneOf, anyOf,
218
+ or allOf schema on an item type which is used within the team and
219
+ by external submitters, and is tricky to pick up on automatically.
220
+ """
221
+ return schema.get(SchemaConstants.SUBMITTER_REQUIRED, False)
222
+
223
+
224
+ def get_submission_comment(schema: Dict[str, Any]) -> str:
225
+ """Return the submission comment for a property.
226
+
227
+ Custom property that can be manually added to a schema to provide
228
+ additional context for submitters.
229
+ """
230
+ return schema.get(SchemaConstants.SUBMISSION_COMMENT, "")
231
+
232
+
233
+ def get_submission_examples(schema: Dict[str, Any]) -> List[str]:
234
+ """Return the submission example for a property.
235
+
236
+ Custom property that can be manually added to a schema to provide
237
+ an example for submitters.
238
+ """
239
+ return schema.get(SchemaConstants.SUBMISSION_EXAMPLES, [])
240
+
241
+
242
+ def get_suggested_enum(schema: Dict[str, Any]) -> List[str]:
243
+ """Return the suggested enum for a property.
244
+
245
+ Custom property that can be manually added to a schema to provide
246
+ a suggested list of values for submitters.
247
+ """
248
+ return schema.get(SchemaConstants.SUGGESTED_ENUM, [])
249
+
250
+
251
+ def get_dependent_required(schema: Dict[str, Any]) -> Dict[str, List[str]]:
252
+ """Return the dependent required properties of a schema."""
253
+ return schema.get(SchemaConstants.DEPENDENT_REQUIRED, {})
254
+
255
+
206
256
  class Schema:
207
257
 
208
258
  def __init__(self, schema: dict, type: Optional[str] = None) -> None:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: dcicutils
3
- Version: 8.10.0.1b1
3
+ Version: 8.11.0
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
@@ -39,7 +39,7 @@ dcicutils/lang_utils.py,sha256=MI3K6bPHLUqlkx3s_9jYZfbGbahiQFlpq4rBE3OYMbg,28151
39
39
  dcicutils/license_policies/c4-infrastructure.jsonc,sha256=xEQbIN08Y2xh3gSLRtSz9EhAZox1p3kHC4r678hCpss,278
40
40
  dcicutils/license_policies/c4-python-infrastructure.jsonc,sha256=Tkq8P1mKGYlix68I82IFNmasrT4wtSdokOIM-g2B8DQ,296
41
41
  dcicutils/license_policies/park-lab-common-server.jsonc,sha256=aaK-NdFDT8f8z_gBXihZnQJ6g3CAZdGSlHOwUP8HvUQ,5790
42
- dcicutils/license_policies/park-lab-common.jsonc,sha256=QyzpPveVr87RMpjrLLhnxLSp4VuEWta1gehMAqgKKig,18995
42
+ dcicutils/license_policies/park-lab-common.jsonc,sha256=0LIFlIQWmdHlt160ku8cTOiB59akgYzRhRN3Xb5G_Aw,18864
43
43
  dcicutils/license_policies/park-lab-gpl-pipeline.jsonc,sha256=vLZkwm3Js-kjV44nug3PizRGDLVnDox4CnvDKu5d2oQ,3260
44
44
  dcicutils/license_policies/park-lab-pipeline.jsonc,sha256=9qlY0ASy3iUMQlr3gorVcXrSfRHnVGbLhkS427UaRy4,283
45
45
  dcicutils/license_utils.py,sha256=d1cq6iwv5Ju-VjdoINi6q7CPNNL7Oz6rcJdLMY38RX0,46978
@@ -56,7 +56,7 @@ dcicutils/qa_utils.py,sha256=TT0SiJWiuxYvbsIyhK9VO4uV_suxhB6CpuC4qPacCzQ,160208
56
56
  dcicutils/redis_tools.py,sha256=qkcSNMtvqkpvts-Cm9gWhneK523Q_oHwhNUud1be1qk,7055
57
57
  dcicutils/redis_utils.py,sha256=VJ-7g8pOZqR1ZCtdcjKz3-6as2DMUcs1b1zG6wSprH4,6462
58
58
  dcicutils/s3_utils.py,sha256=LauLFQGvZLfpBJ81tYMikjLd3SJRz2R_FrL1n4xSlyI,28868
59
- dcicutils/schema_utils.py,sha256=IIteRrg-iOJOFU17n2lvKByVdWdiMfuAQ1kf_QIM96Q,10604
59
+ dcicutils/schema_utils.py,sha256=GmRm-XqZKJ6qine16SQF1txcby9WougDav_sYmKNs9E,12400
60
60
  dcicutils/scripts/publish_to_pypi.py,sha256=LFzNHIQK2EXFr88YcfctyA_WKEBFc1ElnSjWrCXedPM,13889
61
61
  dcicutils/scripts/run_license_checker.py,sha256=z2keYnRDZsHQbTeo1XORAXSXNJK5axVzL5LjiNqZ7jE,4184
62
62
  dcicutils/scripts/view_portal_object.py,sha256=HZzM44BDcGycO9XTOTZyP-F7PRMZaZrnFfiqiT7Qvqg,29777
@@ -73,8 +73,8 @@ dcicutils/trace_utils.py,sha256=g8kwV4ebEy5kXW6oOrEAUsurBcCROvwtZqz9fczsGRE,1769
73
73
  dcicutils/validation_utils.py,sha256=cMZIU2cY98FYtzK52z5WUYck7urH6JcqOuz9jkXpqzg,14797
74
74
  dcicutils/variant_utils.py,sha256=2H9azNx3xAj-MySg-uZ2SFqbWs4kZvf61JnK6b-h4Qw,4343
75
75
  dcicutils/zip_utils.py,sha256=_Y9EmL3D2dUZhxucxHvrtmmlbZmK4FpSsHEb7rGSJLU,3265
76
- dcicutils-8.10.0.1b1.dist-info/LICENSE.txt,sha256=qnwSmfnEWMl5l78VPDEzAmEbLVrRqQvfUQiHT0ehrOo,1102
77
- dcicutils-8.10.0.1b1.dist-info/METADATA,sha256=mVkdVaQtLvCiBIwKoT3JL9HYr8fmTgy-TiFlpGyCcZs,3440
78
- dcicutils-8.10.0.1b1.dist-info/WHEEL,sha256=7Z8_27uaHI_UZAc4Uox4PpBhQ9Y5_modZXWMxtUi4NU,88
79
- dcicutils-8.10.0.1b1.dist-info/entry_points.txt,sha256=51Q4F_2V10L0282W7HFjP4jdzW4K8lnWDARJQVFy_hw,270
80
- dcicutils-8.10.0.1b1.dist-info/RECORD,,
76
+ dcicutils-8.11.0.dist-info/LICENSE.txt,sha256=qnwSmfnEWMl5l78VPDEzAmEbLVrRqQvfUQiHT0ehrOo,1102
77
+ dcicutils-8.11.0.dist-info/METADATA,sha256=fyL2AYscpmbInho84YaFcHMIhk_YTUXPw3MvvmPO9s0,3436
78
+ dcicutils-8.11.0.dist-info/WHEEL,sha256=7Z8_27uaHI_UZAc4Uox4PpBhQ9Y5_modZXWMxtUi4NU,88
79
+ dcicutils-8.11.0.dist-info/entry_points.txt,sha256=51Q4F_2V10L0282W7HFjP4jdzW4K8lnWDARJQVFy_hw,270
80
+ dcicutils-8.11.0.dist-info/RECORD,,