aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorAdam Janovsky2023-11-14 14:25:05 +0100
committerAdam Janovsky2023-11-14 14:25:05 +0100
commit76219404a0b70bebf1778cf237bb84427b92bc45 (patch)
tree0a95d2eda641f9bb8bdd8da9e86e7c836a645efa /src
parent0f35424e75ff56597c00e638b6b615d01f2fe080 (diff)
downloadsec-certs-76219404a0b70bebf1778cf237bb84427b92bc45.tar.gz
sec-certs-76219404a0b70bebf1778cf237bb84427b92bc45.tar.zst
sec-certs-76219404a0b70bebf1778cf237bb84427b92bc45.zip
bump required python to 3.8
Diffstat (limited to 'src')
-rw-r--r--src/sec_certs/cli.py2
-rw-r--r--src/sec_certs/dataset/cc.py3
-rw-r--r--src/sec_certs/dataset/cc_scheme.py2
-rw-r--r--src/sec_certs/dataset/cpe.py3
-rw-r--r--src/sec_certs/dataset/dataset.py3
-rw-r--r--src/sec_certs/dataset/fips_algorithm.py2
-rw-r--r--src/sec_certs/dataset/fips_iut.py2
-rw-r--r--src/sec_certs/dataset/fips_mip.py2
-rw-r--r--src/sec_certs/model/cc_matching.py3
-rw-r--r--src/sec_certs/model/cpe_matching.py2
-rw-r--r--src/sec_certs/model/fips_matching.py2
-rw-r--r--src/sec_certs/model/matching.py3
-rw-r--r--src/sec_certs/model/reference_finder.py17
-rw-r--r--src/sec_certs/model/sar_transformer.py7
-rw-r--r--src/sec_certs/model/transitive_vulnerability_finder.py7
-rw-r--r--src/sec_certs/sample/cc_scheme.py3
-rw-r--r--src/sec_certs/sample/fips.py3
-rw-r--r--src/sec_certs/sample/fips_iut.py2
-rw-r--r--src/sec_certs/sample/fips_mip.py2
-rw-r--r--src/sec_certs/serialization/json.py3
-rw-r--r--src/sec_certs/utils/helpers.py3
-rw-r--r--src/sec_certs/utils/parallel_processing.py3
-rw-r--r--src/sec_certs/utils/plot_utils.py10
-rw-r--r--src/sec_certs/utils/sanitization.py2
24 files changed, 51 insertions, 40 deletions
diff --git a/src/sec_certs/cli.py b/src/sec_certs/cli.py
index 9bd74108..4b613af4 100644
--- a/src/sec_certs/cli.py
+++ b/src/sec_certs/cli.py
@@ -3,10 +3,10 @@ from __future__ import annotations
import logging
import sys
+from collections.abc import Callable
from dataclasses import dataclass, field
from datetime import datetime
from pathlib import Path
-from typing import Callable
import click
from pydantic import ValidationError
diff --git a/src/sec_certs/dataset/cc.py b/src/sec_certs/dataset/cc.py
index 16c95e84..7eea6db7 100644
--- a/src/sec_certs/dataset/cc.py
+++ b/src/sec_certs/dataset/cc.py
@@ -4,10 +4,11 @@ import itertools
import locale
import shutil
import tempfile
+from collections.abc import Iterator
from dataclasses import dataclass
from datetime import datetime
from pathlib import Path
-from typing import ClassVar, Iterator, cast
+from typing import ClassVar, cast
import numpy as np
import pandas as pd
diff --git a/src/sec_certs/dataset/cc_scheme.py b/src/sec_certs/dataset/cc_scheme.py
index a2550014..e099f9de 100644
--- a/src/sec_certs/dataset/cc_scheme.py
+++ b/src/sec_certs/dataset/cc_scheme.py
@@ -1,8 +1,8 @@
from __future__ import annotations
import logging
+from collections.abc import Mapping
from pathlib import Path
-from typing import Mapping
from sec_certs import constants
from sec_certs.dataset.json_path_dataset import JSONPathDataset
diff --git a/src/sec_certs/dataset/cpe.py b/src/sec_certs/dataset/cpe.py
index f7cbf9d5..efcb3ded 100644
--- a/src/sec_certs/dataset/cpe.py
+++ b/src/sec_certs/dataset/cpe.py
@@ -2,9 +2,10 @@ from __future__ import annotations
import logging
import tempfile
+from collections.abc import Iterator
from datetime import datetime
from pathlib import Path
-from typing import Any, Iterator
+from typing import Any
import pandas as pd
diff --git a/src/sec_certs/dataset/dataset.py b/src/sec_certs/dataset/dataset.py
index 454e86bd..71974bf0 100644
--- a/src/sec_certs/dataset/dataset.py
+++ b/src/sec_certs/dataset/dataset.py
@@ -8,10 +8,11 @@ import re
import shutil
import tempfile
from abc import ABC, abstractmethod
+from collections.abc import Iterator
from dataclasses import dataclass
from datetime import datetime
from pathlib import Path
-from typing import Any, Generic, Iterator, TypeVar, cast
+from typing import Any, Generic, TypeVar, cast
import pandas as pd
diff --git a/src/sec_certs/dataset/fips_algorithm.py b/src/sec_certs/dataset/fips_algorithm.py
index f3f27c0b..4a87b3ef 100644
--- a/src/sec_certs/dataset/fips_algorithm.py
+++ b/src/sec_certs/dataset/fips_algorithm.py
@@ -3,9 +3,9 @@ from __future__ import annotations
import itertools
import logging
import re
+from collections.abc import Iterator
from pathlib import Path
from tempfile import TemporaryDirectory
-from typing import Iterator
import pandas as pd
from bs4 import BeautifulSoup
diff --git a/src/sec_certs/dataset/fips_iut.py b/src/sec_certs/dataset/fips_iut.py
index 0251bf9b..0df36073 100644
--- a/src/sec_certs/dataset/fips_iut.py
+++ b/src/sec_certs/dataset/fips_iut.py
@@ -1,9 +1,9 @@
from __future__ import annotations
+from collections.abc import Iterator, Mapping
from dataclasses import dataclass
from pathlib import Path
from tempfile import NamedTemporaryFile
-from typing import Iterator, Mapping
import requests
diff --git a/src/sec_certs/dataset/fips_mip.py b/src/sec_certs/dataset/fips_mip.py
index dd61e60e..a1a1ab2d 100644
--- a/src/sec_certs/dataset/fips_mip.py
+++ b/src/sec_certs/dataset/fips_mip.py
@@ -1,11 +1,11 @@
from __future__ import annotations
+from collections.abc import Iterator, Mapping
from dataclasses import dataclass
from datetime import date
from operator import attrgetter
from pathlib import Path
from tempfile import NamedTemporaryFile
-from typing import Iterator, Mapping
import requests
diff --git a/src/sec_certs/model/cc_matching.py b/src/sec_certs/model/cc_matching.py
index 1e95c7ba..4e6f5735 100644
--- a/src/sec_certs/model/cc_matching.py
+++ b/src/sec_certs/model/cc_matching.py
@@ -1,7 +1,8 @@
from __future__ import annotations
import contextlib
-from typing import Any, Iterable, Mapping, Sequence
+from collections.abc import Iterable, Mapping, Sequence
+from typing import Any
from sec_certs.configuration import config
from sec_certs.model.matching import AbstractMatcher
diff --git a/src/sec_certs/model/cpe_matching.py b/src/sec_certs/model/cpe_matching.py
index c331a3b9..2d4d1609 100644
--- a/src/sec_certs/model/cpe_matching.py
+++ b/src/sec_certs/model/cpe_matching.py
@@ -4,7 +4,7 @@ import itertools
import logging
import operator
import re
-from typing import Pattern
+from re import Pattern
from rapidfuzz import fuzz
diff --git a/src/sec_certs/model/fips_matching.py b/src/sec_certs/model/fips_matching.py
index 50079611..9f0708f2 100644
--- a/src/sec_certs/model/fips_matching.py
+++ b/src/sec_certs/model/fips_matching.py
@@ -1,8 +1,8 @@
from __future__ import annotations
import typing
+from collections.abc import Iterable, Mapping, Sequence
from datetime import date
-from typing import Iterable, Mapping, Sequence
from sec_certs.configuration import config
from sec_certs.model.matching import AbstractMatcher
diff --git a/src/sec_certs/model/matching.py b/src/sec_certs/model/matching.py
index 9c0591f9..bf214e6f 100644
--- a/src/sec_certs/model/matching.py
+++ b/src/sec_certs/model/matching.py
@@ -1,8 +1,9 @@
from __future__ import annotations
from abc import ABC, abstractmethod
+from collections.abc import Sequence
from heapq import heappop, heappush
-from typing import Any, Generic, Sequence, TypeVar
+from typing import Any, Generic, TypeVar
from rapidfuzz import fuzz
diff --git a/src/sec_certs/model/reference_finder.py b/src/sec_certs/model/reference_finder.py
index 94a3b29f..873a51b2 100644
--- a/src/sec_certs/model/reference_finder.py
+++ b/src/sec_certs/model/reference_finder.py
@@ -1,18 +1,19 @@
from __future__ import annotations
-from typing import Callable, Dict, List, Optional, Set, TypeVar
+from collections.abc import Callable
+from typing import TypeVar
from sec_certs.sample.certificate import Certificate, References
CertSubType = TypeVar("CertSubType", bound=Certificate)
-Certificates = Dict[str, CertSubType]
-ReferencedByDirect = Dict[str, Set[str]]
-ReferencedByIndirect = Dict[str, Set[str]]
-ReferencesType = Dict[str, Dict[str, Optional[Set[str]]]]
-IDMapping = Dict[str, List[str]]
-UnknownReferences = Dict[str, Set[str]]
+Certificates = dict[str, CertSubType]
+ReferencedByDirect = dict[str, set[str]]
+ReferencedByIndirect = dict[str, set[str]]
+ReferencesType = dict[str, dict[str, set[str] | None]]
+IDMapping = dict[str, list[str]]
+UnknownReferences = dict[str, set[str]]
IDLookupFunc = Callable[[CertSubType], str]
-ReferenceLookupFunc = Callable[[CertSubType], Set[str]]
+ReferenceLookupFunc = Callable[[CertSubType], set[str]]
# TODO: All of this can and should be rewritten on top of networkx or some other graph library.
diff --git a/src/sec_certs/model/sar_transformer.py b/src/sec_certs/model/sar_transformer.py
index a60f7495..394afa14 100644
--- a/src/sec_certs/model/sar_transformer.py
+++ b/src/sec_certs/model/sar_transformer.py
@@ -1,7 +1,8 @@
from __future__ import annotations
import logging
-from typing import Dict, Iterable, cast
+from collections.abc import Iterable
+from typing import cast
from sec_certs.sample.cc import CCCertificate
from sec_certs.sample.sar import SAR, SAR_DICT_KEY
@@ -68,13 +69,13 @@ class SARTransformer:
sec_level_sars = SARTransformer._parse_sars_from_security_level_list(cert.security_level)
if st_keywords_may_have_sars(cert):
- st_dict: dict = cast(Dict, cert.pdf_data.st_keywords)
+ st_dict: dict = cast(dict, cert.pdf_data.st_keywords)
st_sars = SARTransformer._parse_sar_dict(st_dict[SAR_DICT_KEY], cert.dgst)
else:
st_sars = set()
if report_keywords_may_have_sars(cert):
- report_dict: dict = cast(Dict, cert.pdf_data.report_keywords)
+ report_dict: dict = cast(dict, cert.pdf_data.report_keywords)
report_sars = SARTransformer._parse_sar_dict(report_dict[SAR_DICT_KEY], cert.dgst)
else:
report_sars = set()
diff --git a/src/sec_certs/model/transitive_vulnerability_finder.py b/src/sec_certs/model/transitive_vulnerability_finder.py
index 5eafea93..93c1496e 100644
--- a/src/sec_certs/model/transitive_vulnerability_finder.py
+++ b/src/sec_certs/model/transitive_vulnerability_finder.py
@@ -2,9 +2,10 @@ from __future__ import annotations
import logging
from collections import Counter
+from collections.abc import Callable
from dataclasses import dataclass, field
from enum import Enum
-from typing import Callable, Dict, Optional, Set, TypeVar
+from typing import TypeVar
from sec_certs.sample.certificate import Certificate, References
from sec_certs.serialization.json import ComplexSerializableType
@@ -25,8 +26,8 @@ class TransitiveCVEs(ComplexSerializableType):
indirect_transitive_cves: set[str] | None = field(default=None)
-Certificates = Dict[str, CertSubType]
-Vulnerabilities = Dict[str, Dict[str, Optional[Set[str]]]]
+Certificates = dict[str, CertSubType]
+Vulnerabilities = dict[str, dict[str, set[str] | None]]
class TransitiveVulnerabilityFinder:
diff --git a/src/sec_certs/sample/cc_scheme.py b/src/sec_certs/sample/cc_scheme.py
index bc0c0792..73946cf3 100644
--- a/src/sec_certs/sample/cc_scheme.py
+++ b/src/sec_certs/sample/cc_scheme.py
@@ -6,11 +6,12 @@ import hashlib
import math
import tempfile
import warnings
+from collections.abc import Callable, Iterable
from dataclasses import dataclass
from datetime import datetime
from enum import Enum
from pathlib import Path
-from typing import Any, Callable, ClassVar, Iterable
+from typing import Any, ClassVar
from urllib.parse import urljoin
import requests
diff --git a/src/sec_certs/sample/fips.py b/src/sec_certs/sample/fips.py
index e0bcb74a..8e9268cf 100644
--- a/src/sec_certs/sample/fips.py
+++ b/src/sec_certs/sample/fips.py
@@ -2,10 +2,11 @@ from __future__ import annotations
import itertools
import re
+from collections.abc import Callable
from dataclasses import dataclass, field
from datetime import date
from pathlib import Path
-from typing import Any, Callable, ClassVar, Final, Literal
+from typing import Any, ClassVar, Final, Literal
import dateutil
import numpy as np
diff --git a/src/sec_certs/sample/fips_iut.py b/src/sec_certs/sample/fips_iut.py
index a603a2c2..47fd8524 100644
--- a/src/sec_certs/sample/fips_iut.py
+++ b/src/sec_certs/sample/fips_iut.py
@@ -1,10 +1,10 @@
from __future__ import annotations
+from collections.abc import Iterator, Mapping
from dataclasses import dataclass
from datetime import date, datetime
from pathlib import Path
from tempfile import NamedTemporaryFile
-from typing import Iterator, Mapping
import requests
from bs4 import BeautifulSoup, Tag
diff --git a/src/sec_certs/sample/fips_mip.py b/src/sec_certs/sample/fips_mip.py
index 89c46d01..0720e520 100644
--- a/src/sec_certs/sample/fips_mip.py
+++ b/src/sec_certs/sample/fips_mip.py
@@ -1,13 +1,13 @@
from __future__ import annotations
import logging
+from collections.abc import Iterator, Mapping
from dataclasses import dataclass
from datetime import date, datetime
from enum import Enum
from functools import total_ordering
from pathlib import Path
from tempfile import NamedTemporaryFile
-from typing import Iterator, Mapping
import requests
from bs4 import BeautifulSoup, Tag
diff --git a/src/sec_certs/serialization/json.py b/src/sec_certs/serialization/json.py
index 5add6edc..dad0ebb7 100644
--- a/src/sec_certs/serialization/json.py
+++ b/src/sec_certs/serialization/json.py
@@ -3,10 +3,11 @@ from __future__ import annotations
import copy
import gzip
import json
+from collections.abc import Callable
from datetime import date, datetime
from functools import wraps
from pathlib import Path
-from typing import Any, Callable, TypeVar
+from typing import Any, TypeVar
from sec_certs import constants
diff --git a/src/sec_certs/utils/helpers.py b/src/sec_certs/utils/helpers.py
index c103a2d3..c0440008 100644
--- a/src/sec_certs/utils/helpers.py
+++ b/src/sec_certs/utils/helpers.py
@@ -4,11 +4,12 @@ import hashlib
import logging
import re
import time
+from collections.abc import Collection
from contextlib import nullcontext
from datetime import datetime
from functools import partial
from pathlib import Path
-from typing import Any, Collection
+from typing import Any
import numpy as np
import pkgconfig
diff --git a/src/sec_certs/utils/parallel_processing.py b/src/sec_certs/utils/parallel_processing.py
index ae3f0b44..a30e080b 100644
--- a/src/sec_certs/utils/parallel_processing.py
+++ b/src/sec_certs/utils/parallel_processing.py
@@ -1,9 +1,10 @@
from __future__ import annotations
import time
+from collections.abc import Callable, Iterable
from multiprocessing import cpu_count
from multiprocessing.pool import Pool, ThreadPool
-from typing import Any, Callable, Iterable
+from typing import Any
from sec_certs.configuration import config
from sec_certs.utils.tqdm import tqdm
diff --git a/src/sec_certs/utils/plot_utils.py b/src/sec_certs/utils/plot_utils.py
index b9e7ac7c..eca79070 100644
--- a/src/sec_certs/utils/plot_utils.py
+++ b/src/sec_certs/utils/plot_utils.py
@@ -1,5 +1,3 @@
-from typing import Dict, List, Tuple
-
from networkx import DiGraph
from pandas import DataFrame
@@ -20,8 +18,8 @@ def get_cert_property(df: DataFrame, cert_id: int, column: str) -> str:
def get_fips_cert_references_graph(
- df: DataFrame, cert_id: int, colour_mapper: Dict[str, str]
-) -> Tuple[DiGraph, List[str]]:
+ df: DataFrame, cert_id: int, colour_mapper: dict[str, str]
+) -> tuple[DiGraph, list[str]]:
if cert_id not in df["cert_id"].unique():
raise ValueError(f"Cert ID: {cert_id} is not in the dataset")
@@ -45,7 +43,7 @@ def get_fips_cert_references_graph(
return graph, colour_map
-def get_most_referenced_cert_graph(df: DataFrame, status_colour_mapper: Dict[str, str]) -> Tuple[DiGraph, List[str]]:
+def get_most_referenced_cert_graph(df: DataFrame, status_colour_mapper: dict[str, str]) -> tuple[DiGraph, list[str]]:
graph = DiGraph()
colour_map = []
max_referenced_by_num = df["incoming_direct_references_count"].max()
@@ -66,7 +64,7 @@ def get_most_referenced_cert_graph(df: DataFrame, status_colour_mapper: Dict[str
return graph, colour_map
-def get_most_referencing_cert_graph(df: DataFrame, status_colour_mapper: Dict[str, str]) -> Tuple[DiGraph, List[str]]:
+def get_most_referencing_cert_graph(df: DataFrame, status_colour_mapper: dict[str, str]) -> tuple[DiGraph, list[str]]:
graph = DiGraph()
colour_map = []
max_referencing_num = df["outgoing_direct_references_count"].max()
diff --git a/src/sec_certs/utils/sanitization.py b/src/sec_certs/utils/sanitization.py
index 3563e1f4..17e34362 100644
--- a/src/sec_certs/utils/sanitization.py
+++ b/src/sec_certs/utils/sanitization.py
@@ -28,7 +28,7 @@ def sanitize_date(record: pd.Timestamp | date | np.datetime64) -> date | None:
return None
if isinstance(record, pd.Timestamp):
return record.date()
- if isinstance(record, (date, type(None))):
+ if isinstance(record, date | type(None)):
return record
raise ValueError("Unsupported type given as input")