not compatible with pydantic.validate_arguments
まだ誰も着手していません。
評価
調査の方向性
fire/core.py の _Fire と _CallAndUpdateTrace エントリポイントから始め、次に pydantic.validate_arguments と Field を使って例を再現します。ラップされた関数がどのように呼び出されるかを追跡し、datetime のデフォルト値に対して期待される動作を特定します。完了条件には、コマンドラインからの呼び出しで報告されたバリデーションエラーが発生しなくなったことを示す回帰テストを含める必要があります。
索引モデルが issue の本文から書いたものです。
説明
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)
- 主要言語
- Python
- スター
- 28.2k
- フォーク
- 1.5k
- PR マージ指標
- 30日以内にマージされた PR はありません
コントリビューションガイド
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
google/python-fire のほかの issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 85/100
google/python-fire#693 ·
-
Release 0.7.2? オープン
難易度 3/5 1〜2日 初心者へのやさしさ 38/100
google/python-fire#698 ·
-
難易度 3/5 1〜2日 初心者へのやさしさ 58/100
google/python-fire#672 · コメント 5 件 ·
-
難易度 4/5 3〜5日 初心者へのやさしさ 45/100
google/python-fire#665 · コメント 2 件 ·
-
難易度 4/5 3〜5日 初心者へのやさしさ 55/100
google/python-fire#659 · コメント 1 件 ·
google/python-fire の issue をすべて見る
似ている issue
-
Add: hunch オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 74/100
AbdelStark/awesome-typesafe#104 ·
-
enhancement
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
DiamondLightSource/dodal#2211 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 88/100
openml/openml-python#1749 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 88/100
sipyourdrink-ltd/bernstein#6191 ·