UncountablePythonSDK 0.0.7__py3-none-any.whl → 0.0.9__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.
Potentially problematic release.
This version of UncountablePythonSDK might be problematic. Click here for more details.
- {UncountablePythonSDK-0.0.7.dist-info → UncountablePythonSDK-0.0.9.dist-info}/METADATA +4 -2
- UncountablePythonSDK-0.0.9.dist-info/RECORD +145 -0
- pkgs/argument_parser/argument_parser.py +2 -2
- pkgs/serialization/missing_sentry.py +1 -1
- pkgs/serialization_util/serialization_helpers.py +3 -0
- pkgs/type_spec/emit_open_api.py +34 -17
- pkgs/type_spec/emit_open_api_util.py +4 -9
- pkgs/type_spec/emit_python.py +8 -5
- pkgs/type_spec/open_api_util.py +13 -12
- type_spec/external/api/entity/create_entities.yaml +1 -1
- type_spec/external/api/entity/create_entity.yaml +1 -1
- type_spec/external/api/entity/get_entities_data.yaml +4 -30
- type_spec/external/api/entity/list_entities.yaml +4 -14
- type_spec/external/api/entity/resolve_entity_ids.yaml +2 -2
- type_spec/external/api/entity/set_values.yaml +3 -30
- type_spec/external/api/input_groups/get_input_group_names.yaml +2 -2
- type_spec/external/api/inputs/create_inputs.yaml +6 -19
- type_spec/external/api/inputs/get_input_data.yaml +11 -24
- type_spec/external/api/inputs/get_input_names.yaml +4 -4
- type_spec/external/api/inputs/get_inputs_data.yaml +7 -20
- type_spec/external/api/inputs/set_input_attribute_values.yaml +3 -7
- type_spec/external/api/outputs/get_output_data.yaml +9 -20
- type_spec/external/api/outputs/get_output_names.yaml +2 -2
- type_spec/external/api/project/get_projects.yaml +6 -16
- type_spec/external/api/project/get_projects_data.yaml +10 -46
- type_spec/external/api/recipe_metadata/get_recipe_metadata_data.yaml +5 -5
- type_spec/external/api/recipes/create_recipes.yaml +5 -18
- type_spec/external/api/recipes/get_curve.yaml +2 -34
- type_spec/external/api/recipes/get_recipe_calculations.yaml +7 -17
- type_spec/external/api/recipes/get_recipe_links.yaml +1 -1
- type_spec/external/api/recipes/get_recipe_names.yaml +2 -2
- type_spec/external/api/recipes/get_recipe_output_metadata.yaml +4 -17
- type_spec/external/api/recipes/get_recipes_data.yaml +31 -165
- type_spec/external/api/recipes/set_recipe_inputs.yaml +3 -3
- type_spec/external/api/recipes/set_recipe_outputs.yaml +4 -8
- uncountable/integration/__init__.py +0 -0
- uncountable/integration/construct_client.py +30 -0
- uncountable/integration/cron.py +29 -0
- uncountable/integration/db/__init__.py +0 -0
- uncountable/integration/db/connect.py +8 -0
- uncountable/integration/entrypoint.py +41 -0
- uncountable/integration/executors/__init__.py +0 -0
- uncountable/integration/executors/script_executor.py +18 -0
- uncountable/integration/job.py +39 -0
- uncountable/integration/server.py +86 -0
- uncountable/integration/types.py +89 -0
- uncountable/types/__init__.py +30 -0
- uncountable/types/api/entity/create_entities.py +2 -1
- uncountable/types/api/entity/create_entity.py +1 -1
- uncountable/types/api/entity/get_entities_data.py +6 -26
- uncountable/types/api/entity/list_entities.py +5 -12
- uncountable/types/api/entity/resolve_entity_ids.py +4 -2
- uncountable/types/api/entity/set_values.py +7 -29
- uncountable/types/api/input_groups/get_input_group_names.py +3 -2
- uncountable/types/api/inputs/create_inputs.py +8 -20
- uncountable/types/api/inputs/get_input_data.py +12 -25
- uncountable/types/api/inputs/get_input_names.py +5 -4
- uncountable/types/api/inputs/get_inputs_data.py +8 -21
- uncountable/types/api/inputs/set_input_attribute_values.py +5 -7
- uncountable/types/api/outputs/get_output_data.py +10 -17
- uncountable/types/api/outputs/get_output_names.py +3 -2
- uncountable/types/api/project/get_projects.py +8 -14
- uncountable/types/api/project/get_projects_data.py +13 -40
- uncountable/types/api/recipe_metadata/get_recipe_metadata_data.py +6 -5
- uncountable/types/api/recipes/create_recipes.py +6 -18
- uncountable/types/api/recipes/get_curve.py +4 -26
- uncountable/types/api/recipes/get_recipe_calculations.py +8 -15
- uncountable/types/api/recipes/get_recipe_links.py +2 -1
- uncountable/types/api/recipes/get_recipe_names.py +3 -2
- uncountable/types/api/recipes/get_recipe_output_metadata.py +5 -13
- uncountable/types/api/recipes/get_recipes_data.py +36 -122
- uncountable/types/api/recipes/set_recipe_inputs.py +4 -3
- uncountable/types/api/recipes/set_recipe_outputs.py +7 -8
- uncountable/types/calculations.py +23 -0
- uncountable/types/client_base.py +43 -43
- uncountable/types/curves.py +47 -0
- uncountable/types/entity.py +4 -1
- uncountable/types/experiment_groups.py +23 -0
- uncountable/types/field_values.py +37 -0
- uncountable/types/fields.py +24 -0
- uncountable/types/input_attributes.py +29 -0
- uncountable/types/inputs.py +61 -0
- uncountable/types/outputs.py +26 -0
- uncountable/types/phases.py +23 -0
- uncountable/types/recipe_links.py +3 -2
- uncountable/types/recipe_metadata.py +50 -0
- uncountable/types/recipe_output_metadata.py +24 -0
- uncountable/types/recipe_tags.py +23 -0
- uncountable/types/response.py +25 -0
- uncountable/types/units.py +23 -0
- uncountable/types/users.py +24 -0
- uncountable/types/workflows.py +32 -0
- UncountablePythonSDK-0.0.7.dist-info/RECORD +0 -119
- {UncountablePythonSDK-0.0.7.dist-info → UncountablePythonSDK-0.0.9.dist-info}/WHEEL +0 -0
- {UncountablePythonSDK-0.0.7.dist-info → UncountablePythonSDK-0.0.9.dist-info}/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: UncountablePythonSDK
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.9
|
|
4
4
|
Summary: Uncountable SDK
|
|
5
5
|
Project-URL: Homepage, https://github.com/uncountableinc/uncountable-python-sdk
|
|
6
6
|
Project-URL: Repository, https://github.com/uncountableinc/uncountable-python-sdk.git
|
|
@@ -16,7 +16,9 @@ Classifier: Topic :: Utilities
|
|
|
16
16
|
Classifier: Typing :: Typed
|
|
17
17
|
Requires-Python: >=3.11
|
|
18
18
|
Description-Content-Type: text/markdown
|
|
19
|
-
Requires-Dist: requests
|
|
19
|
+
Requires-Dist: requests ==2.31.0
|
|
20
|
+
Requires-Dist: SQLAlchemy ==2.0.29
|
|
21
|
+
Requires-Dist: APScheduler ==3.10.4
|
|
20
22
|
Provides-Extra: test
|
|
21
23
|
Requires-Dist: mypy >=1.8.1 ; extra == 'test'
|
|
22
24
|
Requires-Dist: ruff >=0.2.1 ; extra == 'test'
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
examples/create_entity.py,sha256=0wpH-FvEgZmmlgkqL7tY7wAX6wvHdPQbMMJJvhagBok,622
|
|
2
|
+
examples/recipe-import/importer.py,sha256=baD71xuNibxDTe3bGHsMEIZEf9Xtb-IumBNpCEV0RZU,1134
|
|
3
|
+
pkgs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
4
|
+
pkgs/argument_parser/__init__.py,sha256=CsQ6QoPKSLLRVl-z6URAmPkiUL9ZPZoV4rJHgy_-RjA,385
|
|
5
|
+
pkgs/argument_parser/_is_enum.py,sha256=JQPlVIW0z-N9Qux61TQXaqP3lIHEhOOGwe9--JcM4Ro,393
|
|
6
|
+
pkgs/argument_parser/_is_namedtuple.py,sha256=Rjc1bKanIPPogl3qG5JPBxglG1TqWYOo1nxxhBASQWY,265
|
|
7
|
+
pkgs/argument_parser/argument_parser.py,sha256=TC6cP6OQeLyzYU0m56f9BXSuCcR67FgyRlOa6OZyjgk,14445
|
|
8
|
+
pkgs/argument_parser/case_convert.py,sha256=J9wahIE-P95LvTqn4M4gDUx_RXeiW2SRo9i_1bz1E6A,558
|
|
9
|
+
pkgs/serialization/__init__.py,sha256=quvXMSl1szddLTr4Yxo9KA9oBMoeX7qGpFkkAplFBbY,603
|
|
10
|
+
pkgs/serialization/missing_sentry.py,sha256=aM_9KxbCk9dVvXvcOKgkIQBqFWvLhv8QlIUCiuFEXMo,806
|
|
11
|
+
pkgs/serialization/opaque_key.py,sha256=FIfXEE0DA1U8R_taFbQ1RCoTSgehrPjP06-qvo-GeNQ,177
|
|
12
|
+
pkgs/serialization/serial_class.py,sha256=xTFf5E94bLTcDEQxS0xvc1QZUS6ntQeRqbiuSw12aRI,5182
|
|
13
|
+
pkgs/serialization_util/__init__.py,sha256=4vX5j1pvd1NkznSVqwWqunVyOvQtLCgVuwRjVwDk7qg,447
|
|
14
|
+
pkgs/serialization_util/_get_type_for_serialization.py,sha256=DSqvDAcf9pHCnDiTF9m4xkvQ38Bsq1i4mSoiJlQWaQc,1209
|
|
15
|
+
pkgs/serialization_util/serialization_helpers.py,sha256=hVujmwH1nrvZlyaCPvrP2zhEqKfEfNnDV7yeF8vUW5Q,5109
|
|
16
|
+
pkgs/strenum_compat/__init__.py,sha256=wXRFeNvBm8RU6dy1PFJ5sRLgUIEeH_DVR95Sv5qpGbk,59
|
|
17
|
+
pkgs/strenum_compat/strenum_compat.py,sha256=vGJlrMZpOqiGXvv21IbS0amdB2xQ2CdYKvnfEfHLr8E,156
|
|
18
|
+
pkgs/type_spec/__init__.py,sha256=h5DmJTca4QVV10sZR1x0-MlkZfuGYDfapR3zHvXfzto,19
|
|
19
|
+
pkgs/type_spec/__main__.py,sha256=5bJaX9Y_-FavP0qwzhk-z-V97UY7uaezJTa1zhO_HHQ,1048
|
|
20
|
+
pkgs/type_spec/builder.py,sha256=Pl3UzHYgci3XRYsJ-pEsrdKu26mrJeLQv66OS2KePGc,38993
|
|
21
|
+
pkgs/type_spec/config.py,sha256=wXALehQr_CcteOY_KbeI3rtmGgqVzHcveAhgKCDfQoQ,4934
|
|
22
|
+
pkgs/type_spec/emit_io_ts.py,sha256=gCEfS81w_ifqjLVJ3_cpy9Gq03o6H5nEsh35WAkqGGE,5606
|
|
23
|
+
pkgs/type_spec/emit_open_api.py,sha256=dnGazdVBjdEWQ4WK8Ujq966quRZY2TyQ05PGR48Md2I,17461
|
|
24
|
+
pkgs/type_spec/emit_open_api_util.py,sha256=xnzPOuPO8Pbhf6xf1tkHUKgXs1n-jH-lWFac8pOtd4I,1882
|
|
25
|
+
pkgs/type_spec/emit_python.py,sha256=ixJ5aXzrpeGuNyuX3pfGRSWgUWgRNegX3ltgwqrmQJA,35580
|
|
26
|
+
pkgs/type_spec/emit_typescript.py,sha256=6tlzvyHc7iIEic01AtjYWuzy7Ac3KijtXRQ3IQSN7JE,18670
|
|
27
|
+
pkgs/type_spec/emit_typescript_util.py,sha256=MZMigIsYIYOXLjJqp-DSRYsztWbIKd9QQEmYRRqnGQ4,894
|
|
28
|
+
pkgs/type_spec/load_types.py,sha256=LMIkrk0n-Kh4I4CUOBzuboYtsAHBYuMrL9d2hkU83f4,2184
|
|
29
|
+
pkgs/type_spec/open_api_util.py,sha256=kOxDc1P4dgjWRxOQNNRtayUEHiHcxbc4OGzBsCWsKsM,7462
|
|
30
|
+
pkgs/type_spec/test.py,sha256=4ueujBq-pEgnX3Z69HyPmD-bullFXmpixcpVzfOkhP4,489
|
|
31
|
+
pkgs/type_spec/util.py,sha256=pTV9EB4_M0tucWwape9_1m5maIi3UKPw44SA_Mc8KNA,4856
|
|
32
|
+
pkgs/type_spec/parts/base.py.prepart,sha256=2RsjF9nTwERb7M0LKsPjGbN5cL2QMwMVt4QHpUPPM70,2147
|
|
33
|
+
pkgs/type_spec/parts/base.ts.prepart,sha256=2FJJvpg2olCcavxj0nbYWdwKl6KeScour2JjSvN42l8,1001
|
|
34
|
+
pkgs/type_spec/type_info/__main__.py,sha256=pmVjVqXyVh8vKTNCTFgz80Sg74C5BKToP3E6GS-X_So,857
|
|
35
|
+
pkgs/type_spec/type_info/emit_type_info.py,sha256=xWcZsgdEwApqqvtinZXyyBM61FZ9rmP9oybKapz8xN4,7692
|
|
36
|
+
pkgs/type_spec/value_spec/__init__.py,sha256=Z-grlcZtxAfEXhPHsK0nD7PFLGsv4eqvunaPN7_TA84,83
|
|
37
|
+
pkgs/type_spec/value_spec/__main__.py,sha256=syggR7J5MjFiULgPKcwb1T9u6eEyJUm9UlkIwP8V5IU,8300
|
|
38
|
+
pkgs/type_spec/value_spec/convert_type.py,sha256=SAYyEV6orQJJbkXSE4hhtOQJ2vKUXJCKPeYPrB8G9oA,2272
|
|
39
|
+
pkgs/type_spec/value_spec/emit_python.py,sha256=M9NyHi-akTw4cUsHCEK7rsFirb8ngYThiIW7xh2xSko,6943
|
|
40
|
+
pkgs/type_spec/value_spec/types.py,sha256=a2zxbbCRWepY1l8OtjeCDKgBKFPFHVgV99oP6pTtaro,441
|
|
41
|
+
type_spec/external/api/batch/execute_batch.yaml,sha256=gpdSev3sLEC_cMVSZdj-9bc_XDFDqdPdOII9Ojme2N8,1170
|
|
42
|
+
type_spec/external/api/entity/create_entities.yaml,sha256=9IsqkW6W2JhoraIkeNTV1JqZ5uF98u0gtFX9imHy038,1058
|
|
43
|
+
type_spec/external/api/entity/create_entity.yaml,sha256=EFMeXrDskAizL4-6DKnC1boBCYvyHyt75ZMyoQmAhzE,1253
|
|
44
|
+
type_spec/external/api/entity/get_entities_data.yaml,sha256=3XujG7bOpuBQlfFrYtG3L4fBk7LsmdSekmP9iU0zjF0,796
|
|
45
|
+
type_spec/external/api/entity/list_entities.yaml,sha256=H2YVv6il-XVKd_7IipZqauTDvWCrvHok7z47bDH2sI4,1798
|
|
46
|
+
type_spec/external/api/entity/resolve_entity_ids.yaml,sha256=Zf3OhAohwLJO7wWj0e-sK5lhIsXlD8A5Bu3OGjY4-tA,732
|
|
47
|
+
type_spec/external/api/entity/set_values.yaml,sha256=_UDxSk09Ke0KDABt8ldOScC2CLrbAhBPArZvno5iD4I,422
|
|
48
|
+
type_spec/external/api/input_groups/get_input_group_names.yaml,sha256=LYgnm2Or7ZWCzDGjl53Y1PcHvej8G7Mpp5H96Z4UZCg,913
|
|
49
|
+
type_spec/external/api/inputs/create_inputs.yaml,sha256=pX8jatpve4iJxK7kYw7SBlQXlVHJVfLDCOrDdpn8Gsw,1561
|
|
50
|
+
type_spec/external/api/inputs/get_input_data.yaml,sha256=kjX3VE0y2DxxfUk0J2kjnufSFVAbk_3v28EPuHBhvRE,3825
|
|
51
|
+
type_spec/external/api/inputs/get_input_names.yaml,sha256=AgGcenh6wEbmhmx8i5CY-0hY0q5geZ04ECayE9Hr0Xw,1522
|
|
52
|
+
type_spec/external/api/inputs/get_inputs_data.yaml,sha256=9wKwnOXC_KokThWnz5Me5RzIcGlxffwcKJtgFow-kvU,2368
|
|
53
|
+
type_spec/external/api/inputs/set_input_attribute_values.yaml,sha256=RpOtVIWBlOp_Nd5Xp67IaQmCzGnLkNwFKQDi4WD8oX4,1021
|
|
54
|
+
type_spec/external/api/outputs/get_output_data.yaml,sha256=ABaKme64kFCZ-A11AUM5ARQs0Pb9f71atWx-QMYFNZs,3485
|
|
55
|
+
type_spec/external/api/outputs/get_output_names.yaml,sha256=IqEYCOHeyHIu45Lf37sfzn-o_0VFk0u_Bqsb0NKHPzw,1334
|
|
56
|
+
type_spec/external/api/outputs/resolve_output_conditions.yaml,sha256=lGrG6XPGiQtHx24GccPcO18xxAoMynTSC_2WwxCjFrc,1640
|
|
57
|
+
type_spec/external/api/project/get_projects.yaml,sha256=pQXGGPHenmFWYUuzEmZ-ORf0_d6lpQkTrXXMRrEqvDI,1676
|
|
58
|
+
type_spec/external/api/project/get_projects_data.yaml,sha256=8xQoyL8HlAropfZPYYcQ-W4fO4yuqueAWTKxRzTXAa0,1981
|
|
59
|
+
type_spec/external/api/recipe_metadata/get_recipe_metadata_data.yaml,sha256=mJs82Ci8XSp2ng0W9MKqoeYwIjjgaVYmC5MWFmWFkR8,1759
|
|
60
|
+
type_spec/external/api/recipes/create_recipes.yaml,sha256=eXMlXRpB5TFt1mUTECBa4aAIG3KrxYT2mJ5vxmZ9Q3A,1503
|
|
61
|
+
type_spec/external/api/recipes/get_curve.yaml,sha256=QFRFst1EJ6T13G9R07kTiz-wvfxgDKbwHbmjgcvEaNc,568
|
|
62
|
+
type_spec/external/api/recipes/get_recipe_calculations.yaml,sha256=ZE7PzfWrjS7TiO4q7iyCwEj5In8GwO6fFIYGqUlTEXo,1240
|
|
63
|
+
type_spec/external/api/recipes/get_recipe_links.yaml,sha256=Vwm0OVWl3VvDaI7chY_oZQqD8xZ1u09iFWKkZKn1ITo,766
|
|
64
|
+
type_spec/external/api/recipes/get_recipe_names.yaml,sha256=4tqcVj-xLeEu0lhdm8NpLYmAvfkmq08GZ0Mr59I5nLI,896
|
|
65
|
+
type_spec/external/api/recipes/get_recipe_output_metadata.yaml,sha256=YImW94JXVKR6Wz_7R7sRbhD9Ul51Ba-j-x9vJB__AAU,1216
|
|
66
|
+
type_spec/external/api/recipes/get_recipes_data.yaml,sha256=motc7yhI104V1TsMD9W_WdeTKNWLQwcuOeftAWAxnpE,11541
|
|
67
|
+
type_spec/external/api/recipes/set_recipe_inputs.yaml,sha256=LH5qcKZfwO3Sk6YARENa08DP1h1wwPirA8cvXPqAhvo,1449
|
|
68
|
+
type_spec/external/api/recipes/set_recipe_outputs.yaml,sha256=Oe8XGYXbPNmrbEDXk3qucfS1L3P9TnXI5cxaNAl6x5A,1875
|
|
69
|
+
uncountable/__init__.py,sha256=281cC2hs8pbrD0jVKMol-tbWSh7Zcsc8oRT42dKteyE,102
|
|
70
|
+
uncountable/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
71
|
+
uncountable/core/__init__.py,sha256=GCXRRhhYv-yKzqKjAij7GcNiOr90BBbgdhhpusWtmUc,100
|
|
72
|
+
uncountable/core/client.py,sha256=jcJBGwe31fOqfGiUJzW_KMcfE0hax55jgVVliALBNLQ,4160
|
|
73
|
+
uncountable/integration/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
74
|
+
uncountable/integration/construct_client.py,sha256=Ojdj6Mh5orAjXZLxb6SzvH4zRmkvqp6nHF_8Ph7h1ho,896
|
|
75
|
+
uncountable/integration/cron.py,sha256=QZP4yvxdGUZsOH5wtxZzqja_0UBHL4lwERzEHGTR-E0,917
|
|
76
|
+
uncountable/integration/entrypoint.py,sha256=31QJO6pFDvPR8k5Bi7RSm-IUI5kXj_VHdz4XZW3j5DI,1363
|
|
77
|
+
uncountable/integration/job.py,sha256=orPmhLWs5mB4U8XweIb1Pa3fUKKE89yUnHXLkHy7KOs,699
|
|
78
|
+
uncountable/integration/server.py,sha256=VfbJLFqHl6cQAL8e2EOmrtSRfruskQ89h_2Mu3EMeOI,2998
|
|
79
|
+
uncountable/integration/types.py,sha256=n9idu2_qHOA5CQdE6NK8HS6aZ8ugTZKTfTTnm4sy8tI,2066
|
|
80
|
+
uncountable/integration/db/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
81
|
+
uncountable/integration/db/connect.py,sha256=iI9e8a2hfbFP-dvH0MGLsrG-RpM0dHKCL-oCLkah9hs,181
|
|
82
|
+
uncountable/integration/executors/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
83
|
+
uncountable/integration/executors/script_executor.py,sha256=l_mniGlS9Ni6FdmspN7bvMWVocOaXKCo8FM9SFW8n8c,600
|
|
84
|
+
uncountable/types/__init__.py,sha256=SbBDFhHu5iqnvnYjWCBOkjg3_mXuaBHEGfnq021wfHw,3873
|
|
85
|
+
uncountable/types/base.py,sha256=7yMC3sCQ13wd92896Ga2XbZffCqq98SKv09rFGb1ulg,2682
|
|
86
|
+
uncountable/types/calculations.py,sha256=16J-KKMp-I8ZQUkYNmKCHfAn6DGb99cFinALcDIdGHY,562
|
|
87
|
+
uncountable/types/client_base.py,sha256=fEpoCxiBEmfdLUYEV1z2IVpm1K65LtHUdZoC10AMsAQ,21085
|
|
88
|
+
uncountable/types/curves.py,sha256=qYyRntMmFNonEwTrGhquMLbgMqjyP1moQflNTP0FMec,1308
|
|
89
|
+
uncountable/types/entity.py,sha256=NjMZrqBwQ7sZe_oUuJqy9IEG7dWZmFMkQQXJ0_odcnA,11637
|
|
90
|
+
uncountable/types/experiment_groups.py,sha256=ZBEk06F4n98Jz3oEA09WaDmw5rqPs7iVAm_Ysr4gc_o,599
|
|
91
|
+
uncountable/types/field_values.py,sha256=2unBAeBqQPqLQKaL6nGpnDDksZ-5MZepgEF3sgy6oOk,1670
|
|
92
|
+
uncountable/types/fields.py,sha256=eGtZ6axTYGFxLmPAyri2LwlcR4SZ2sX2c6QDX0ybKz0,570
|
|
93
|
+
uncountable/types/input_attributes.py,sha256=u-JABoZ-Ij1Ynq5g6MxOgRdQeYbM7OnGP2q_N7KuVdw,826
|
|
94
|
+
uncountable/types/inputs.py,sha256=q7fNGaSKIk3R6uXCEhSQpiHvXu82YcK3oZHDI7bxE88,1597
|
|
95
|
+
uncountable/types/outputs.py,sha256=hSUlu41sisYKIZpPrj1G1DRfKm6hsKNcd1eNKFYb-4w,671
|
|
96
|
+
uncountable/types/phases.py,sha256=eaqwQlSRC2Ug7YFL0gqLbg3wDDHeRvBOhcABG7khW8c,550
|
|
97
|
+
uncountable/types/recipe_links.py,sha256=RldSV7SdeBYa0bx02DzMg4jfPdgrlMRE40T16Fdy8u4,1406
|
|
98
|
+
uncountable/types/recipe_metadata.py,sha256=NpRnz9QO2t21eTyf-M9_HBdQzcd55OgFM1dx6ZEg22w,1341
|
|
99
|
+
uncountable/types/recipe_output_metadata.py,sha256=XJA8R1r4NTzyR_DhMkmH4ZtYD-vqpvBMji9Be8OcFmo,613
|
|
100
|
+
uncountable/types/recipe_tags.py,sha256=lYpksHAxXCcIjZKR7JoZOTH2cBSovwxZaHwjZy_yqiQ,581
|
|
101
|
+
uncountable/types/response.py,sha256=ZI0CG7ZxBM2k5_W-6mNMU3UlB0p1i-0nrwOvsMaS-vU,620
|
|
102
|
+
uncountable/types/units.py,sha256=_kZ7KkXIbRiY2fOdkTsbJBpWRah5TCC2WWiG05e-1DA,565
|
|
103
|
+
uncountable/types/users.py,sha256=SUjNHBDcImKnnE7IN096Wfr1fmjNjCkQ7yQgKUPffz8,588
|
|
104
|
+
uncountable/types/workflows.py,sha256=JJKM0SeDqAMA2oxwzlG1c1FxeSBI7E49duoITcUrEZo,825
|
|
105
|
+
uncountable/types/api/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
|
|
106
|
+
uncountable/types/api/batch/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
|
|
107
|
+
uncountable/types/api/batch/execute_batch.py,sha256=cCZo_akwJR4_ET6oOBChdlrCQlxUw8V9i8tDpv7JTIc,1696
|
|
108
|
+
uncountable/types/api/entity/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
|
|
109
|
+
uncountable/types/api/entity/create_entities.py,sha256=jjVeLmX6bKzIpnSZ0WtdVxcmA4K3ytodOgtjN_QewEU,1446
|
|
110
|
+
uncountable/types/api/entity/create_entity.py,sha256=tZEldeG0l7-nTcrzTw3RcAXwKh0_I4MuB-7EalUg8mE,1616
|
|
111
|
+
uncountable/types/api/entity/get_entities_data.py,sha256=XjrJGZucIn1TYUlDLRnRA0JTQw-vXHIAT-m0H9hk37A,1170
|
|
112
|
+
uncountable/types/api/entity/list_entities.py,sha256=_bIIZJj3N0E6YiHgqzfCOKxD1fQW6biWJQMp5wIVbBw,1514
|
|
113
|
+
uncountable/types/api/entity/resolve_entity_ids.py,sha256=AidGpPmI9ATDv0E7vd9LDOl3n3beGxUlRojh5uZrkl4,1086
|
|
114
|
+
uncountable/types/api/entity/set_values.py,sha256=LcYrKQm5ItYLK1Vx7rRq5i6jkMLDhfEBhF0FD1GowQs,958
|
|
115
|
+
uncountable/types/api/input_groups/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
|
|
116
|
+
uncountable/types/api/input_groups/get_input_group_names.py,sha256=LdHWWEfVNGys6Tudienjich56Zz4bj7uXznpyYitCYA,1033
|
|
117
|
+
uncountable/types/api/inputs/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
|
|
118
|
+
uncountable/types/api/inputs/create_inputs.py,sha256=ykXjqKoE8WOy5N47jcjDVzSdiZx9GlB0FcTyuJdn8FU,1675
|
|
119
|
+
uncountable/types/api/inputs/get_input_data.py,sha256=RrgmS4QORMrm1HTNey-A3zzCdYdkmTbokVYPTI_bjPo,2178
|
|
120
|
+
uncountable/types/api/inputs/get_input_names.py,sha256=8vUA9maZdogngeYbr-DpifNrokJ16BgDN5LQvTrEvSc,1153
|
|
121
|
+
uncountable/types/api/inputs/get_inputs_data.py,sha256=sqZ6xEjzQqRQYMaKXLGWR8WPhWbO6J6zZT8zSTEer84,1841
|
|
122
|
+
uncountable/types/api/inputs/set_input_attribute_values.py,sha256=yvWgIVzl818ewhUA4v3ldSBfmZKngdWTtFn7fqk-dOE,1341
|
|
123
|
+
uncountable/types/api/outputs/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
|
|
124
|
+
uncountable/types/api/outputs/get_output_data.py,sha256=CpYlXNGWWNTiMgDPBRwucSseSrX4gnLuLIp2ljiONrI,2216
|
|
125
|
+
uncountable/types/api/outputs/get_output_names.py,sha256=Id_ApombSzzFdq5rD4uOfWIKzthic6KBAeyqcrhsx18,1086
|
|
126
|
+
uncountable/types/api/outputs/resolve_output_conditions.py,sha256=XZqUseXcGhApHmPm-2u7a37Y4blLRxoPoLhvYlBfCpI,1799
|
|
127
|
+
uncountable/types/api/project/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
|
|
128
|
+
uncountable/types/api/project/get_projects.py,sha256=dMPq8CHxE4k1Vs42TmC4dp9b1jYp0TPlkICacAqrwXQ,1235
|
|
129
|
+
uncountable/types/api/project/get_projects_data.py,sha256=HtUI5YN7S24v7o2VvNBWZkYFnGjFqJzBNoV0ojRx39E,1491
|
|
130
|
+
uncountable/types/api/recipe_metadata/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
|
|
131
|
+
uncountable/types/api/recipe_metadata/get_recipe_metadata_data.py,sha256=el6Pn5XqExX66ZEEHM8CHPxnyXSMZPdfdvLBz86sAVY,1267
|
|
132
|
+
uncountable/types/api/recipes/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
|
|
133
|
+
uncountable/types/api/recipes/create_recipes.py,sha256=qwIYa8hfcjY7_VOFt9lxmVtJ-HOJqQN3GDNSbZsRCZU,1544
|
|
134
|
+
uncountable/types/api/recipes/get_curve.py,sha256=lF8MDmBfxm_cIuDxhE80viSFNbcPEkgYkadNFeuI5e4,854
|
|
135
|
+
uncountable/types/api/recipes/get_recipe_calculations.py,sha256=eQmkdZzCEuq8S2f_kf_7GPvDLX1pTnY1CRmkK0SkMCI,1472
|
|
136
|
+
uncountable/types/api/recipes/get_recipe_links.py,sha256=hk5dfQjv7yU2r-S9b8vwWEJLPHqU0-M6SFiTLMR3fVk,985
|
|
137
|
+
uncountable/types/api/recipes/get_recipe_names.py,sha256=uCpXZq5oWjr9a_Vf-yYPaVS72XOlLHgAlju6KHeQ3UA,986
|
|
138
|
+
uncountable/types/api/recipes/get_recipe_output_metadata.py,sha256=L9s2ykPP4pd02Pc98LDisY8bgV8CToS6t6fXKTWqGRw,1464
|
|
139
|
+
uncountable/types/api/recipes/get_recipes_data.py,sha256=dOKokz6rJp3AiqNrF8rAZFlmJSs3ejdNIJhwKw0Utr0,5317
|
|
140
|
+
uncountable/types/api/recipes/set_recipe_inputs.py,sha256=sHEwPocBucWRnnoX7nbNaFqdflxFkqdjuVydNezqluY,1326
|
|
141
|
+
uncountable/types/api/recipes/set_recipe_outputs.py,sha256=QYq39TNchQ80ET1C77OE9fwhbu_HmIoEDmrQJHkkCu0,1609
|
|
142
|
+
UncountablePythonSDK-0.0.9.dist-info/METADATA,sha256=KWYgT-7XZt_BwkAVhAQZ5cCqKl2WWddal0a6Va16YmI,1196
|
|
143
|
+
UncountablePythonSDK-0.0.9.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
|
|
144
|
+
UncountablePythonSDK-0.0.9.dist-info/top_level.txt,sha256=8ga1DCSWt4Uc_XJ5cR0QrDQuyoeo2uoSzaAJdQT2KBo,36
|
|
145
|
+
UncountablePythonSDK-0.0.9.dist-info/RECORD,,
|
|
@@ -407,5 +407,5 @@ class CachedParser(typing.Generic[T]):
|
|
|
407
407
|
return self.parse_storage(yaml.safe_load(data_in))
|
|
408
408
|
|
|
409
409
|
def parse_yaml_resource(self, package: resources.Package, resource: str) -> T:
|
|
410
|
-
|
|
411
|
-
|
|
410
|
+
with resources.open_text(package, resource) as fp:
|
|
411
|
+
return self.parse_storage(yaml.safe_load(fp))
|
|
@@ -26,5 +26,5 @@ MISSING_SENTRY = MissingSentryType()
|
|
|
26
26
|
MissingType = Union[MissingSentryType, ClassT]
|
|
27
27
|
|
|
28
28
|
|
|
29
|
-
def coalesce_missing_sentry(value: MissingType[ClassT]) -> ClassT
|
|
29
|
+
def coalesce_missing_sentry(value: MissingType[ClassT]) -> Optional[ClassT]:
|
|
30
30
|
return None if isinstance(value, MissingSentryType) else value
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import datetime
|
|
2
|
+
import enum
|
|
2
3
|
from decimal import Decimal
|
|
3
4
|
from typing import (
|
|
4
5
|
TYPE_CHECKING,
|
|
@@ -33,6 +34,8 @@ else:
|
|
|
33
34
|
def key_convert_to_camelcase(o: Any) -> Any:
|
|
34
35
|
if isinstance(o, OpaqueKey):
|
|
35
36
|
return o
|
|
37
|
+
if isinstance(o, enum.Enum):
|
|
38
|
+
return o.value
|
|
36
39
|
if isinstance(o, str):
|
|
37
40
|
return snake_to_camel_case(o)
|
|
38
41
|
return o
|
pkgs/type_spec/emit_open_api.py
CHANGED
|
@@ -141,6 +141,18 @@ def _serialize_global_context(ctx: EmitOpenAPIGlobalContext) -> str:
|
|
|
141
141
|
return yaml.dump(oa_root, sort_keys=False)
|
|
142
142
|
|
|
143
143
|
|
|
144
|
+
def _emit_endpoint_parameters(typ: OpenAPIType | None) -> dict[str, list[dict[str, str]]]:
|
|
145
|
+
if not isinstance(typ, OpenAPIObjectType):
|
|
146
|
+
return {}
|
|
147
|
+
|
|
148
|
+
return {
|
|
149
|
+
"parameters": [
|
|
150
|
+
{"$ref": f"#/components/schema/Arguments/{prop_name}"}
|
|
151
|
+
for prop_name in typ.properties
|
|
152
|
+
]
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
|
|
144
156
|
def _emit_namespace(
|
|
145
157
|
gctx: EmitOpenAPIGlobalContext,
|
|
146
158
|
ctx: EmitOpenAPIContext,
|
|
@@ -159,23 +171,28 @@ def _emit_namespace(
|
|
|
159
171
|
if ctx.endpoint is not None:
|
|
160
172
|
endpoint = ctx.endpoint
|
|
161
173
|
|
|
174
|
+
argument_type = ctx.types.get("Arguments")
|
|
162
175
|
oa_endpoint = dict()
|
|
163
|
-
oa_endpoint[endpoint.method] =
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
176
|
+
oa_endpoint[endpoint.method] = (
|
|
177
|
+
{
|
|
178
|
+
"tags": endpoint.tags,
|
|
179
|
+
"summary": endpoint.summary,
|
|
180
|
+
"description": endpoint.description,
|
|
181
|
+
}
|
|
182
|
+
| _emit_endpoint_parameters(argument_type)
|
|
183
|
+
| {
|
|
184
|
+
"responses": {
|
|
185
|
+
"200": {
|
|
186
|
+
"description": "OK",
|
|
187
|
+
"content": {
|
|
188
|
+
"application/json": {
|
|
189
|
+
"schema": {"$ref": "#/components/schema/Data"}
|
|
190
|
+
}
|
|
191
|
+
},
|
|
192
|
+
}
|
|
193
|
+
},
|
|
194
|
+
}
|
|
195
|
+
)
|
|
179
196
|
oa_components["endpoint"] = oa_endpoint
|
|
180
197
|
|
|
181
198
|
types = ctx.types
|
|
@@ -460,5 +477,5 @@ def open_api_type(
|
|
|
460
477
|
ctx.namespaces.add(stype.namespace)
|
|
461
478
|
# external namespace resolution
|
|
462
479
|
return OpenAPIRefType(
|
|
463
|
-
source=f"{resolve_namespace_ref(ctx, stype.namespace,
|
|
480
|
+
source=f"{resolve_namespace_ref(source_path=ctx.namespace.path, ref_path=stype.namespace.path, ref='/components/schema')}/{stype.name}"
|
|
464
481
|
)
|
|
@@ -9,7 +9,6 @@ from dataclasses import dataclass, field
|
|
|
9
9
|
from typing import TypeAlias
|
|
10
10
|
|
|
11
11
|
from . import builder
|
|
12
|
-
from .config import OpenAPIConfig
|
|
13
12
|
from .open_api_util import OpenAPIType
|
|
14
13
|
|
|
15
14
|
MODIFY_NOTICE = "# DO NOT MODIFY -- This file is generated by type_spec"
|
|
@@ -75,12 +74,8 @@ class EmitOpenAPIContext:
|
|
|
75
74
|
|
|
76
75
|
|
|
77
76
|
def resolve_namespace_ref(
|
|
78
|
-
|
|
79
|
-
namespace: builder.SpecNamespace,
|
|
80
|
-
*,
|
|
81
|
-
config: OpenAPIConfig,
|
|
77
|
+
*, source_path: list[str], ref_path: list[str], ref: str
|
|
82
78
|
) -> str:
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
return f"{config.static_url_path}/common/{namespace.name}.yaml#/components/schema"
|
|
79
|
+
to_root = "/".join(".." for _ in source_path)
|
|
80
|
+
location = "/".join(ref_path)
|
|
81
|
+
return f"{to_root}/common/{location}.yaml#{ref}"
|
pkgs/type_spec/emit_python.py
CHANGED
|
@@ -335,14 +335,15 @@ def _emit_namespace(ctx: Context, namespace: builder.SpecNamespace) -> None:
|
|
|
335
335
|
|
|
336
336
|
|
|
337
337
|
def _validate_supports_handler_generation(
|
|
338
|
-
stype: builder.SpecTypeDefn, name: str
|
|
338
|
+
stype: builder.SpecTypeDefn, name: str, supports_inheritance: bool = False
|
|
339
339
|
) -> builder.SpecTypeDefnObject:
|
|
340
340
|
assert isinstance(
|
|
341
341
|
stype, builder.SpecTypeDefnObject
|
|
342
342
|
), f"External api {name} must be an object"
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
343
|
+
if not supports_inheritance:
|
|
344
|
+
assert (
|
|
345
|
+
stype.base is None or stype.base.is_base
|
|
346
|
+
), f"Inheritance not supported in external api {name}"
|
|
346
347
|
return stype
|
|
347
348
|
|
|
348
349
|
|
|
@@ -359,7 +360,9 @@ def _emit_endpoint_invocation_function(
|
|
|
359
360
|
data_type = namespace.types["Data"]
|
|
360
361
|
|
|
361
362
|
arguments_type = _validate_supports_handler_generation(arguments_type, "arguments")
|
|
362
|
-
data_type = _validate_supports_handler_generation(
|
|
363
|
+
data_type = _validate_supports_handler_generation(
|
|
364
|
+
data_type, "response", supports_inheritance=True
|
|
365
|
+
)
|
|
363
366
|
|
|
364
367
|
endpoint_method_stype = builder.SpecTypeDefnObject(
|
|
365
368
|
namespace=arguments_type.namespace, name=ENDPOINT_METHOD
|
pkgs/type_spec/open_api_util.py
CHANGED
|
@@ -13,9 +13,10 @@ class OpenAPIType(ABC):
|
|
|
13
13
|
self.nullable = nullable
|
|
14
14
|
|
|
15
15
|
@abstractmethod
|
|
16
|
-
def asdict(self) -> dict[str, object]:
|
|
16
|
+
def asdict(self) -> dict[str, object]:
|
|
17
|
+
pass
|
|
17
18
|
|
|
18
|
-
def asarguments(self) ->
|
|
19
|
+
def asarguments(self) -> dict[str, dict[str, object]]:
|
|
19
20
|
raise UnsupportedOperation
|
|
20
21
|
|
|
21
22
|
def add_addl_info(self, emitted: dict[str, object]) -> dict[str, object]:
|
|
@@ -147,8 +148,8 @@ class OpenAPIFreeFormObjectType(OpenAPIType):
|
|
|
147
148
|
def asdict(self) -> dict[str, object]:
|
|
148
149
|
return self.add_addl_info({"type": "object"})
|
|
149
150
|
|
|
150
|
-
def asarguments(self) ->
|
|
151
|
-
return
|
|
151
|
+
def asarguments(self) -> dict[str, dict[str, object]]:
|
|
152
|
+
return {}
|
|
152
153
|
|
|
153
154
|
|
|
154
155
|
class OpenAPIObjectType(OpenAPIType):
|
|
@@ -185,17 +186,17 @@ class OpenAPIObjectType(OpenAPIType):
|
|
|
185
186
|
},
|
|
186
187
|
})
|
|
187
188
|
|
|
188
|
-
def asarguments(self) ->
|
|
189
|
-
argument_types:
|
|
189
|
+
def asarguments(self) -> dict[str, dict[str, object]]:
|
|
190
|
+
argument_types: dict[str, dict[str, object]] = {}
|
|
190
191
|
for property_name, property_type in self.properties.items():
|
|
191
192
|
desc = self.property_desc.get(property_name)
|
|
192
|
-
argument_types
|
|
193
|
+
argument_types[property_name] = {
|
|
193
194
|
"name": property_name,
|
|
194
195
|
"in": "query",
|
|
195
196
|
"schema": property_type.asdict(),
|
|
196
197
|
"required": not property_type.nullable,
|
|
197
198
|
"description": desc or "",
|
|
198
|
-
}
|
|
199
|
+
}
|
|
199
200
|
return argument_types
|
|
200
201
|
|
|
201
202
|
|
|
@@ -219,11 +220,11 @@ class OpenAPIUnionType(OpenAPIType):
|
|
|
219
220
|
# TODO: use parents description and nullable
|
|
220
221
|
return {"oneOf": [base_type.asdict() for base_type in self.base_types]}
|
|
221
222
|
|
|
222
|
-
def asarguments(self) ->
|
|
223
|
+
def asarguments(self) -> dict[str, dict[str, object]]:
|
|
223
224
|
# TODO handle inheritence (allOf and refs); need to inline here...
|
|
224
225
|
# for now skip this endpoint
|
|
225
226
|
|
|
226
|
-
return
|
|
227
|
+
return {}
|
|
227
228
|
|
|
228
229
|
|
|
229
230
|
class OpenAPIIntersectionType(OpenAPIType):
|
|
@@ -246,8 +247,8 @@ class OpenAPIIntersectionType(OpenAPIType):
|
|
|
246
247
|
# TODO: use parents description and nullable
|
|
247
248
|
return {"allOf": [base_type.asdict() for base_type in self.base_types]}
|
|
248
249
|
|
|
249
|
-
def asarguments(self) ->
|
|
250
|
+
def asarguments(self) -> dict[str, dict[str, object]]:
|
|
250
251
|
# TODO handle inheritence (allOf and refs); need to inline here...
|
|
251
252
|
# for now skip this endpoint
|
|
252
253
|
|
|
253
|
-
return
|
|
254
|
+
return {}
|
|
@@ -16,7 +16,7 @@ Arguments:
|
|
|
16
16
|
type: Object
|
|
17
17
|
properties:
|
|
18
18
|
definition_id:
|
|
19
|
-
type:
|
|
19
|
+
type: ObjectId
|
|
20
20
|
desc: "Definition id for the entities to create"
|
|
21
21
|
entity_type:
|
|
22
22
|
type: Union<Literal<entity.EntityType.lab_request>, Literal<entity.EntityType.approval>, Literal<entity.EntityType.custom_entity>, Literal<entity.EntityType.task>, Literal<entity.EntityType.project>>
|
|
@@ -23,7 +23,7 @@ Arguments:
|
|
|
23
23
|
type: Object
|
|
24
24
|
properties:
|
|
25
25
|
definition_id:
|
|
26
|
-
type:
|
|
26
|
+
type: ObjectId
|
|
27
27
|
desc: "Definition id of the entity to create"
|
|
28
28
|
entity_type:
|
|
29
29
|
type: Union<Literal<entity.EntityType.lab_request>, Literal<entity.EntityType.approval>, Literal<entity.EntityType.custom_entity>, Literal<entity.EntityType.task>, Literal<entity.EntityType.project>>
|
|
@@ -8,45 +8,19 @@ Arguments:
|
|
|
8
8
|
type: Object
|
|
9
9
|
properties:
|
|
10
10
|
entity_ids:
|
|
11
|
-
type: List<
|
|
11
|
+
type: List<ObjectId>
|
|
12
12
|
desc: "Ids of the entity to retrieve"
|
|
13
13
|
entity_type:
|
|
14
|
-
type:
|
|
14
|
+
type: entity.EntityType
|
|
15
15
|
desc: "The type of the entities requested, e.g. lab_request or approval"
|
|
16
16
|
|
|
17
|
-
EntityFieldValue:
|
|
18
|
-
type: Object
|
|
19
|
-
properties:
|
|
20
|
-
field_id:
|
|
21
|
-
type: Integer
|
|
22
|
-
desc: "A unique identifier of the field"
|
|
23
|
-
field_ref_name:
|
|
24
|
-
type: String
|
|
25
|
-
desc: "A unique identifer string for the field"
|
|
26
|
-
row_index:
|
|
27
|
-
type: Optional<Integer>
|
|
28
|
-
desc: "The index in the table for the field"
|
|
29
|
-
value:
|
|
30
|
-
type: JsonValue
|
|
31
|
-
desc: "The value for the field"
|
|
32
|
-
|
|
33
|
-
Entity:
|
|
34
|
-
type: Object
|
|
35
|
-
properties:
|
|
36
|
-
id:
|
|
37
|
-
type: Integer
|
|
38
|
-
desc: "A unique identifier for the entity. Used in conjunction with entity type"
|
|
39
|
-
type:
|
|
40
|
-
type: String
|
|
41
|
-
desc: "The type of entity"
|
|
42
|
-
|
|
43
17
|
EntityDetails:
|
|
44
18
|
type: Object
|
|
45
19
|
properties:
|
|
46
20
|
entity:
|
|
47
|
-
type: Entity
|
|
21
|
+
type: entity.Entity
|
|
48
22
|
field_values:
|
|
49
|
-
type: List<
|
|
23
|
+
type: List<field_values.FieldRefIdNameValue>
|
|
50
24
|
|
|
51
25
|
Data:
|
|
52
26
|
type: Object
|
|
@@ -8,7 +8,7 @@ Arguments:
|
|
|
8
8
|
type: Object
|
|
9
9
|
properties:
|
|
10
10
|
entity_type:
|
|
11
|
-
type:
|
|
11
|
+
type: entity.EntityType
|
|
12
12
|
desc: "The type of the entities requested, e.g. lab_request, recipe"
|
|
13
13
|
config_reference:
|
|
14
14
|
type: String
|
|
@@ -16,28 +16,18 @@ Arguments:
|
|
|
16
16
|
attributes?:
|
|
17
17
|
type: Dict<OpaqueKey, JsonValue>
|
|
18
18
|
desc: "Attributes to pass to the configuration for parameterizing filters"
|
|
19
|
-
offset
|
|
19
|
+
offset?:
|
|
20
20
|
type: Optional<Integer>
|
|
21
21
|
desc: "Used for pagination. Pagination is done based on the sorting of the config"
|
|
22
|
-
limit
|
|
22
|
+
limit?:
|
|
23
23
|
type: Optional<Integer>
|
|
24
24
|
desc: "The number of data points to return. If not filled in, it will be set to 100, and cannot be set higher than 100"
|
|
25
25
|
|
|
26
|
-
Entity:
|
|
27
|
-
type: Object
|
|
28
|
-
properties:
|
|
29
|
-
id:
|
|
30
|
-
type: Integer
|
|
31
|
-
desc: "A unique identifier for the entity. Used in conjunction with entity type"
|
|
32
|
-
type:
|
|
33
|
-
type: String
|
|
34
|
-
desc: "The type of entity"
|
|
35
|
-
|
|
36
26
|
EntityResult:
|
|
37
27
|
type: Object
|
|
38
28
|
properties:
|
|
39
29
|
entity:
|
|
40
|
-
type: Entity
|
|
30
|
+
type: entity.Entity
|
|
41
31
|
desc: "The entity represented by the record"
|
|
42
32
|
column_values:
|
|
43
33
|
type: List<JsonValue>
|
|
@@ -8,10 +8,10 @@ Arguments:
|
|
|
8
8
|
type: Object
|
|
9
9
|
properties:
|
|
10
10
|
entity_ids:
|
|
11
|
-
type: List<Union<String,
|
|
11
|
+
type: List<Union<String, ObjectId>>
|
|
12
12
|
desc: "Ids of the entity to retrieve"
|
|
13
13
|
entity_type:
|
|
14
|
-
type:
|
|
14
|
+
type: entity.EntityType
|
|
15
15
|
desc: "The type of the entities requested"
|
|
16
16
|
|
|
17
17
|
EntityNames:
|
|
@@ -5,41 +5,14 @@ $endpoint:
|
|
|
5
5
|
function: main.site.app.external.entity.set_values.set_values
|
|
6
6
|
desc: "Sets field values for an entity"
|
|
7
7
|
|
|
8
|
-
EntityFieldValues:
|
|
9
|
-
type: Object
|
|
10
|
-
properties:
|
|
11
|
-
field_ref_name:
|
|
12
|
-
type: String
|
|
13
|
-
desc: "A unique identifer string for the field"
|
|
14
|
-
row_index?:
|
|
15
|
-
type: Optional<Integer>
|
|
16
|
-
desc: "The index in the table for the field"
|
|
17
|
-
value:
|
|
18
|
-
type: JsonValue
|
|
19
|
-
desc: "The value for the field"
|
|
20
|
-
|
|
21
|
-
Entity:
|
|
22
|
-
type: Object
|
|
23
|
-
properties:
|
|
24
|
-
id:
|
|
25
|
-
type: Integer
|
|
26
|
-
desc: "A unique identifier for the entity. Used in conjunction with entity type"
|
|
27
|
-
type:
|
|
28
|
-
type: String
|
|
29
|
-
desc: "The type of entity"
|
|
30
|
-
|
|
31
8
|
Arguments:
|
|
32
9
|
type: Object
|
|
33
10
|
properties:
|
|
34
11
|
entity:
|
|
35
|
-
type: Entity
|
|
12
|
+
type: entity.Entity
|
|
36
13
|
values:
|
|
37
|
-
type: List<
|
|
14
|
+
type: List<field_values.ArgumentValueRefName>
|
|
38
15
|
|
|
39
16
|
Data:
|
|
40
|
-
type:
|
|
17
|
+
type: response.Response
|
|
41
18
|
properties:
|
|
42
|
-
status:
|
|
43
|
-
type: Literal<'ok'>
|
|
44
|
-
default: "ok"
|
|
45
|
-
desc: "'ok' indicates the post request was successful"
|
|
@@ -9,14 +9,14 @@ Arguments:
|
|
|
9
9
|
type: Object
|
|
10
10
|
properties:
|
|
11
11
|
material_family_id:
|
|
12
|
-
type:
|
|
12
|
+
type: ObjectId
|
|
13
13
|
desc: "Required: The Material Family ID to get the input groups from."
|
|
14
14
|
|
|
15
15
|
SimpleInputGroup:
|
|
16
16
|
type: Object
|
|
17
17
|
properties:
|
|
18
18
|
input_group_id:
|
|
19
|
-
type:
|
|
19
|
+
type: ObjectId
|
|
20
20
|
desc: "The unique integer ID of the input group. Used for joining and identification elsewhere"
|
|
21
21
|
name:
|
|
22
22
|
type: String
|
|
@@ -19,39 +19,26 @@ InputToCreate:
|
|
|
19
19
|
name:
|
|
20
20
|
type: String
|
|
21
21
|
material_family_ids:
|
|
22
|
-
type: List<
|
|
22
|
+
type: List<ObjectId>
|
|
23
23
|
desc: "The list of material families to add the ingredient to. This must be non-empty"
|
|
24
24
|
quantity_type:
|
|
25
|
-
type: Union<Literal<
|
|
25
|
+
type: Union<Literal<inputs.IngredientQuantityType.numeric>, Literal<inputs.IngredientQuantityType.text>>
|
|
26
26
|
desc: "The quantity type of the input. Always numeric for standard inputs"
|
|
27
27
|
type:
|
|
28
|
-
type: Union<Literal<
|
|
28
|
+
type: Union<Literal<inputs.IngredientType.ingredient>, Literal<inputs.IngredientType.process_parameter>>
|
|
29
29
|
desc: "The type of the input, E.g. ingredient, process parameter"
|
|
30
30
|
attributes?:
|
|
31
|
-
type: List<InputAttributeValue>
|
|
31
|
+
type: List<input_attributes.InputAttributeValue>
|
|
32
32
|
desc: "The attributes of the input"
|
|
33
33
|
category_id?:
|
|
34
|
-
type:
|
|
34
|
+
type: ObjectId
|
|
35
35
|
desc: The unique identifier for the category to set for the input
|
|
36
36
|
|
|
37
|
-
InputAttributeValue:
|
|
38
|
-
type: Object
|
|
39
|
-
properties:
|
|
40
|
-
attribute_id:
|
|
41
|
-
type: Integer
|
|
42
|
-
desc: "A unique identifier for the attribute."
|
|
43
|
-
quantity_dec?:
|
|
44
|
-
type: Decimal
|
|
45
|
-
desc: "The value for the metadata, if it is of numeric type"
|
|
46
|
-
quantity_json?:
|
|
47
|
-
type: JsonValue
|
|
48
|
-
desc: "The value for the metadata, if it is not of numeric type"
|
|
49
|
-
|
|
50
37
|
InputSimple:
|
|
51
38
|
type: Object
|
|
52
39
|
properties:
|
|
53
40
|
input_id:
|
|
54
|
-
type:
|
|
41
|
+
type: ObjectId
|
|
55
42
|
desc: "A unique identifier for the id"
|
|
56
43
|
|
|
57
44
|
Data:
|