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.

Files changed (95) hide show
  1. {UncountablePythonSDK-0.0.7.dist-info → UncountablePythonSDK-0.0.9.dist-info}/METADATA +4 -2
  2. UncountablePythonSDK-0.0.9.dist-info/RECORD +145 -0
  3. pkgs/argument_parser/argument_parser.py +2 -2
  4. pkgs/serialization/missing_sentry.py +1 -1
  5. pkgs/serialization_util/serialization_helpers.py +3 -0
  6. pkgs/type_spec/emit_open_api.py +34 -17
  7. pkgs/type_spec/emit_open_api_util.py +4 -9
  8. pkgs/type_spec/emit_python.py +8 -5
  9. pkgs/type_spec/open_api_util.py +13 -12
  10. type_spec/external/api/entity/create_entities.yaml +1 -1
  11. type_spec/external/api/entity/create_entity.yaml +1 -1
  12. type_spec/external/api/entity/get_entities_data.yaml +4 -30
  13. type_spec/external/api/entity/list_entities.yaml +4 -14
  14. type_spec/external/api/entity/resolve_entity_ids.yaml +2 -2
  15. type_spec/external/api/entity/set_values.yaml +3 -30
  16. type_spec/external/api/input_groups/get_input_group_names.yaml +2 -2
  17. type_spec/external/api/inputs/create_inputs.yaml +6 -19
  18. type_spec/external/api/inputs/get_input_data.yaml +11 -24
  19. type_spec/external/api/inputs/get_input_names.yaml +4 -4
  20. type_spec/external/api/inputs/get_inputs_data.yaml +7 -20
  21. type_spec/external/api/inputs/set_input_attribute_values.yaml +3 -7
  22. type_spec/external/api/outputs/get_output_data.yaml +9 -20
  23. type_spec/external/api/outputs/get_output_names.yaml +2 -2
  24. type_spec/external/api/project/get_projects.yaml +6 -16
  25. type_spec/external/api/project/get_projects_data.yaml +10 -46
  26. type_spec/external/api/recipe_metadata/get_recipe_metadata_data.yaml +5 -5
  27. type_spec/external/api/recipes/create_recipes.yaml +5 -18
  28. type_spec/external/api/recipes/get_curve.yaml +2 -34
  29. type_spec/external/api/recipes/get_recipe_calculations.yaml +7 -17
  30. type_spec/external/api/recipes/get_recipe_links.yaml +1 -1
  31. type_spec/external/api/recipes/get_recipe_names.yaml +2 -2
  32. type_spec/external/api/recipes/get_recipe_output_metadata.yaml +4 -17
  33. type_spec/external/api/recipes/get_recipes_data.yaml +31 -165
  34. type_spec/external/api/recipes/set_recipe_inputs.yaml +3 -3
  35. type_spec/external/api/recipes/set_recipe_outputs.yaml +4 -8
  36. uncountable/integration/__init__.py +0 -0
  37. uncountable/integration/construct_client.py +30 -0
  38. uncountable/integration/cron.py +29 -0
  39. uncountable/integration/db/__init__.py +0 -0
  40. uncountable/integration/db/connect.py +8 -0
  41. uncountable/integration/entrypoint.py +41 -0
  42. uncountable/integration/executors/__init__.py +0 -0
  43. uncountable/integration/executors/script_executor.py +18 -0
  44. uncountable/integration/job.py +39 -0
  45. uncountable/integration/server.py +86 -0
  46. uncountable/integration/types.py +89 -0
  47. uncountable/types/__init__.py +30 -0
  48. uncountable/types/api/entity/create_entities.py +2 -1
  49. uncountable/types/api/entity/create_entity.py +1 -1
  50. uncountable/types/api/entity/get_entities_data.py +6 -26
  51. uncountable/types/api/entity/list_entities.py +5 -12
  52. uncountable/types/api/entity/resolve_entity_ids.py +4 -2
  53. uncountable/types/api/entity/set_values.py +7 -29
  54. uncountable/types/api/input_groups/get_input_group_names.py +3 -2
  55. uncountable/types/api/inputs/create_inputs.py +8 -20
  56. uncountable/types/api/inputs/get_input_data.py +12 -25
  57. uncountable/types/api/inputs/get_input_names.py +5 -4
  58. uncountable/types/api/inputs/get_inputs_data.py +8 -21
  59. uncountable/types/api/inputs/set_input_attribute_values.py +5 -7
  60. uncountable/types/api/outputs/get_output_data.py +10 -17
  61. uncountable/types/api/outputs/get_output_names.py +3 -2
  62. uncountable/types/api/project/get_projects.py +8 -14
  63. uncountable/types/api/project/get_projects_data.py +13 -40
  64. uncountable/types/api/recipe_metadata/get_recipe_metadata_data.py +6 -5
  65. uncountable/types/api/recipes/create_recipes.py +6 -18
  66. uncountable/types/api/recipes/get_curve.py +4 -26
  67. uncountable/types/api/recipes/get_recipe_calculations.py +8 -15
  68. uncountable/types/api/recipes/get_recipe_links.py +2 -1
  69. uncountable/types/api/recipes/get_recipe_names.py +3 -2
  70. uncountable/types/api/recipes/get_recipe_output_metadata.py +5 -13
  71. uncountable/types/api/recipes/get_recipes_data.py +36 -122
  72. uncountable/types/api/recipes/set_recipe_inputs.py +4 -3
  73. uncountable/types/api/recipes/set_recipe_outputs.py +7 -8
  74. uncountable/types/calculations.py +23 -0
  75. uncountable/types/client_base.py +43 -43
  76. uncountable/types/curves.py +47 -0
  77. uncountable/types/entity.py +4 -1
  78. uncountable/types/experiment_groups.py +23 -0
  79. uncountable/types/field_values.py +37 -0
  80. uncountable/types/fields.py +24 -0
  81. uncountable/types/input_attributes.py +29 -0
  82. uncountable/types/inputs.py +61 -0
  83. uncountable/types/outputs.py +26 -0
  84. uncountable/types/phases.py +23 -0
  85. uncountable/types/recipe_links.py +3 -2
  86. uncountable/types/recipe_metadata.py +50 -0
  87. uncountable/types/recipe_output_metadata.py +24 -0
  88. uncountable/types/recipe_tags.py +23 -0
  89. uncountable/types/response.py +25 -0
  90. uncountable/types/units.py +23 -0
  91. uncountable/types/users.py +24 -0
  92. uncountable/types/workflows.py +32 -0
  93. UncountablePythonSDK-0.0.7.dist-info/RECORD +0 -119
  94. {UncountablePythonSDK-0.0.7.dist-info → UncountablePythonSDK-0.0.9.dist-info}/WHEEL +0 -0
  95. {UncountablePythonSDK-0.0.7.dist-info → UncountablePythonSDK-0.0.9.dist-info}/top_level.txt +0 -0
@@ -12,6 +12,9 @@ from pkgs.serialization import serial_class
12
12
  from . import base as base_t
13
13
 
14
14
  __all__: list[str] = [
15
+ "ArgumentValueId",
16
+ "ArgumentValueRefName",
17
+ "FieldRefIdNameValue",
15
18
  "FieldRefNameValue",
16
19
  ]
17
20
 
@@ -25,4 +28,38 @@ class FieldRefNameValue:
25
28
  field_ref_name: str
26
29
  value: base_t.JsonValue
27
30
  row_index: typing.Optional[typing.Optional[int]] = None
31
+
32
+
33
+ # DO NOT MODIFY -- This file is generated by type_spec
34
+ @serial_class(
35
+ unconverted_values={"value"},
36
+ )
37
+ @dataclass(kw_only=True)
38
+ class FieldRefIdNameValue:
39
+ field_id: base_t.ObjectId
40
+ field_ref_name: str
41
+ value: base_t.JsonValue
42
+ row_index: typing.Optional[typing.Optional[int]] = None
43
+
44
+
45
+ # DO NOT MODIFY -- This file is generated by type_spec
46
+ @serial_class(
47
+ unconverted_values={"value"},
48
+ )
49
+ @dataclass(kw_only=True)
50
+ class ArgumentValueRefName:
51
+ field_ref_name: str
52
+ value: base_t.JsonValue
53
+ row_index: typing.Optional[typing.Optional[int]] = None
54
+
55
+
56
+ # DO NOT MODIFY -- This file is generated by type_spec
57
+ @serial_class(
58
+ unconverted_values={"value"},
59
+ )
60
+ @dataclass(kw_only=True)
61
+ class ArgumentValueId:
62
+ field_id: base_t.ObjectId
63
+ value: base_t.JsonValue
64
+ row_index: typing.Optional[typing.Optional[int]] = None
28
65
  # DO NOT MODIFY -- This file is generated by type_spec
@@ -0,0 +1,24 @@
1
+ # DO NOT MODIFY -- This file is generated by type_spec
2
+ # flake8: noqa: F821
3
+ # ruff: noqa: E402
4
+ # fmt: off
5
+ # isort: skip_file
6
+ from __future__ import annotations
7
+ import typing # noqa: F401
8
+ import datetime # noqa: F401
9
+ from decimal import Decimal # noqa: F401
10
+ from dataclasses import dataclass
11
+ from . import base as base_t
12
+
13
+ __all__: list[str] = [
14
+ "Field",
15
+ ]
16
+
17
+
18
+ # DO NOT MODIFY -- This file is generated by type_spec
19
+ @dataclass(kw_only=True)
20
+ class Field:
21
+ id: base_t.ObjectId
22
+ name: str
23
+ value_type: str
24
+ # DO NOT MODIFY -- This file is generated by type_spec
@@ -0,0 +1,29 @@
1
+ # DO NOT MODIFY -- This file is generated by type_spec
2
+ # flake8: noqa: F821
3
+ # ruff: noqa: E402
4
+ # fmt: off
5
+ # isort: skip_file
6
+ from __future__ import annotations
7
+ import typing # noqa: F401
8
+ import datetime # noqa: F401
9
+ from decimal import Decimal # noqa: F401
10
+ from dataclasses import dataclass
11
+ from pkgs.serialization import serial_class
12
+ from . import base as base_t
13
+
14
+ __all__: list[str] = [
15
+ "InputAttributeValue",
16
+ ]
17
+
18
+
19
+ # DO NOT MODIFY -- This file is generated by type_spec
20
+ @serial_class(
21
+ unconverted_values={"quantity_json"},
22
+ to_string_values={"quantity_dec"},
23
+ )
24
+ @dataclass(kw_only=True)
25
+ class InputAttributeValue:
26
+ attribute_id: base_t.ObjectId
27
+ quantity_dec: typing.Optional[Decimal] = None
28
+ quantity_json: typing.Optional[base_t.JsonValue] = None
29
+ # DO NOT MODIFY -- This file is generated by type_spec
@@ -0,0 +1,61 @@
1
+ # DO NOT MODIFY -- This file is generated by type_spec
2
+ # flake8: noqa: F821
3
+ # ruff: noqa: E402
4
+ # fmt: off
5
+ # isort: skip_file
6
+ from __future__ import annotations
7
+ import typing # noqa: F401
8
+ import datetime # noqa: F401
9
+ from decimal import Decimal # noqa: F401
10
+ from pkgs.strenum_compat import StrEnum
11
+ from dataclasses import dataclass
12
+ from pkgs.serialization import serial_string_enum
13
+ from . import base as base_t
14
+
15
+ __all__: list[str] = [
16
+ "IngredientQuantityType",
17
+ "IngredientType",
18
+ "SimpleInput",
19
+ ]
20
+
21
+
22
+ # DO NOT MODIFY -- This file is generated by type_spec
23
+ @serial_string_enum(
24
+ labels={
25
+ "numeric": "Numeric",
26
+ "recipe": "Experiment Component",
27
+ "date": "Date",
28
+ "categorical": "Categorical",
29
+ "timestamp": "Timestamp",
30
+ "text": "Text",
31
+ "curve": "Curve",
32
+ "files": "Attachments",
33
+ },
34
+ )
35
+ class IngredientQuantityType(StrEnum):
36
+ NUMERIC = "numeric"
37
+ RECIPE = "recipe"
38
+ DATE = "date"
39
+ CATEGORICAL = "categorical"
40
+ TIMESTAMP = "timestamp"
41
+ TEXT = "text"
42
+ CURVE = "curve"
43
+ FILES = "files"
44
+
45
+
46
+ # DO NOT MODIFY -- This file is generated by type_spec
47
+ class IngredientType(StrEnum):
48
+ INGREDIENT = "ingredient"
49
+ PROCESS_PARAMETER = "process_parameter"
50
+ EQUIPMENT = "equipment"
51
+
52
+
53
+ # DO NOT MODIFY -- This file is generated by type_spec
54
+ @dataclass(kw_only=True)
55
+ class SimpleInput:
56
+ input_id: base_t.ObjectId
57
+ quantity_type: IngredientQuantityType
58
+ name: str
59
+ is_parameter: bool
60
+ intermediate_recipe_id: typing.Optional[base_t.ObjectId]
61
+ # DO NOT MODIFY -- This file is generated by type_spec
@@ -0,0 +1,26 @@
1
+ # DO NOT MODIFY -- This file is generated by type_spec
2
+ # flake8: noqa: F821
3
+ # ruff: noqa: E402
4
+ # fmt: off
5
+ # isort: skip_file
6
+ from __future__ import annotations
7
+ import typing # noqa: F401
8
+ import datetime # noqa: F401
9
+ from decimal import Decimal # noqa: F401
10
+ from dataclasses import dataclass
11
+ from . import base as base_t
12
+ from . import units as units_t
13
+
14
+ __all__: list[str] = [
15
+ "SimpleOutput",
16
+ ]
17
+
18
+
19
+ # DO NOT MODIFY -- This file is generated by type_spec
20
+ @dataclass(kw_only=True)
21
+ class SimpleOutput:
22
+ output_id: base_t.ObjectId
23
+ name: str
24
+ unit: typing.Optional[units_t.SimpleUnit]
25
+ quantity_type: str
26
+ # DO NOT MODIFY -- This file is generated by type_spec
@@ -0,0 +1,23 @@
1
+ # DO NOT MODIFY -- This file is generated by type_spec
2
+ # flake8: noqa: F821
3
+ # ruff: noqa: E402
4
+ # fmt: off
5
+ # isort: skip_file
6
+ from __future__ import annotations
7
+ import typing # noqa: F401
8
+ import datetime # noqa: F401
9
+ from decimal import Decimal # noqa: F401
10
+ from dataclasses import dataclass
11
+ from . import base as base_t
12
+
13
+ __all__: list[str] = [
14
+ "Phase",
15
+ ]
16
+
17
+
18
+ # DO NOT MODIFY -- This file is generated by type_spec
19
+ @dataclass(kw_only=True)
20
+ class Phase:
21
+ id: base_t.ObjectId
22
+ name: str
23
+ # DO NOT MODIFY -- This file is generated by type_spec
@@ -10,6 +10,7 @@ from decimal import Decimal # noqa: F401
10
10
  from pkgs.strenum_compat import StrEnum
11
11
  from dataclasses import dataclass
12
12
  from pkgs.serialization import serial_string_enum
13
+ from . import base as base_t
13
14
 
14
15
  __all__: list[str] = [
15
16
  "RecipeLink",
@@ -42,8 +43,8 @@ class RecipeLinkType(StrEnum):
42
43
  # DO NOT MODIFY -- This file is generated by type_spec
43
44
  @dataclass(kw_only=True, frozen=True, eq=True)
44
45
  class RecipeLink:
45
- recipe_id_from: int
46
- recipe_id_to: int
46
+ recipe_id_from: base_t.ObjectId
47
+ recipe_id_to: base_t.ObjectId
47
48
  link_type: str
48
49
  name: str
49
50
  # DO NOT MODIFY -- This file is generated by type_spec
@@ -0,0 +1,50 @@
1
+ # DO NOT MODIFY -- This file is generated by type_spec
2
+ # flake8: noqa: F821
3
+ # ruff: noqa: E402
4
+ # fmt: off
5
+ # isort: skip_file
6
+ from __future__ import annotations
7
+ import typing # noqa: F401
8
+ import datetime # noqa: F401
9
+ from decimal import Decimal # noqa: F401
10
+ from dataclasses import dataclass
11
+ from pkgs.serialization import serial_class
12
+ from . import base as base_t
13
+
14
+ __all__: list[str] = [
15
+ "MetadataValue",
16
+ "RecipeMetadata",
17
+ "SimpleRecipeMetadataField",
18
+ ]
19
+
20
+
21
+ # DO NOT MODIFY -- This file is generated by type_spec
22
+ @serial_class(
23
+ to_string_values={"value_numeric"},
24
+ )
25
+ @dataclass(kw_only=True)
26
+ class MetadataValue:
27
+ metadata_id: base_t.ObjectId
28
+ value_numeric: typing.Optional[Decimal] = None
29
+ value_str: typing.Optional[str] = None
30
+
31
+
32
+ # DO NOT MODIFY -- This file is generated by type_spec
33
+ @dataclass(kw_only=True)
34
+ class SimpleRecipeMetadataField:
35
+ metadata_id: base_t.ObjectId
36
+ name: str
37
+ quantity_type: str
38
+
39
+
40
+ # DO NOT MODIFY -- This file is generated by type_spec
41
+ @serial_class(
42
+ unconverted_values={"quantity_json"},
43
+ to_string_values={"quantity_dec"},
44
+ )
45
+ @dataclass(kw_only=True)
46
+ class RecipeMetadata:
47
+ metadata_id: base_t.ObjectId
48
+ quantity_dec: typing.Optional[Decimal] = None
49
+ quantity_json: typing.Optional[base_t.JsonValue] = None
50
+ # DO NOT MODIFY -- This file is generated by type_spec
@@ -0,0 +1,24 @@
1
+ # DO NOT MODIFY -- This file is generated by type_spec
2
+ # flake8: noqa: F821
3
+ # ruff: noqa: E402
4
+ # fmt: off
5
+ # isort: skip_file
6
+ from __future__ import annotations
7
+ import typing # noqa: F401
8
+ import datetime # noqa: F401
9
+ from decimal import Decimal # noqa: F401
10
+ from dataclasses import dataclass
11
+ from . import base as base_t
12
+
13
+ __all__: list[str] = [
14
+ "RecipeOutputMetadataField",
15
+ ]
16
+
17
+
18
+ # DO NOT MODIFY -- This file is generated by type_spec
19
+ @dataclass(kw_only=True)
20
+ class RecipeOutputMetadataField:
21
+ id: base_t.ObjectId
22
+ name: str
23
+ quantity_type: str
24
+ # DO NOT MODIFY -- This file is generated by type_spec
@@ -0,0 +1,23 @@
1
+ # DO NOT MODIFY -- This file is generated by type_spec
2
+ # flake8: noqa: F821
3
+ # ruff: noqa: E402
4
+ # fmt: off
5
+ # isort: skip_file
6
+ from __future__ import annotations
7
+ import typing # noqa: F401
8
+ import datetime # noqa: F401
9
+ from decimal import Decimal # noqa: F401
10
+ from dataclasses import dataclass
11
+ from . import base as base_t
12
+
13
+ __all__: list[str] = [
14
+ "SimpleRecipeTag",
15
+ ]
16
+
17
+
18
+ # DO NOT MODIFY -- This file is generated by type_spec
19
+ @dataclass(kw_only=True)
20
+ class SimpleRecipeTag:
21
+ recipe_tag_id: base_t.ObjectId
22
+ name: str
23
+ # DO NOT MODIFY -- This file is generated by type_spec
@@ -0,0 +1,25 @@
1
+ # DO NOT MODIFY -- This file is generated by type_spec
2
+ # flake8: noqa: F821
3
+ # ruff: noqa: E402
4
+ # fmt: off
5
+ # isort: skip_file
6
+ from __future__ import annotations
7
+ import typing # noqa: F401
8
+ import datetime # noqa: F401
9
+ from decimal import Decimal # noqa: F401
10
+ from dataclasses import dataclass
11
+ from pkgs.serialization import serial_class
12
+
13
+ __all__: list[str] = [
14
+ "Response",
15
+ ]
16
+
17
+
18
+ # DO NOT MODIFY -- This file is generated by type_spec
19
+ @serial_class(
20
+ parse_require={"status"},
21
+ )
22
+ @dataclass(kw_only=True)
23
+ class Response:
24
+ status: typing.Literal["ok"] = "ok"
25
+ # DO NOT MODIFY -- This file is generated by type_spec
@@ -0,0 +1,23 @@
1
+ # DO NOT MODIFY -- This file is generated by type_spec
2
+ # flake8: noqa: F821
3
+ # ruff: noqa: E402
4
+ # fmt: off
5
+ # isort: skip_file
6
+ from __future__ import annotations
7
+ import typing # noqa: F401
8
+ import datetime # noqa: F401
9
+ from decimal import Decimal # noqa: F401
10
+ from dataclasses import dataclass
11
+ from . import base as base_t
12
+
13
+ __all__: list[str] = [
14
+ "SimpleUnit",
15
+ ]
16
+
17
+
18
+ # DO NOT MODIFY -- This file is generated by type_spec
19
+ @dataclass(kw_only=True)
20
+ class SimpleUnit:
21
+ unit_id: base_t.ObjectId
22
+ name: str
23
+ # DO NOT MODIFY -- This file is generated by type_spec
@@ -0,0 +1,24 @@
1
+ # DO NOT MODIFY -- This file is generated by type_spec
2
+ # flake8: noqa: F821
3
+ # ruff: noqa: E402
4
+ # fmt: off
5
+ # isort: skip_file
6
+ from __future__ import annotations
7
+ import typing # noqa: F401
8
+ import datetime # noqa: F401
9
+ from decimal import Decimal # noqa: F401
10
+ from dataclasses import dataclass
11
+ from . import base as base_t
12
+
13
+ __all__: list[str] = [
14
+ "SimpleUser",
15
+ ]
16
+
17
+
18
+ # DO NOT MODIFY -- This file is generated by type_spec
19
+ @dataclass(kw_only=True)
20
+ class SimpleUser:
21
+ user_id: base_t.ObjectId
22
+ display_name: str
23
+ email: str
24
+ # DO NOT MODIFY -- This file is generated by type_spec
@@ -0,0 +1,32 @@
1
+ # DO NOT MODIFY -- This file is generated by type_spec
2
+ # flake8: noqa: F821
3
+ # ruff: noqa: E402
4
+ # fmt: off
5
+ # isort: skip_file
6
+ from __future__ import annotations
7
+ import typing # noqa: F401
8
+ import datetime # noqa: F401
9
+ from decimal import Decimal # noqa: F401
10
+ from dataclasses import dataclass
11
+ from . import base as base_t
12
+
13
+ __all__: list[str] = [
14
+ "SimpleWorkflow",
15
+ "SimpleWorkflowStep",
16
+ ]
17
+
18
+
19
+ # DO NOT MODIFY -- This file is generated by type_spec
20
+ @dataclass(kw_only=True)
21
+ class SimpleWorkflowStep:
22
+ workflow_step_id: base_t.ObjectId
23
+ name: typing.Optional[str]
24
+
25
+
26
+ # DO NOT MODIFY -- This file is generated by type_spec
27
+ @dataclass(kw_only=True)
28
+ class SimpleWorkflow:
29
+ workflow_id: base_t.ObjectId
30
+ name: str
31
+ workflow_steps: list[SimpleWorkflowStep]
32
+ # DO NOT MODIFY -- This file is generated by type_spec
@@ -1,119 +0,0 @@
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,,