-
Notifications
You must be signed in to change notification settings - Fork 147
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
NodeIndices
does not implement sequence protocol
#696
Comments
FWIW, on python 3.7 it fails with a different message: On both systems retworkx 0.11 worked fine. |
Sigh I thought pyo3 fixed all these compatibility issues (we hit similar things earlier in the cycle after upgrading our pyo3 version). Thanks for reporting this I'll see if we're missing something on the newer pyo3 version and get it to act like a sequence properly again, and in the worst case we can just downgrade pyo3 to a version that is doing the correct thing. |
We need to add tests to cover some behaviors and expected use cases of the custom return types, it's similar to #614 that we took some PyO3 "magic" for granted and they changed the API |
Add the `sequence` option to PyO3's `pyclass`, so that the `sq_length` slot is implemented [1]. Implementing this method is required for sequence types, or Python C API functions like `PySequence_Size` will fail with an error. The `reversed` built-in method relies on `PySequence_*` methods. A test reversing `NodeIndices` is added to guard against future violations of the sequence protocol. Fixes Qiskit#696. [1]: PyO3/pyo3#2567
* Fix support of sequence protocol for returned lists Add the `sequence` option to PyO3's `pyclass`, so that the `sq_length` slot is implemented [1]. Implementing this method is required for sequence types, or Python C API functions like `PySequence_Size` will fail with an error. The `reversed` built-in method relies on `PySequence_*` methods. A test reversing `NodeIndices` is added to guard against future violations of the sequence protocol. Fixes #696. [1]: PyO3/pyo3#2567 * Add release note Co-authored-by: Matthew Treinish <mtreinish@kortar.org>
* Fix support of sequence protocol for returned lists Add the `sequence` option to PyO3's `pyclass`, so that the `sq_length` slot is implemented [1]. Implementing this method is required for sequence types, or Python C API functions like `PySequence_Size` will fail with an error. The `reversed` built-in method relies on `PySequence_*` methods. A test reversing `NodeIndices` is added to guard against future violations of the sequence protocol. Fixes #696. [1]: PyO3/pyo3#2567 * Add release note Co-authored-by: Matthew Treinish <mtreinish@kortar.org> (cherry picked from commit 4592bc0)
…735) * Bump pyo3 from 0.17.2 to 0.17.3 (#723) Bumps [pyo3](https://github.com/pyo3/pyo3) from 0.17.2 to 0.17.3. - [Release notes](https://github.com/pyo3/pyo3/releases) - [Changelog](https://github.com/PyO3/pyo3/blob/main/CHANGELOG.md) - [Commits](PyO3/pyo3@v0.17.2...v0.17.3) --- updated-dependencies: - dependency-name: pyo3 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> (cherry picked from commit d91f488) # Conflicts: # Cargo.lock # Cargo.toml * Fix support of sequence protocol for returned lists (#730) * Fix support of sequence protocol for returned lists Add the `sequence` option to PyO3's `pyclass`, so that the `sq_length` slot is implemented [1]. Implementing this method is required for sequence types, or Python C API functions like `PySequence_Size` will fail with an error. The `reversed` built-in method relies on `PySequence_*` methods. A test reversing `NodeIndices` is added to guard against future violations of the sequence protocol. Fixes #696. [1]: PyO3/pyo3#2567 * Add release note Co-authored-by: Matthew Treinish <mtreinish@kortar.org> (cherry picked from commit 4592bc0) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Tino Wagner <ich@tinowagner.com> Co-authored-by: Ivan Carvalho <ivancarv@student.ubc.ca>
Information
rustworkx-0.12.0-cp39-cp39-win_amd64.whl
from PyPIWhat is the current behavior?
Minimal example:
From Python, I can use both
len()
and indexing onrustworkx.NodeIndices
. So that works.What is the expected behavior?
No error :)
reversed
consumes sequences, andNodeIndices
is documented to implement the sequence protocol.Steps to reproduce the problem
See above.
The text was updated successfully, but these errors were encountered: