Astropy: deprecated_renamed_argument schlägt für ein entferntes Schlüsselwort fehl (nicht gelöst: wenn es als Positionsargument aufgerufen wird)

Erstellt am 31. Jan. 2020  ·  3Kommentare  ·  Quelle: astropy/astropy

UPDATE: Es ist immer noch ungelöst, wenn die folgende Funktion als myfunc(1, 200) aufgerufen wird.


deprecated_renamed_argument ermöglicht es, ein entferntes Schlüsselwortargument abzulehnen. Dabei kann das veraltete Schlüsselwort jedoch nicht festgelegt werden. Es erhält immer seinen Standardwert:

>>> from astropy.utils.decorators import deprecated_renamed_argument

>>> @deprecated_renamed_argument('b', None, '4.1')
>>> def myfunc(a, b=3):
>>>     print(a, b)
>>>     return

>>> myfunc(1, b=200)
1 3
WARNING: AstropyDeprecationWarning: "b" was deprecated in version 4.1 and will be removed in a future version.  [warnings]

Der Wert des veralteten Schlüsselworts kann vom Standardwert geändert werden, wenn er als Positionsargument verwendet wird, aber in diesem Fall wird die veraltete Warnung nicht ausgegeben:

>>> myfunc(1, 200)
1 200
Bug utils

Alle 3 Kommentare

Oh, wow, das ist ein Durcheinander.

Ich werde versuchen, mich am Wochenende darum zu kümmern.

Ich habe vielleicht eine Lösung. Siehe #9981.

Ich frage mich, wie viele nachgelagerte Pakete betroffen sind. Da wir bisher keine Fehlerberichte erhalten haben, ist diese Verwendung wahrscheinlich ungewöhnlich.

danke @pllim. Es scheint, dass meine Wochenenden mit nicht viel produziertem Code vergehen

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen