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

Make BitArray.{slice_bits,slice_shots,__getitem__} raise IndexError when indices are not valid (backport #12755) #12845

Merged
merged 1 commit into from
Jul 29, 2024

Conversation

mergify[bot]
Copy link
Contributor

@mergify mergify bot commented Jul 29, 2024

Summary

This PR updates BitArray.{slice_bits,slice_shots,__getitem__} to raise IndexError if indices are not valid.

Especially, __getitem__ raise IndexError with appropriate message as follows (ba[0, 0, 0] case).

from qiskit.primitives.containers import BitArray

ba = BitArray.from_counts({"0": 2, "1": 3})
ba = ba.reshape(1, 1)

try:
    ba[1]
except Exception as ex:
    print(type(ex), ex)
try:
    ba[0, 0, 0]
except Exception as ex:
    print(type(ex), ex)
try:
    ba[0, 0, 0, 0]
except Exception as ex:
    print(type(ex), ex)

main branch

<class 'IndexError'> index 1 is out of bounds for axis 0 with size 1
<class 'ValueError'> The input array must have at least two axes.
<class 'ValueError'> BitArrays cannot be sliced along the bits axis, see slice_bits() instead.

this PR

<class 'IndexError'> index 1 is out of bounds for axis 0 with size 1
<class 'IndexError'> BitArray cannot be sliced along the shots axis, use slice_shots() instead.
<class 'IndexError'> BitArray cannot be sliced along the bits axis, use slice_bits() instead.

Details and comments


This is an automatic backport of pull request #12755 done by [Mergify](https://mergify.com).

…r` when indices are not valid (#12755)

* Make BitArray.{slice_bits,slice_shots} raise IndexError when indices are out of bounds

* update __getitem__

(cherry picked from commit bfd2eea)
@mergify mergify bot requested review from a team as code owners July 29, 2024 15:24
@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 following people are relevant to this code:

  • @Qiskit/terra-core
  • @ajavadia
  • @levbishop
  • @t-imamichi

@github-actions github-actions bot added Changelog: Bugfix Include in the "Fixed" section of the changelog mod: primitives Related to the Primitives module labels Jul 29, 2024
@github-actions github-actions bot added this to the 1.2.0 milestone Jul 29, 2024
@ElePT ElePT enabled auto-merge July 29, 2024 15:32
@coveralls
Copy link

Pull Request Test Coverage Report for Build 10147167107

Details

  • 7 of 7 (100.0%) changed or added relevant lines in 1 file are covered.
  • 8 unchanged lines in 2 files lost coverage.
  • Overall coverage increased (+0.002%) to 89.947%

Files with Coverage Reduction New Missed Lines %
crates/qasm2/src/lex.rs 2 92.11%
crates/qasm2/src/parse.rs 6 96.69%
Totals Coverage Status
Change from base Build 10145758938: 0.002%
Covered Lines: 66200
Relevant Lines: 73599

💛 - Coveralls

@ElePT ElePT added this pull request to the merge queue Jul 29, 2024
Merged via the queue into stable/1.2 with commit bf3da30 Jul 29, 2024
18 checks passed
@mergify mergify bot deleted the mergify/bp/stable/1.2/pr-12755 branch July 29, 2024 18:19
@mtreinish mtreinish mentioned this pull request Aug 8, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Changelog: Bugfix Include in the "Fixed" section of the changelog mod: primitives Related to the Primitives module
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants