not compatible with pydantic.validate_arguments
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 3/5
- Tempo estimado
- 1-2 dias
- Facilidade para iniciantes
- 35/100
Direção de pesquisa
Comece pelos pontos de entrada _Fire e _CallAndUpdateTrace em fire/core.py e, em seguida, reproduza o exemplo usando pydantic.validate_arguments e Field. Rastreie como a função encapsulada é chamada e determine o comportamento esperado para o valor padrão de datetime; a conclusão deve incluir um teste de regressão mostrando que a invocação pela linha de comando não gera mais o erro de validação relatado.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
A function with Field parameter wrapped by pydantic.validate_arguments, can not been exeuted from the command line.
from datetime import datetime
from pydantic import Field, validate_arguments
@validate_arguments()
def foo(dt: datetime = Field(default_factory=datetime.now)):
print(dt)
if __name__ == '__main__':
import fire
fire.Fire(foo)
run this code from command line with raise:
Traceback (most recent call last):
File "/home/xxx/repositories/others/test_fire.py", line 12, in <module>
fire.Fire(foo)
File "/home/xxx/.conda/envs/py39/lib/python3.9/site-packages/fire/core.py", line 141, in Fire
component_trace = _Fire(component, args, parsed_flag_args, context, name)
File "/home/xxx/.conda/envs/py39/lib/python3.9/site-packages/fire/core.py", line 466, in _Fire
component, remaining_args = _CallAndUpdateTrace(
File "/home/xxx/.conda/envs/py39/lib/python3.9/site-packages/fire/core.py", line 681, in _CallAndUpdateTrace
component = fn(*varargs, **kwargs)
File "pydantic/decorator.py", line 40, in pydantic.decorator.validate_arguments.validate.wrapper_function
from contextlib import _GeneratorContextManager
File "pydantic/decorator.py", line 133, in pydantic.decorator.ValidatedFunction.call
func.__dict__.update(kw)
File "pydantic/decorator.py", line 130, in pydantic.decorator.ValidatedFunction.init_model_instance
else:
File "pydantic/main.py", line 341, in pydantic.main.BaseModel.__init__
pydantic.error_wrappers.ValidationError: 1 validation error for Foo
dt
invalid type; expected datetime, string, bytes, int or float (type=type_error)
- Linguagem predominante
- Python
- Estrelas
- 28.2k
- Forks
- 1.5k
- Métricas de merge de PRs
- Nenhum PR com merge em 30d
Preparar o ambiente
- Sem Dockerfile nem arquivo Docker Compose
- Sem modelo de pull request
- Ler o guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de google/python-fire
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 76/100
google/python-fire#705 ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 76/100
google/python-fire#703 ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 85/100
google/python-fire#693 ·
-
Release 0.7.2?Aberta
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 38/100
google/python-fire#698 ·
-
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 58/100
google/python-fire#672 · 5 comentários ·
Todas as issues de google/python-fire
Issues semelhantes
-
good first issue hacktoberfest
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 92/100
RogueAlg0/taken#387 · 4 comentários ·
Mantenedores costumam responder em até 1 dia
-
tool-calling
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 88/100
vllm-project/vllm#59838 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 92/100
raullenchai/Rapid-MLX#4042 ·
Mantenedores costumam responder em até 1 dia
-
documentation
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 92/100
transitmatters/mbta-slow-zone-bot#70 ·
Mantenedores costumam responder em até 1 dia
-
bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 66/100
open-webui/open-webui#31871 · 1 comentário ·
Mantenedores costumam responder em até 1 dia