Skip to content

Commit d786e07

Browse files
committed
feat(lab-4126): handle custom tqdm
1 parent 6784124 commit d786e07

File tree

13 files changed

+55
-1
lines changed

13 files changed

+55
-1
lines changed

sdk-config.example.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"api_key": "your-api-key-here",
3-
"api_endpoint": "https://cloud.kili-technology.com/api/label/v2/graphql",
3+
"api_endpoint": "https://api-endpoint.com",
44
"verify_ssl": true,
55
"disable_tqdm": false
66
}

src/kili/presentation/client/asset.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
from kili.domain.types import ListOrTuple
3030
from kili.presentation.client.helpers.common_validators import (
3131
disable_tqdm_if_as_generator,
32+
resolve_disable_tqdm,
3233
)
3334
from kili.presentation.client.helpers.filter_conversion import (
3435
extract_step_ids_from_project_steps,
@@ -499,6 +500,9 @@ def assets(
499500
step_name_in=step_name_not_in,
500501
)
501502

503+
# Resolve disable_tqdm: function parameter > client global setting > function default
504+
disable_tqdm = resolve_disable_tqdm(disable_tqdm, getattr(self, "disable_tqdm", None))
505+
502506
asset_use_cases = AssetUseCases(self.kili_api_gateway)
503507
filters = AssetFilters(
504508
project_id=ProjectId(project_id),

src/kili/presentation/client/base.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
"""Base class for all client methods classes."""
22

33
from abc import ABC
4+
from typing import Optional
45

56
from kili.adapters.kili_api_gateway.kili_api_gateway import KiliAPIGateway
67

@@ -14,3 +15,4 @@ class BaseClientMethods(ABC):
1415
"""
1516

1617
kili_api_gateway: KiliAPIGateway # instantiated in the Kili client child class
18+
disable_tqdm: Optional[bool] # instantiated in the Kili client child class

src/kili/presentation/client/cloud_storage.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
from kili.domain.types import ListOrTuple
2121
from kili.presentation.client.helpers.common_validators import (
2222
disable_tqdm_if_as_generator,
23+
resolve_disable_tqdm,
2324
)
2425
from kili.use_cases.cloud_storage import CloudStorageUseCases
2526
from kili.utils.logcontext import for_all_methods, log_call
@@ -127,6 +128,7 @@ def cloud_storage_connections(
127128
" project_id must be specified"
128129
)
129130

131+
disable_tqdm = resolve_disable_tqdm(disable_tqdm, getattr(self, "disable_tqdm", None))
130132
disable_tqdm = disable_tqdm_if_as_generator(as_generator, disable_tqdm)
131133

132134
cloud_storage_use_cases = CloudStorageUseCases(self.kili_api_gateway)
@@ -230,6 +232,7 @@ def cloud_storage_integrations(
230232
>>> kili.cloud_storage_integrations()
231233
[{'name': 'My bucket', 'id': '123456789', 'platform': 'AWS', 'status': 'CONNECTED'}]
232234
"""
235+
disable_tqdm = resolve_disable_tqdm(disable_tqdm, getattr(self, "disable_tqdm", None))
233236
disable_tqdm = disable_tqdm_if_as_generator(as_generator, disable_tqdm)
234237
options = QueryOptions(disable_tqdm, first, skip)
235238
data_integrations_gen = CloudStorageUseCases(self.kili_api_gateway).list_data_integrations(

src/kili/presentation/client/helpers/common_validators.py

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,32 @@ def disable_tqdm_if_as_generator(
2020
return disable_tqdm
2121

2222

23+
def resolve_disable_tqdm(
24+
disable_tqdm: bool | None, client_disable_tqdm: bool | None
25+
) -> bool | None:
26+
"""Resolve the disable_tqdm parameter with priority: function param > client global setting.
27+
28+
Args:
29+
disable_tqdm: The disable_tqdm parameter passed to the function.
30+
client_disable_tqdm: The global disable_tqdm setting from the client.
31+
Can be None if the client doesn't have this attribute set (e.g., in tests).
32+
33+
Returns:
34+
The resolved disable_tqdm value, or None if both are None (to use function default).
35+
36+
Examples:
37+
>>> resolve_disable_tqdm(True, False) # Function param takes priority
38+
True
39+
>>> resolve_disable_tqdm(None, True) # Use client global setting
40+
True
41+
>>> resolve_disable_tqdm(None, None) # Use function default
42+
None
43+
"""
44+
if disable_tqdm is not None:
45+
return disable_tqdm
46+
return client_disable_tqdm
47+
48+
2349
def assert_all_arrays_have_same_size(
2450
arrays: list[Optional[ListOrTuple[Any]]], raise_error: bool = True
2551
) -> bool:

src/kili/presentation/client/internal.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
from kili.domain.api_key import ApiKeyFilters
1212
from kili.domain.types import ListOrTuple
1313
from kili.entrypoints.mutations.project.queries import GQL_DELETE_PROJECT
14+
from kili.presentation.client.helpers.common_validators import resolve_disable_tqdm
1415
from kili.presentation.client.organization import InternalOrganizationClientMethods
1516
from kili.use_cases.api_key import ApiKeyUseCases
1617

@@ -97,6 +98,7 @@ def api_keys(
9798
A result object which contains the query if it was successful,
9899
or an error message.
99100
"""
101+
disable_tqdm = resolve_disable_tqdm(disable_tqdm, getattr(self, "disable_tqdm", None))
100102
api_key_use_cases = ApiKeyUseCases(self.kili_api_gateway)
101103
filters = ApiKeyFilters(api_key_id=api_key_id, user_id=user_id, api_key=api_key)
102104
api_keys_gen = api_key_use_cases.list_api_keys(

src/kili/presentation/client/issue.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
from kili.presentation.client.helpers.common_validators import (
1616
assert_all_arrays_have_same_size,
1717
disable_tqdm_if_as_generator,
18+
resolve_disable_tqdm,
1819
)
1920
from kili.use_cases.issue import IssueUseCases
2021
from kili.use_cases.issue.types import IssueToCreateUseCaseInput
@@ -195,6 +196,7 @@ def issues(
195196
"You cannot provide both `asset_id` and `asset_id_in` at the same time."
196197
)
197198

199+
disable_tqdm = resolve_disable_tqdm(disable_tqdm, getattr(self, "disable_tqdm", None))
198200
disable_tqdm = disable_tqdm_if_as_generator(as_generator, disable_tqdm)
199201
options = QueryOptions(disable_tqdm=disable_tqdm, first=first, skip=skip)
200202
issues_gen = IssueUseCases(self.kili_api_gateway).list_issues(

src/kili/presentation/client/label.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737
from kili.presentation.client.helpers.common_validators import (
3838
assert_all_arrays_have_same_size,
3939
disable_tqdm_if_as_generator,
40+
resolve_disable_tqdm,
4041
)
4142
from kili.presentation.client.helpers.filter_conversion import (
4243
extract_step_ids_from_project_steps,
@@ -454,6 +455,7 @@ def labels(
454455
if category_search:
455456
validate_category_search_query(category_search)
456457

458+
disable_tqdm = resolve_disable_tqdm(disable_tqdm, getattr(self, "disable_tqdm", None))
457459
disable_tqdm = disable_tqdm_if_as_generator(as_generator, disable_tqdm)
458460
options = QueryOptions(disable_tqdm, first, skip)
459461

src/kili/presentation/client/notification.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
from kili.domain.user import UserFilter, UserId
1212
from kili.presentation.client.helpers.common_validators import (
1313
disable_tqdm_if_as_generator,
14+
resolve_disable_tqdm,
1415
)
1516
from kili.use_cases.notification import NotificationUseCases
1617
from kili.utils.logcontext import for_all_methods, log_call
@@ -104,6 +105,7 @@ def notifications(
104105
Returns:
105106
An iterable of notifications.
106107
"""
108+
disable_tqdm = resolve_disable_tqdm(disable_tqdm, getattr(self, "disable_tqdm", None))
107109
disable_tqdm = disable_tqdm_if_as_generator(as_generator, disable_tqdm)
108110
options = QueryOptions(disable_tqdm, first, skip)
109111
filters = NotificationFilter(

src/kili/presentation/client/organization.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
)
1818
from kili.domain.types import ListOrTuple
1919
from kili.presentation.client.base import BaseClientMethods
20+
from kili.presentation.client.helpers.common_validators import resolve_disable_tqdm
2021
from kili.use_cases.organization.use_cases import OrganizationUseCases
2122
from kili.utils.logcontext import for_all_methods, log_call
2223

@@ -141,6 +142,7 @@ def organizations(
141142
>>> kili.organizations(organization_id=organization_id, fields=['users.email'])
142143
[{'users': [{'email': 'john@doe.com'}]}]
143144
"""
145+
disable_tqdm = resolve_disable_tqdm(disable_tqdm, getattr(self, "disable_tqdm", None))
144146
organization_use_cases = OrganizationUseCases(self.kili_api_gateway)
145147
organization_gen = organization_use_cases.list_organizations(
146148
OrganizationFilters(

0 commit comments

Comments
 (0)