UncountablePythonSDK 0.0.5__py3-none-any.whl → 0.0.7__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.

Files changed (71) hide show
  1. {UncountablePythonSDK-0.0.5.dist-info → UncountablePythonSDK-0.0.7.dist-info}/METADATA +1 -1
  2. UncountablePythonSDK-0.0.7.dist-info/RECORD +119 -0
  3. {UncountablePythonSDK-0.0.5.dist-info → UncountablePythonSDK-0.0.7.dist-info}/WHEEL +1 -1
  4. pkgs/type_spec/builder.py +0 -61
  5. pkgs/type_spec/config.py +3 -0
  6. pkgs/type_spec/emit_open_api.py +33 -22
  7. pkgs/type_spec/emit_open_api_util.py +6 -2
  8. pkgs/type_spec/emit_python.py +3 -2
  9. type_spec/external/api/entity/create_entities.yaml +33 -0
  10. type_spec/external/api/entity/{external_create_entity.yaml → create_entity.yaml} +4 -14
  11. type_spec/external/api/entity/{external_get_entities_data.yaml → get_entities_data.yaml} +6 -6
  12. type_spec/external/api/entity/{external_list_entities.yaml → list_entities.yaml} +6 -6
  13. type_spec/external/api/entity/{external_resolve_entity_ids.yaml → resolve_entity_ids.yaml} +2 -2
  14. type_spec/external/api/entity/{external_set_values.yaml → set_values.yaml} +4 -4
  15. type_spec/external/api/input_groups/{external_get_input_group_names.yaml → get_input_group_names.yaml} +2 -2
  16. type_spec/external/api/inputs/{external_create_inputs.yaml → create_inputs.yaml} +4 -4
  17. type_spec/external/api/inputs/{external_get_input_data.yaml → get_input_data.yaml} +10 -10
  18. type_spec/external/api/inputs/{external_get_input_names.yaml → get_input_names.yaml} +2 -2
  19. type_spec/external/api/inputs/{external_get_inputs_data.yaml → get_inputs_data.yaml} +10 -10
  20. type_spec/external/api/inputs/{external_set_input_attribute_values.yaml → set_input_attribute_values.yaml} +2 -2
  21. type_spec/external/api/outputs/{external_get_output_data.yaml → get_output_data.yaml} +10 -10
  22. type_spec/external/api/outputs/{external_get_output_names.yaml → get_output_names.yaml} +2 -2
  23. type_spec/external/api/project/{external_get_projects.yaml → get_projects.yaml} +4 -4
  24. type_spec/external/api/project/{external_get_projects_data.yaml → get_projects_data.yaml} +8 -8
  25. type_spec/external/api/recipe_metadata/{external_get_recipe_metadata_data.yaml → get_recipe_metadata_data.yaml} +2 -2
  26. type_spec/external/api/recipes/{external_create_recipes.yaml → create_recipes.yaml} +6 -6
  27. type_spec/external/api/recipes/{external_get_curve.yaml → get_curve.yaml} +5 -5
  28. type_spec/external/api/recipes/{external_get_recipe_calculations.yaml → get_recipe_calculations.yaml} +4 -4
  29. type_spec/external/api/recipes/get_recipe_links.yaml +26 -0
  30. type_spec/external/api/recipes/{external_get_recipe_names.yaml → get_recipe_names.yaml} +2 -2
  31. type_spec/external/api/recipes/{external_get_recipe_output_metadata.yaml → get_recipe_output_metadata.yaml} +4 -4
  32. type_spec/external/api/recipes/{external_get_recipes_data.yaml → get_recipes_data.yaml} +38 -38
  33. uncountable/types/__init__.py +60 -54
  34. uncountable/types/api/entity/{external_create_entities.py → create_entities.py} +5 -25
  35. uncountable/types/api/entity/{external_create_entity.py → create_entity.py} +7 -13
  36. uncountable/types/api/entity/{external_get_entities_data.py → get_entities_data.py} +9 -9
  37. uncountable/types/api/entity/{external_list_entities.py → list_entities.py} +9 -9
  38. uncountable/types/api/entity/{external_resolve_entity_ids.py → resolve_entity_ids.py} +3 -3
  39. uncountable/types/api/entity/{external_set_values.py → set_values.py} +6 -6
  40. uncountable/types/api/input_groups/{external_get_input_group_names.py → get_input_group_names.py} +3 -3
  41. uncountable/types/api/inputs/{external_create_inputs.py → create_inputs.py} +6 -6
  42. uncountable/types/api/inputs/{external_get_input_data.py → get_input_data.py} +15 -15
  43. uncountable/types/api/inputs/{external_get_input_names.py → get_input_names.py} +3 -3
  44. uncountable/types/api/inputs/{external_get_inputs_data.py → get_inputs_data.py} +15 -15
  45. uncountable/types/api/inputs/{external_set_input_attribute_values.py → set_input_attribute_values.py} +3 -3
  46. uncountable/types/api/outputs/{external_get_output_data.py → get_output_data.py} +15 -15
  47. uncountable/types/api/outputs/{external_get_output_names.py → get_output_names.py} +3 -3
  48. uncountable/types/api/project/{external_get_projects.py → get_projects.py} +6 -6
  49. uncountable/types/api/project/{external_get_projects_data.py → get_projects_data.py} +12 -12
  50. uncountable/types/api/recipe_metadata/{external_get_recipe_metadata_data.py → get_recipe_metadata_data.py} +3 -3
  51. uncountable/types/api/recipes/{external_create_recipes.py → create_recipes.py} +9 -9
  52. uncountable/types/api/recipes/{external_get_curve.py → get_curve.py} +7 -7
  53. uncountable/types/api/recipes/{external_get_recipe_calculations.py → get_recipe_calculations.py} +6 -6
  54. uncountable/types/api/recipes/get_recipe_links.py +36 -0
  55. uncountable/types/api/recipes/{external_get_recipe_names.py → get_recipe_names.py} +3 -3
  56. uncountable/types/api/recipes/{external_get_recipe_output_metadata.py → get_recipe_output_metadata.py} +6 -6
  57. uncountable/types/api/recipes/{external_get_recipes_data.py → get_recipes_data.py} +57 -57
  58. uncountable/types/client_base.py +220 -217
  59. uncountable/types/entity.py +271 -0
  60. uncountable/types/field_values.py +28 -0
  61. uncountable/types/{api/recipes/external_get_recipe_links.py → recipe_links.py} +4 -25
  62. UncountablePythonSDK-0.0.5.dist-info/RECORD +0 -116
  63. type_spec/external/api/entity/external_create_entities.yaml +0 -55
  64. type_spec/external/api/recipes/external_get_recipe_links.yaml +0 -61
  65. {UncountablePythonSDK-0.0.5.dist-info → UncountablePythonSDK-0.0.7.dist-info}/top_level.txt +0 -0
  66. /type_spec/external/api/outputs/{external_resolve_output_conditions.yaml → resolve_output_conditions.yaml} +0 -0
  67. /type_spec/external/api/recipes/{external_set_recipe_inputs.yaml → set_recipe_inputs.yaml} +0 -0
  68. /type_spec/external/api/recipes/{external_set_recipe_outputs.yaml → set_recipe_outputs.yaml} +0 -0
  69. /uncountable/types/api/outputs/{external_resolve_output_conditions.py → resolve_output_conditions.py} +0 -0
  70. /uncountable/types/api/recipes/{external_set_recipe_inputs.py → set_recipe_inputs.py} +0 -0
  71. /uncountable/types/api/recipes/{external_set_recipe_outputs.py → set_recipe_outputs.py} +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: UncountablePythonSDK
3
- Version: 0.0.5
3
+ Version: 0.0.7
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
@@ -0,0 +1,119 @@
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=0jXJ_gUNYj9dxpuyFl64o-zRVDwWBiSC9mXKdP53i6I,14446
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=0r1JF2yt6bF42nVWWnhk5Ohdi1O7K-ghEAIl1SyjmWU,803
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=rZ5IH2BB4L7dyuWFp-zL3O6pNhftQa382SwshJ9Zdmg,5041
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=8tidMRWubBmiiq-XCu_2732IvwTc6R3miurdlBCv3-w,16939
24
+ pkgs/type_spec/emit_open_api_util.py,sha256=S4eHeryxiGUNujypmwn8UZQSlaCCWn7uMpiZzNJJqCg,2054
25
+ pkgs/type_spec/emit_python.py,sha256=Y-3eXhWwWns2wZQwcriMN3rgNN20ad5NDphKbGkdCwI,35459
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=eJBYgKmu6twqParqWUIIywzx8RM-2dOIyoBLRMHMmqo,7414
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=7DqYSkUPUwAN6e6P9Nx8Fzl7I2xsV5qZZQiRAOsiWG4,1057
43
+ type_spec/external/api/entity/create_entity.yaml,sha256=yQpvVJJO7RnLCCpZTztTRmuQncIIobhEQYftLODTljE,1252
44
+ type_spec/external/api/entity/get_entities_data.yaml,sha256=-whdM4l4xsAb_kc-bHdNEwJr4pCN7WA4Y7z-CBJXRag,1470
45
+ type_spec/external/api/entity/list_entities.yaml,sha256=pMNfFIbnc8onE1I4yiCXJSAXGZa0IaiPTe_cQ1HM27I,2030
46
+ type_spec/external/api/entity/resolve_entity_ids.yaml,sha256=Of5zyjHYzxVZEjknTxVlJMnsAxdgOWWaerPdKwdybjc,720
47
+ type_spec/external/api/entity/set_values.yaml,sha256=PKDiSrhLQB_k2ea4U5574_C4RKzh_ekI6EoBp-yd7ew,1143
48
+ type_spec/external/api/input_groups/get_input_group_names.yaml,sha256=gPIcDivBCgzKCuHvovUx8RTo6wdYCpDUEaDrlmHUj9U,911
49
+ type_spec/external/api/inputs/create_inputs.yaml,sha256=lvrbbDadh2r1l5-yn4maLJBDNlJ73KGGf3q-IoDUhDs,1858
50
+ type_spec/external/api/inputs/get_input_data.yaml,sha256=fTE2HoULyFkVmpLfyTUXsC3By1xEX9cZVQQWVpHNSZU,4248
51
+ type_spec/external/api/inputs/get_input_names.yaml,sha256=9RL7hdH6antPgzm7bHWWcwSQY39Dgqu4yhIJnONwdQE,1518
52
+ type_spec/external/api/inputs/get_inputs_data.yaml,sha256=TIn0K3sBgOCzrXygGm_SV7vRiM_vLnmkfV5qzCXPOOI,2756
53
+ type_spec/external/api/inputs/set_input_attribute_values.yaml,sha256=EaWfvto6dfhOEOcKThHMwzBsQZfEDrPrNiCnL6ouQSM,1149
54
+ type_spec/external/api/outputs/get_output_data.yaml,sha256=HKcqTLwWurzwAxDvysuRAPPVXIdD6cA19xNa8CSW1W0,3754
55
+ type_spec/external/api/outputs/get_output_names.yaml,sha256=wz0NU2NjQWwNmiMCBu3St14SMcFb2RBVJcxhqGY2fWw,1332
56
+ type_spec/external/api/outputs/resolve_output_conditions.yaml,sha256=lGrG6XPGiQtHx24GccPcO18xxAoMynTSC_2WwxCjFrc,1640
57
+ type_spec/external/api/project/get_projects.yaml,sha256=5FAOH0qQPwWiSiQg3PSKjV7-h6znaN10AG4iF4X2RhY,1923
58
+ type_spec/external/api/project/get_projects_data.yaml,sha256=Xgoe3yphg1OzHedH-68B0jvRfYNombF-giFqFrgJ-Sk,2913
59
+ type_spec/external/api/recipe_metadata/get_recipe_metadata_data.yaml,sha256=MbNIJdz3c7NXhQVkbV8XTAyzWTwGSzXriVU8UH90DhE,1754
60
+ type_spec/external/api/recipes/create_recipes.yaml,sha256=8JnRVjQ_vDKYKXbgZ6Z_RBcm5WechFvw_hg8oJ_6zcs,1930
61
+ type_spec/external/api/recipes/get_curve.yaml,sha256=Th1HDGN6EXLYAiOusnjAXylfgc6OpKbYlc9MpZnGujQ,1592
62
+ type_spec/external/api/recipes/get_recipe_calculations.yaml,sha256=pnZtQH4S8_tAL5a1laI3QhAugJU_AbqMyK7zszIHqj4,1440
63
+ type_spec/external/api/recipes/get_recipe_links.yaml,sha256=VXpJndQt04rmTvT7v7FdcyfBhg1u1B3_a7iGeeoSXWk,765
64
+ type_spec/external/api/recipes/get_recipe_names.yaml,sha256=lfZGDRl8__cjYPtH9fPFHRnOgmae192x2l5b4xTxBZo,894
65
+ type_spec/external/api/recipes/get_recipe_output_metadata.yaml,sha256=Y9fszN16FFnfxo9SfIkzS8fDnZ20L6_iBVyHaPN58uI,1584
66
+ type_spec/external/api/recipes/get_recipes_data.yaml,sha256=Q41ci5cbGPuEYR72HLu4f-0Kl_Za4QPmzNbtp2fZtJ0,16291
67
+ type_spec/external/api/recipes/set_recipe_inputs.yaml,sha256=i3G5IcdLNlhJI4F8Q4P7awRBrfDMMiutJg_zj1dvLPA,1446
68
+ type_spec/external/api/recipes/set_recipe_outputs.yaml,sha256=REqgBpkoayIsP2TB_zmmOUYFWguLuef0N0imDQ4h2Sw,2002
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/types/__init__.py,sha256=NXgMS4P3ettpqcV1Hu96i8EliDd9SkcTt9tHU5jPdtg,2955
74
+ uncountable/types/base.py,sha256=7yMC3sCQ13wd92896Ga2XbZffCqq98SKv09rFGb1ulg,2682
75
+ uncountable/types/client_base.py,sha256=pf8vo7Bl55XCUbXiUmQ4q6JrWZ0qufj_TEP8zNMAw5E,20388
76
+ uncountable/types/entity.py,sha256=DypCKRn-xOOQoVkd3JpcEN9DbDZSAIgBVDziS6eM6GQ,11526
77
+ uncountable/types/field_values.py,sha256=kBFSZVEMvK-wr1YMyK5RD4mw4LEI6aRIySJstX32ol4,743
78
+ uncountable/types/recipe_links.py,sha256=8TfRnV8sWOQaZ57_2VGET5Avsa_k5hGlYqtGBdfEvjM,1353
79
+ uncountable/types/api/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
80
+ uncountable/types/api/batch/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
81
+ uncountable/types/api/batch/execute_batch.py,sha256=cCZo_akwJR4_ET6oOBChdlrCQlxUw8V9i8tDpv7JTIc,1696
82
+ uncountable/types/api/entity/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
83
+ uncountable/types/api/entity/create_entities.py,sha256=ivhGU4pIVT09H4mtZ8yhBO2SyfbtcdM_hZN4-8KEYVI,1403
84
+ uncountable/types/api/entity/create_entity.py,sha256=xEmzm1H1LnMfSIUYvvfKgNKWaMFOBhFOctb1KPsEjdo,1604
85
+ uncountable/types/api/entity/get_entities_data.py,sha256=Bp4J_7Gqz-gZtps0ClNHGZti7aGmEmgpaqCWkiYHcc8,1500
86
+ uncountable/types/api/entity/list_entities.py,sha256=bCi3CRKw76-lK6qlMjva3ZHBDNnw2jMwjfTEzYAkULg,1542
87
+ uncountable/types/api/entity/resolve_entity_ids.py,sha256=HRkW-q5eoin73co-C58HWpHuaODgXimRi4OHsaWOkoQ,992
88
+ uncountable/types/api/entity/set_values.py,sha256=iD2rxBRm0VJSSH5SYoUefO0E1IHIZAwWA1FBSEBag1o,1373
89
+ uncountable/types/api/input_groups/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
90
+ uncountable/types/api/input_groups/get_input_group_names.py,sha256=0mM4MNhSexDjpclHt1njglDVWN3Qx05nx9JO3Q1aEfQ,978
91
+ uncountable/types/api/inputs/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
92
+ uncountable/types/api/inputs/create_inputs.py,sha256=T8qHw3VPoIZDvgTUyUHOxsfwEDY-I5faHdB_n0RwcVI,1836
93
+ uncountable/types/api/inputs/get_input_data.py,sha256=SKOjEGIFru2oqsJAQujVPzCuJ1A5FgzQUcxioFTXj4w,2284
94
+ uncountable/types/api/inputs/get_input_names.py,sha256=JZUMefmKdSSxEtpOpQtHw7i-NzRXgkYtYIy4u9CS20w,1050
95
+ uncountable/types/api/inputs/get_inputs_data.py,sha256=lE8VgEe7XiKlgsnOEO_3O9afbyvEVYqauEZyUzxCIeg,2057
96
+ uncountable/types/api/inputs/set_input_attribute_values.py,sha256=5GYNiyxVoqledEF85DkQLByK-WgD0D4-M20_nrHwJps,1335
97
+ uncountable/types/api/outputs/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
98
+ uncountable/types/api/outputs/get_output_data.py,sha256=z-gz8i81AwZrU5s-R1GJ9MXvJRm2QKYY_mrFuPVcWOk,2194
99
+ uncountable/types/api/outputs/get_output_names.py,sha256=6fWAejFw0Qban9ydrAddZHNkXNuTSXTUkGkOpi-Ye3o,1031
100
+ uncountable/types/api/outputs/resolve_output_conditions.py,sha256=XZqUseXcGhApHmPm-2u7a37Y4blLRxoPoLhvYlBfCpI,1799
101
+ uncountable/types/api/project/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
102
+ uncountable/types/api/project/get_projects.py,sha256=VPknNBC4KFfmUcnQkolKmWmjQPjEoSVg-0sFvLkZlO0,1234
103
+ uncountable/types/api/project/get_projects_data.py,sha256=-cTi_r3CYW_4rzHHZcQEwL9f8Aq18at_I7vcPBovh1E,1811
104
+ uncountable/types/api/recipe_metadata/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
105
+ uncountable/types/api/recipe_metadata/get_recipe_metadata_data.py,sha256=M4KPseNX7K8kWAnR_CXJFg7HgaGrubFQl7_x-TK1OvU,1152
106
+ uncountable/types/api/recipes/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
107
+ uncountable/types/api/recipes/create_recipes.py,sha256=ZvepPEwH9z5x31G7hYBlaKnYPCBu5sCHWsTajUSs_aM,1765
108
+ uncountable/types/api/recipes/get_curve.py,sha256=-N5GUATarAR8eLzMCTuLz6VMx-dU6L741lBN2OzuO-4,1322
109
+ uncountable/types/api/recipes/get_recipe_calculations.py,sha256=BltC1nSL0x-mGS1Q7XXp8Eg9WsgXJfjAI4YlNaLDIek,1460
110
+ uncountable/types/api/recipes/get_recipe_links.py,sha256=pcET39vQrzXTjCDDYP-3_0T0vFCJy5EIy8CNUSyzzWw,942
111
+ uncountable/types/api/recipes/get_recipe_names.py,sha256=XC4FGUnRpvyGiQf3-1NbOD5ngBSpcSFHZ2dlIL6g2v8,931
112
+ uncountable/types/api/recipes/get_recipe_output_metadata.py,sha256=z9M3S8QQYi82S3HiDktMYNNdaF4dVNkoLh3tqp7HY1I,1533
113
+ uncountable/types/api/recipes/get_recipes_data.py,sha256=YPDNf2l6AdD0tEv2zqP3AK2bDLp7cGh2qiAdFiRWzeA,6608
114
+ uncountable/types/api/recipes/set_recipe_inputs.py,sha256=XCt4ZN__OqGkvdwh6C9tKbIwiEPeptnfQVAV2p0cGWs,1259
115
+ uncountable/types/api/recipes/set_recipe_outputs.py,sha256=rCs1Gayxon8UY4lTHiErJOLVAVCdMaUsevBX-d1gpo4,1560
116
+ UncountablePythonSDK-0.0.7.dist-info/METADATA,sha256=mtk2qN2P0ST2d_sIb6e6XxFOCmOaTFHcUW8_aOKNIZE,1125
117
+ UncountablePythonSDK-0.0.7.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
118
+ UncountablePythonSDK-0.0.7.dist-info/top_level.txt,sha256=8ga1DCSWt4Uc_XJ5cR0QrDQuyoeo2uoSzaAJdQT2KBo,36
119
+ UncountablePythonSDK-0.0.7.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: bdist_wheel (0.42.0)
2
+ Generator: bdist_wheel (0.43.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
pkgs/type_spec/builder.py CHANGED
@@ -949,52 +949,6 @@ class SpecNamespace:
949
949
  )
950
950
  self.types[name] = spec_type
951
951
 
952
- def _validate_external_type_impl(
953
- self, stype: SpecType, rec_stack: list[SpecType]
954
- ) -> bool:
955
- if stype in rec_stack[:-1]:
956
- # recursive type definition ignore this instance
957
- return True
958
-
959
- if isinstance(stype, SpecTypeDefn):
960
- if stype.is_base or stype.is_predefined:
961
- # predefined and base types are always allowed
962
- return True
963
-
964
- if stype.namespace != self:
965
- # deny access to outside namespaces
966
- return False
967
-
968
- if isinstance(stype, SpecTypeDefnExternal):
969
- # external type definitions not support for external endpoints
970
- return False
971
-
972
- # check that referenced types themselves are allowed
973
- for child_type in stype.get_referenced_types():
974
- if not self._validate_external_type_wrap(child_type, rec_stack):
975
- return False
976
-
977
- return True
978
-
979
- def _print_external_type_stack(self, rec_stack: list[SpecType]) -> None:
980
- print(" -> ".join([str(x) for x in rec_stack]))
981
-
982
- def _validate_external_type_wrap(
983
- self, stype: SpecType, rec_stack: list[SpecType]
984
- ) -> bool:
985
- rec_stack.append(stype)
986
- if not self._validate_external_type_impl(stype, rec_stack):
987
- return False
988
- rec_stack.pop()
989
- return True
990
-
991
- def _validate_external_type(self, stype: SpecType) -> bool:
992
- rec_stack: list[SpecType] = []
993
- if not self._validate_external_type_wrap(stype, rec_stack):
994
- self._print_external_type_stack(rec_stack)
995
- return False
996
- return True
997
-
998
952
  def process(self, builder: SpecBuilder, data: RawDict) -> None:
999
953
  """
1000
954
  Complete the definition of each type.
@@ -1023,21 +977,6 @@ class SpecNamespace:
1023
977
 
1024
978
  builder.pop_where()
1025
979
 
1026
- # validate external endpoints
1027
- if self.endpoint is not None and self.endpoint.is_external:
1028
- # external endpoints are only allowed to reference types defined in the same namespace
1029
- for name, defn in self.types.items():
1030
- builder.push_where(name)
1031
-
1032
- if not self._validate_external_type(defn):
1033
- print(builder.where)
1034
- print(
1035
- f"Type '{name}' of external endpoint declaration references internal type definition!"
1036
- )
1037
- raise BuilderException()
1038
-
1039
- builder.pop_where()
1040
-
1041
980
  builder.pop_where()
1042
981
 
1043
982
 
pkgs/type_spec/config.py CHANGED
@@ -74,6 +74,9 @@ class PythonConfig(BaseLanguageConfig):
74
74
  class OpenAPIConfig(BaseLanguageConfig):
75
75
  types_output: str # The folder to put generated openapi api yaml
76
76
  description: str # Description of api documentation
77
+ static_url_path: (
78
+ str # the base path where the generated yaml are hosted, e.g. /static/docs
79
+ )
77
80
  server_url: str | None = None
78
81
 
79
82
  def __post_init__(self: Self) -> None:
@@ -97,9 +97,6 @@ def emit_open_api(builder: builder.SpecBuilder, *, config: OpenAPIConfig) -> Non
97
97
  )
98
98
 
99
99
  for namespace in sorted(builder.namespaces.values(), key=lambda ns: ns.name):
100
- if namespace.endpoint is None:
101
- continue
102
-
103
100
  ctx = EmitOpenAPIContext(namespace=namespace)
104
101
 
105
102
  if ctx.namespace.name == "base":
@@ -111,7 +108,7 @@ def emit_open_api(builder: builder.SpecBuilder, *, config: OpenAPIConfig) -> Non
111
108
  gctx,
112
109
  ctx,
113
110
  namespace=namespace,
114
- types_output=config.types_output,
111
+ config=config,
115
112
  )
116
113
 
117
114
  _rewrite_with_notice(
@@ -149,10 +146,10 @@ def _emit_namespace(
149
146
  ctx: EmitOpenAPIContext,
150
147
  namespace: builder.SpecNamespace,
151
148
  *,
152
- types_output: str,
149
+ config: OpenAPIConfig,
153
150
  ) -> None:
154
151
  for stype in namespace.types.values():
155
- _emit_type(ctx, stype)
152
+ _emit_type(ctx, stype, config=config)
156
153
 
157
154
  if namespace.endpoint is not None:
158
155
  _emit_endpoint(gctx, ctx, namespace, namespace.endpoint)
@@ -218,12 +215,17 @@ def _emit_namespace(
218
215
  },
219
216
  )
220
217
 
221
- path = f"{types_output}/common/{'/'.join(namespace.path)}.yaml"
218
+ path = f"{config.types_output}/common/{'/'.join(namespace.path)}.yaml"
222
219
  oa_namespace = {"components": oa_components}
223
220
  _rewrite_with_notice(path, yaml.dump(oa_namespace, sort_keys=False))
224
221
 
225
222
 
226
- def _emit_type(ctx: EmitOpenAPIContext, stype: builder.SpecType) -> None:
223
+ def _emit_type(
224
+ ctx: EmitOpenAPIContext,
225
+ stype: builder.SpecType,
226
+ *,
227
+ config: OpenAPIConfig,
228
+ ) -> None:
227
229
  if not isinstance(stype, builder.SpecTypeDefn):
228
230
  return
229
231
  if stype.is_base or stype.is_predefined:
@@ -239,7 +241,7 @@ def _emit_type(ctx: EmitOpenAPIContext, stype: builder.SpecType) -> None:
239
241
 
240
242
  assert stype.is_exported, "expecting exported names"
241
243
  if isinstance(stype, builder.SpecTypeDefnAlias):
242
- ctx.types[stype.name] = open_api_type(ctx, stype.alias)
244
+ ctx.types[stype.name] = open_api_type(ctx, stype.alias, config=config)
243
245
  return
244
246
 
245
247
  if isinstance(stype, builder.SpecTypeDefnStringEnum):
@@ -259,14 +261,14 @@ def _emit_type(ctx: EmitOpenAPIContext, stype: builder.SpecType) -> None:
259
261
  return
260
262
  elif stype.properties is None:
261
263
  # TODO: check if these are actually equivalent
262
- ctx.types[stype.name] = open_api_type(ctx, stype.base)
264
+ ctx.types[stype.name] = open_api_type(ctx, stype.base, config=config)
263
265
  return
264
266
  else:
265
267
  properties: dict[str, OpenAPIType] = dict()
266
268
  property_desc: dict[str, str] = dict()
267
269
 
268
270
  for prop in stype.properties.values():
269
- ref_type = open_api_type(ctx, prop.spec_type)
271
+ ref_type = open_api_type(ctx, prop.spec_type, config=config)
270
272
  prop_name = ts_name(prop.name, prop.name_case or stype.name_case)
271
273
  if prop.desc:
272
274
  property_desc[prop_name] = prop.desc
@@ -294,7 +296,10 @@ def _emit_type(ctx: EmitOpenAPIContext, stype: builder.SpecType) -> None:
294
296
 
295
297
  if not stype.base.is_base:
296
298
  # support inheritance via allOf
297
- final_type = OpenAPIIntersectionType([open_api_type(ctx, stype.base), final_type])
299
+ final_type = OpenAPIIntersectionType([
300
+ open_api_type(ctx, stype.base, config=config),
301
+ final_type,
302
+ ])
298
303
 
299
304
  ctx.types[stype.name] = final_type
300
305
 
@@ -398,31 +403,37 @@ def _emit_value(stype: builder.SpecType, value: object) -> str:
398
403
  raise Exception("invalid constant type", value, stype)
399
404
 
400
405
 
401
- def open_api_type(ctx: EmitOpenAPIContext, stype: builder.SpecType) -> OpenAPIType:
406
+ def open_api_type(
407
+ ctx: EmitOpenAPIContext,
408
+ stype: builder.SpecType,
409
+ *,
410
+ config: OpenAPIConfig,
411
+ ) -> OpenAPIType:
402
412
  if isinstance(stype, builder.SpecTypeInstance):
403
413
  if stype.defn_type.name == builder.BaseTypeName.s_list:
404
- return OpenAPIArrayType(open_api_type(ctx, stype.parameters[0]))
414
+ return OpenAPIArrayType(
415
+ open_api_type(ctx, stype.parameters[0], config=config)
416
+ )
405
417
  if stype.defn_type.name == builder.BaseTypeName.s_union:
406
- return OpenAPIUnionType([open_api_type(ctx, p) for p in stype.parameters])
418
+ return OpenAPIUnionType([
419
+ open_api_type(ctx, p, config=config) for p in stype.parameters
420
+ ])
407
421
  if stype.defn_type.name == builder.BaseTypeName.s_literal:
408
422
  # IMPROVE relax the string constraint for literals (for now treat as string)
409
423
  parts = []
410
424
  for parameter in stype.parameters:
411
425
  assert isinstance(parameter, builder.SpecTypeLiteralWrapper)
412
- param_type = open_api_type(ctx, parameter)
413
-
414
- assert isinstance(param_type, OpenAPIEnumType)
415
- parts.extend(param_type.options)
426
+ parts.append(parameter.value)
416
427
 
417
428
  return OpenAPIEnumType([str(x) for x in parts])
418
429
  if stype.defn_type.name == builder.BaseTypeName.s_optional:
419
- ref_type = open_api_type(ctx, stype.parameters[0])
430
+ ref_type = open_api_type(ctx, stype.parameters[0], config=config)
420
431
  ref_type.nullable = True
421
432
  return ref_type
422
433
  if stype.defn_type.name == builder.BaseTypeName.s_tuple:
423
434
  # IMPROVE potentially handle tuples better: for now map tupples to arrays of those types
424
435
  return OpenAPIArrayType(
425
- [open_api_type(ctx, p) for p in stype.parameters],
436
+ [open_api_type(ctx, p, config=config) for p in stype.parameters],
426
437
  description="TupleType",
427
438
  )
428
439
 
@@ -449,5 +460,5 @@ def open_api_type(ctx: EmitOpenAPIContext, stype: builder.SpecType) -> OpenAPITy
449
460
  ctx.namespaces.add(stype.namespace)
450
461
  # external namespace resolution
451
462
  return OpenAPIRefType(
452
- source=f"{resolve_namespace_ref(ctx, stype.namespace)}/{stype.name}"
463
+ source=f"{resolve_namespace_ref(ctx, stype.namespace, config=config)}/{stype.name}"
453
464
  )
@@ -9,6 +9,7 @@ from dataclasses import dataclass, field
9
9
  from typing import TypeAlias
10
10
 
11
11
  from . import builder
12
+ from .config import OpenAPIConfig
12
13
  from .open_api_util import OpenAPIType
13
14
 
14
15
  MODIFY_NOTICE = "# DO NOT MODIFY -- This file is generated by type_spec"
@@ -74,9 +75,12 @@ class EmitOpenAPIContext:
74
75
 
75
76
 
76
77
  def resolve_namespace_ref(
77
- ctx: EmitOpenAPIContext, namespace: builder.SpecNamespace
78
+ ctx: EmitOpenAPIContext,
79
+ namespace: builder.SpecNamespace,
80
+ *,
81
+ config: OpenAPIConfig,
78
82
  ) -> str:
79
83
  # TODO: Handle namespaces not in root directory
80
84
  if len(ctx.namespace.path) == 1:
81
85
  return f"{namespace.name}.yaml#/components/schema"
82
- return f"/static/apidocs/common/{namespace.name}.yaml#/components/schema"
86
+ return f"{config.static_url_path}/common/{namespace.name}.yaml#/components/schema"
@@ -372,11 +372,12 @@ def _emit_endpoint_invocation_function(
372
372
  arguments_type.properties is not None
373
373
  and len(arguments_type.properties.values()) > 0
374
374
  )
375
-
375
+ assert endpoint.function is not None
376
+ function_name = endpoint.function.split(".")[-1]
376
377
  ctx.out.write("\n")
377
378
  ctx.out.write(
378
379
  f"""
379
- def {endpoint.path_basename}(
380
+ def {function_name}(
380
381
  self,\n"""
381
382
  )
382
383
  if has_arguments:
@@ -0,0 +1,33 @@
1
+ $endpoint:
2
+ is_sdk: true
3
+ method: post
4
+ path: ${external}/entity/external_create_entities
5
+ function: main.site.app.external.entity.create_entities.create_entities
6
+ desc: "Creates new Uncountable entities"
7
+
8
+
9
+ EntityToCreate:
10
+ type: Object
11
+ properties:
12
+ field_values?:
13
+ type: Optional<List<field_values.FieldRefNameValue>>
14
+
15
+ Arguments:
16
+ type: Object
17
+ properties:
18
+ definition_id:
19
+ type: Integer
20
+ desc: "Definition id for the entities to create"
21
+ entity_type:
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
+ desc: "The type of the entities to create"
24
+ entities_to_create:
25
+ type: List<EntityToCreate>
26
+ desc: "A list of the entities to create"
27
+
28
+ Data:
29
+ type: Object
30
+ properties:
31
+ entities:
32
+ type: List<entity.Entity>
33
+ desc: The entities created
@@ -6,7 +6,7 @@ $endpoint:
6
6
  desc: "Creates a new Uncountable entity"
7
7
  is_sdk: true
8
8
 
9
- ExternalEntityFieldInitialValue:
9
+ EntityFieldInitialValue:
10
10
  type: Object
11
11
  properties:
12
12
  field_ref_name:
@@ -26,24 +26,14 @@ Arguments:
26
26
  type: Integer
27
27
  desc: "Definition id of the entity to create"
28
28
  entity_type:
29
- type: Union<Literal<'lab_request'>, Literal<'approval'>, Literal<'custom_entity'>, Literal<'task'>, Literal<'project'>>
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>>
30
30
  desc: "The type of the entities requested"
31
31
  field_values?:
32
- type: Optional<List<ExternalEntityFieldInitialValue>>
33
-
34
- ExternalEntity:
35
- type: Object
36
- properties:
37
- id:
38
- type: Integer
39
- desc: "A unique identifier for the entity. Used in conjunction with entity type"
40
- type:
41
- type: String
42
- desc: "The type of entity"
32
+ type: Optional<List<field_values.FieldRefNameValue>>
43
33
 
44
34
  Data:
45
35
  type: Object
46
36
  properties:
47
37
  entity:
48
- type: ExternalEntity
38
+ type: entity.Entity
49
39
  desc: The entity created
@@ -14,7 +14,7 @@ Arguments:
14
14
  type: String
15
15
  desc: "The type of the entities requested, e.g. lab_request or approval"
16
16
 
17
- ExternalEntityFieldValue:
17
+ EntityFieldValue:
18
18
  type: Object
19
19
  properties:
20
20
  field_id:
@@ -30,7 +30,7 @@ ExternalEntityFieldValue:
30
30
  type: JsonValue
31
31
  desc: "The value for the field"
32
32
 
33
- ExternalEntity:
33
+ Entity:
34
34
  type: Object
35
35
  properties:
36
36
  id:
@@ -40,16 +40,16 @@ ExternalEntity:
40
40
  type: String
41
41
  desc: "The type of entity"
42
42
 
43
- ExternalEntityDetails:
43
+ EntityDetails:
44
44
  type: Object
45
45
  properties:
46
46
  entity:
47
- type: ExternalEntity
47
+ type: Entity
48
48
  field_values:
49
- type: List<ExternalEntityFieldValue>
49
+ type: List<EntityFieldValue>
50
50
 
51
51
  Data:
52
52
  type: Object
53
53
  properties:
54
54
  entity_details:
55
- type: List<ExternalEntityDetails>
55
+ type: List<EntityDetails>
@@ -23,7 +23,7 @@ Arguments:
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
- ExternalEntity:
26
+ Entity:
27
27
  type: Object
28
28
  properties:
29
29
  id:
@@ -33,17 +33,17 @@ ExternalEntity:
33
33
  type: String
34
34
  desc: "The type of entity"
35
35
 
36
- ExternalEntityResult:
36
+ EntityResult:
37
37
  type: Object
38
38
  properties:
39
39
  entity:
40
- type: ExternalEntity
40
+ type: Entity
41
41
  desc: "The entity represented by the record"
42
42
  column_values:
43
43
  type: List<JsonValue>
44
44
  desc: "The column values loaded from the configuration"
45
45
 
46
- ExternalColumnAccess:
46
+ ColumnAccess:
47
47
  type: Object
48
48
  properties:
49
49
  name:
@@ -57,6 +57,6 @@ Data:
57
57
  type: Object
58
58
  properties:
59
59
  columns:
60
- type: List<ExternalColumnAccess>
60
+ type: List<ColumnAccess>
61
61
  results:
62
- type: List<ExternalEntityResult>
62
+ type: List<EntityResult>
@@ -14,7 +14,7 @@ Arguments:
14
14
  type: String
15
15
  desc: "The type of the entities requested"
16
16
 
17
- ExternalEntityNames:
17
+ EntityNames:
18
18
  type: Object
19
19
  properties:
20
20
  id:
@@ -26,4 +26,4 @@ Data:
26
26
  type: Object
27
27
  properties:
28
28
  items:
29
- type: List<ExternalEntityNames>
29
+ type: List<EntityNames>
@@ -5,7 +5,7 @@ $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
- ExternalEntityFieldValues:
8
+ EntityFieldValues:
9
9
  type: Object
10
10
  properties:
11
11
  field_ref_name:
@@ -18,7 +18,7 @@ ExternalEntityFieldValues:
18
18
  type: JsonValue
19
19
  desc: "The value for the field"
20
20
 
21
- ExternalEntity:
21
+ Entity:
22
22
  type: Object
23
23
  properties:
24
24
  id:
@@ -32,9 +32,9 @@ Arguments:
32
32
  type: Object
33
33
  properties:
34
34
  entity:
35
- type: ExternalEntity
35
+ type: Entity
36
36
  values:
37
- type: List<ExternalEntityFieldValues>
37
+ type: List<EntityFieldValues>
38
38
 
39
39
  Data:
40
40
  type: Object
@@ -12,7 +12,7 @@ Arguments:
12
12
  type: Integer
13
13
  desc: "Required: The Material Family ID to get the input groups from."
14
14
 
15
- ExternalSimpleInputGroup:
15
+ SimpleInputGroup:
16
16
  type: Object
17
17
  properties:
18
18
  input_group_id:
@@ -26,4 +26,4 @@ Data:
26
26
  type: Object
27
27
  properties:
28
28
  input_groups:
29
- type: List<ExternalSimpleInputGroup>
29
+ type: List<SimpleInputGroup>
@@ -28,13 +28,13 @@ InputToCreate:
28
28
  type: Union<Literal<'ingredient'>, Literal<'process_parameter'>>
29
29
  desc: "The type of the input, E.g. ingredient, process parameter"
30
30
  attributes?:
31
- type: List<ExternalInputAttributeValue>
31
+ type: List<InputAttributeValue>
32
32
  desc: "The attributes of the input"
33
33
  category_id?:
34
34
  type: Integer
35
35
  desc: The unique identifier for the category to set for the input
36
36
 
37
- ExternalInputAttributeValue:
37
+ InputAttributeValue:
38
38
  type: Object
39
39
  properties:
40
40
  attribute_id:
@@ -47,7 +47,7 @@ ExternalInputAttributeValue:
47
47
  type: JsonValue
48
48
  desc: "The value for the metadata, if it is not of numeric type"
49
49
 
50
- ExternalInputSimple:
50
+ InputSimple:
51
51
  type: Object
52
52
  properties:
53
53
  input_id:
@@ -58,4 +58,4 @@ Data:
58
58
  type: Object
59
59
  properties:
60
60
  inputs:
61
- type: List<ExternalInputSimple>
61
+ type: List<InputSimple>