pytilpack.typing¶
pytilpack.typing
¶
typing関連のユーティリティ。
get_literal_values(literal_type)
¶
Literalの値を取得する。
XXType: typing.TypeAlias = typing.Literal[1, 2, 3] のような型アノテーションであれば typing.get_args(XXType) で値を取得できるが、 type XXType = typing.Literal[1, 2, 3] のような型エイリアス (TypeAliasType) の場合は XXType.value に対して typing.get_args() を使う必要がある。 https://github.com/python/cpython/issues/112472
ZZType = XXType | ZZType のような入れ子の型エイリアスも解決する。 判定方法が一律でないため、typing.get_args で値が得られなくなるまで再帰的に処理する。
ソースコード位置: pytilpack/typing.py
is_instance_safe(value, expected_type, path='')
¶
型チェックを行い、エラーの場合はFalseを返す。
引数:
| 名前 | タイプ | デスクリプション | デフォルト |
|---|---|---|---|
value
|
Any
|
実際の値。 |
必須 |
expected_type
|
Any
|
アノテーションで指定された型。 |
必須 |
path
|
str
|
エラー位置を示すパス(xxx.yyy形式)。 |
''
|
戻り値:
| 名前 | タイプ | デスクリプション |
|---|---|---|
bool |
bool
|
型が一致すればTrue、合致しなければFalse。 |
ソースコード位置: pytilpack/typing.py
is_instance(value, expected_type, path='')
¶
Recursively check whether value conforms to expected_type.
引数:
| 名前 | タイプ | デスクリプション | デフォルト |
|---|---|---|---|
value
|
Any
|
実際の値。 |
必須 |
expected_type
|
Any
|
アノテーションで指定された型。 |
必須 |
path
|
str
|
エラー位置を示すパス(xxx.yyy形式)。 |
''
|
戻り値:
| 名前 | タイプ | デスクリプション |
|---|---|---|
bool |
bool
|
型が一致すればTrue、合致しなければFalse。 |
発生:
| タイプ | デスクリプション |
|---|---|
TypeError
|
型が一致しない場合、詳細なエラー位置を含む。 |
ソースコード位置: pytilpack/typing.py
49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 | |