Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

not compatible with pydantic.validate_arguments

Aperta
#402 4 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
3/5
Tempo stimato
1-2 giorni
Idoneità per principianti
35/100
Tipo di issue
Bug
Chiarezza
Da chiarire
Stato di attività
Ferma
Stack tecnologico
python
Ambito
cli

Direzione di ricerca

Inizia dagli entry point _Fire e _CallAndUpdateTrace in fire/core.py, quindi riproduci l’esempio usando pydantic.validate_arguments e Field. Traccia il modo in cui viene chiamata la funzione sottoposta a wrapping e determina il comportamento previsto per il valore predefinito di datetime; il completamento deve includere un test di regressione che mostri che l’invocazione dalla riga di comando non genera più l’errore di validazione segnalato.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

bug

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)

Lingua principale
Python
Stelle
28.2k
Fork
1.5k
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di google/python-fire

Tutte le issue di google/python-fire

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.