Skip to content

New: Experimental QCS Client#1368

Closed
kalzoo wants to merge 5 commits intorcfrom
experimental-api-client
Closed

New: Experimental QCS Client#1368
kalzoo wants to merge 5 commits intorcfrom
experimental-api-client

Conversation

@kalzoo
Copy link
Contributor

@kalzoo kalzoo commented Jul 26, 2021

Description

This PR includes changes needed to incorporate an experimental, gRPC-based client in place of the current rpcq-based client. These changes would involve breaking changes to the existing QuantumComputer and other interfaces, and due to expected instability, are corralled under the experimental subpackage for flexibility while still making them available to customers.

Some features of both gRPC and the new API make the new experimental QuantumComputer and related classes much simpler. Notably, they are also built with asyncio from the start.

Checklist

  • The PR targets the rc branch (not master).
  • Commit messages are prefixed with one of the prefixes outlined in the commit syntax checker (see pattern field).
  • The above description motivates these changes.
  • There is a unit test that covers these changes.
  • All new and existing tests pass locally and on the PR's checks.
  • Parameters and return values have type hints with PEP 484 syntax.
  • Functions and classes have useful Sphinx-style docstrings.
  • All code follows Black style and obeys flake8 conventions.
  • (New Feature) The docs have been updated accordingly.
  • (Bugfix) The associated issue is referenced above using auto-close keywords.
  • The changelog is updated, including author and PR number (@username, Test ignore #1234).

@kalzoo kalzoo requested a review from a team as a code owner July 26, 2021 06:36
@kalzoo kalzoo marked this pull request as draft July 26, 2021 06:37
from pyquil.quil import InstructionDesignator, Program


class ExperimentalProgram(Program):
Copy link
Contributor

Choose a reason for hiding this comment

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

Could you not update Program itself? Going from non-optional to optional should be backwards compatible

Copy link
Contributor

@ameyer-rigetti ameyer-rigetti Jul 27, 2021

Choose a reason for hiding this comment

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

Though I guess could result in a lot of refactoring to satisfy mypy and other use cases

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Part of my intent in this PR is to not have to change anything in the main library for simplicity, with this being almost a "draft" for the next major version (after a long period of iteration & feedback)

Copy link
Contributor

Choose a reason for hiding this comment

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

That makes good sense 👍

@kalzoo
Copy link
Contributor Author

kalzoo commented Apr 17, 2023

This work is being superseded by v4

@kalzoo kalzoo closed this Apr 17, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants