Qiskit / qiskit-serverless

A programming model for leveraging quantum and classical resources
https://qiskit.github.io/qiskit-serverless/
Apache License 2.0
67 stars 27 forks source link

Client: refactor `Provider` #131

Closed IceKhan13 closed 1 year ago

IceKhan13 commented 1 year ago

What is the expected behavior?

Extend provider to support CRUD operations on compute resources + move run_program to Provider class.

class Provider(...):
    def get_compute_resources() -> List[ComputeResource]:
         """Returns compute resources for provider."""
         raise NotImplementedError

    def create_compute_resource(resource) -> int:
         """Creates compute resource for provider."""
         raise NotImplementedError

    def delete_compute_resource(resource) -> int:
         """Deletes compute resource for provider."""
         raise NotImplementedError

    def run_program(program: Program) -> Job:
        """Executes program as a async job"""
        ...

Refactor QuantumServerless class to take advantage of provider.run_program

class QuantumServerless:
    def run_program(program) -> Job:
        """Executes program as a async job"""
        self._selected_provider.run_program(program)

Epic: https://github.com/Qiskit-Extensions/quantum-serverless/issues/55

psschwei commented 1 year ago

I'll take this