python / python/cpython

Incompatibility between _decimal and _pydecimal: Context.__hash__

Offen
#94,107 7 Kommentare 1 Reaktion 1 zugewiesene Person Auf GitHub ansehen

@rhettinger arbeitet bereits daran.

Seit 22.6.2022.

extension-modules type-bug
Vorherrschende Sprache
Python
Sterne
77.2k
Forks
36k
PR-Merge-Kennzahlen
PR-Kennzahlen ausstehend

Beschreibung

Bug report

_decimal.Context.__hash__() returns an int value, while _pydecimal.Context.__hash__() is explicitly disabled:

Python 3.10.5 (main, Jun  7 2022, 12:59:15) [GCC 10.2.1 20210110] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from _decimal import Context
>>> Context().__hash__()
8743628939711
>>> from _pydecimal import Context
>>> Context().__hash__()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'NoneType' object is not callable

I assume that _decimal just didn't bother to override __hash__ and inherits its implementation from object, but I think the implementations should match.

Your environment

Tested:

  • Python 3.10.5 (main, Jun 7 2022, 12:59:15) [GCC 10.2.1 20210110] on linux
  • Python 3.9.2 (default, Feb 28 2021, 17:03:44)

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Bewertung

Dieses Issue wurde noch nicht bewertet.

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.