Support pagination for retrieving runtime programs #170
Support pagination for retrieving runtime programs #170rathishcholarajan merged 22 commits intoQiskit:runtime-release-q4from
Conversation
rathishcholarajan
left a comment
There was a problem hiding this comment.
pprint_programs() also needs a limit and offset. And when limit and offset are passed we should automatically refresh.
@jyu00 Do we need the refresh option anymore or should we refresh by default? I find myself setting it always just to make sure everything is up to date.
|
@kt474 Let's call it |
|
Say there are 10 jobs and then something like A better solution would be to automatically refresh when |
….yaml Co-authored-by: Rathish Cholarajan <rathishc24@gmail.com>
….yaml Co-authored-by: Rathish Cholarajan <rathishc24@gmail.com>
rathishcholarajan
left a comment
There was a problem hiding this comment.
@kt474 Could you write some integration tests?
|
I know the limit on the server side is 20, but can we be nicer to our users? Like if someone specify 50, just loop under the cover and get all 50, instead of making the user do it. |
|
@rathishcholarajan I think we should try to get this into the release this week. Now that the server limits the results to 20, there is no way for users to go beyond 20 with the existing |
Co-authored-by: Rathish Cholarajan <rathishc24@gmail.com>
For subsequent requests paginate and return from cache
* Remove version field from runtime program (#152) * Remove version field from runtime program * Add release note * Rename isPublic to is_public when creating or reading runtime programs (#155) * Update programId to program_id when running program (#139) This needs to change in the program upload body request in order to meet the IBM Cloud API guidance. Co-authored-by: Jessie Yu <jessieyu@us.ibm.com> * Add support to view program update date (#160) * Upload runtime program using 'data' field (#157) * Read programs from "programs" array in response (#161) * Remove version field from runtime program (#152) * Remove version field from runtime program * Add release note * Rename isPublic to is_public when creating or reading runtime programs (#155) * Update programId to program_id when running program (#139) This needs to change in the program upload body request in order to meet the IBM Cloud API guidance. Co-authored-by: Jessie Yu <jessieyu@us.ibm.com> * Add support to view program update date (#160) * Upload runtime program using 'data' field (#157) * Read programs from "programs" array in response (#161) * Pass program as base64 string to update (#168) * Accept JSON schema as program metadata (#158) * Accept JSON schema as program metadata * Update qiskit_ibm/runtime/ibm_runtime_service.py Co-authored-by: Jessie Yu <jessieyu@us.ibm.com> * Apply suggestions from code review * Apply suggestions from code review Co-authored-by: Jessie Yu <jessieyu@us.ibm.com> Co-authored-by: Jessie Yu <jessieyu@us.ibm.com> * Pass program params as object (#171) * Fix integration tests * Use count to reduce one last extra call to API (#172) * Allow updating runtime metadata in place (#188) * update runtime metadata * return if no data * fix mypy * Update releasenotes/notes/update-runtime-metadata-d2ddbcfc0d034530.yaml Co-authored-by: Rathish Cholarajan <rathishc24@gmail.com> * Remove version field from runtime program (#152) * Remove version field from runtime program * Add release note * Rename isPublic to is_public when creating or reading runtime programs (#155) * Update programId to program_id when running program (#139) This needs to change in the program upload body request in order to meet the IBM Cloud API guidance. Co-authored-by: Jessie Yu <jessieyu@us.ibm.com> * Add support to view program update date (#160) * Upload runtime program using 'data' field (#157) * Read programs from "programs" array in response (#161) * Pass program as base64 string to update (#168) * Accept JSON schema as program metadata (#158) * Accept JSON schema as program metadata * Update qiskit_ibm/runtime/ibm_runtime_service.py Co-authored-by: Jessie Yu <jessieyu@us.ibm.com> * Apply suggestions from code review * Apply suggestions from code review Co-authored-by: Jessie Yu <jessieyu@us.ibm.com> Co-authored-by: Jessie Yu <jessieyu@us.ibm.com> * Pass program params as object (#171) * Fix integration tests * Use count to reduce one last extra call to API (#172) * Allow updating runtime metadata in place (#188) * update runtime metadata * return if no data * fix mypy * Update releasenotes/notes/update-runtime-metadata-d2ddbcfc0d034530.yaml Co-authored-by: Rathish Cholarajan <rathishc24@gmail.com> * Allow filtering runtime jobs by program ID (#193) * Allow filtering runtime jobs by program ID * Fix lint * Allow runtime program authors to retrieve program data (#174) * retrieve program data * refetch once if no program data * remove unused import * refresh program on data property * fix lint * Update qiskit_ibm/runtime/runtime_program.py Co-authored-by: Rathish Cholarajan <rathishc24@gmail.com> * Update qiskit_ibm/runtime/runtime_program.py Co-authored-by: Rathish Cholarajan <rathishc24@gmail.com> * Update qiskit_ibm/runtime/runtime_program.py Co-authored-by: Rathish Cholarajan <rathishc24@gmail.com> * add test case * add test case * add default data constant * add _validate_program method * Update test/ibm/runtime/test_runtime.py Co-authored-by: Rathish Cholarajan <rathishc24@gmail.com> * Update cache after updating program (#196) * Allow filtering runtime jobs by provider (#197) * add provider param * split provider into hub/group/project * add reno * wip add test case * fix lint/docs * Update qiskit_ibm/runtime/ibm_runtime_service.py Co-authored-by: Rathish Cholarajan <rathishc24@gmail.com> * Update releasenotes/notes/filter-jobs-by-provider-dead04faaf223840.yaml Co-authored-by: Rathish Cholarajan <rathishc24@gmail.com> * refactor test cases * remove print * add integration test Co-authored-by: Rathish Cholarajan <rathishc24@gmail.com> * Support pagination for retrieving runtime programs (#170) * wip add limit/offset params * add reno * refactor & update test case * offset -> skip, implement refresh logic * refresh when skip/limit not default * Update releasenotes/notes/runtime-program-pagination-8d599ae984a5ce33.yaml Co-authored-by: Rathish Cholarajan <rathishc24@gmail.com> * Update releasenotes/notes/runtime-program-pagination-8d599ae984a5ce33.yaml Co-authored-by: Rathish Cholarajan <rathishc24@gmail.com> * add to test case * refactor refresh logic * refactor * fix lint * add integration test * update doc string * Update qiskit_ibm/api/clients/runtime.py Co-authored-by: Rathish Cholarajan <rathishc24@gmail.com> * cleanup merge * Apply suggestions from code review * fix lint refactor * Fetch all programs upfront 20 at a time and store in cache For subsequent requests paginate and return from cache * Fix integration test Co-authored-by: Rathish Cholarajan <rathishc24@gmail.com> Co-authored-by: Rathish Cholarajan <Rathish.C@ibm.com> Co-authored-by: Renier Morales <renier@users.noreply.github.com> Co-authored-by: Jessie Yu <jessieyu@us.ibm.com> Co-authored-by: Kevin Tian <kevin.tian@ibm.com>
Summary
fixes #26
Details and comments