Skip to content

Commit b425f76

Browse files
authored
feat: Hub 0.10.2 (#114)
* revert: timeout is no longer needed * style: better type annotations for the base client * feat: add `display_name` to project and analysis models * chore: bump tested Hub version * build(deps): bump dependencies * chore: bump package version
1 parent 33ddd7f commit b425f76

6 files changed

Lines changed: 282 additions & 253 deletions

File tree

.env.test

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,4 @@ PYTEST_ADMIN_PASSWORD=start123
77
PYTEST_DEFAULT_MASTER_IMAGE=python/base
88
PYTEST_ASYNC_MAX_RETRIES=5
99
PYTEST_ASYNC_RETRY_DELAY_MILLIS=500
10-
PYTEST_HUB_VERSION=0.10.1
10+
PYTEST_HUB_VERSION=0.10.2

flame_hub/_base_client.py

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -275,22 +275,22 @@ class GetKwargs(te.TypedDict, total=False):
275275
meta: bool
276276

277277

278-
def build_page_params(page_params: PageParams = None, default_page_params: PageParams = None) -> dict:
278+
def build_page_params(page_params: PageParams | None = None, default_page_params: PageParams | None = None) -> dict:
279279
"""Build a dictionary of query parameters based on provided pagination parameters."""
280280
# use empty dict if None is provided
281281
if default_page_params is None:
282282
default_page_params = DEFAULT_PAGE_PARAMS
283283

284284
if page_params is None:
285-
page_params = {}
285+
page_params: PageParams = {}
286286

287287
# overwrite default values with user-defined ones
288288
page_params = default_page_params | page_params
289289

290290
return {f"page[{k}]": v for k, v in page_params.items()}
291291

292292

293-
def build_filter_params(filter_params: FilterParams = None) -> dict:
293+
def build_filter_params(filter_params: FilterParams | None = None) -> dict:
294294
"""Build a dictionary of query parameters based on provided filter parameters."""
295295
if filter_params is None:
296296
filter_params = {}
@@ -317,7 +317,7 @@ def build_filter_params(filter_params: FilterParams = None) -> dict:
317317
return query_params
318318

319319

320-
def build_sort_params(sort_params: SortParams = None) -> dict:
320+
def build_sort_params(sort_params: SortParams | None = None) -> dict:
321321
if sort_params is None:
322322
sort_params = {}
323323

@@ -337,7 +337,7 @@ def build_sort_params(sort_params: SortParams = None) -> dict:
337337
return query_params
338338

339339

340-
def build_include_params(include_params: IncludeParams = None) -> dict:
340+
def build_include_params(include_params: IncludeParams | None = None) -> dict:
341341
if include_params is None:
342342
include_params = () # empty tuple
343343

@@ -353,7 +353,7 @@ def build_include_params(include_params: IncludeParams = None) -> dict:
353353
return {"include": ",".join(include_params)}
354354

355355

356-
def build_field_params(field_params: FieldParams = None) -> dict:
356+
def build_field_params(field_params: FieldParams | None = None) -> dict:
357357
if field_params is None:
358358
field_params = () # empty tuple
359359

@@ -406,16 +406,15 @@ class BaseClient(object):
406406
:py:class:`.AuthClient`, :py:class:`.CoreClient`, :py:class:`.StorageClient`
407407
"""
408408

409-
def __init__(self, base_url: str, auth: PasswordAuth | ClientAuth = None, **kwargs: te.Unpack[ClientKwargs]):
409+
def __init__(self, base_url: str, auth: PasswordAuth | ClientAuth | None = None, **kwargs: te.Unpack[ClientKwargs]):
410410
client = kwargs.get("client", None)
411-
# Set a read timeout of 20 seconds here because the endpoint for registry projects is slow.
412-
self._client = client or httpx.Client(auth=auth, base_url=base_url, timeout=httpx.Timeout(5, read=20))
411+
self._client = client or httpx.Client(auth=auth, base_url=base_url)
413412

414413
def _get_all_resources(
415414
self,
416415
resource_type: type[ResourceT],
417416
*path: str,
418-
include: IncludeParams = None,
417+
include: IncludeParams | None = None,
419418
expected_code: int = httpx.codes.OK.value,
420419
**params: te.Unpack[GetKwargs],
421420
) -> list[ResourceT] | tuple[list[ResourceT], ResourceListMeta]:
@@ -439,7 +438,7 @@ def _find_all_resources(
439438
self,
440439
resource_type: type[ResourceT],
441440
*path: str,
442-
include: IncludeParams = None,
441+
include: IncludeParams | None = None,
443442
expected_code: int = httpx.codes.OK.value,
444443
**params: te.Unpack[FindAllKwargs],
445444
) -> list[ResourceT] | tuple[list[ResourceT], ResourceListMeta]:
@@ -568,7 +567,7 @@ def _get_single_resource(
568567
self,
569568
resource_type: type[ResourceT],
570569
*path: str | UuidIdentifiable,
571-
include: IncludeParams = None,
570+
include: IncludeParams | None = None,
572571
expected_code: int = httpx.codes.OK.value,
573572
**params: te.Unpack[GetKwargs],
574573
) -> ResourceT | None:

flame_hub/_core_client.py

Lines changed: 24 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -168,6 +168,7 @@ class CreateProject(BaseModel):
168168
description: str | None
169169
master_image_id: t.Annotated[uuid.UUID | None, Field(), WrapValidator(uuid_validator)]
170170
name: str
171+
display_name: str | None
171172

172173

173174
class Project(CreateProject):
@@ -186,6 +187,7 @@ class UpdateProject(BaseModel):
186187
description: str | None | UNSET_T = UNSET
187188
master_image_id: t.Annotated[uuid.UUID | None | UNSET_T, Field(), WrapValidator(uuid_validator)] = UNSET
188189
name: str | UNSET_T = UNSET
190+
display_name: str | None | UNSET_T = UNSET
189191

190192

191193
ProjectNodeApprovalStatus = t.Literal["rejected", "approved"]
@@ -229,6 +231,7 @@ class Log(BaseModel):
229231
class CreateAnalysis(BaseModel):
230232
description: str | None
231233
name: str | None
234+
display_name: str | None
232235
project_id: t.Annotated[uuid.UUID, Field(), WrapValidator(uuid_validator)]
233236
master_image_id: t.Annotated[uuid.UUID | None, Field(), WrapValidator(uuid_validator)]
234237
registry_id: t.Annotated[uuid.UUID | None, Field(), WrapValidator(uuid_validator)]
@@ -271,7 +274,8 @@ class Analysis(CreateAnalysis):
271274

272275
class UpdateAnalysis(BaseModel):
273276
description: str | None | UNSET_T = UNSET
274-
name: str | None | UNSET_T = UNSET
277+
name: str | UNSET_T = UNSET
278+
display_name: str | None | UNSET_T = UNSET
275279
master_image_id: t.Annotated[uuid.UUID | None | UNSET_T, Field(), WrapValidator(uuid_validator)] = UNSET
276280
image_command_arguments: (
277281
t.Annotated[
@@ -505,11 +509,20 @@ def build_master_image(self, master_image_id: MasterImage | uuid.UUID | str):
505509
raise new_hub_api_error_from_response(r)
506510

507511
def create_project(
508-
self, name: str, master_image_id: MasterImage | uuid.UUID | str = None, description: str = None
512+
self,
513+
name: str,
514+
display_name: str = None,
515+
master_image_id: MasterImage | uuid.UUID | str = None,
516+
description: str = None,
509517
) -> Project:
510518
return self._create_resource(
511519
Project,
512-
CreateProject(name=name, master_image_id=master_image_id, description=description),
520+
CreateProject(
521+
name=name,
522+
master_image_id=master_image_id,
523+
description=description,
524+
display_name=display_name,
525+
),
513526
"projects",
514527
)
515528

@@ -527,10 +540,13 @@ def update_project(
527540
description: str | None | UNSET_T = UNSET,
528541
master_image_id: MasterImage | str | uuid.UUID | None | UNSET_T = UNSET,
529542
name: str | UNSET_T = UNSET,
543+
display_name: str | None | UNSET_T = UNSET,
530544
) -> Project:
531545
return self._update_resource(
532546
Project,
533-
UpdateProject(description=description, master_image_id=master_image_id, name=name),
547+
UpdateProject(
548+
description=description, master_image_id=master_image_id, name=name, display_name=display_name
549+
),
534550
"projects",
535551
project_id,
536552
)
@@ -581,6 +597,7 @@ def create_analysis(
581597
self,
582598
project_id: Project | uuid.UUID | str,
583599
name: str = None,
600+
display_name: str = None,
584601
description: str = None,
585602
master_image_id: MasterImage | uuid.UUID | str = None,
586603
registry_id: Registry | uuid.UUID | str = None,
@@ -591,6 +608,7 @@ def create_analysis(
591608
CreateAnalysis(
592609
project_id=project_id,
593610
name=name,
611+
display_name=display_name,
594612
description=description,
595613
master_image_id=master_image_id,
596614
registry_id=registry_id,
@@ -617,6 +635,7 @@ def update_analysis(
617635
self,
618636
analysis_id: Analysis | uuid.UUID | str,
619637
name: str | None | UNSET_T = UNSET,
638+
display_name: str | None | UNSET_T = UNSET,
620639
description: str | None | UNSET_T = UNSET,
621640
master_image_id: MasterImage | uuid.UUID | str | None | UNSET_T = UNSET,
622641
image_command_arguments: list[MasterImageCommandArgument] | UNSET_T = UNSET,
@@ -625,6 +644,7 @@ def update_analysis(
625644
Analysis,
626645
UpdateAnalysis(
627646
name=name,
647+
display_name=display_name,
628648
description=description,
629649
master_image_id=master_image_id,
630650
image_command_arguments=image_command_arguments,

0 commit comments

Comments
 (0)