Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add .clear() and .copy_empty_like() functionality to QuantumCircuit. #8134

Merged
merged 20 commits into from
Jun 16, 2022

Conversation

pedrorrivero
Copy link
Member

@pedrorrivero pedrorrivero commented Jun 3, 2022

Summary

Adds .clear() and .copy_empty_like() functionality to QuantumCircuit.

Closes #8132
Changelog: New Feature

Details and comments

  1. Clear functionality to erase all instructions from a QuantumCircuit.
    We clear both the data and the parameter table.

  2. Copy empty functionality to get a cleared copy of a QuantumCircuit.
    This is logically equivalent to qc.copy().clear() however, it is done avoiding a deepcopy of the original QuantumCircuit, and therefore it is more efficient.
    This functionality is already implemented for DAGCircuit, and retains all relevant circuit properties other than the instructions and associated parameters (e.g. registers, bits, name, metadata). Contrary to the implementation in DAGCircuit, this method allows for an optional parameter to update the name of the copied circuit, mimicking qc.copy(name).

To do

  • Add tests
  • Add release note
  • Check docstring

@pedrorrivero pedrorrivero requested a review from a team as a code owner June 3, 2022 17:51
@qiskit-bot
Copy link
Collaborator

Thank you for opening a new pull request.

Before your PR can be merged it will first need to pass continuous integration tests and be reviewed. Sometimes the review process can be slow, so please be patient.

While you're waiting, please feel free to review other open PRs. While only a subset of people are authorized to approve pull requests for merging, everyone is encouraged to review open pull requests. Doing reviews helps reduce the burden on the core team and helps make the project's code better for everyone.

One or more of the the following people are requested to review this:

  • @Qiskit/terra-core

@pedrorrivero pedrorrivero marked this pull request as draft June 3, 2022 17:52
@coveralls
Copy link

coveralls commented Jun 3, 2022

Pull Request Test Coverage Report for Build 2512007716

  • 16 of 16 (100.0%) changed or added relevant lines in 1 file are covered.
  • No unchanged relevant lines lost coverage.
  • Overall coverage increased (+0.002%) to 84.27%

Totals Coverage Status
Change from base Build 2511814323: 0.002%
Covered Lines: 54826
Relevant Lines: 65060

💛 - Coveralls

@pedrorrivero pedrorrivero marked this pull request as ready for review June 10, 2022 00:01
@pedrorrivero
Copy link
Member Author

@mtreinish this should be ready now

qiskit/circuit/quantumcircuit.py Outdated Show resolved Hide resolved
qiskit/circuit/quantumcircuit.py Outdated Show resolved Hide resolved
qiskit/circuit/quantumcircuit.py Outdated Show resolved Hide resolved
pedrorrivero and others added 5 commits June 10, 2022 11:14
Co-authored-by: Julien Gacon <gaconju@gmail.com>
Co-authored-by: Julien Gacon <gaconju@gmail.com>
Co-authored-by: Julien Gacon <gaconju@gmail.com>
Copy link
Member

@mtreinish mtreinish left a comment

Choose a reason for hiding this comment

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

Overall LGTM, just one inline comment about the release note. Otherwise I think this is good to go.

releasenotes/notes/clear-circuit-b8edd4126f47d75a.yaml Outdated Show resolved Hide resolved
Co-authored-by: Matthew Treinish <mtreinish@kortar.org>
@mtreinish mtreinish added Changelog: New Feature Include in the "Added" section of the changelog automerge labels Jun 16, 2022
@mergify mergify bot merged commit f47cd45 into Qiskit:main Jun 16, 2022
@pedrorrivero pedrorrivero deleted the clear-circuit branch September 25, 2022 15:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Changelog: New Feature Include in the "Added" section of the changelog
Projects
None yet
Development

Successfully merging this pull request may close these issues.

QuantumCircuit .clear() and .copy_empty_like() functionality
5 participants