Skip to content

Commit b496bbc

Browse files
committed
🏷️ better field types
1 parent 5e71f0b commit b496bbc

File tree

2 files changed

+16
-4
lines changed

2 files changed

+16
-4
lines changed

mindee/parsing/v2/field/dynamic_field.py

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,15 @@
11
from enum import Enum
22
from importlib import import_module
3+
from typing import TYPE_CHECKING, Union
34

45
from mindee.error import MindeeApiV2Error
56
from mindee.parsing.common.string_dict import StringDict
67

8+
if TYPE_CHECKING:
9+
from mindee.parsing.v2.field.list_field import ListField
10+
from mindee.parsing.v2.field.object_field import ObjectField
11+
from mindee.parsing.v2.field.simple_field import SimpleField
12+
713

814
class FieldType(str, Enum):
915
"""Field types."""
@@ -13,6 +19,9 @@ class FieldType(str, Enum):
1319
SIMPLE = "SimpleField"
1420

1521

22+
FieldTypeAlias = Union["SimpleField", "ListField", "ObjectField"]
23+
24+
1625
class DynamicField:
1726
"""Field that can be displayed in rst format."""
1827

@@ -30,7 +39,10 @@ def multi_str(self) -> str:
3039
return str(self)
3140

3241

33-
def get_field_type(raw_response: StringDict, indent_level: int = 0) -> DynamicField:
42+
def get_field_type(
43+
raw_response: StringDict,
44+
indent_level: int = 0,
45+
) -> FieldTypeAlias:
3446
"""Get appropriate field types."""
3547
if isinstance(raw_response, dict):
3648
if "value" in raw_response:
@@ -43,7 +55,7 @@ def get_field_type(raw_response: StringDict, indent_level: int = 0) -> DynamicFi
4355
field_file = import_module("mindee.parsing.v2.field.object_field")
4456
field_class = getattr(field_file, FieldType.OBJECT.value)
4557
else:
46-
raise MindeeApiV2Error(f"Unrecognized field format in {raw_response}.")
58+
raise MindeeApiV2Error(f"Unrecognized field type in {raw_response}.")
4759
return field_class(raw_response, indent_level)
4860

4961
raise MindeeApiV2Error(f"Unrecognized field format {raw_response}.")

mindee/parsing/v2/field/inference_fields.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,13 @@
22

33
from mindee.parsing.common.string_dict import StringDict
44
from mindee.parsing.v2.field.dynamic_field import (
5-
DynamicField,
65
FieldType,
6+
FieldTypeAlias,
77
get_field_type,
88
)
99

1010

11-
class InferenceFields(Dict[str, DynamicField]):
11+
class InferenceFields(Dict[str, FieldTypeAlias]):
1212
"""Inference fields dict."""
1313

1414
def __init__(self, raw_response: StringDict, indent_level: int = 0) -> None:

0 commit comments

Comments
 (0)