graphql-python / graphql-python/graphene
Failed to print schema with InputObjectType with DateTime field with default_value
- 主要言語
- Python
- スター
- 8.2k
- フォーク
- 818
- PR マージ指標
- 30日以内にマージされた PR はありません
説明
Declaring a DateTime with default_value in InputObjectType makes schema unprintable due to unsupported conversion in `graphql/utils/ast_from_value.py`
InputObjectType declared as:
```
class Filters(InputObjectType):
datetime_after = DateTime(required=False, default_value=datetime.min)
datetime_before = DateTime(required=False, default_value=datetime.max)
```
normally attached to the Query
causes `print(schema)` failing with:
```
(...)
File "lib/python3.8/site-packages/graphql/utils/schema_printer.py", line 205, in _print_input_value
default_value = " = " + print_ast(ast_from_value(arg.default_value, arg.type))
File "lib/python3.8/site-packages/graphql/utils/ast_from_value.py", line 53, in ast_from_value
assert isinstance(value, dict)
AssertionError
```
Without default_value it works.
I'm using default values like shown in #856 but even without this support in ast_from_value is clearly missing.
コントリビューションガイド
このリポジトリのコントリビューションガイドは索引されていません
調査の方向性
issue に示されている Filters InputObjectType と DateTime のデフォルト値を使って、スキーマの出力に失敗する問題を再現します。graphql/utils/ast_from_value.py から始め、次に schema_printer.py の呼び出し箇所を調べます。DateTime フィールドに default_value の値がある場合に print(schema) が成功すれば完了です。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- graphql, python
- 領域
- api, backend
- issue の種類
- バグ
- 難易度
- 3/5
- 見積もり時間
- 1〜2日
- 活発さ
- 停滞
- 明瞭さ
- 明確に書かれている
- 初心者へのやさしさ
- 45/100