yellowdog-sdk 9.2.1__py3-none-any.whl → 9.2.3__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.
- yellowdog_client/_version.py +1 -1
- yellowdog_client/common/json/__init__.py +8 -1
- yellowdog_client/model/__init__.py +4 -0
- yellowdog_client/model/node_status.py +1 -1
- yellowdog_client/model/run_specification.py +3 -0
- yellowdog_client/model/task_error.py +9 -3
- yellowdog_client/model/task_error_matcher.py +11 -0
- yellowdog_client/model/task_error_type.py +22 -0
- yellowdog_client/model/worker_status.py +5 -1
- {yellowdog_sdk-9.2.1.dist-info → yellowdog_sdk-9.2.3.dist-info}/METADATA +1 -1
- {yellowdog_sdk-9.2.1.dist-info → yellowdog_sdk-9.2.3.dist-info}/RECORD +14 -12
- {yellowdog_sdk-9.2.1.dist-info → yellowdog_sdk-9.2.3.dist-info}/WHEEL +0 -0
- {yellowdog_sdk-9.2.1.dist-info → yellowdog_sdk-9.2.3.dist-info}/licenses/LICENSE +0 -0
- {yellowdog_sdk-9.2.1.dist-info → yellowdog_sdk-9.2.3.dist-info}/top_level.txt +0 -0
yellowdog_client/_version.py
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
__version__ = '9.2.
|
|
1
|
+
__version__ = '9.2.3' # YEL-13425 v3
|
|
@@ -26,9 +26,16 @@ def _determine_subclass(value: dict, cls: type) -> type:
|
|
|
26
26
|
elif "action" in value:
|
|
27
27
|
type_field = "action"
|
|
28
28
|
type_value = value[type_field]
|
|
29
|
-
elif "errorType" in value:
|
|
29
|
+
elif "errorType" in value and cls is BaseCustomException:
|
|
30
30
|
type_field = "errorType"
|
|
31
31
|
type_value = ErrorType(value[type_field])
|
|
32
|
+
|
|
33
|
+
naked_class = get_naked_class(cls)
|
|
34
|
+
|
|
35
|
+
subclasses = all_subclasses(naked_class)
|
|
36
|
+
if subclasses:
|
|
37
|
+
return {getattr(x, type_field).value: x for x in subclasses}[type_value.value]
|
|
38
|
+
return cls
|
|
32
39
|
else:
|
|
33
40
|
return cls
|
|
34
41
|
|
|
@@ -266,6 +266,8 @@ from .task_data import TaskData
|
|
|
266
266
|
from .task_data_input import TaskDataInput
|
|
267
267
|
from .task_data_output import TaskDataOutput
|
|
268
268
|
from .task_error import TaskError
|
|
269
|
+
from .task_error_matcher import TaskErrorMatcher
|
|
270
|
+
from .task_error_type import TaskErrorType
|
|
269
271
|
from .task_group import TaskGroup
|
|
270
272
|
from .task_group_status import TaskGroupStatus
|
|
271
273
|
from .task_input import TaskInput
|
|
@@ -578,6 +580,8 @@ __all__ = [
|
|
|
578
580
|
"TaskDataInput",
|
|
579
581
|
"TaskDataOutput",
|
|
580
582
|
"TaskError",
|
|
583
|
+
"TaskErrorMatcher",
|
|
584
|
+
"TaskErrorType",
|
|
581
585
|
"TaskGroup",
|
|
582
586
|
"TaskGroupStatus",
|
|
583
587
|
"TaskInput",
|
|
@@ -7,7 +7,7 @@ class NodeStatus(Enum):
|
|
|
7
7
|
"""The node is running and its heartbeat is being received."""
|
|
8
8
|
LATE = "LATE", True, False
|
|
9
9
|
"""The node's heartbeat is late."""
|
|
10
|
-
LOST = "LOST", False,
|
|
10
|
+
LOST = "LOST", False, True
|
|
11
11
|
"""The node's heartbeat has not been received for long enough that it is considered lost."""
|
|
12
12
|
DEREGISTERED = "DEREGISTERED", False, True
|
|
13
13
|
"""The node has been deregistered from the worker pool."""
|
|
@@ -4,6 +4,7 @@ from typing import List, Optional
|
|
|
4
4
|
|
|
5
5
|
from .cloud_provider import CloudProvider
|
|
6
6
|
from .double_range import DoubleRange
|
|
7
|
+
from .task_error_matcher import TaskErrorMatcher
|
|
7
8
|
|
|
8
9
|
|
|
9
10
|
@dataclass
|
|
@@ -45,3 +46,5 @@ class RunSpecification:
|
|
|
45
46
|
pools in the specified namespaces.
|
|
46
47
|
"""
|
|
47
48
|
|
|
49
|
+
retryableErrors: Optional[List[TaskErrorMatcher]] = None
|
|
50
|
+
"""Defines the errors that should result in a task retrying if encountered."""
|
|
@@ -2,13 +2,19 @@ from dataclasses import dataclass
|
|
|
2
2
|
from datetime import datetime
|
|
3
3
|
from typing import Optional
|
|
4
4
|
|
|
5
|
+
from .task_error_type import TaskErrorType
|
|
6
|
+
from .task_status import TaskStatus
|
|
7
|
+
|
|
5
8
|
|
|
6
9
|
@dataclass
|
|
7
10
|
class TaskError:
|
|
8
11
|
"""Holds details of an error that occurred during execution of the task."""
|
|
9
|
-
timestamp:
|
|
12
|
+
timestamp: datetime
|
|
10
13
|
"""The time at which the error occurred."""
|
|
14
|
+
error: str
|
|
15
|
+
"""A description of the error."""
|
|
11
16
|
workerId: Optional[str] = None
|
|
12
17
|
"""The ID of the worker where the error occurred."""
|
|
13
|
-
|
|
14
|
-
|
|
18
|
+
errorType: str = TaskErrorType.UNKNOWN_ERROR
|
|
19
|
+
statusAtFailure: Optional[TaskStatus] = None
|
|
20
|
+
processExitCode: Optional[int] = None
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
from dataclasses import dataclass
|
|
2
|
+
from typing import List, Optional
|
|
3
|
+
|
|
4
|
+
from .task_status import TaskStatus
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
@dataclass
|
|
8
|
+
class TaskErrorMatcher:
|
|
9
|
+
errorTypes: Optional[List[str]] = None
|
|
10
|
+
statusesAtFailure: Optional[List[TaskStatus]] = None
|
|
11
|
+
processExitCodes: Optional[List[int]] = None
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
from dataclasses import dataclass
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
@dataclass
|
|
5
|
+
class TaskErrorType:
|
|
6
|
+
|
|
7
|
+
ALLOCATION_LOST: str = "ALLOCATION_LOST"
|
|
8
|
+
RESOURCE_REQUEST_FAILED: str = "RESOURCE_REQUEST_FAILED"
|
|
9
|
+
|
|
10
|
+
TIMED_OUT: str = "TIMED_OUT"
|
|
11
|
+
UNABLE_START_PROCESS: str = "UNABLE_START_PROCESS"
|
|
12
|
+
PROCESS_NON_ZERO_EXIT: str = "PROCESS_NON_ZERO_EXIT"
|
|
13
|
+
DATA_CLIENT_DISABLED: str = "DATA_CLIENT_DISABLED"
|
|
14
|
+
UNKNOWN_ERROR: str = "UNKNOWN_ERROR"
|
|
15
|
+
OUTPUT_NOT_FOUND: str = "OUTPUT_NOT_FOUND"
|
|
16
|
+
INPUT_NOT_FOUND: str = "INPUT_NOT_FOUND"
|
|
17
|
+
TRANSITION_REFUSED: str = "TRANSITION_REFUSED"
|
|
18
|
+
UNABLE_WRITE_TASK_DATA: str = "UNABLE_WRITE_TASK_DATA"
|
|
19
|
+
OBJECT_STORE_TRANSFER_FAILED: str = "OBJECT_STORE_TRANSFER_FAILED"
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
pass
|
|
@@ -16,7 +16,11 @@ class WorkerStatus(Enum):
|
|
|
16
16
|
LOST = "LOST", False, False
|
|
17
17
|
"""The Worker's heartbeat has not been received for long enough that the Worker is considered to have been lost."""
|
|
18
18
|
FOUND = "FOUND", True, True
|
|
19
|
-
"""
|
|
19
|
+
"""
|
|
20
|
+
The Worker was considered to be lost but its heartbeat has returned, however it has not yet requested instruction.
|
|
21
|
+
@deprecated Workers can no longer be FOUND once LOST. Status can be removed when all clients >= v9.3.0
|
|
22
|
+
"""
|
|
23
|
+
|
|
20
24
|
SHUTDOWN = "SHUTDOWN", False, False
|
|
21
25
|
"""The Worker has been instructed to shut down."""
|
|
22
26
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
2
2
|
yellowdog_client/__init__.py,sha256=xHGTw5UbjkeEl_hC8_gJCacfji6462qJWD1nvJdFssE,13162
|
|
3
|
-
yellowdog_client/_version.py,sha256=
|
|
3
|
+
yellowdog_client/_version.py,sha256=z_N0s7vuX-PK5y7_8z7Uir0EdShHzTs0UW38O79NFFM,37
|
|
4
4
|
yellowdog_client/client_collection.py,sha256=VSEzjf6iR1qCQ0YGLyDq_Kgvw8r832QDwTp6-MLB4Vs,388
|
|
5
5
|
yellowdog_client/platform_client.py,sha256=yCzKsOQKllnfzwP9bG-JGtvOdvY7EaEQzFsgX3ERzVY,7476
|
|
6
6
|
yellowdog_client/account/__init__.py,sha256=DiLL3uSMyVlAKWsncX0k5Ioc2hw87HQoEkSYO0ro0fg,456
|
|
@@ -28,7 +28,7 @@ yellowdog_client/common/credentials/__init__.py,sha256=_KvuZpIO_TSSrJd6v1UrCtXOz
|
|
|
28
28
|
yellowdog_client/common/credentials/api_key_authentication_headers_provider.py,sha256=Spt8kYEW8_qy7RMLfIqjArntBcYhhZX9cxcjJbdcKfw,843
|
|
29
29
|
yellowdog_client/common/decorators/__init__.py,sha256=_Agup5QZbT3nnwNKBD38MaxRPXU58kaHrrFhrWOUGXw,76
|
|
30
30
|
yellowdog_client/common/decorators/dispatcher.py,sha256=NMGWHLAbm4gCjWoiQ6M6Nj78O3PlSKXpGUylmPhtf0s,244
|
|
31
|
-
yellowdog_client/common/json/__init__.py,sha256=
|
|
31
|
+
yellowdog_client/common/json/__init__.py,sha256=xAc_LukSrQ7kM73iQWa8q6HuU3KbFy8uR9otHvyaTto,6345
|
|
32
32
|
yellowdog_client/common/server_sent_events/__init__.py,sha256=4N8p9TNiCV1qyHqKML84BuHugIOmRYldzQPB4mHkO7o,507
|
|
33
33
|
yellowdog_client/common/server_sent_events/delegated_subscription_event_listener.py,sha256=6KKNE89fSG4cvpFza_X3416AJWh6eJj_lLmWy2GbALQ,1278
|
|
34
34
|
yellowdog_client/common/server_sent_events/subscription.py,sha256=eUfjQr88sY7TvLwbDyhBm3C9KOu9KmkCixhmt69OSyo,2980
|
|
@@ -53,7 +53,7 @@ yellowdog_client/images/images_service_proxy.py,sha256=eyP4u6FoIH1WJvNM_m8tacTCs
|
|
|
53
53
|
yellowdog_client/images/page.py,sha256=UIvlxvzdcfnKvbcq2Cn6IB7ZtQMc3dzcBTUfElvVPwQ,391
|
|
54
54
|
yellowdog_client/images/pageable.py,sha256=msD8uGGJ2F5jEqTNDYaFrh6z6drlxOXZ1AmB0T3edM0,296
|
|
55
55
|
yellowdog_client/images/sort.py,sha256=YS05DlIRg1Cm3QLBi6KFjFdB3g-b3WrqFFitlMJUEMM,167
|
|
56
|
-
yellowdog_client/model/__init__.py,sha256=
|
|
56
|
+
yellowdog_client/model/__init__.py,sha256=RCEJcTVFqEerMSG3BiYPJPq7Uyx-MddY6VompoMPf64,25892
|
|
57
57
|
yellowdog_client/model/access_delegate.py,sha256=gZYX7Hqw_eBzBIHzbxyZfrhko0xZIsPCsf4gSzFalwc,568
|
|
58
58
|
yellowdog_client/model/account.py,sha256=r_-7J-JjjMcQPZzaQ4_o9y6XY7-GMPRLWt9mGOucYU0,394
|
|
59
59
|
yellowdog_client/model/account_allowance.py,sha256=c-MkSSRLB5Y5TMDZl5h5fipj4vzLLlO_AQXPeRJ0AYw,1021
|
|
@@ -251,7 +251,7 @@ yellowdog_client/model/node_id_filter.py,sha256=jQushAfXGtvUEzRfr_1iUZQeyD4eFC6o
|
|
|
251
251
|
yellowdog_client/model/node_run_command_action.py,sha256=joUk0g13ZKdsLTxnpyIpDNfiwwTBJdMpfU8uckJJhI0,466
|
|
252
252
|
yellowdog_client/model/node_search.py,sha256=2mPWlATqHZWc3wenoUDPzIp3PplxW2A_oVw3_IA4-H4,1025
|
|
253
253
|
yellowdog_client/model/node_slot_numbering.py,sha256=qKA4nXwu1iv58rdqaIr9sJhDh_KL1XjaHMexBWUWuek,137
|
|
254
|
-
yellowdog_client/model/node_status.py,sha256=
|
|
254
|
+
yellowdog_client/model/node_status.py,sha256=O5ZOl6bI7cpvPYgAamvdyfxZTBIcWqmdVerwxMV9p0c,831
|
|
255
255
|
yellowdog_client/model/node_summary.py,sha256=u5X27f0MxyJb6e24Czb0f7aMkLDUlHdtglQdyB6x214,604
|
|
256
256
|
yellowdog_client/model/node_type.py,sha256=Lh_73zwZz6lKFHyn3chJZmretYuhkhHgzf0H1XNLJ7I,323
|
|
257
257
|
yellowdog_client/model/node_worker_target.py,sha256=uVcU-02dOZZUSqW43c4hf4FKnuw3iQfxs8DabOEJEm4,777
|
|
@@ -298,7 +298,7 @@ yellowdog_client/model/retry_properties.py,sha256=cccJRb-r1PkUixb-V26GIGf1iOXBnn
|
|
|
298
298
|
yellowdog_client/model/role.py,sha256=WRnnlJAJzweCiBbivs9-7aHgPR72rHY9z8zaZhOs1AA,323
|
|
299
299
|
yellowdog_client/model/role_search.py,sha256=SL8rngS-BWoqaZ4WtwiScS12Y7JOpfG-itbpPk7qxBc,332
|
|
300
300
|
yellowdog_client/model/role_summary.py,sha256=fkyZ_pLapNbQM67bSgX60kt20WN7hYCWA0j-1zwzIPc,202
|
|
301
|
-
yellowdog_client/model/run_specification.py,sha256=
|
|
301
|
+
yellowdog_client/model/run_specification.py,sha256=btk53yhHWKvTXxhbzTDS0NjXBf25fqjxPwkc303I15M,2711
|
|
302
302
|
yellowdog_client/model/s3_namespace_storage_configuration.py,sha256=yUIsBlg2VlMD3ebrcvlfn9kjhztupkLwRfV3mmDlrng,380
|
|
303
303
|
yellowdog_client/model/services_schema.py,sha256=fyKPI-uu4ii05Rg25EPGrS7AdpKFxqf6Bd-J8hiQMXE,2067
|
|
304
304
|
yellowdog_client/model/set_password_request.py,sha256=SjOBrJBGVchr_rQqN2fhT3WYSdB5ZTmU9jtHx5B3-p0,145
|
|
@@ -322,7 +322,9 @@ yellowdog_client/model/task.py,sha256=at0_v_xm9nFx-npMBDR9LAHgO4YiueQoi7q4SMOVrJ
|
|
|
322
322
|
yellowdog_client/model/task_data.py,sha256=mG8Yrg6laqJEGKa3I3yN2ZzT2eHzpVO9U4tPi9PKo8I,286
|
|
323
323
|
yellowdog_client/model/task_data_input.py,sha256=ntlSr23aDdFR9AxEp0paWshBMrSythBksg3RYEIXBKg,105
|
|
324
324
|
yellowdog_client/model/task_data_output.py,sha256=8DAPuveK43HxWBQE7--n4E_c115gAzpMhffLW4DDWkI,137
|
|
325
|
-
yellowdog_client/model/task_error.py,sha256=
|
|
325
|
+
yellowdog_client/model/task_error.py,sha256=9aW_ZJ0WkQjUSbpasXBtc0Wj4iu4-70Mf3jtmeiUx2k,639
|
|
326
|
+
yellowdog_client/model/task_error_matcher.py,sha256=idOfRZllKDlqe8Wq2GMjEaYhLLrAmd7Hai5Dr5BJMd0,291
|
|
327
|
+
yellowdog_client/model/task_error_type.py,sha256=3JDxDu8_f_eQdoB_Y1xuVW4N_leSoJAGn5OjcU4X3e0,701
|
|
326
328
|
yellowdog_client/model/task_group.py,sha256=9hwk6KS68QpdcNDhhGv3bqaZOxuCT3J22GF5JYJ_S8E,2073
|
|
327
329
|
yellowdog_client/model/task_group_status.py,sha256=7wAEOvZzq07P_0vTP0NejmDLS-MifGWO5WLlu_5OdZg,1722
|
|
328
330
|
yellowdog_client/model/task_input.py,sha256=d3U32xhgHdEWtSu5uSjjsLniD9dXoNeIVsyl1BeZqlw,1975
|
|
@@ -364,7 +366,7 @@ yellowdog_client/model/worker_pool_search.py,sha256=IxUkwGcVq04-Shk-PJW-n14Nb-FC
|
|
|
364
366
|
yellowdog_client/model/worker_pool_status.py,sha256=NEOuZuuwlAa0h16Feh76qUtaJ_t26qO_AoHFjJBVWLc,1240
|
|
365
367
|
yellowdog_client/model/worker_pool_summary.py,sha256=WkdKWXlSj4K1aYvwL29wETJcpeKCv4chXx-M3SvjZfI,1447
|
|
366
368
|
yellowdog_client/model/worker_pool_token.py,sha256=aHJcumKO7CiyjqpUoognxCg9SRg6AOdZh01pBIAos74,350
|
|
367
|
-
yellowdog_client/model/worker_status.py,sha256=
|
|
369
|
+
yellowdog_client/model/worker_status.py,sha256=s1Gowm3RNzuSCEWvcI6Pq9BWwiu2_C1ZuNSZAPnDUAM,1367
|
|
368
370
|
yellowdog_client/model/worker_summary.py,sha256=PZI7Ay4i2C4UxiSKfaQpPG6t_IF0sfL4ve7uMdsiuts,819
|
|
369
371
|
yellowdog_client/model/exceptions/__init__.py,sha256=JuFyrrvXegTRdsERsGLbK6ZNOIpp1kwAOdODb-G1W0s,1434
|
|
370
372
|
yellowdog_client/model/exceptions/base_custom_exception.py,sha256=5WsA_nVwr8D8orn5kPjKSh9I2IJcsJcWMrpEZQUl1-4,665
|
|
@@ -460,8 +462,8 @@ yellowdog_client/usage/__init__.py,sha256=XQwRJqTdxKZa1QUTsxBEL0TqQJeQHGyPklFeqc
|
|
|
460
462
|
yellowdog_client/usage/allowances_client.py,sha256=H6n63jXjT4OwuWJgFUXSjSmvGTZz9uspy3kj3upinaA,1337
|
|
461
463
|
yellowdog_client/usage/allowances_client_impl.py,sha256=nQPnSzJKhL3WvyCn5fmiDkwE84xZryH9YvV5Z1GjU4M,2061
|
|
462
464
|
yellowdog_client/usage/allowances_service_proxy.py,sha256=uO6LWnpjIzUcZTGdOxPXn7SyYX7NMRqO5KUiHUGr490,1320
|
|
463
|
-
yellowdog_sdk-9.2.
|
|
464
|
-
yellowdog_sdk-9.2.
|
|
465
|
-
yellowdog_sdk-9.2.
|
|
466
|
-
yellowdog_sdk-9.2.
|
|
467
|
-
yellowdog_sdk-9.2.
|
|
465
|
+
yellowdog_sdk-9.2.3.dist-info/licenses/LICENSE,sha256=QwcOLU5TJoTeUhuIXzhdCEEDDvorGiC6-3YTOl4TecE,11356
|
|
466
|
+
yellowdog_sdk-9.2.3.dist-info/METADATA,sha256=a7uJcuNb5g0dUGdhwIAnA80bn1OcLR2r3-lGz0M3j0s,3238
|
|
467
|
+
yellowdog_sdk-9.2.3.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
468
|
+
yellowdog_sdk-9.2.3.dist-info/top_level.txt,sha256=6PH16DcoqpYHhQ5A0UJOjf0tg-1rTrNC9C2CLqCMuFo,26
|
|
469
|
+
yellowdog_sdk-9.2.3.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|