Skip to content

Commit b3507a5

Browse files
committed
more advanced field extractor
1 parent aded11d commit b3507a5

File tree

1 file changed

+21
-13
lines changed
  • regula/documentreader/webclient/ext/models

1 file changed

+21
-13
lines changed

regula/documentreader/webclient/ext/models/text.py

+21-13
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,42 @@
11
from typing import Optional, List
22

33
from regula.documentreader.webclient.ext.models.text_field import TextField
4-
from regula.documentreader.webclient.gen.models import Text as GenText
4+
from regula.documentreader.webclient.gen.models import LCID, Text as GenText
55

66

77
class Text(GenText):
88

99
def get_field(self, field_type: int, lcid: int = None) -> Optional[TextField]:
10+
result = None
1011
for field in self.field_list:
11-
if field.field_type == field_type and (not lcid or field.lcid == lcid):
12-
return field
13-
return None
12+
if field.field_type == field_type:
13+
if lcid is not None and field.lcid == lcid:
14+
return field
15+
elif lcid is None and field.lcid == LCID.LATIN:
16+
return field
17+
elif lcid is None and result is None:
18+
result = field
19+
return result
1420

1521
def get_field_value(self, field_type: int, lcid: int = None) -> Optional[str]:
1622
field = self.get_field(field_type, lcid)
17-
if field:
18-
return field.value
19-
return None
23+
return field.value if field else None
2024

2125
def get_field_by_name(self, field_name: str, lcid: int = None) -> Optional[TextField]:
26+
result = None
2227
for field in self.field_list:
23-
if field.field_name == field_name and (not lcid or field.lcid == lcid):
24-
return field
25-
return None
28+
if field.field_name == field_name:
29+
if lcid is not None and field.lcid == lcid:
30+
return field
31+
elif lcid is None and field.lcid == LCID.LATIN:
32+
return field
33+
elif lcid is None and result is None:
34+
result = field
35+
return result
2636

2737
def get_field_value_by_name(self, field_name: str, lcid: int = None) -> Optional[str]:
2838
field = self.get_field_by_name(field_name, lcid)
29-
if field:
30-
return field.value
31-
return None
39+
return field.value if field else None
3240

3341
@GenText.field_list.getter
3442
def field_list(self) -> List[TextField]:

0 commit comments

Comments
 (0)