not compatible with pydantic.validate_arguments
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Anfängerfreundlichkeit
- 35/100
Rechercherichtung
Beginne mit den _Fire- und _CallAndUpdateTrace-Einstiegspunkten in fire/core.py und reproduziere anschließend das Beispiel mithilfe von pydantic.validate_arguments und Field. Verfolge, wie die umschlossene Funktion aufgerufen wird, und bestimme das erwartete Verhalten für den datetime-Standardwert; die Erledigung sollte einen Regressionstest umfassen, der zeigt, dass der Aufruf über die Befehlszeile den gemeldeten Validierungsfehler nicht mehr auslöst.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
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)
- Vorherrschende Sprache
- Python
- Sterne
- 28.2k
- Forks
- 1.5k
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beitragsleitfaden
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus google/python-fire
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 85/100
google/python-fire#693 ·
-
Release 0.7.2? Offen
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 38/100
google/python-fire#698 ·
-
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 58/100
google/python-fire#672 · 5 Kommentare ·
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 45/100
google/python-fire#665 · 2 Kommentare ·
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 55/100
google/python-fire#659 · 1 Kommentar ·
Alle Issues in google/python-fire
Ähnliche Issues
-
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 75/100
-
hcocena Offenpolicies-accepted pre-review precheck-passed
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 88/100
Bioconductor/BiocContributions#214 · 5 Kommentare ·
-
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 92/100
TencentCloud/Octop#1169 · 1 Kommentar ·
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 70/100
521xueweihan/HelloGitHub#3778 ·
-
The version checker's trailing attribute region has no control for a less-than inside a quoted value Offenarea: dashboard area: tests bug perceived difficulty: 2 python
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 84/100
Nitjsefnie-Harness-Commons/daedalus#1105 · 1 Kommentar ·