diff options
| author | Adam Janovsky | 2021-12-15 10:57:58 +0100 |
|---|---|---|
| committer | Adam Janovsky | 2021-12-15 10:57:58 +0100 |
| commit | 8b48872c11104694f2e5320e2ab2aa2c71c8675c (patch) | |
| tree | 14fd0c9bb804c0212996a497cf0809b83b15501e /sec_certs/sample/cpe.py | |
| parent | 77e836ba2a3a5335c7e2c8831a4140d73aa0f5d0 (diff) | |
| download | sec-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.py | 14 |
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'] |
