UncountablePythonSDK 0.0.126__py3-none-any.whl → 0.0.128__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.
- examples/integration-server/jobs/materials_auto/example_instrument.py +67 -38
- examples/integration-server/jobs/materials_auto/example_parse.py +87 -0
- examples/integration-server/jobs/materials_auto/example_predictions.py +61 -0
- examples/integration-server/jobs/materials_auto/example_runsheet_wh.py +3 -2
- examples/integration-server/jobs/materials_auto/profile.yaml +18 -0
- examples/integration-server/pyproject.toml +3 -3
- pkgs/type_spec/builder.py +19 -9
- pkgs/type_spec/emit_typescript.py +2 -2
- pkgs/type_spec/type_info/emit_type_info.py +14 -1
- pkgs/type_spec/value_spec/__main__.py +2 -2
- uncountable/integration/cli.py +29 -1
- uncountable/integration/executors/executors.py +1 -2
- uncountable/integration/executors/generic_upload_executor.py +1 -1
- uncountable/integration/job.py +3 -3
- uncountable/integration/queue_runner/command_server/__init__.py +4 -0
- uncountable/integration/queue_runner/command_server/command_client.py +39 -0
- uncountable/integration/queue_runner/command_server/command_server.py +37 -0
- uncountable/integration/queue_runner/command_server/protocol/command_server.proto +18 -0
- uncountable/integration/queue_runner/command_server/protocol/command_server_pb2.py +21 -13
- uncountable/integration/queue_runner/command_server/protocol/command_server_pb2.pyi +28 -1
- uncountable/integration/queue_runner/command_server/protocol/command_server_pb2_grpc.py +90 -0
- uncountable/integration/queue_runner/command_server/types.py +24 -1
- uncountable/integration/queue_runner/datastore/datastore_sqlite.py +107 -8
- uncountable/integration/queue_runner/datastore/model.py +8 -1
- uncountable/integration/queue_runner/job_scheduler.py +42 -2
- uncountable/integration/queue_runner/worker.py +1 -1
- uncountable/integration/server.py +36 -6
- uncountable/integration/telemetry.py +41 -7
- uncountable/types/__init__.py +4 -0
- uncountable/types/api/integrations/register_sockets_token.py +41 -0
- uncountable/types/api/recipes/edit_recipe_inputs.py +1 -1
- uncountable/types/api/recipes/get_recipes_data.py +16 -0
- uncountable/types/api/recipes/lock_recipes.py +2 -1
- uncountable/types/api/recipes/set_recipe_total.py +59 -0
- uncountable/types/api/recipes/unlock_recipes.py +2 -1
- uncountable/types/api/uploader/complete_async_parse.py +4 -0
- uncountable/types/async_batch_processor.py +124 -0
- uncountable/types/async_batch_t.py +2 -0
- uncountable/types/client_base.py +57 -1
- uncountable/types/entity_t.py +1 -1
- uncountable/types/queued_job.py +1 -0
- uncountable/types/queued_job_t.py +9 -0
- uncountable/types/sockets.py +9 -0
- uncountable/types/sockets_t.py +99 -0
- uncountable/types/uploader_t.py +3 -2
- {uncountablepythonsdk-0.0.126.dist-info → uncountablepythonsdk-0.0.128.dist-info}/METADATA +1 -1
- {uncountablepythonsdk-0.0.126.dist-info → uncountablepythonsdk-0.0.128.dist-info}/RECORD +49 -45
- {uncountablepythonsdk-0.0.126.dist-info → uncountablepythonsdk-0.0.128.dist-info}/WHEEL +0 -0
- {uncountablepythonsdk-0.0.126.dist-info → uncountablepythonsdk-0.0.128.dist-info}/top_level.txt +0 -0
uncountable/types/client_base.py
CHANGED
|
@@ -73,6 +73,7 @@ from uncountable.types import recipe_identifiers_t
|
|
|
73
73
|
from uncountable.types import recipe_links_t
|
|
74
74
|
from uncountable.types import recipe_metadata_t
|
|
75
75
|
from uncountable.types import recipe_workflow_steps_t
|
|
76
|
+
import uncountable.types.api.integrations.register_sockets_token as register_sockets_token_t
|
|
76
77
|
import uncountable.types.api.recipes.remove_recipe_from_project as remove_recipe_from_project_t
|
|
77
78
|
import uncountable.types.api.recipe_links.remove_recipe_link as remove_recipe_link_t
|
|
78
79
|
import uncountable.types.api.entity.resolve_entity_ids as resolve_entity_ids_t
|
|
@@ -90,7 +91,9 @@ import uncountable.types.api.recipes.set_recipe_output_annotations as set_recipe
|
|
|
90
91
|
import uncountable.types.api.recipes.set_recipe_output_file as set_recipe_output_file_t
|
|
91
92
|
import uncountable.types.api.recipes.set_recipe_outputs as set_recipe_outputs_t
|
|
92
93
|
import uncountable.types.api.recipes.set_recipe_tags as set_recipe_tags_t
|
|
94
|
+
import uncountable.types.api.recipes.set_recipe_total as set_recipe_total_t
|
|
93
95
|
import uncountable.types.api.entity.set_values as set_values_t
|
|
96
|
+
from uncountable.types import sockets_t
|
|
94
97
|
import uncountable.types.api.entity.transition_entity_phase as transition_entity_phase_t
|
|
95
98
|
import uncountable.types.api.recipes.unarchive_recipes as unarchive_recipes_t
|
|
96
99
|
import uncountable.types.api.entity.unlock_entity as unlock_entity_t
|
|
@@ -279,12 +282,16 @@ class ClientMethods(ABC):
|
|
|
279
282
|
self,
|
|
280
283
|
*,
|
|
281
284
|
parsed_file_data: list[uploader_t.ParsedFileData],
|
|
285
|
+
async_job_key: identifier_t.IdentifierKey,
|
|
286
|
+
upload_destination: generic_upload_t.UploadDestinationRecipe,
|
|
282
287
|
) -> complete_async_parse_t.Data:
|
|
283
288
|
"""Parses uploaded files asynchronously
|
|
284
289
|
|
|
285
290
|
"""
|
|
286
291
|
args = complete_async_parse_t.Arguments(
|
|
287
292
|
parsed_file_data=parsed_file_data,
|
|
293
|
+
async_job_key=async_job_key,
|
|
294
|
+
upload_destination=upload_destination,
|
|
288
295
|
)
|
|
289
296
|
api_request = APIRequest(
|
|
290
297
|
method=complete_async_parse_t.ENDPOINT_METHOD,
|
|
@@ -530,7 +537,7 @@ class ClientMethods(ABC):
|
|
|
530
537
|
recipe_definitions: list[create_recipes_t.CreateRecipeDefinition],
|
|
531
538
|
project_id: base_t.ObjectId | None = None,
|
|
532
539
|
) -> create_recipes_t.Data:
|
|
533
|
-
"""
|
|
540
|
+
"""Creates recipes in Uncountable, optionally with metadata values, and returns the resulting ids in corresponding order
|
|
534
541
|
|
|
535
542
|
:param material_family_id: The identifier of the material family to create the recipes in
|
|
536
543
|
:param project_id: The identifier of the project to create the recipes in
|
|
@@ -1047,6 +1054,7 @@ class ClientMethods(ABC):
|
|
|
1047
1054
|
project_id: base_t.ObjectId | None = None,
|
|
1048
1055
|
offset: int | None = None,
|
|
1049
1056
|
limit: int | None = None,
|
|
1057
|
+
empty_output_behavior: get_recipes_data_t.RecipeOutputInclusion | None = None,
|
|
1050
1058
|
) -> get_recipes_data_t.Data:
|
|
1051
1059
|
"""Gets all data associated with a set of recipes. Because Uncountables recipe structure is complex, various data values are exploded out to increase efficiency in parsing, and this page is paginated to prevent too large of return values
|
|
1052
1060
|
|
|
@@ -1054,12 +1062,14 @@ class ClientMethods(ABC):
|
|
|
1054
1062
|
:param project_id: The projects to get the data from. Either these or recipe_ids must be filled in
|
|
1055
1063
|
:param offset: Used for pagination. All pagination is done in order of Recipe ID. [Pagination More Info](#pagination)
|
|
1056
1064
|
:param limit: The number of data points to return. If not filled in, it will be set to 100, and cannot be set higher than 100. [Pagination More Info](#pagination)
|
|
1065
|
+
:param empty_output_behavior: Recipe output inclusion behavior for empty outputs. Empty recipe outputs are outputs added to the experiment that do not have a value associated with them.
|
|
1057
1066
|
"""
|
|
1058
1067
|
args = get_recipes_data_t.Arguments(
|
|
1059
1068
|
recipe_ids=recipe_ids,
|
|
1060
1069
|
project_id=project_id,
|
|
1061
1070
|
offset=offset,
|
|
1062
1071
|
limit=limit,
|
|
1072
|
+
empty_output_behavior=empty_output_behavior,
|
|
1063
1073
|
)
|
|
1064
1074
|
api_request = APIRequest(
|
|
1065
1075
|
method=get_recipes_data_t.ENDPOINT_METHOD,
|
|
@@ -1306,6 +1316,24 @@ class ClientMethods(ABC):
|
|
|
1306
1316
|
)
|
|
1307
1317
|
return self.do_request(api_request=api_request, return_type=push_notification_t.Data)
|
|
1308
1318
|
|
|
1319
|
+
def register_sockets_token(
|
|
1320
|
+
self,
|
|
1321
|
+
*,
|
|
1322
|
+
socket_request: sockets_t.SocketTokenRequest,
|
|
1323
|
+
) -> register_sockets_token_t.Data:
|
|
1324
|
+
"""Request token for connecting to sockets server
|
|
1325
|
+
|
|
1326
|
+
"""
|
|
1327
|
+
args = register_sockets_token_t.Arguments(
|
|
1328
|
+
socket_request=socket_request,
|
|
1329
|
+
)
|
|
1330
|
+
api_request = APIRequest(
|
|
1331
|
+
method=register_sockets_token_t.ENDPOINT_METHOD,
|
|
1332
|
+
endpoint=register_sockets_token_t.ENDPOINT_PATH,
|
|
1333
|
+
args=args,
|
|
1334
|
+
)
|
|
1335
|
+
return self.do_request(api_request=api_request, return_type=register_sockets_token_t.Data)
|
|
1336
|
+
|
|
1309
1337
|
def remove_recipe_from_project(
|
|
1310
1338
|
self,
|
|
1311
1339
|
*,
|
|
@@ -1676,6 +1704,34 @@ class ClientMethods(ABC):
|
|
|
1676
1704
|
)
|
|
1677
1705
|
return self.do_request(api_request=api_request, return_type=set_recipe_tags_t.Data)
|
|
1678
1706
|
|
|
1707
|
+
def set_recipe_total(
|
|
1708
|
+
self,
|
|
1709
|
+
*,
|
|
1710
|
+
recipe_key: identifier_t.IdentifierKey,
|
|
1711
|
+
value: set_recipe_total_t.ValueNumeric,
|
|
1712
|
+
recipe_workflow_step_identifier: recipe_workflow_steps_t.RecipeWorkflowStepIdentifier | None = None,
|
|
1713
|
+
calculation_key: identifier_t.IdentifierKey | None = None,
|
|
1714
|
+
) -> set_recipe_total_t.Data:
|
|
1715
|
+
"""Updates the Set Total value for a recipe or one of its workflow steps
|
|
1716
|
+
|
|
1717
|
+
:param recipe_key: Identifier for the recipe
|
|
1718
|
+
:param recipe_workflow_step_identifier: Identifier for the recipe workflow step
|
|
1719
|
+
:param value: The quantity in mass, volume, or moles to set for the total
|
|
1720
|
+
:param calculation_key: The linked basis calculation to set
|
|
1721
|
+
"""
|
|
1722
|
+
args = set_recipe_total_t.Arguments(
|
|
1723
|
+
recipe_key=recipe_key,
|
|
1724
|
+
recipe_workflow_step_identifier=recipe_workflow_step_identifier,
|
|
1725
|
+
value=value,
|
|
1726
|
+
calculation_key=calculation_key,
|
|
1727
|
+
)
|
|
1728
|
+
api_request = APIRequest(
|
|
1729
|
+
method=set_recipe_total_t.ENDPOINT_METHOD,
|
|
1730
|
+
endpoint=set_recipe_total_t.ENDPOINT_PATH,
|
|
1731
|
+
args=args,
|
|
1732
|
+
)
|
|
1733
|
+
return self.do_request(api_request=api_request, return_type=set_recipe_total_t.Data)
|
|
1734
|
+
|
|
1679
1735
|
def set_values(
|
|
1680
1736
|
self,
|
|
1681
1737
|
*,
|
uncountable/types/entity_t.py
CHANGED
|
@@ -398,7 +398,7 @@ class EntityType(StrEnum):
|
|
|
398
398
|
|
|
399
399
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
400
400
|
LimitedEntityType = typing.Annotated[
|
|
401
|
-
typing.Literal[EntityType.LAB_REQUEST] | typing.Literal[EntityType.APPROVAL] | typing.Literal[EntityType.CUSTOM_ENTITY] | typing.Literal[EntityType.INGREDIENT_ATTRIBUTE] | typing.Literal[EntityType.INVENTORY_AMOUNT] | typing.Literal[EntityType.TASK] | typing.Literal[EntityType.PROJECT] | typing.Literal[EntityType.EQUIPMENT] | typing.Literal[EntityType.INV_LOCAL_LOCATIONS] | typing.Literal[EntityType.FIELD_OPTION_SET] | typing.Literal[EntityType.WEBHOOK] | typing.Literal[EntityType.SPECS] | typing.Literal[EntityType.GOAL] | typing.Literal[EntityType.INGREDIENT_TAG_MAP] | typing.Literal[EntityType.INGREDIENT_TAG] | typing.Literal[EntityType.CONDITION_PARAMETER] | typing.Literal[EntityType.OUTPUT] | typing.Literal[EntityType.OUTPUT_CONDITION_PARAMETER] | typing.Literal[EntityType.ASYNC_JOB] | typing.Literal[EntityType.CONSTRAINT] | typing.Literal[EntityType.INGREDIENT_CATEGORY_ALL] | typing.Literal[EntityType.TIME_SERIES_SEGMENT] | typing.Literal[EntityType.EQUIPMENT_MAINTENANCE] | typing.Literal[EntityType.MAINTENANCE_SCHEDULE] | typing.Literal[EntityType.CONDITION_PARAMETER_RULE] | typing.Literal[EntityType.INGREDIENT] | typing.Literal[EntityType.TIMESHEET_ENTRY] | typing.Literal[EntityType.SAVE] | typing.Literal[EntityType.RECIPE_CHECK],
|
|
401
|
+
typing.Literal[EntityType.LAB_REQUEST] | typing.Literal[EntityType.APPROVAL] | typing.Literal[EntityType.CUSTOM_ENTITY] | typing.Literal[EntityType.INGREDIENT_ATTRIBUTE] | typing.Literal[EntityType.INVENTORY_AMOUNT] | typing.Literal[EntityType.TASK] | typing.Literal[EntityType.PROJECT] | typing.Literal[EntityType.EQUIPMENT] | typing.Literal[EntityType.INV_LOCAL_LOCATIONS] | typing.Literal[EntityType.FIELD_OPTION_SET] | typing.Literal[EntityType.WEBHOOK] | typing.Literal[EntityType.SPECS] | typing.Literal[EntityType.GOAL] | typing.Literal[EntityType.INGREDIENT_TAG_MAP] | typing.Literal[EntityType.INGREDIENT_TAG] | typing.Literal[EntityType.CONDITION_PARAMETER] | typing.Literal[EntityType.OUTPUT] | typing.Literal[EntityType.OUTPUT_CONDITION_PARAMETER] | typing.Literal[EntityType.ASYNC_JOB] | typing.Literal[EntityType.CONSTRAINT] | typing.Literal[EntityType.INGREDIENT_CATEGORY_ALL] | typing.Literal[EntityType.TIME_SERIES_SEGMENT] | typing.Literal[EntityType.EQUIPMENT_MAINTENANCE] | typing.Literal[EntityType.MAINTENANCE_SCHEDULE] | typing.Literal[EntityType.CONDITION_PARAMETER_RULE] | typing.Literal[EntityType.INGREDIENT] | typing.Literal[EntityType.TIMESHEET_ENTRY] | typing.Literal[EntityType.SAVE] | typing.Literal[EntityType.RECIPE_CHECK] | typing.Literal[EntityType.EXPERIMENT_GROUP_MEMBER],
|
|
402
402
|
serial_alias_annotation(
|
|
403
403
|
named_type_path="sdk.entity.LimitedEntityType",
|
|
404
404
|
),
|
uncountable/types/queued_job.py
CHANGED
|
@@ -13,4 +13,5 @@ from .queued_job_t import QueuedJobPayload as QueuedJobPayload
|
|
|
13
13
|
from .queued_job_t import QueuedJobResult as QueuedJobResult
|
|
14
14
|
from .queued_job_t import QueuedJobMetadata as QueuedJobMetadata
|
|
15
15
|
from .queued_job_t import QueuedJob as QueuedJob
|
|
16
|
+
from .queued_job_t import JobStatus as JobStatus
|
|
16
17
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -20,6 +20,7 @@ __all__: list[str] = [
|
|
|
20
20
|
"InvocationContextManual",
|
|
21
21
|
"InvocationContextType",
|
|
22
22
|
"InvocationContextWebhook",
|
|
23
|
+
"JobStatus",
|
|
23
24
|
"QueuedJob",
|
|
24
25
|
"QueuedJobMetadata",
|
|
25
26
|
"QueuedJobPayload",
|
|
@@ -119,6 +120,7 @@ class QueuedJobMetadata:
|
|
|
119
120
|
job_ref_name: str
|
|
120
121
|
num_attempts: int
|
|
121
122
|
submitted_at: datetime.datetime
|
|
123
|
+
status: JobStatus | None = None
|
|
122
124
|
|
|
123
125
|
|
|
124
126
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -128,4 +130,11 @@ class QueuedJobMetadata:
|
|
|
128
130
|
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
129
131
|
class QueuedJob(QueuedJobMetadata):
|
|
130
132
|
payload: QueuedJobPayload
|
|
133
|
+
|
|
134
|
+
|
|
135
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
136
|
+
class JobStatus(StrEnum):
|
|
137
|
+
QUEUED = "queued"
|
|
138
|
+
FAILED = "failed"
|
|
139
|
+
SUCCESS = "success"
|
|
131
140
|
# DO NOT MODIFY -- This file is generated by type_spec
|
uncountable/types/sockets.py
CHANGED
|
@@ -8,4 +8,13 @@ from .sockets_t import SocketRequestType as SocketRequestType
|
|
|
8
8
|
from .sockets_t import SocketRequestIntegrationSession as SocketRequestIntegrationSession
|
|
9
9
|
from .sockets_t import SocketTokenRequest as SocketTokenRequest
|
|
10
10
|
from .sockets_t import SocketTokenResponse as SocketTokenResponse
|
|
11
|
+
from .sockets_t import SocketEventType as SocketEventType
|
|
12
|
+
from .sockets_t import BaseSocketEventData as BaseSocketEventData
|
|
13
|
+
from .sockets_t import UsersInRoomUpdatedEventData as UsersInRoomUpdatedEventData
|
|
14
|
+
from .sockets_t import SocketEventData as SocketEventData
|
|
15
|
+
from .sockets_t import SocketResponse as SocketResponse
|
|
16
|
+
from .sockets_t import SocketClientMessageType as SocketClientMessageType
|
|
17
|
+
from .sockets_t import JoinRoomWithTokenSocketClientMessage as JoinRoomWithTokenSocketClientMessage
|
|
18
|
+
from .sockets_t import SendInstrumentReadingClientMessage as SendInstrumentReadingClientMessage
|
|
19
|
+
from .sockets_t import SocketClientMessage as SocketClientMessage
|
|
11
20
|
# DO NOT MODIFY -- This file is generated by type_spec
|
uncountable/types/sockets_t.py
CHANGED
|
@@ -10,15 +10,25 @@ from enum import StrEnum
|
|
|
10
10
|
import dataclasses
|
|
11
11
|
from pkgs.serialization import serial_class
|
|
12
12
|
from pkgs.serialization import serial_union_annotation
|
|
13
|
+
from pkgs.serialization import serial_alias_annotation
|
|
13
14
|
from . import base_t
|
|
14
15
|
from . import integration_session_t
|
|
15
16
|
|
|
16
17
|
__all__: list[str] = [
|
|
18
|
+
"BaseSocketEventData",
|
|
19
|
+
"JoinRoomWithTokenSocketClientMessage",
|
|
20
|
+
"SendInstrumentReadingClientMessage",
|
|
21
|
+
"SocketClientMessage",
|
|
22
|
+
"SocketClientMessageType",
|
|
23
|
+
"SocketEventData",
|
|
24
|
+
"SocketEventType",
|
|
17
25
|
"SocketRequestBase",
|
|
18
26
|
"SocketRequestIntegrationSession",
|
|
19
27
|
"SocketRequestType",
|
|
28
|
+
"SocketResponse",
|
|
20
29
|
"SocketTokenRequest",
|
|
21
30
|
"SocketTokenResponse",
|
|
31
|
+
"UsersInRoomUpdatedEventData",
|
|
22
32
|
]
|
|
23
33
|
|
|
24
34
|
|
|
@@ -67,4 +77,93 @@ SocketTokenRequest = typing.Annotated[
|
|
|
67
77
|
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
68
78
|
class SocketTokenResponse:
|
|
69
79
|
token: str
|
|
80
|
+
room_key: str
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
84
|
+
class SocketEventType(StrEnum):
|
|
85
|
+
USERS_IN_ROOM_UPDATED = "users_in_room_updated"
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
89
|
+
@serial_class(
|
|
90
|
+
named_type_path="sdk.sockets.BaseSocketEventData",
|
|
91
|
+
)
|
|
92
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
93
|
+
class BaseSocketEventData:
|
|
94
|
+
pass
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
98
|
+
@serial_class(
|
|
99
|
+
named_type_path="sdk.sockets.UsersInRoomUpdatedEventData",
|
|
100
|
+
parse_require={"type"},
|
|
101
|
+
)
|
|
102
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
103
|
+
class UsersInRoomUpdatedEventData(BaseSocketEventData):
|
|
104
|
+
type: typing.Literal[SocketEventType.USERS_IN_ROOM_UPDATED] = SocketEventType.USERS_IN_ROOM_UPDATED
|
|
105
|
+
user_ids: list[base_t.ObjectId]
|
|
106
|
+
number_of_connections: int
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
110
|
+
SocketEventData = typing.Annotated[
|
|
111
|
+
typing.Union[UsersInRoomUpdatedEventData],
|
|
112
|
+
serial_alias_annotation(
|
|
113
|
+
named_type_path="sdk.sockets.SocketEventData",
|
|
114
|
+
),
|
|
115
|
+
]
|
|
116
|
+
|
|
117
|
+
|
|
118
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
119
|
+
@serial_class(
|
|
120
|
+
named_type_path="sdk.sockets.SocketResponse",
|
|
121
|
+
)
|
|
122
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
123
|
+
class SocketResponse:
|
|
124
|
+
data: SocketEventData
|
|
125
|
+
|
|
126
|
+
|
|
127
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
128
|
+
class SocketClientMessageType(StrEnum):
|
|
129
|
+
JOIN_ROOM_WITH_TOKEN = "join_room_with_token"
|
|
130
|
+
SEND_INSTRUMENT_READING = "send_instrument_reading"
|
|
131
|
+
|
|
132
|
+
|
|
133
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
134
|
+
@serial_class(
|
|
135
|
+
named_type_path="sdk.sockets.JoinRoomWithTokenSocketClientMessage",
|
|
136
|
+
parse_require={"type"},
|
|
137
|
+
)
|
|
138
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
139
|
+
class JoinRoomWithTokenSocketClientMessage:
|
|
140
|
+
type: typing.Literal[SocketClientMessageType.JOIN_ROOM_WITH_TOKEN] = SocketClientMessageType.JOIN_ROOM_WITH_TOKEN
|
|
141
|
+
token: str
|
|
142
|
+
|
|
143
|
+
|
|
144
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
145
|
+
@serial_class(
|
|
146
|
+
named_type_path="sdk.sockets.SendInstrumentReadingClientMessage",
|
|
147
|
+
to_string_values={"value"},
|
|
148
|
+
parse_require={"type"},
|
|
149
|
+
)
|
|
150
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
151
|
+
class SendInstrumentReadingClientMessage:
|
|
152
|
+
type: typing.Literal[SocketClientMessageType.SEND_INSTRUMENT_READING] = SocketClientMessageType.SEND_INSTRUMENT_READING
|
|
153
|
+
room_key: str
|
|
154
|
+
value: Decimal
|
|
155
|
+
|
|
156
|
+
|
|
157
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
158
|
+
SocketClientMessage = typing.Annotated[
|
|
159
|
+
JoinRoomWithTokenSocketClientMessage | SendInstrumentReadingClientMessage,
|
|
160
|
+
serial_union_annotation(
|
|
161
|
+
named_type_path="sdk.sockets.SocketClientMessage",
|
|
162
|
+
discriminator="type",
|
|
163
|
+
discriminator_map={
|
|
164
|
+
"join_room_with_token": JoinRoomWithTokenSocketClientMessage,
|
|
165
|
+
"send_instrument_reading": SendInstrumentReadingClientMessage,
|
|
166
|
+
},
|
|
167
|
+
),
|
|
168
|
+
]
|
|
70
169
|
# DO NOT MODIFY -- This file is generated by type_spec
|
uncountable/types/uploader_t.py
CHANGED
|
@@ -162,13 +162,14 @@ class TextChannelData(BaseData):
|
|
|
162
162
|
|
|
163
163
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
164
164
|
Channel = typing.Annotated[
|
|
165
|
-
TextChannelData | TimestampChannelData,
|
|
165
|
+
TextChannelData | TimestampChannelData | NumericChannelData,
|
|
166
166
|
serial_union_annotation(
|
|
167
167
|
named_type_path="sdk.uploader.Channel",
|
|
168
168
|
discriminator="type",
|
|
169
169
|
discriminator_map={
|
|
170
170
|
"text_channel": TextChannelData,
|
|
171
171
|
"timestamp_channel": TimestampChannelData,
|
|
172
|
+
"numeric_channel": NumericChannelData,
|
|
172
173
|
},
|
|
173
174
|
),
|
|
174
175
|
]
|
|
@@ -216,6 +217,6 @@ StructureElement = typing.Annotated[
|
|
|
216
217
|
)
|
|
217
218
|
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
218
219
|
class ParsedFileData:
|
|
219
|
-
|
|
220
|
+
file_name: str
|
|
220
221
|
file_structures: list[StructureElement]
|
|
221
222
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: UncountablePythonSDK
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.128
|
|
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
|
|
@@ -27,14 +27,16 @@ examples/oauth.py,sha256=QUmv4c27UDs3q98yigyA_Sm3hdK5qNfnDvxh7k06ZYg,213
|
|
|
27
27
|
examples/set_recipe_metadata_file.py,sha256=cRVXGz4UN4aqnNrNSzyBmikYHpe63lMIuzOpMwD9EDU,1036
|
|
28
28
|
examples/set_recipe_output_file_sdk.py,sha256=Lz1amqppnWTX83z-C090wCJ4hcKmCD3kb-4v0uBRi0Y,782
|
|
29
29
|
examples/upload_files.py,sha256=qMaSvMSdTMPOOP55y1AwEurc0SOdZAMvEydlqJPsGpg,432
|
|
30
|
-
examples/integration-server/pyproject.toml,sha256=
|
|
30
|
+
examples/integration-server/pyproject.toml,sha256=Ng2BjCVfKgSEASkZ5I65M2cY2ytjhvFtSFFIPDgdHmU,9106
|
|
31
31
|
examples/integration-server/jobs/materials_auto/concurrent_cron.py,sha256=xsK3H9ZEaniedC2nJUB0rqOcFI8y-ojfl_nLSJb9AMM,312
|
|
32
32
|
examples/integration-server/jobs/materials_auto/example_cron.py,sha256=spUMiiTEFaepbVXecjD_4aEEfqEtZGGZuWTKs9J6Xcw,736
|
|
33
33
|
examples/integration-server/jobs/materials_auto/example_http.py,sha256=eIL46ElWo8SKY7W5JWWkwZk6Qo7KRd9EJBxfy7YQ_sE,1429
|
|
34
|
-
examples/integration-server/jobs/materials_auto/example_instrument.py,sha256=
|
|
35
|
-
examples/integration-server/jobs/materials_auto/
|
|
34
|
+
examples/integration-server/jobs/materials_auto/example_instrument.py,sha256=R2iIRs-2a_9S0LOE42RhglDpZhRkMEa6pCPCxMdqRoI,3438
|
|
35
|
+
examples/integration-server/jobs/materials_auto/example_parse.py,sha256=Rf1tlUoIaY5Py12NhnXzsiZerbTwvX_EdcGUABGv-qI,3489
|
|
36
|
+
examples/integration-server/jobs/materials_auto/example_predictions.py,sha256=8eiKNq9rocOceLrfqbTop3iwXgIr25NTfjXXKBKIVfI,2104
|
|
37
|
+
examples/integration-server/jobs/materials_auto/example_runsheet_wh.py,sha256=Mhh3PM1j_M35UnMllYNLbTvpMoIcoMOoHIPDaabN_hs,1235
|
|
36
38
|
examples/integration-server/jobs/materials_auto/example_wh.py,sha256=PN-skP27yJwDZboWk5g5EZEc3AKfVayQLfnopjsDKJc,659
|
|
37
|
-
examples/integration-server/jobs/materials_auto/profile.yaml,sha256=
|
|
39
|
+
examples/integration-server/jobs/materials_auto/profile.yaml,sha256=ywDrDRAyqiUdj_HvosNP5bXBL8mCWsvdJ1eYQd-mGYo,2369
|
|
38
40
|
pkgs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
39
41
|
pkgs/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
40
42
|
pkgs/argument_parser/__init__.py,sha256=EG3pwLEHTp-Qltd3lRnO4K22RiVrasePzKPDOfTPxFY,924
|
|
@@ -68,14 +70,14 @@ pkgs/strenum_compat/__init__.py,sha256=wXRFeNvBm8RU6dy1PFJ5sRLgUIEeH_DVR95Sv5qpG
|
|
|
68
70
|
pkgs/strenum_compat/strenum_compat.py,sha256=uOUAgpYTjHs1MX8dG81jRlyTkt3KNbkV_25zp7xTX2s,36
|
|
69
71
|
pkgs/type_spec/__init__.py,sha256=h5DmJTca4QVV10sZR1x0-MlkZfuGYDfapR3zHvXfzto,19
|
|
70
72
|
pkgs/type_spec/__main__.py,sha256=5bJaX9Y_-FavP0qwzhk-z-V97UY7uaezJTa1zhO_HHQ,1048
|
|
71
|
-
pkgs/type_spec/builder.py,sha256=
|
|
73
|
+
pkgs/type_spec/builder.py,sha256=nR6Oj3_zen7VuL9-BxUyteHhiJchNNqiREYY7sKstD8,54973
|
|
72
74
|
pkgs/type_spec/config.py,sha256=m0Rky7Rg2jMglDPQChF30p5h5P86Ap1GObwzLzmypNE,5829
|
|
73
75
|
pkgs/type_spec/cross_output_links.py,sha256=ttFNfuQmR3sNnPSeUER5IPgLiYc-FB5gjlf7RyFYMpc,3293
|
|
74
76
|
pkgs/type_spec/emit_io_ts.py,sha256=CUvBs0boB_X-Kndh66yYcqFfq3oC_LGs8YffLkJ0ZXA,5707
|
|
75
77
|
pkgs/type_spec/emit_open_api.py,sha256=pvb41mJhHPATOJ6473q2-WGExyz7w-Q_msEiJlDA6TQ,28453
|
|
76
78
|
pkgs/type_spec/emit_open_api_util.py,sha256=bTmRvrGP82-eB75hwf9ySI7pDEC87FNQTF18VKEWSXY,2367
|
|
77
79
|
pkgs/type_spec/emit_python.py,sha256=aURsc-wWdamVDCrIWxA7s8_MLAMjLdXZor6ykkibzXY,52707
|
|
78
|
-
pkgs/type_spec/emit_typescript.py,sha256=
|
|
80
|
+
pkgs/type_spec/emit_typescript.py,sha256=v0af0jF4YSGnFteWCNoKU0FjC_iJsWYAM32CCg0TnY8,11483
|
|
79
81
|
pkgs/type_spec/emit_typescript_util.py,sha256=ChP4oF2ZJoL0qErGCL0nscj0w_yH6TBgE92MtQS8nPI,11638
|
|
80
82
|
pkgs/type_spec/load_types.py,sha256=JL7tX2H_cy3p5HjGuvNFJlY4pDSbDVnYFsh9mK16-ic,4302
|
|
81
83
|
pkgs/type_spec/non_discriminated_union_exceptions.py,sha256=JB4WNDJWc3e9WMOabX4aTd0-6K7n1hctIW2lGf1bYts,612
|
|
@@ -88,11 +90,11 @@ pkgs/type_spec/actions_registry/emit_typescript.py,sha256=W1lI36ITdJ7MBf37wlTB7H
|
|
|
88
90
|
pkgs/type_spec/parts/base.py.prepart,sha256=Xy8my5ol_Iu0hpQpvgsmqGLkGcMsLSg-cgjm4Yp-QI4,2369
|
|
89
91
|
pkgs/type_spec/parts/base.ts.prepart,sha256=42-1_N_K04t4c6pE62V4wBw3bR5bgPxhmXUk__A7gAs,1002
|
|
90
92
|
pkgs/type_spec/type_info/__main__.py,sha256=TLNvCHGcmaj_8Sj5bAQNpuNaaw2dpDzoFDWZds0V4Qo,1002
|
|
91
|
-
pkgs/type_spec/type_info/emit_type_info.py,sha256=
|
|
93
|
+
pkgs/type_spec/type_info/emit_type_info.py,sha256=9ohy6NePfKSCTQZATe7GvWBYXAzCvjdwgvQuWPN3iqo,16309
|
|
92
94
|
pkgs/type_spec/ui_entry_actions/__init__.py,sha256=WiHE_BexOEZWbkkbD7EnFau1aMLNmfgQywG9PTQNCkw,135
|
|
93
95
|
pkgs/type_spec/ui_entry_actions/generate_ui_entry_actions.py,sha256=65qUEp9zVcAsHEe3QjOTlPfLf45kH980fOXZXKNmOC8,9503
|
|
94
96
|
pkgs/type_spec/value_spec/__init__.py,sha256=Z-grlcZtxAfEXhPHsK0nD7PFLGsv4eqvunaPN7_TA84,83
|
|
95
|
-
pkgs/type_spec/value_spec/__main__.py,sha256=
|
|
97
|
+
pkgs/type_spec/value_spec/__main__.py,sha256=5AYiYY4Zg2h6nO5L0mfM59wVAVv58du84a9L2jRzp5A,8899
|
|
96
98
|
pkgs/type_spec/value_spec/convert_type.py,sha256=OvP7dwUMHXNHVXWYT4jkaYJ96S3a2SnFuC_iMdYVB7s,2927
|
|
97
99
|
pkgs/type_spec/value_spec/emit_python.py,sha256=OmSvhR5RO_h2wJOVtulkv_Jr0OUJtZ28TfjLuYl2VY8,7413
|
|
98
100
|
pkgs/type_spec/value_spec/types.py,sha256=Yc3LaKHN1G6wbgrBv0dpu5vijUXtS2GcDTusYPnDvK0,454
|
|
@@ -105,50 +107,50 @@ uncountable/core/environment.py,sha256=4gdJB0ZhRxKlqSKLaE4vUvEUGZ5fy8IAwXcGDRdYt
|
|
|
105
107
|
uncountable/core/file_upload.py,sha256=bgvXk9vfF5qlhy2NAUcEEG7Q7i-c1wr2HrpaWD7HldU,4516
|
|
106
108
|
uncountable/core/types.py,sha256=s2CjqYJpsmbC7xMwxxT7kJ_V9bwokrjjWVVjpMcQpKI,333
|
|
107
109
|
uncountable/integration/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
108
|
-
uncountable/integration/cli.py,sha256=
|
|
110
|
+
uncountable/integration/cli.py,sha256=sCE0Cz4tMzlzgD3-3P7XmgTUTBinR_yeNkaC-vvPZGg,4495
|
|
109
111
|
uncountable/integration/construct_client.py,sha256=I53mGcdS88hba3HFwgXmWQaTd1d5u0jWNSwyc_vlVsQ,1937
|
|
110
112
|
uncountable/integration/cron.py,sha256=6eH-kIs3sdYPCyb62_L2M7U_uQTdMTdwY5hreEJb0hw,887
|
|
111
113
|
uncountable/integration/entrypoint.py,sha256=BHOYPQgKvZE6HG8Rv15MkdYl8lRkvfDgv1OdLo0oQ9Q,433
|
|
112
|
-
uncountable/integration/job.py,sha256=
|
|
114
|
+
uncountable/integration/job.py,sha256=brXg6cod4eKNfgPB1J6a0hnrWOrJxRRF571shvxHBw8,8237
|
|
113
115
|
uncountable/integration/scan_profiles.py,sha256=RHBmPc5E10YZzf4cmglwrn2yAy0jHBhQ-P_GlAk2TeU,2919
|
|
114
116
|
uncountable/integration/scheduler.py,sha256=vJQGpuMgryFp5aCQEg5BIvywnu4t3SSFcGoLfY10LKg,6610
|
|
115
|
-
uncountable/integration/server.py,sha256=
|
|
116
|
-
uncountable/integration/telemetry.py,sha256=
|
|
117
|
+
uncountable/integration/server.py,sha256=fU7d26546WA-IRwL8wqWM62ogx28YvTmNd9kQ7c56WI,5787
|
|
118
|
+
uncountable/integration/telemetry.py,sha256=bWfOm4B_ajen4WWIz6tYJSUBGAw3O7nyvhh9Zr3lV9g,8692
|
|
117
119
|
uncountable/integration/db/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
118
120
|
uncountable/integration/db/connect.py,sha256=mE3bdV0huclH2iT_dXCQdRL4LkjIuf_myAR64RTWXEs,498
|
|
119
121
|
uncountable/integration/db/session.py,sha256=96cGQXpe6IugBTdSsjdP0S5yhJ6toSmbVB6qhc3FJzE,693
|
|
120
122
|
uncountable/integration/executors/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
121
|
-
uncountable/integration/executors/executors.py,sha256=
|
|
122
|
-
uncountable/integration/executors/generic_upload_executor.py,sha256=
|
|
123
|
+
uncountable/integration/executors/executors.py,sha256=vrwlUTh_gaso2KH3sNoa4MavXFND2ap5hG5FsyURAPM,5427
|
|
124
|
+
uncountable/integration/executors/generic_upload_executor.py,sha256=BdakXkAvNvLcM96fGvN0Jw2jCvGah6Q29vlXcX1nL-A,12094
|
|
123
125
|
uncountable/integration/executors/script_executor.py,sha256=BBQ9f0l7uH2hgKf60jtm-pONzwk-EeOhM2qBAbv_URo,846
|
|
124
126
|
uncountable/integration/http_server/__init__.py,sha256=WY2HMcL0UCAGYv8y6Pz-j0azbDGXwubFF21EH_zNPkc,189
|
|
125
127
|
uncountable/integration/http_server/types.py,sha256=3JJSulRfv784SbXnXo1Pywto7RwGxgS-iJ2-a6TOnDI,1869
|
|
126
128
|
uncountable/integration/queue_runner/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
127
|
-
uncountable/integration/queue_runner/job_scheduler.py,sha256=
|
|
129
|
+
uncountable/integration/queue_runner/job_scheduler.py,sha256=u11eB70qBwXK5_Csx1z9n0utr9288Zo8QOt26aSqfkE,7798
|
|
128
130
|
uncountable/integration/queue_runner/queue_runner.py,sha256=N4sUXmlGzVquybiJ7NQZavCJOBGrxBj6k7mb-TITaN0,1139
|
|
129
131
|
uncountable/integration/queue_runner/types.py,sha256=8qTq29BTSa5rmW6CBlBntP0pNIiDcwu1wHa78pjroS0,219
|
|
130
|
-
uncountable/integration/queue_runner/worker.py,sha256=
|
|
131
|
-
uncountable/integration/queue_runner/command_server/__init__.py,sha256=
|
|
132
|
-
uncountable/integration/queue_runner/command_server/command_client.py,sha256=
|
|
133
|
-
uncountable/integration/queue_runner/command_server/command_server.py,sha256=
|
|
132
|
+
uncountable/integration/queue_runner/worker.py,sha256=pxnFxubT_siS4SMckNCz9PXxoRjEbTYddlt05Fgd3Fc,4493
|
|
133
|
+
uncountable/integration/queue_runner/command_server/__init__.py,sha256=hMCDLWct8zW4B2a9BaIAsMhtaEgFlxONjeow-6nf6dg,675
|
|
134
|
+
uncountable/integration/queue_runner/command_server/command_client.py,sha256=lT_wiDKQQxIq1ercaiU_5RJanuBNAvcEK9se7pQVP58,4039
|
|
135
|
+
uncountable/integration/queue_runner/command_server/command_server.py,sha256=cS3zh9rOzlL_hRCZYYP7JcKarc3joKxRzTvgYoa1c5w,5338
|
|
134
136
|
uncountable/integration/queue_runner/command_server/constants.py,sha256=7J9mQIAMOfV50wnwpn7HgrPFEi3Ritj6HwrGYwxGLoU,88
|
|
135
|
-
uncountable/integration/queue_runner/command_server/types.py,sha256=
|
|
137
|
+
uncountable/integration/queue_runner/command_server/types.py,sha256=fyYj4ZLEWyguKNoGfowLbnihRsEyQt-jW0U2oLTXsHI,1583
|
|
136
138
|
uncountable/integration/queue_runner/command_server/protocol/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
137
|
-
uncountable/integration/queue_runner/command_server/protocol/command_server.proto,sha256=
|
|
138
|
-
uncountable/integration/queue_runner/command_server/protocol/command_server_pb2.py,sha256=
|
|
139
|
-
uncountable/integration/queue_runner/command_server/protocol/command_server_pb2.pyi,sha256=
|
|
140
|
-
uncountable/integration/queue_runner/command_server/protocol/command_server_pb2_grpc.py,sha256=
|
|
139
|
+
uncountable/integration/queue_runner/command_server/protocol/command_server.proto,sha256=W1TZUgeR1Ok13-Dt0gqsHsSPAZyvnBJ128oDoasO2x0,1248
|
|
140
|
+
uncountable/integration/queue_runner/command_server/protocol/command_server_pb2.py,sha256=FgMQ3FK_vG53zRTIcYfcmcdPF5S6vM7OqfR-7XXrhWk,4240
|
|
141
|
+
uncountable/integration/queue_runner/command_server/protocol/command_server_pb2.pyi,sha256=GKwiD_srfLWqOBfutl0eCOOFOajwvS2e8rEgVkur5Ao,3844
|
|
142
|
+
uncountable/integration/queue_runner/command_server/protocol/command_server_pb2_grpc.py,sha256=ZTPS7GnC1ZoNgM73K6qRlzA-OdmXAHqUqa1cxB3WhPI,11755
|
|
141
143
|
uncountable/integration/queue_runner/datastore/__init__.py,sha256=6BefApqN8D2zlVOH14QAeVzwQ8j5NIb41-njT02Za0k,88
|
|
142
|
-
uncountable/integration/queue_runner/datastore/datastore_sqlite.py,sha256=
|
|
144
|
+
uncountable/integration/queue_runner/datastore/datastore_sqlite.py,sha256=QFIZRDT1AwR9k73LdA8BTXNZrmdUYeEUwnLZGUahnPs,9596
|
|
143
145
|
uncountable/integration/queue_runner/datastore/interface.py,sha256=tNlnY00D_OyuNOL3x_FtHXcJZAAON3SeX7fEU5C8z1U,824
|
|
144
|
-
uncountable/integration/queue_runner/datastore/model.py,sha256=
|
|
146
|
+
uncountable/integration/queue_runner/datastore/model.py,sha256=YPqlULU7FxuwjmhXGuj6P7skqs-JQttY-o0x1bCnBa0,775
|
|
145
147
|
uncountable/integration/secret_retrieval/__init__.py,sha256=3QXVj35w8rRMxVvmmsViFYDi3lcb3g70incfalOEm6o,87
|
|
146
148
|
uncountable/integration/secret_retrieval/retrieve_secret.py,sha256=LBEf18KHtXZxg-ZZ80stJ1vW39AWf0CQllP6pNu3Eq8,2994
|
|
147
149
|
uncountable/integration/webhook_server/entrypoint.py,sha256=NQawXl_JCRojdVniS5RF7dobQQKW_Wy03bwy-uXknuA,3441
|
|
148
|
-
uncountable/types/__init__.py,sha256=
|
|
150
|
+
uncountable/types/__init__.py,sha256=eN_s-D4sk-l1V_iRTr2qa4A1kWyuKzpk2MrAAlSlB3M,11059
|
|
149
151
|
uncountable/types/async_batch.py,sha256=yCCWrrLQfxXVqZp-KskxLBNkNmuELdz4PJjx8ULppgs,662
|
|
150
|
-
uncountable/types/async_batch_processor.py,sha256=
|
|
151
|
-
uncountable/types/async_batch_t.py,sha256=
|
|
152
|
+
uncountable/types/async_batch_processor.py,sha256=TKAzEDBpwQ9FKQdkiFa_bcAyZ2EffpAx8GsA6whObQo,28215
|
|
153
|
+
uncountable/types/async_batch_t.py,sha256=E3Lo2_wot1lm0oblkLc9Uf5lmMt_zlw0VQ1yA507z8g,3945
|
|
152
154
|
uncountable/types/async_jobs.py,sha256=JI0ScfawaqMRbJ2jbgW3YQLhijPnBeYdMnZJjygSxHg,322
|
|
153
155
|
uncountable/types/async_jobs_t.py,sha256=u4xd3i512PZ-9592Q2ZgWh_faMiI4UMm0F_gOmZnerI,1389
|
|
154
156
|
uncountable/types/auth_retrieval.py,sha256=770zjN1K9EF5zs1Xml7x6ke6Hkze7rcMT5FdDVCIl9M,549
|
|
@@ -159,7 +161,7 @@ uncountable/types/calculations.py,sha256=fApOFpgBemt_t7IVneVR0VdI3X5EOxiG6Xhzr6R
|
|
|
159
161
|
uncountable/types/calculations_t.py,sha256=pl-lhjyDQuj11Sf9g1-0BsSkN7Ez8UxDp8-KMQ_3enM,709
|
|
160
162
|
uncountable/types/chemical_structure.py,sha256=ujyragaD26-QG5jgKnWhO7TN3N1V9b_04T2WhqNYxxo,281
|
|
161
163
|
uncountable/types/chemical_structure_t.py,sha256=VFFyits_vx4t5L2euu_qFiSpsGJjURkDPr3ISnr3nPc,855
|
|
162
|
-
uncountable/types/client_base.py,sha256=
|
|
164
|
+
uncountable/types/client_base.py,sha256=2HCcT8J0Fb8DXlubq1vLHoCA-LQuki6hpLN3I8Z8p3Y,81359
|
|
163
165
|
uncountable/types/client_config.py,sha256=qLpHt4O_B098CyN6qQajoxZ2zjZ1DILXLUEGyyGP0TQ,280
|
|
164
166
|
uncountable/types/client_config_t.py,sha256=yTFIYAitMrcc4oV9J-HADODS_Hwi45z-piz7rr7QT04,781
|
|
165
167
|
uncountable/types/curves.py,sha256=QyEyC20jsG-LGKVx6miiF-w70vKMwNkILFBDIJ5Ok9g,345
|
|
@@ -167,7 +169,7 @@ uncountable/types/curves_t.py,sha256=DxYepdC3QKKR7mepOOBoyarNcFZQdUa5ZYH-hwCY3BI
|
|
|
167
169
|
uncountable/types/data.py,sha256=u2isf4XEug3Eu-xSIoqGaCQmW2dFaKBHCkP_WKYwwBc,500
|
|
168
170
|
uncountable/types/data_t.py,sha256=vFoypK_WMGfN28r1sSlDYHZNUdBQC0XCN7-_Mlo4FJk,2832
|
|
169
171
|
uncountable/types/entity.py,sha256=Zclk1LYcRaYrMDhqyCjMSLEg0fE6_q8LHvV22Qvscgs,566
|
|
170
|
-
uncountable/types/entity_t.py,sha256=
|
|
172
|
+
uncountable/types/entity_t.py,sha256=eHSnrO4u6GbPaMaQsRar8o3Jy5cllH1QeYn-19S9C_I,20795
|
|
171
173
|
uncountable/types/experiment_groups.py,sha256=qUpFOx1AKgzaT_4khCOv5Xs6jwiQGbvHH-GUh3v1nv4,288
|
|
172
174
|
uncountable/types/experiment_groups_t.py,sha256=29Ct-WPejpYMuGfnFfOoosU9iSfjzxpabpBX6oTPFUA,761
|
|
173
175
|
uncountable/types/exports.py,sha256=VMmxUO2PpV1Y63hZ2AnVor4H-B6aswJ7YpSru_u89lU,334
|
|
@@ -206,8 +208,8 @@ uncountable/types/phases.py,sha256=Capx0Tbx52151tHWw8tdOT_NMKMOyHZhrNuGrhuBzfo,2
|
|
|
206
208
|
uncountable/types/phases_t.py,sha256=q6ooPMO60JhzoE_a6MrSmDHYXKyTcRr4TXez3Xu64uE,685
|
|
207
209
|
uncountable/types/post_base.py,sha256=nHqFw6U6ENxcuj_Y3VG-Sk1NEt4Tud2iBxPhRsJpQKM,258
|
|
208
210
|
uncountable/types/post_base_t.py,sha256=nZl7XQHc9cSnLgccaBZM93bcnSSjTlo2_TL40n-o7K0,734
|
|
209
|
-
uncountable/types/queued_job.py,sha256=
|
|
210
|
-
uncountable/types/queued_job_t.py,sha256=
|
|
211
|
+
uncountable/types/queued_job.py,sha256=ifVXTwYqb1W_o-_6W52B0uYboGqKEj7s-LnQBUJ7ILg,935
|
|
212
|
+
uncountable/types/queued_job_t.py,sha256=BdYls1sZuRDzT2WvLRY1eZHTQ5s1pXnO7J6CGeVBAq4,4455
|
|
211
213
|
uncountable/types/recipe_identifiers.py,sha256=nqrubqofaeg_zV6vOrzqbiuX5tDUQYrGyvugpWX38mY,633
|
|
212
214
|
uncountable/types/recipe_identifiers_t.py,sha256=OpA884KEZEWrymlwEDwIkuv_qrEiNV9kyBuLeBeD0N8,2443
|
|
213
215
|
uncountable/types/recipe_inputs.py,sha256=dLqKvac-Ff3owutgvBD8Hc5KPoiu-6Zy22WOUJtAuus,330
|
|
@@ -228,12 +230,12 @@ uncountable/types/response.py,sha256=SJTwjTxZGItGJJYPZ_T1zTooEbtR5ZA8GT_cf8aXfn8
|
|
|
228
230
|
uncountable/types/response_t.py,sha256=EJwr5j9IZrtmyD4k8PxHSmTtHa470XkZCQYIpbpsJx0,728
|
|
229
231
|
uncountable/types/secret_retrieval.py,sha256=poY_nuZBIjNu64Wa0x5Ytsmh3OdAxps2kzuDgv1sa_8,571
|
|
230
232
|
uncountable/types/secret_retrieval_t.py,sha256=igWrOW_CwRvAE7BHIHVJojBwgcAG05Pqup8D45Sb0F4,2342
|
|
231
|
-
uncountable/types/sockets.py,sha256=
|
|
232
|
-
uncountable/types/sockets_t.py,sha256=
|
|
233
|
+
uncountable/types/sockets.py,sha256=OogyQ-pLyhJkV6JrBSLTOz9v6cDViYY5QM1ScSXPU3U,1208
|
|
234
|
+
uncountable/types/sockets_t.py,sha256=s--y5nbN4uHA2HVKW6rOz3HwIMk3MT2VKGXCA7reXb4,5608
|
|
233
235
|
uncountable/types/units.py,sha256=yxuddayiE8cnzrjQiIsURisWc-Vm1F37uyS3fjM--Ao,254
|
|
234
236
|
uncountable/types/units_t.py,sha256=d62vY2ETqIgMHASw_IcREwDDqKAqI-vPnoBOqzMt4-o,704
|
|
235
237
|
uncountable/types/uploader.py,sha256=odT7wkBfXUf1MoFy6W5JzZ-WY8JX0vO6odGOS_C2Voo,1222
|
|
236
|
-
uncountable/types/uploader_t.py,sha256=
|
|
238
|
+
uncountable/types/uploader_t.py,sha256=msC5P-l0EUHXvG7HjoFsf-sOymvxAj6lJk2BpM5MvZY,6747
|
|
237
239
|
uncountable/types/users.py,sha256=R-bFIh07mMl6HyxP8hKmlT-QMbBXZPZ7mVuOIeOlCsg,254
|
|
238
240
|
uncountable/types/users_t.py,sha256=HaaGjdYZFmfiG0Oio4zBusQUQE2PONmPKcYnCGJP3-Q,727
|
|
239
241
|
uncountable/types/webhook_job.py,sha256=22fT212MjSpKZNzDjpFbAEW2-UBGRsDHf3Z8ChHpS_g,418
|
|
@@ -286,6 +288,7 @@ uncountable/types/api/inputs/set_intermediate_type.py,sha256=S1RLI2RtrRze0NdMUfK
|
|
|
286
288
|
uncountable/types/api/integrations/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
|
|
287
289
|
uncountable/types/api/integrations/publish_realtime_data.py,sha256=-5r2U78AwKUCpModcUIchVIZ9b7L-Ln6O6T-9d57M2A,1181
|
|
288
290
|
uncountable/types/api/integrations/push_notification.py,sha256=_ycqsGSd7pdt480JWCwMf-SoL_XIwWzEF-lyWoPmqIY,1404
|
|
291
|
+
uncountable/types/api/integrations/register_sockets_token.py,sha256=OOtQKY7B3T5tpz2WCtvMm1jOLNM5dXuSqpsY5FJ2IXk,1218
|
|
289
292
|
uncountable/types/api/material_families/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
|
|
290
293
|
uncountable/types/api/material_families/update_entity_material_families.py,sha256=qWJgAKH0MayadXvxckePCdo9yd34QXOmGZ7cKz5VLNo,1761
|
|
291
294
|
uncountable/types/api/outputs/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
|
|
@@ -314,15 +317,15 @@ uncountable/types/api/recipes/create_mix_order.py,sha256=LMLTw5malVnHsegFsKW04SB
|
|
|
314
317
|
uncountable/types/api/recipes/create_recipe.py,sha256=ESgjPKKQLPLZUOqn20LpYupxYyKl8g52RE25TC-Gjx4,1594
|
|
315
318
|
uncountable/types/api/recipes/create_recipes.py,sha256=vSBCmHWdXDGacNXiRgK22G_nei8SHK1kwSJRRBQnaPU,2106
|
|
316
319
|
uncountable/types/api/recipes/disassociate_recipe_as_input.py,sha256=Lka3041BI6nXYIzKFjvKs_E9XO67ioHuFg8bEB85GCM,1251
|
|
317
|
-
uncountable/types/api/recipes/edit_recipe_inputs.py,sha256=
|
|
320
|
+
uncountable/types/api/recipes/edit_recipe_inputs.py,sha256=RDMSbKSf9BfHjd-bADjb421n82CxRiyzvmZB5kKBNZ0,11398
|
|
318
321
|
uncountable/types/api/recipes/get_column_calculation_values.py,sha256=2lTqSOJ_0ZKgPLMVXkAIUU_KIvxKEhl10CKxh5NMm30,1854
|
|
319
322
|
uncountable/types/api/recipes/get_curve.py,sha256=1Zf41GRBArll1fnpap6I5cYlw6SDDC_ks1RnVxFix2I,1207
|
|
320
323
|
uncountable/types/api/recipes/get_recipe_calculations.py,sha256=fHCQY-y3c640jR8K5b-XLFFx7GAH3kAgmVDX7Qcj7n0,1862
|
|
321
324
|
uncountable/types/api/recipes/get_recipe_links.py,sha256=j8jBbgBqR2GAdw8vTZwyoXL0NyazTgquoc2l9ojQxMY,1271
|
|
322
325
|
uncountable/types/api/recipes/get_recipe_names.py,sha256=GOnKuPjGlNy89__Cp6pIudf8Xjv9MxA7DbNJhP-DAao,1457
|
|
323
326
|
uncountable/types/api/recipes/get_recipe_output_metadata.py,sha256=aTTYgg1uVXyEpz7mbtWMmw9kvoLHFONW3XEd4Kz1Grw,1914
|
|
324
|
-
uncountable/types/api/recipes/get_recipes_data.py,sha256=
|
|
325
|
-
uncountable/types/api/recipes/lock_recipes.py,sha256=
|
|
327
|
+
uncountable/types/api/recipes/get_recipes_data.py,sha256=XF2jq3K3dbHzrilLZjrDQX1LNKZ_ANEvsTCVoGCdvr4,7259
|
|
328
|
+
uncountable/types/api/recipes/lock_recipes.py,sha256=8nXh2OViududWO4m0Q3zA-Bzgu5-quQ2-z4-E5FX_dE,1855
|
|
326
329
|
uncountable/types/api/recipes/remove_recipe_from_project.py,sha256=eVmG8MBUScVtjt2Z3_EIjdzyeT0UMSFvdYunNG4mVNo,1221
|
|
327
330
|
uncountable/types/api/recipes/set_recipe_inputs.py,sha256=GSuT-Vgrn8-OG_eFuPCElI3mVWs2XaC_RUXasVCmABw,1766
|
|
328
331
|
uncountable/types/api/recipes/set_recipe_metadata.py,sha256=lrMB_wyOKjTLl9fiKT30M2HBU7lPwjtDsqZY8ODA-oA,1249
|
|
@@ -330,18 +333,19 @@ uncountable/types/api/recipes/set_recipe_output_annotations.py,sha256=OEMKfY_CEp
|
|
|
330
333
|
uncountable/types/api/recipes/set_recipe_output_file.py,sha256=2q63zD5-JEfWk5AffNHwERjzn8MzfQCtgGTKZQhcwsU,1685
|
|
331
334
|
uncountable/types/api/recipes/set_recipe_outputs.py,sha256=ENIP8T1rUZpuI4iPrrGpwZInPNdB6m1ZIyEIbyobkj4,2752
|
|
332
335
|
uncountable/types/api/recipes/set_recipe_tags.py,sha256=C4GzlHVfTDUA2CrgDqfYrDpS9jgOBf9bIgu4iqGvdno,3464
|
|
336
|
+
uncountable/types/api/recipes/set_recipe_total.py,sha256=K1eHfz95txl6EUoDNap3QEsRX-if2Ns5UihzMBawwMM,1859
|
|
333
337
|
uncountable/types/api/recipes/unarchive_recipes.py,sha256=ke3JPaj6hRdTjP-Qot8Gc-_ptTYqC_1ZF3kKbPJ0H88,1145
|
|
334
|
-
uncountable/types/api/recipes/unlock_recipes.py,sha256=
|
|
338
|
+
uncountable/types/api/recipes/unlock_recipes.py,sha256=Qa_qLyp0McWpaIAXIOJxe6L9p5dfdEId_TtgUk8Lnzo,1471
|
|
335
339
|
uncountable/types/api/runsheet/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
|
|
336
340
|
uncountable/types/api/runsheet/complete_async_upload.py,sha256=r3zsmD8tcalMfa67MNdF7LE_YJjBsSXK07zZ9fMap0Y,1156
|
|
337
341
|
uncountable/types/api/triggers/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
|
|
338
342
|
uncountable/types/api/triggers/run_trigger.py,sha256=dgDX_sRWSJ36UuzMZhG25oHV1HIOUKYY2G3fjKugZrw,1204
|
|
339
343
|
uncountable/types/api/uploader/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
|
|
340
|
-
uncountable/types/api/uploader/complete_async_parse.py,sha256=
|
|
344
|
+
uncountable/types/api/uploader/complete_async_parse.py,sha256=nYYBzjT_j4L7_1Ge-iqgFhI4HYSQ20kO6r8b7rhwZTE,1412
|
|
341
345
|
uncountable/types/api/uploader/invoke_uploader.py,sha256=Bj7Dq4A90k00suacwk3bLA_dCb2aovS1kAbVam2AQnM,1395
|
|
342
346
|
uncountable/types/api/user/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
|
|
343
347
|
uncountable/types/api/user/get_current_user_info.py,sha256=Avqi_RXtRgbefrT_dwJ9MrO6eDNSSa_Nu650FSuESlg,1109
|
|
344
|
-
uncountablepythonsdk-0.0.
|
|
345
|
-
uncountablepythonsdk-0.0.
|
|
346
|
-
uncountablepythonsdk-0.0.
|
|
347
|
-
uncountablepythonsdk-0.0.
|
|
348
|
+
uncountablepythonsdk-0.0.128.dist-info/METADATA,sha256=J7DAPIol3tInaykdWto7qqNgzTU7-ZbeMCks78LgUXs,2174
|
|
349
|
+
uncountablepythonsdk-0.0.128.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
350
|
+
uncountablepythonsdk-0.0.128.dist-info/top_level.txt,sha256=1UVGjAU-6hJY9qw2iJ7nCBeEwZ793AEN5ZfKX9A1uj4,31
|
|
351
|
+
uncountablepythonsdk-0.0.128.dist-info/RECORD,,
|
|
File without changes
|
{uncountablepythonsdk-0.0.126.dist-info → uncountablepythonsdk-0.0.128.dist-info}/top_level.txt
RENAMED
|
File without changes
|