Astropy: deprecated_renamed_argument falha para uma palavra-chave removida (não resolvido: quando é chamado como argumento posicional)

Criado em 31 jan. 2020  ·  3Comentários  ·  Fonte: astropy/astropy

ATUALIZAÇÃO: ainda não foi resolvido quando a função abaixo é chamada de myfunc(1, 200) .


deprecated_renamed_argument permite descontinuar um argumento de palavra-chave removido. No entanto, ao fazer isso, a palavra-chave obsoleta não pode ser definida. Sempre recebe seu valor padrão:

>>> 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]

O valor da palavra-chave obsoleta pode ser alterado do padrão se for usado como um argumento posicional, mas, nesse caso, o aviso de suspensão de uso não é gerado:

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

Todos 3 comentários

oh, uau, isso é uma bagunça.

Vou tentar cuidar disso no fim de semana.

Eu posso ter uma solução. Consulte # 9981.

Eu me pergunto quantos pacotes downstream são afetados. Dado que não recebemos nenhum relatório de bug até agora, este uso é provavelmente incomum.

obrigado @pllim. Parece que meus fins de semana estão diminuindo com a pouca produção de código 😥

Esta página foi útil?
0 / 5 - 0 avaliações