aboutsummaryrefslogtreecommitdiffhomepage
path: root/sec_certs/sample/cpe.py
diff options
context:
space:
mode:
authorAdam Janovsky2021-12-15 10:57:58 +0100
committerAdam Janovsky2021-12-15 10:57:58 +0100
commit8b48872c11104694f2e5320e2ab2aa2c71c8675c (patch)
tree14fd0c9bb804c0212996a497cf0809b83b15501e /sec_certs/sample/cpe.py
parent77e836ba2a3a5335c7e2c8831a4140d73aa0f5d0 (diff)
downloadsec-certs-8b48872c11104694f2e5320e2ab2aa2c71c8675c.tar.gz
sec-certs-8b48872c11104694f2e5320e2ab2aa2c71c8675c.tar.zst
sec-certs-8b48872c11104694f2e5320e2ab2aa2c71c8675c.zip
fix mypy problems with cpe matching
Diffstat (limited to 'sec_certs/sample/cpe.py')
-rw-r--r--sec_certs/sample/cpe.py14
1 files changed, 11 insertions, 3 deletions
diff --git a/sec_certs/sample/cpe.py b/sec_certs/sample/cpe.py
index c2b542ce..ea1510b3 100644
--- a/sec_certs/sample/cpe.py
+++ b/sec_certs/sample/cpe.py
@@ -1,5 +1,5 @@
from dataclasses import dataclass
-from typing import ClassVar, List, Optional, Tuple
+from typing import ClassVar, List, Optional, Tuple, Dict
from sec_certs.serialization.json import ComplexSerializableType
from sec_certs.serialization.pandas import PandasSerializableType
@@ -22,8 +22,8 @@ class CPE(PandasSerializableType, ComplexSerializableType):
end_version: Optional[Tuple[str, str]] = None):
self.uri = uri
self.title = title
- self.start_version = start_version if start_version else None
- self.end_version = end_version if end_version else None
+ self.start_version = start_version
+ self.end_version = end_version
if self.uri:
self.vendor = ' '.join(self.uri.split(':')[3].split('_'))
@@ -35,6 +35,14 @@ class CPE(PandasSerializableType, ComplexSerializableType):
raise RuntimeError("Cannot compare CPEs because title is missing.")
return self.title < other.title
+ @classmethod
+ def from_dict(cls, dct: Dict):
+ if isinstance(dct['start_version'], list):
+ dct['start_version'] = tuple(dct['start_version'])
+ if isinstance(dct['end_version'], list):
+ dct['end_version'] = tuple(dct['end_version'])
+ return super().from_dict(dct)
+
@property
def serialized_attributes(self) -> List[str]:
return ['uri', 'title', 'start_version', 'end_version']