Skip to content
2 changes: 1 addition & 1 deletion client/qiskit_serverless/core/client.py
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@ def __repr__(self):
####### JOBS #######
####################
@abstractmethod
def jobs(self, **kwargs) -> List[Job]:
def jobs(self, function: Optional[QiskitFunction] = None, **kwargs) -> List[Job]:
"""Return list of jobs.

Returns:
Expand Down
2 changes: 1 addition & 1 deletion client/qiskit_serverless/core/clients/local_client.py
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ def from_dict(cls, dictionary: dict):
def job(self, job_id: str) -> Optional[Job]:
return self._jobs[job_id]["job"]

def jobs(self, **kwargs) -> List[Job]:
def jobs(self, function: Optional[QiskitFunction] = None, **kwargs) -> List[Job]:
return [job["job"] for job in list(self._jobs.values())]

def run(
Expand Down
2 changes: 1 addition & 1 deletion client/qiskit_serverless/core/clients/ray_client.py
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ def from_dict(cls, dictionary: dict):
####### JOBS #######
####################

def jobs(self, **kwargs) -> List[Job]:
def jobs(self, function: Optional[QiskitFunction] = None, **kwargs) -> List[Job]:
"""Return list of jobs.

Returns:
Expand Down
18 changes: 11 additions & 7 deletions client/qiskit_serverless/core/clients/serverless_client.py
Original file line number Diff line number Diff line change
Expand Up @@ -192,15 +192,15 @@ def dependencies_versions(self):
####################

@_trace_job("list")
def jobs(self, **kwargs) -> List[Job]:
def jobs(self, function: Optional[QiskitFunction] = None, **kwargs) -> List[Job]:
"""Retrieve a list of jobs with optional filtering.

Args:
function (QiskitFunction): The function that created the jobs we want to retrieve.
limit (int, optional): Maximum number of jobs to return. Defaults to 10.
offset (int, optional): Number of jobs to skip. Defaults to 0.
status (str, optional): Filter by job status.
created_after (str, optional): Filter jobs created after this timestamp.
function_name (str, optional): Filter by function name.
**kwargs: Additional query parameters.

Returns:
Expand All @@ -216,8 +216,10 @@ def jobs(self, **kwargs) -> List[Job]:
kwargs["status"] = status
created_after = kwargs.get("created_after", None)
kwargs["created_after"] = created_after
function_name = kwargs.get("function_name", None)
kwargs["function"] = function_name

if function:
kwargs["function"] = function.title
kwargs["provider"] = function.provider

response_data = safe_json_request_as_dict(
request=lambda: requests.get(
Expand All @@ -236,7 +238,7 @@ def jobs(self, **kwargs) -> List[Job]:
]

@_trace_job("provider_list")
def provider_jobs(self, function: QiskitFunction, **kwargs) -> List[Job]:
def provider_jobs(self, function: Optional[QiskitFunction], **kwargs) -> List[Job]:
"""Retrieve jobs for a specific provider and function.

Args:
Expand All @@ -260,15 +262,17 @@ def provider_jobs(self, function: QiskitFunction, **kwargs) -> List[Job]:
kwargs["limit"] = limit
offset = kwargs.get("offset", 0)
kwargs["offset"] = offset
kwargs["function"] = function.title
kwargs["provider"] = function.provider
status = kwargs.get("status", None)
if status:
status, _ = _map_status_to_serverless(status)
kwargs["status"] = status
created_after = kwargs.get("created_after", None)
kwargs["created_after"] = created_after

if function:
kwargs["function"] = function.title
kwargs["provider"] = function.provider

response_data = safe_json_request_as_dict(
request=lambda: requests.get(
f"{self.host}/api/{self.version}/jobs/provider/",
Expand Down
7 changes: 2 additions & 5 deletions client/qiskit_serverless/core/function.py
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,7 @@ class RunService(ABC):
"""Provide access to run a function and retrieve the jobs associated to that function"""

@abstractmethod
def jobs(self, **kwargs) -> List[Job]:
def jobs(self, function: QiskitFunction, **kwargs) -> List[Job]:
"""Return list of jobs.

Returns:
Expand Down Expand Up @@ -235,10 +235,7 @@ def jobs(self):
f"Function validation failed. Validation errors:\n {error_string}",
)

jobs = self._run_service.jobs(
title=self.title,
provider=self.provider,
)
jobs = self._run_service.jobs(function=self)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Question @korgan00 , should not we have here also **kargs? (I'm not sure)

return jobs


Expand Down