-
Notifications
You must be signed in to change notification settings - Fork 10
Expand file tree
/
Copy pathimages.py
More file actions
executable file
·40 lines (29 loc) · 1.38 KB
/
images.py
File metadata and controls
executable file
·40 lines (29 loc) · 1.38 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
import base64
from typing import Optional, List
from regula.documentreader.webclient.gen.models import Images as GenImages, ImagesField as GenImagesField, Source
class ImagesField(GenImagesField):
def get_value(self, source: str = None, original=False) -> Optional[bytes]:
if not source:
value = self.get_value(Source.RFID)
if not value: value = self.get_value(Source.VISUAL)
if not value: value = self.get_value(Source.BARCODE)
if not value: value = self.get_value("UNKNOWN") # temp fix, will be removed
return value
else:
field_value = None
for v in self.value_list:
if v.source == source:
field_value = v
if not field_value:
return None
if original:
return base64.b64decode(field_value.original_value)
return base64.b64decode(field_value.value)
class Images(GenImages):
def get_field(self, field_type: int) -> Optional[ImagesField]:
for field in self.field_list:
if field.field_type == field_type:
return ImagesField.from_json(field.to_json())
return None
def get_fields(self, field_type: int) -> List[ImagesField]:
return [ImagesField.from_json(field.to_json()) for field in self.field_list if field.field_type == field_type]