yellowdog-sdk 9.1.1__py3-none-any.whl → 9.1.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.
@@ -1 +1 @@
1
- __version__ = '9.1.1' # YEL-13162
1
+ __version__ = '9.1.3' # YEL-13281 v4
@@ -1,8 +1,14 @@
1
+ from .account_client import AccountClient
2
+ from .account_client_impl import AccountClientImpl
3
+ from .account_service_proxy import AccountServiceProxy
1
4
  from .keyring_client_impl import KeyringClientImpl
2
5
  from .keyring_service_proxy import KeyringServiceProxy
3
6
  from .keyring_client import KeyringClient
4
7
 
5
8
  __all__ = [
9
+ "AccountClient",
10
+ "AccountClientImpl",
11
+ "AccountServiceProxy",
6
12
  "KeyringClientImpl",
7
13
  "KeyringServiceProxy",
8
14
  "KeyringClient"
@@ -0,0 +1,119 @@
1
+ from __future__ import annotations
2
+
3
+ from abc import ABC, abstractmethod
4
+ from typing import List
5
+
6
+ from yellowdog_client.common import Closeable, SearchClient
7
+ from yellowdog_client.model import AddApplicationRequest, AddApplicationResponse, AddGroupRequest, ApiKey, Application, ApplicationSearch, Group, GroupSearch, GroupSummary, PermissionDetail, Role, RoleSearch, UpdateApplicationRequest, UpdateGroupRequest, User, UserSearch
8
+
9
+
10
+ class AccountClient(ABC, Closeable):
11
+ """The API interface exposed by the YellowDog Account Service"""
12
+
13
+ @abstractmethod
14
+ def get_user(self, user_id: str) -> User:
15
+ pass
16
+
17
+ @abstractmethod
18
+ def get_users(self, search: UserSearch) -> SearchClient[User]:
19
+ pass
20
+
21
+ @abstractmethod
22
+ def get_user_groups(self, user_id: str) -> SearchClient[GroupSummary]:
23
+ pass
24
+
25
+ @abstractmethod
26
+ def get_application(self, application_id: str) -> Application:
27
+ pass
28
+
29
+ @abstractmethod
30
+ def update_application(self, application_id: str, request: UpdateApplicationRequest) -> Application:
31
+ pass
32
+
33
+ @abstractmethod
34
+ def add_application(self, request: AddApplicationRequest) -> AddApplicationResponse:
35
+ pass
36
+
37
+ @abstractmethod
38
+ def regenerate_application_api_key(self, application_id: str) -> ApiKey:
39
+ pass
40
+
41
+ @abstractmethod
42
+ def get_applications(self, search: ApplicationSearch) -> SearchClient[Application]:
43
+ pass
44
+
45
+ @abstractmethod
46
+ def get_application_groups(self, application_id: str) -> SearchClient[GroupSummary]:
47
+ pass
48
+
49
+ @abstractmethod
50
+ def delete_application(self, application_id: str) -> None:
51
+ pass
52
+
53
+ @abstractmethod
54
+ def list_permissions(self) -> List[PermissionDetail]:
55
+ pass
56
+
57
+ @abstractmethod
58
+ def get_role(self, role_id: str) -> Role:
59
+ pass
60
+
61
+ @abstractmethod
62
+ def get_roles(self, search: RoleSearch) -> SearchClient[Role]:
63
+ pass
64
+
65
+ @abstractmethod
66
+ def get_role_groups(self, role_id: str) -> SearchClient[GroupSummary]:
67
+ pass
68
+
69
+ @abstractmethod
70
+ def get_group(self, group_id: str) -> Group:
71
+ pass
72
+
73
+ @abstractmethod
74
+ def add_group(self, request: AddGroupRequest) -> Group:
75
+ pass
76
+
77
+ @abstractmethod
78
+ def update_group(self, request: UpdateGroupRequest) -> Group:
79
+ pass
80
+
81
+ @abstractmethod
82
+ def get_group_users(self, group_id: str) -> SearchClient[User]:
83
+ pass
84
+
85
+ @abstractmethod
86
+ def get_group_applications(self, group_id: str) -> SearchClient[Application]:
87
+ pass
88
+
89
+ @abstractmethod
90
+ def get_groups(self, search: GroupSearch) -> SearchClient[GroupSummary]:
91
+ pass
92
+
93
+ @abstractmethod
94
+ def add_user_to_group(self, group_id: str, user_id: str) -> None:
95
+ pass
96
+
97
+ @abstractmethod
98
+ def add_application_to_group(self, group_id: str, application_id: str) -> None:
99
+ pass
100
+
101
+ @abstractmethod
102
+ def add_role_to_group(self, group_id: str, role_id: str) -> None:
103
+ pass
104
+
105
+ @abstractmethod
106
+ def remove_user_from_group(self, group_id: str, user_id: str) -> None:
107
+ pass
108
+
109
+ @abstractmethod
110
+ def remove_application_from_group(self, group_id: str, application_id: str) -> None:
111
+ pass
112
+
113
+ @abstractmethod
114
+ def remove_role_from_group(self, group_id: str, role_id: str) -> None:
115
+ pass
116
+
117
+ @abstractmethod
118
+ def delete_group(self, group_id: str) -> None:
119
+ pass
@@ -0,0 +1,125 @@
1
+ from typing import List
2
+
3
+ from yellowdog_client.account.account_client import AccountClient
4
+ from yellowdog_client.account.account_service_proxy import AccountServiceProxy
5
+ from yellowdog_client.common import SearchClient
6
+ from yellowdog_client.model import User, SliceReference, UserSearch, Slice, GroupSummary, Application, \
7
+ ApplicationSearch, UpdateApplicationRequest, AddApplicationResponse, AddApplicationRequest, ApiKey, \
8
+ PermissionDetail, Role, Group, AddGroupRequest, UpdateGroupRequest, GroupSearch, RoleSearch
9
+
10
+
11
+ class AccountClientImpl(AccountClient):
12
+ def __init__(self, service_proxy: AccountServiceProxy) -> None:
13
+ self.__service_proxy = service_proxy
14
+
15
+ def get_user(self, user_id: str) -> User:
16
+ return self.__service_proxy.get_user(user_id)
17
+
18
+ def get_users(self, search: UserSearch) -> SearchClient[User]:
19
+ def get_next_slice_function(slice_reference: SliceReference) -> Slice[User]:
20
+ return self.__service_proxy.search_users(search, slice_reference)
21
+
22
+ return SearchClient(get_next_slice_function)
23
+
24
+ def get_user_groups(self, user_id: str) -> SearchClient[GroupSummary]:
25
+ def get_next_slice_function(slice_reference: SliceReference) -> Slice[GroupSummary]:
26
+ return self.__service_proxy.list_user_groups(user_id, slice_reference)
27
+
28
+ return SearchClient(get_next_slice_function)
29
+
30
+ def get_application(self, application_id: str) -> Application:
31
+ return self.__service_proxy.get_application(application_id)
32
+
33
+ def update_application(self, application_id: str, request: UpdateApplicationRequest) -> Application:
34
+ return self.__service_proxy.update_application(application_id, request)
35
+
36
+ def add_application(self, request: AddApplicationRequest) -> AddApplicationResponse:
37
+ return self.__service_proxy.add_application(request)
38
+
39
+ def regenerate_application_api_key(self, application_id: str) -> ApiKey:
40
+ return self.__service_proxy.regenerate_application_api_key(application_id)
41
+
42
+ def get_applications(self, search: ApplicationSearch) -> SearchClient[Application]:
43
+ def get_next_slice_function(slice_reference: SliceReference) -> Slice[Application]:
44
+ return self.__service_proxy.search_applications(search, slice_reference)
45
+
46
+ return SearchClient(get_next_slice_function)
47
+
48
+ def get_application_groups(self, application_id: str) -> SearchClient[GroupSummary]:
49
+ def get_next_slice_function(slice_reference: SliceReference) -> Slice[GroupSummary]:
50
+ return self.__service_proxy.list_application_groups(application_id, slice_reference)
51
+
52
+ return SearchClient(get_next_slice_function)
53
+
54
+ def delete_application(self, application_id: str) -> None:
55
+ return self.__service_proxy.delete_application(application_id)
56
+
57
+ def list_permissions(self) -> List[PermissionDetail]:
58
+ return self.__service_proxy.list_permissions()
59
+
60
+ def get_role(self, role_id: str) -> Role:
61
+ return self.__service_proxy.get_role(role_id)
62
+
63
+ def get_roles(self, search: RoleSearch) -> SearchClient[Role]:
64
+ def get_next_slice_function(slice_reference: SliceReference) -> Slice[Role]:
65
+ return self.__service_proxy.search_roles(search, slice_reference)
66
+
67
+ return SearchClient(get_next_slice_function)
68
+
69
+ def get_role_groups(self, role_id: str) -> SearchClient[GroupSummary]:
70
+ def get_next_slice_function(slice_reference: SliceReference) -> Slice[GroupSummary]:
71
+ return self.__service_proxy.list_role_groups(role_id, slice_reference)
72
+
73
+ return SearchClient(get_next_slice_function)
74
+
75
+ def get_group(self, group_id: str) -> Group:
76
+ return self.__service_proxy.get_group(group_id)
77
+
78
+ def add_group(self, request: AddGroupRequest) -> Group:
79
+ return self.__service_proxy.add_group(request)
80
+
81
+ def update_group(self, request: UpdateGroupRequest) -> Group:
82
+ return self.__service_proxy.update_group(request)
83
+
84
+ def get_group_users(self, group_id: str) -> SearchClient[User]:
85
+ def get_next_slice_function(slice_reference: SliceReference) -> Slice[User]:
86
+ return self.__service_proxy.list_group_users(group_id, slice_reference)
87
+
88
+ return SearchClient(get_next_slice_function)
89
+
90
+ def get_group_applications(self, group_id: str) -> SearchClient[Application]:
91
+ def get_next_slice_function(slice_reference: SliceReference) -> Slice[Application]:
92
+ return self.__service_proxy.list_group_applications(group_id, slice_reference)
93
+
94
+ return SearchClient(get_next_slice_function)
95
+
96
+ def get_groups(self, search: GroupSearch) -> SearchClient[GroupSummary]:
97
+ def get_next_slice_function(slice_reference: SliceReference) -> Slice[GroupSummary]:
98
+ return self.__service_proxy.search_groups(search, slice_reference)
99
+
100
+ return SearchClient(get_next_slice_function)
101
+
102
+ def add_user_to_group(self, group_id: str, user_id: str) -> None:
103
+ return self.__service_proxy.add_user_to_group(group_id, user_id)
104
+
105
+ def add_application_to_group(self, group_id: str, application_id: str) -> None:
106
+ return self.__service_proxy.add_application_to_group(group_id, application_id)
107
+
108
+ def add_role_to_group(self, group_id: str, role_id: str) -> None:
109
+ return self.__service_proxy.add_role_to_group(group_id, role_id)
110
+
111
+ def remove_user_from_group(self, group_id: str, user_id: str) -> None:
112
+ return self.__service_proxy.remove_user_from_group(group_id, user_id)
113
+
114
+ def remove_application_from_group(self, group_id: str, application_id: str) -> None:
115
+ return self.__service_proxy.remove_application_from_group(group_id, application_id)
116
+
117
+ def remove_role_from_group(self, group_id: str, role_id: str) -> None:
118
+ return self.__service_proxy.remove_role_from_group(group_id, role_id)
119
+
120
+ def delete_group(self, group_id: str) -> None:
121
+ return self.__service_proxy.delete_group(group_id)
122
+
123
+ def close(self):
124
+ # Has no closing resources
125
+ pass
@@ -0,0 +1,121 @@
1
+ from typing import List
2
+
3
+ from yellowdog_client.common import Proxy
4
+ from yellowdog_client.model import UserSearch, SliceReference, Slice, GroupSummary, Application, \
5
+ UpdateApplicationRequest, AddApplicationRequest, AddApplicationResponse, ApiKey, ApplicationSearch, \
6
+ PermissionDetail, \
7
+ Role, RoleSearch, Group, AddGroupRequest, UpdateGroupRequest, GroupSearch, User
8
+
9
+
10
+ class AccountServiceProxy:
11
+ def __init__(self, proxy: Proxy) -> None:
12
+ self.proxy: Proxy = proxy.append_base_url("/account/")
13
+
14
+ def get_user(self, user_id: str) -> User:
15
+ return self.proxy.get("users/%s" % user_id)
16
+
17
+ def search_users(self, search: UserSearch, slice_reference: SliceReference) -> Slice[User]:
18
+ return self.proxy.get(
19
+ Slice[User], "users",
20
+ self.proxy.to_params(search, slice_reference)
21
+ )
22
+
23
+ def list_user_groups(self, user_id: str, slice_reference: SliceReference) -> Slice[GroupSummary]:
24
+ return self.proxy.get(
25
+ Slice[GroupSummary], "users/%s/groups" % user_id,
26
+ self.proxy.to_params(slice_reference)
27
+ )
28
+
29
+ def get_application(self, application_id: str) -> Application:
30
+ return self.proxy.get("applications/%s" % application_id)
31
+
32
+ def update_application(self, application_id: str, request: UpdateApplicationRequest) -> Application:
33
+ return self.proxy.put(UpdateApplicationRequest, request, "applications/%s" % application_id)
34
+
35
+ def add_application(self, request: AddApplicationRequest) -> AddApplicationResponse:
36
+ return self.proxy.post(AddApplicationRequest, request, "applications")
37
+
38
+ def regenerate_application_api_key(self, application_id: str) -> ApiKey:
39
+ return self.proxy.post(url="applications/%s/key" % application_id)
40
+
41
+ def search_applications(self, search: ApplicationSearch, slice_reference: SliceReference) -> Slice[Application]:
42
+ return self.proxy.get(
43
+ Slice[Application], "applications",
44
+ self.proxy.to_params(search, slice_reference)
45
+ )
46
+
47
+ def list_application_groups(self, application_id: str, slice_reference: SliceReference) -> Slice[GroupSummary]:
48
+ return self.proxy.get(
49
+ Slice[GroupSummary], "applications/%s/groups" % application_id,
50
+ self.proxy.to_params(slice_reference)
51
+ )
52
+
53
+ def delete_application(self, application_id: str) -> None:
54
+ return self.proxy.delete("applications/%s" % application_id)
55
+
56
+ def list_permissions(self) -> List[PermissionDetail]:
57
+ return self.proxy.get("permissions")
58
+
59
+ def get_role(self, role_id: str) -> Role:
60
+ return self.proxy.get("roles/%s" % role_id)
61
+
62
+ def search_roles(self, search: RoleSearch, slice_reference: SliceReference) -> Slice[Role]:
63
+ return self.proxy.get(
64
+ Slice[Role], "roles",
65
+ self.proxy.to_params(search, slice_reference)
66
+ )
67
+
68
+ def list_role_groups(self, role_id: str, slice_reference: SliceReference) -> Slice[GroupSummary]:
69
+ return self.proxy.get(
70
+ Slice[GroupSummary], "roles/%s/groups" % role_id,
71
+ self.proxy.to_params(slice_reference)
72
+ )
73
+
74
+ def get_group(self, group_id: str) -> Group:
75
+ return self.proxy.get("groups/%s" % group_id)
76
+
77
+ def add_group(self, request: AddGroupRequest) -> Group:
78
+ return self.proxy.post(Group, request, "groups")
79
+
80
+ def update_group(self, request: UpdateGroupRequest) -> Group:
81
+ return self.proxy.put(Group, request, "groups")
82
+
83
+ def list_group_users(self, group_id: str, slice_reference: SliceReference) -> Slice[User]:
84
+ return self.proxy.get(
85
+ Slice[User], "groups/%s/users" % group_id,
86
+ self.proxy.to_params(slice_reference)
87
+ )
88
+
89
+ def list_group_applications(self, group_id: str, slice_reference: SliceReference) -> Slice[Application]:
90
+ return self.proxy.get(
91
+ Slice[Application], "groups/%s/applications" % group_id,
92
+ self.proxy.to_params(slice_reference)
93
+ )
94
+
95
+ def search_groups(self, search: GroupSearch, slice_reference: SliceReference) -> Slice[GroupSummary]:
96
+ return self.proxy.get(
97
+ Slice[GroupSummary], "groups",
98
+ self.proxy.to_params(search, slice_reference)
99
+ )
100
+
101
+ def add_user_to_group(self, group_id: str, user_id: str) -> None:
102
+ return self.proxy.put("groups/%s/users/%s" % (group_id, user_id))
103
+
104
+ def add_application_to_group(self, group_id: str, application_id: str) -> None:
105
+ return self.proxy.put("groups/%s/applications/%s" % (group_id, application_id))
106
+
107
+ def add_role_to_group(self, group_id: str, role_id: str) -> None:
108
+ return self.proxy.put("groups/%s/roles/%s" % (group_id, role_id))
109
+
110
+ def remove_user_from_group(self, group_id: str, user_id: str) -> None:
111
+ return self.proxy.delete("groups/%s/users/%s" % (group_id, user_id))
112
+
113
+ def remove_application_from_group(self, group_id: str, application_id: str) -> None:
114
+ return self.proxy.delete("groups/%s/applications/%s" % (group_id, application_id))
115
+
116
+ def remove_role_from_group(self, group_id: str, role_id: str) -> None:
117
+ return self.proxy.delete("groups/%s/roles/%s" % (group_id, role_id))
118
+
119
+ def delete_group(self, group_id: str) -> None:
120
+ return self.proxy.delete("groups/%s" % group_id)
121
+
@@ -1,7 +1,8 @@
1
1
  import sys
2
2
 
3
3
  from ._version import __version__
4
- from .account import KeyringClient, KeyringClientImpl, KeyringServiceProxy
4
+ from .account import KeyringClient, KeyringClientImpl, KeyringServiceProxy, AccountClientImpl, AccountServiceProxy
5
+ from .account.account_client import AccountClient
5
6
  from .client_collection import ClientCollection
6
7
  from .cloud_info import CloudInfoClient, CloudInfoClientImpl, CloudInfoProxy
7
8
  from .common import Proxy, Closeable, UserAgent
@@ -26,6 +27,7 @@ class PlatformClient(Closeable):
26
27
 
27
28
  def __init__(
28
29
  self,
30
+ account_client: AccountClient,
29
31
  keyring_client: KeyringClient,
30
32
  compute_client: ComputeClient,
31
33
  images_client: ImagesClient,
@@ -37,6 +39,8 @@ class PlatformClient(Closeable):
37
39
  cloud_info_client: CloudInfoClient
38
40
  ) -> None:
39
41
  self.__clients = ClientCollection()
42
+ self.account_client: AccountClient = self.__clients.add(account_client)
43
+ """Account service client. Used for controlling accounts"""
40
44
  self.compute_client: ComputeClient = self.__clients.add(compute_client)
41
45
  """Compute service client. Used for controlling compute requirements and instances"""
42
46
  self.keyring_client: KeyringClient = self.__clients.add(keyring_client)
@@ -90,8 +94,9 @@ class PlatformClient(Closeable):
90
94
  usage_url = services_schema.defaultUrl if services_schema.usageServiceUrl is None else services_schema.usageServiceUrl
91
95
  cloud_info_url = services_schema.defaultUrl if services_schema.cloudInfoServiceUrl is None else services_schema.cloudInfoServiceUrl
92
96
 
93
- compute_client = ComputeClientImpl(ComputeServiceProxy(proxy.append_base_url(compute_url)))
97
+ account_client = AccountClientImpl(AccountServiceProxy(proxy.append_base_url(account_url)))
94
98
  keyring_client = KeyringClientImpl(KeyringServiceProxy(proxy.append_base_url(account_url)))
99
+ compute_client = ComputeClientImpl(ComputeServiceProxy(proxy.append_base_url(compute_url)))
95
100
  images_client = ImagesClientImpl(ImagesServiceProxy(proxy.append_base_url(images_url)))
96
101
  namespaces_client = NamespacesClientImpl(NamespacesServiceProxy(proxy.append_base_url(scheduler_url)))
97
102
  work_client = WorkClientImpl(WorkServiceProxy(proxy.append_base_url(scheduler_url)))
@@ -101,6 +106,7 @@ class PlatformClient(Closeable):
101
106
  cloud_info_client = CloudInfoClientImpl(CloudInfoProxy(proxy.append_base_url(cloud_info_url)))
102
107
 
103
108
  return PlatformClient(
109
+ account_client=account_client,
104
110
  keyring_client=keyring_client,
105
111
  compute_client=compute_client,
106
112
  images_client=images_client,
@@ -197,12 +197,13 @@ class WorkClient(ABC, Closeable):
197
197
  pass
198
198
 
199
199
  @abstractmethod
200
+
200
201
  def find_all_work_requirements(self) -> List[WorkRequirementSummary]:
201
202
  """
202
203
  Returns summaries of all existing work requirements within the system for the requesting user.
203
204
 
204
205
  :return: a list of work requirement summaries
205
- @deprecated use {@link #getWorkRequirements(WorkRequirementSearch) instead to search tasks.
206
+ @deprecated use {@link #getWorkRequirements(WorkRequirementSearch)} instead to search tasks.
206
207
  """
207
208
 
208
209
  pass
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: yellowdog-sdk
3
- Version: 9.1.1
3
+ Version: 9.1.3
4
4
  Summary: SDK for the YellowDog Platform
5
5
  Author-email: YellowDog Limited <support@yellowdog.co>
6
6
  Project-URL: Homepage, https://yellowdog.co
@@ -1,9 +1,12 @@
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=o0PlN72qDSyhkmfNGsOUnGoK5zvKIZOYsFv3V8K_sG4,34
3
+ yellowdog_client/_version.py,sha256=fr3JIY4ShFXgD8UqCYKRC-PJ0sL5WZOFHY5TLToTZQ0,37
4
4
  yellowdog_client/client_collection.py,sha256=VSEzjf6iR1qCQ0YGLyDq_Kgvw8r832QDwTp6-MLB4Vs,388
5
- yellowdog_client/platform_client.py,sha256=h_9sd35e0GMdVGjSjG0KGcG3w1qLGY1Vf1U1gSor-HE,7052
6
- yellowdog_client/account/__init__.py,sha256=wx5GbsoODMdXbOmRoNZu5VYgDJX-RqsFb9ph14HXoV4,235
5
+ yellowdog_client/platform_client.py,sha256=yCzKsOQKllnfzwP9bG-JGtvOdvY7EaEQzFsgX3ERzVY,7476
6
+ yellowdog_client/account/__init__.py,sha256=DiLL3uSMyVlAKWsncX0k5Ioc2hw87HQoEkSYO0ro0fg,456
7
+ yellowdog_client/account/account_client.py,sha256=E7YHvPKIi5kSgX06-7nb5J40QwPeDl3uN65RIXlFx3E,3383
8
+ yellowdog_client/account/account_client_impl.py,sha256=5qpc7t7lZwoilwi0Uo3nH-e8BsI-cN22IgUeSQUE8QA,5996
9
+ yellowdog_client/account/account_service_proxy.py,sha256=IjOa9qCDpSBGfNL1soxbcGqGHpno84jGWRa3lwE4MPE,5303
7
10
  yellowdog_client/account/keyring_client.py,sha256=IFogh3LNNtL0cSbvbaEuhJ41UhtJbItyxm0AEnAaFMk,1125
8
11
  yellowdog_client/account/keyring_client_impl.py,sha256=s_IltFtozR7lYdR9XNEZVj885pgJ0DoInv0B24GtblI,1665
9
12
  yellowdog_client/account/keyring_service_proxy.py,sha256=8oK6lK3FxHOIbq--qcKSAd5bqkPGMN023CrX_Q8RKeI,1220
@@ -445,7 +448,7 @@ yellowdog_client/object_store/utils/memory_mapped_file_writter.py,sha256=8l9E_m8
445
448
  yellowdog_client/scheduler/__init__.py,sha256=ZORtc_LUBoTcplpoDhCHZNannI3qjeohghNcoBYU3ts,927
446
449
  yellowdog_client/scheduler/predicated_work_subscription_event_listener.py,sha256=mLfaVRmIMtQbj9u6d8O_B-VaZxOy5l1kuGCfTsS_xPU,2056
447
450
  yellowdog_client/scheduler/predicated_worker_pool_subscription_event_listener.py,sha256=z7tCniTF8WL6HSV7QcMOWFvC9EGSRopBGLODFOQinTA,2080
448
- yellowdog_client/scheduler/work_client.py,sha256=vaF2lWLtJkd5D16GGYUfde3nv7A5w4BcwxtacjrvNtg,13140
451
+ yellowdog_client/scheduler/work_client.py,sha256=9c2FARQ21JBVsOHDuiYEPs8w_6pM1psYV1G0bUpn43g,13142
449
452
  yellowdog_client/scheduler/work_client_impl.py,sha256=33O8T25bV-zHx3R3gSQ047NGuSmpWESn7sCaZmqgLFo,7343
450
453
  yellowdog_client/scheduler/work_requirement_helper.py,sha256=vQMoI9emTMKLLmZSil3IGNUtxUl50MFuITJTv5Okvlo,4167
451
454
  yellowdog_client/scheduler/work_service_proxy.py,sha256=bSg0892B82uAN3zXSUGoSF0BjVzhTuzuZNEMS-wZRIw,2995
@@ -457,8 +460,8 @@ yellowdog_client/usage/__init__.py,sha256=XQwRJqTdxKZa1QUTsxBEL0TqQJeQHGyPklFeqc
457
460
  yellowdog_client/usage/allowances_client.py,sha256=H6n63jXjT4OwuWJgFUXSjSmvGTZz9uspy3kj3upinaA,1337
458
461
  yellowdog_client/usage/allowances_client_impl.py,sha256=nQPnSzJKhL3WvyCn5fmiDkwE84xZryH9YvV5Z1GjU4M,2061
459
462
  yellowdog_client/usage/allowances_service_proxy.py,sha256=uO6LWnpjIzUcZTGdOxPXn7SyYX7NMRqO5KUiHUGr490,1320
460
- yellowdog_sdk-9.1.1.dist-info/licenses/LICENSE,sha256=QwcOLU5TJoTeUhuIXzhdCEEDDvorGiC6-3YTOl4TecE,11356
461
- yellowdog_sdk-9.1.1.dist-info/METADATA,sha256=n9qr_n3BZJahf3U18-9QxmHpa1XvuAkBQZX3xtQynAM,3238
462
- yellowdog_sdk-9.1.1.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
463
- yellowdog_sdk-9.1.1.dist-info/top_level.txt,sha256=6PH16DcoqpYHhQ5A0UJOjf0tg-1rTrNC9C2CLqCMuFo,26
464
- yellowdog_sdk-9.1.1.dist-info/RECORD,,
463
+ yellowdog_sdk-9.1.3.dist-info/licenses/LICENSE,sha256=QwcOLU5TJoTeUhuIXzhdCEEDDvorGiC6-3YTOl4TecE,11356
464
+ yellowdog_sdk-9.1.3.dist-info/METADATA,sha256=plKKuBZ3a0vWxUTCY4EraOZe2SJ-16ox-w3mWHP7yN8,3238
465
+ yellowdog_sdk-9.1.3.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
466
+ yellowdog_sdk-9.1.3.dist-info/top_level.txt,sha256=6PH16DcoqpYHhQ5A0UJOjf0tg-1rTrNC9C2CLqCMuFo,26
467
+ yellowdog_sdk-9.1.3.dist-info/RECORD,,