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

Use object.__hash__ for Node.__hash__ #1522

Merged
merged 1 commit into from Nov 9, 2021
Merged

Conversation

klette
Copy link
Contributor

@klette klette commented Oct 27, 2021

This fixes a regression in commit 6029341 that
changed the __hash__ implementation of Node from the default pointer
hash, to a hash based on the node fields.

Since these fields contain list objects, they are not hashable, making
every call to Node.__hash__ fail.

This breaks some third-party usage such as in django-compressor
(See: django-compressor/django-compressor#1060)

This change reverts the hash method back to using object.__hash__ as
the hash implementation.

Checklist:

  • Add tests that demonstrate the correct behavior of the change. Tests should fail without the change.
  • Add or update relevant docs, in the docs folder and in code.
  • Add an entry in CHANGES.rst summarizing the change and linking to the issue.
  • Add .. versionchanged:: entries in any relevant code docs.
  • Run pre-commit hooks and fix any issues.
  • Run pytest and tox, no tests failed.

@davidism davidism added this to the 3.0.3 milestone Nov 9, 2021
@davidism davidism changed the base branch from main to 3.0.x November 9, 2021 17:11
This fixes a regression in commit 6029341 that
changed the `__hash__` implementation of Node from the default pointer
hash, to a hash based on the node fields.

Since these fields contains list objects, they are not hashable, making
every call to `Node.__hash__` fail.

This breaks some third-party usage such as in `django-compressor`
(See: django-compressor/django-compressor#1060)

This changed reverts the hash method back to using `object.__hash__` as
the hash implementation.
@davidism davidism changed the title Use object.__hash__ for Node.__hash Use object.__hash__ for Node.__hash__ Nov 9, 2021
@davidism davidism merged commit 6aa096a into pallets:3.0.x Nov 9, 2021
@klette klette deleted the fix-node-hash branch November 10, 2021 19:14
@github-actions github-actions bot locked as resolved and limited conversation to collaborators Nov 25, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Node.__hash__ raises exception on all parsed input
2 participants