Skip to content

Commit 8f8b982

Browse files
committed
--wip-- [skip ci]
1 parent 986e745 commit 8f8b982

File tree

2 files changed

+18
-2
lines changed

2 files changed

+18
-2
lines changed

src/posit/connect/content.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@
1919
overload,
2020
)
2121

22+
from posit.connect.jobs import _Jobs, Job
23+
2224
from . import tasks
2325
from ._api import ApiDictEndpoint, JsonifiableDict
2426
from .bundles import Bundles
@@ -514,7 +516,7 @@ def tags(self) -> ContentItemTags:
514516
@property
515517
def jobs(self) -> Jobs:
516518
path = posixpath.join(self._path, "jobs")
517-
return _ResourceSequence(self._ctx, path, uid="key")
519+
return _Jobs(self._ctx, path, uid="key")
518520

519521
@property
520522
@requires(version="2024.11.0")

src/posit/connect/jobs.py

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,15 @@
11
from __future__ import annotations
22

3+
from typing import Any, List
4+
35
from typing_extensions import (
46
Iterable,
57
Literal,
68
Protocol,
79
runtime_checkable,
810
)
911

10-
from .resources import Resource, ResourceSequence
12+
from .resources import Resource, ResourceSequence, _Resource, _ResourceSequence
1113

1214
JobTag = Literal[
1315
"unknown",
@@ -39,6 +41,7 @@
3941
StatusCode = Literal[0, 1, 2]
4042

4143

44+
@runtime_checkable
4245
class Job(Resource, Protocol):
4346
def destroy(self) -> None:
4447
"""Destroy the job.
@@ -53,6 +56,11 @@ def destroy(self) -> None:
5356
"""
5457

5558

59+
class _Job(_Resource):
60+
def wait_for(self) -> None:
61+
pass
62+
63+
5664
@runtime_checkable
5765
class Jobs(ResourceSequence[Job], Protocol):
5866
def fetch(self) -> Iterable[Job]:
@@ -165,3 +173,9 @@ def find_by(
165173
This action requires administrator, owner, or collaborator privileges.
166174
"""
167175
...
176+
177+
178+
class _Jobs(_ResourceSequence[Job]):
179+
def fetch(self, **conditions) -> Iterable[Any]:
180+
resources = super().fetch(**conditions)
181+
return [_Job(**resource) for resource in resources]

0 commit comments

Comments
 (0)