aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorAdam Janovsky2023-02-03 10:20:16 +0100
committerAdam Janovsky2023-02-03 10:20:16 +0100
commit4d34a407bad7327398826597c33bc1fdf4c251f3 (patch)
tree0a42e16f60c7cff43805fdded3b200559a0ea4d0
parent5f89fa0437f345ba8aa67c62aa68d262005a1e00 (diff)
downloadsec-certs-4d34a407bad7327398826597c33bc1fdf4c251f3.tar.gz
sec-certs-4d34a407bad7327398826597c33bc1fdf4c251f3.tar.zst
sec-certs-4d34a407bad7327398826597c33bc1fdf4c251f3.zip
fix some return statements
-rw-r--r--src/sec_certs/cert_rules.py20
-rw-r--r--src/sec_certs/dataset/cc.py10
-rw-r--r--src/sec_certs/dataset/cpe.py6
-rw-r--r--src/sec_certs/dataset/dataset.py6
-rw-r--r--src/sec_certs/dataset/fips_algorithm.py4
-rw-r--r--src/sec_certs/model/cpe_matching.py12
-rw-r--r--src/sec_certs/sample/fips.py2
-rw-r--r--src/sec_certs/sample/fips_mip.py14
-rw-r--r--src/sec_certs/serialization/json.py5
-rw-r--r--src/sec_certs/utils/extract.py4
-rw-r--r--src/sec_certs/utils/helpers.py6
-rw-r--r--src/sec_certs/utils/pandas.py1
-rw-r--r--src/sec_certs/utils/pdf.py5
-rw-r--r--src/sec_certs/utils/sanitization.py4
14 files changed, 40 insertions, 59 deletions
diff --git a/src/sec_certs/cert_rules.py b/src/sec_certs/cert_rules.py
index 145566f7..c126434b 100644
--- a/src/sec_certs/cert_rules.py
+++ b/src/sec_certs/cert_rules.py
@@ -205,21 +205,19 @@ def _load():
script_dir = Path(__file__).parent
filepath = script_dir / "rules.yaml"
with Path(filepath).open("r") as file:
- loaded = yaml.load(file, Loader=yaml.FullLoader)
- return loaded
+ return yaml.load(file, Loader=yaml.FullLoader)
-def _process(obj):
+def _process(obj: dict | list):
if isinstance(obj, dict):
return {k: _process(v) for k, v in obj.items()}
- elif isinstance(obj, list):
- return [
- re.compile(
- REGEXEC_SEP_START + MATCH_START + rule + MATCH_END + REGEXEC_SEP_END,
- re.MULTILINE,
- )
- for rule in obj
- ]
+ return [
+ re.compile(
+ REGEXEC_SEP_START + MATCH_START + rule + MATCH_END + REGEXEC_SEP_END,
+ re.MULTILINE,
+ )
+ for rule in obj
+ ]
rules = _load()
diff --git a/src/sec_certs/dataset/cc.py b/src/sec_certs/dataset/cc.py
index 7e2450ba..7f7771ff 100644
--- a/src/sec_certs/dataset/cc.py
+++ b/src/sec_certs/dataset/cc.py
@@ -324,8 +324,7 @@ class CCDataset(Dataset[CCCertificate, CCAuxillaryDatasets], ComplexSerializable
return CCDataset.BASE_URL + relative_path
def _get_primary_key_str(row: Tag):
- prim_key = row["category"] + row["cert_name"] + row["report_link"]
- return prim_key
+ return row["category"] + row["cert_name"] + row["report_link"]
if "active" in str(file):
cert_status = "active"
@@ -394,7 +393,7 @@ class CCDataset(Dataset[CCCertificate, CCAuxillaryDatasets], ComplexSerializable
)
)
- certs = {
+ return {
x.dgst: CCCertificate(
cert_status,
x.category,
@@ -416,7 +415,6 @@ class CCDataset(Dataset[CCCertificate, CCAuxillaryDatasets], ComplexSerializable
)
for x in df_base.itertuples()
}
- return certs
def _get_all_certs_from_html(self, get_active: bool, get_archived: bool) -> dict[str, CCCertificate]:
"""
@@ -866,9 +864,7 @@ class CCDatasetMaintenanceUpdates(CCDataset, ComplexSerializableType):
df.index.name = "dgst"
df.maintenance_date = pd.to_datetime(df.maintenance_date, infer_datetime_format=True)
- df = df.fillna(value=np.nan)
-
- return df
+ return df.fillna(value=np.nan)
@classmethod
def from_web_latest(cls) -> CCDatasetMaintenanceUpdates:
diff --git a/src/sec_certs/dataset/cpe.py b/src/sec_certs/dataset/cpe.py
index e9525847..8728c35c 100644
--- a/src/sec_certs/dataset/cpe.py
+++ b/src/sec_certs/dataset/cpe.py
@@ -141,9 +141,7 @@ class CPEDataset(JSONPathDataset, ComplexSerializableType):
:return pd.DataFrame: the resulting DataFrame
"""
- df = pd.DataFrame([x.pandas_tuple for x in self], columns=CPE.pandas_columns)
- df = df.set_index("uri")
- return df
+ return pd.DataFrame([x.pandas_tuple for x in self], columns=CPE.pandas_columns).set_index("uri")
@serialize
def enhance_with_cpes_from_cve_dataset(self, cve_dset: CVEDataset | str | Path) -> None:
@@ -165,7 +163,7 @@ class CPEDataset(JSONPathDataset, ComplexSerializableType):
and (considered_cpe.vendor, considered_cpe.item_name) not in vndr_item_lookup
):
return True
- elif (
+ if (
considered_cpe.version != constants.CPE_VERSION_NA
and (considered_cpe.vendor, considered_cpe.item_name, considered_cpe.version)
not in vndr_item_version_lookup
diff --git a/src/sec_certs/dataset/dataset.py b/src/sec_certs/dataset/dataset.py
index 726cd681..fb079bfe 100644
--- a/src/sec_certs/dataset/dataset.py
+++ b/src/sec_certs/dataset/dataset.py
@@ -392,16 +392,16 @@ class Dataset(Generic[CertSubType, AuxillaryDatasetsSubType], ComplexSerializabl
and not any(char.isdigit() for char in cpe.title)
):
return False
- elif (
+ if (
not cpe.title
and cpe.item_name
and (cpe.version == "-" or cpe.version == "*")
and not any(char.isdigit() for char in cpe.item_name)
):
return False
- elif re.match(constants.RELEASE_CANDIDATE_REGEX, cpe.update):
+ if re.match(constants.RELEASE_CANDIDATE_REGEX, cpe.update):
return False
- elif cpe in WINDOWS_WEAK_CPES:
+ if cpe in WINDOWS_WEAK_CPES:
return False
return True
diff --git a/src/sec_certs/dataset/fips_algorithm.py b/src/sec_certs/dataset/fips_algorithm.py
index f4826dd2..0525653b 100644
--- a/src/sec_certs/dataset/fips_algorithm.py
+++ b/src/sec_certs/dataset/fips_algorithm.py
@@ -107,9 +107,7 @@ class FIPSAlgorithmDataset(JSONPathDataset, ComplexSerializableType):
return set(df["alg"])
def to_pandas(self) -> pd.DataFrame:
- df = pd.DataFrame([x.pandas_tuple for x in self], columns=FIPSAlgorithm.pandas_columns)
- df = df.set_index("dgst")
- return df
+ return pd.DataFrame([x.pandas_tuple for x in self], columns=FIPSAlgorithm.pandas_columns).set_index("dgst")
def _build_lookup_dicts(self) -> None:
for alg in self:
diff --git a/src/sec_certs/model/cpe_matching.py b/src/sec_certs/model/cpe_matching.py
index 35bb5d7e..2602b00c 100644
--- a/src/sec_certs/model/cpe_matching.py
+++ b/src/sec_certs/model/cpe_matching.py
@@ -161,7 +161,7 @@ class CPEClassifier(BaseEstimator):
return cpes
def _filter_candidates_by_platform(self, cpes: list[CPE], cert_title: str) -> list[CPE]:
- def filter_condition(cpe: CPE, cert_platforms: set[str]):
+ def filter_condition(cpe: CPE, cert_platforms: set[str]) -> bool:
if not cert_platforms and cpe.target_hw == "*":
return True
if cert_platforms and cpe.target_hw == "*":
@@ -180,8 +180,9 @@ class CPEClassifier(BaseEstimator):
)
if not target_hw_platforms:
return can_return_true
- else:
- return can_return_true and target_hw_platforms[0] in cert_platforms
+
+ return can_return_true and target_hw_platforms[0] in cert_platforms
+ return True
crt_platforms = {
platform for platform, regex in cert_rules.PLATFORM_REGEXES.items() if re.search(regex, cert_title)
@@ -347,10 +348,7 @@ class CPEClassifier(BaseEstimator):
def simple_startswith(seeked_version: str, checked_string: str) -> bool:
if seeked_version == checked_string:
return True
- else:
- return (
- checked_string.startswith(seeked_version) and not checked_string[len(seeked_version)].isdigit()
- )
+ return checked_string.startswith(seeked_version) and not checked_string[len(seeked_version)].isdigit()
if not cpe_version:
return False
diff --git a/src/sec_certs/sample/fips.py b/src/sec_certs/sample/fips.py
index 435c9315..9396145f 100644
--- a/src/sec_certs/sample/fips.py
+++ b/src/sec_certs/sample/fips.py
@@ -642,6 +642,6 @@ class FIPSCertificate(
prunned = {x for x in attribute_to_prune if x != self.cert_id}
prunned = {x for x in prunned if int(x) > config.always_false_positive_fips_cert_id_threshold}
prunned = {x for x in prunned if x not in self.heuristics.algorithm_numbers}
- prunned = {x for x in prunned if x not in self.pdf_data.certlike_algorithm_numbers}
+ return {x for x in prunned if x not in self.pdf_data.certlike_algorithm_numbers}
return prunned
diff --git a/src/sec_certs/sample/fips_mip.py b/src/sec_certs/sample/fips_mip.py
index 7debec65..7e0ddff0 100644
--- a/src/sec_certs/sample/fips_mip.py
+++ b/src/sec_certs/sample/fips_mip.py
@@ -150,14 +150,12 @@ class MIPSnapshot(ComplexSerializableType):
@classmethod
def _extract_entries(cls, lines, snapshot_date):
if snapshot_date <= datetime(2020, 10, 28):
- entries = cls._extract_entries_1(lines)
- elif snapshot_date <= datetime(2021, 4, 20):
- entries = cls._extract_entries_2(lines)
- elif snapshot_date <= datetime(2022, 3, 23):
- entries = cls._extract_entries_3(lines)
- else:
- entries = cls._extract_entries_4(lines)
- return entries
+ return cls._extract_entries_1(lines)
+ if snapshot_date <= datetime(2021, 4, 20):
+ return cls._extract_entries_2(lines)
+ if snapshot_date <= datetime(2022, 3, 23):
+ return cls._extract_entries_3(lines)
+ return cls._extract_entries_4(lines)
@classmethod
def from_page(cls, content: bytes, snapshot_date: datetime) -> MIPSnapshot:
diff --git a/src/sec_certs/serialization/json.py b/src/sec_certs/serialization/json.py
index c8c0f83d..bc77a3a3 100644
--- a/src/sec_certs/serialization/json.py
+++ b/src/sec_certs/serialization/json.py
@@ -67,8 +67,7 @@ class ComplexSerializableType:
def from_json(cls: type[T], input_path: str | Path) -> T:
input_path = Path(input_path)
with input_path.open("r") as handle:
- obj = json.load(handle, cls=CustomJSONDecoder)
- return obj
+ return json.load(handle, cls=CustomJSONDecoder)
# Decorator for serialization
@@ -139,7 +138,7 @@ class CustomJSONDecoder(json.JSONDecoder):
if "_type" in obj and obj["_type"] in self.serializable_complex_types.keys():
complex_type = obj.pop("_type")
return self.serializable_complex_types[complex_type].from_dict(obj)
- elif "_type" in obj:
+ if "_type" in obj:
raise SerializationError(f"JSONDecoder doesn't know how to handle {obj}")
return obj
diff --git a/src/sec_certs/utils/extract.py b/src/sec_certs/utils/extract.py
index 82808ca9..933db4b8 100644
--- a/src/sec_certs/utils/extract.py
+++ b/src/sec_certs/utils/extract.py
@@ -658,13 +658,13 @@ def extract_keywords(filepath: Path, search_rules) -> dict[str, dict[str, int]]
def extract(rules):
if isinstance(rules, dict):
return {k: extract(v) for k, v in rules.items()}
- elif isinstance(rules, list):
+ if isinstance(rules, list):
matches = [extract(rule) for rule in rules]
c = Counter()
for match_list in matches:
c += Counter(match_list)
return dict(c)
- elif isinstance(rules, re.Pattern):
+ if isinstance(rules, re.Pattern):
rule = rules
matches = []
for match in rule.finditer(whole_text):
diff --git a/src/sec_certs/utils/helpers.py b/src/sec_certs/utils/helpers.py
index 969dc8e1..3b294662 100644
--- a/src/sec_certs/utils/helpers.py
+++ b/src/sec_certs/utils/helpers.py
@@ -97,8 +97,7 @@ def to_utc(timestamp: datetime) -> datetime:
if offset is None:
return timestamp
timestamp -= offset
- timestamp = timestamp.replace(tzinfo=None)
- return timestamp
+ return timestamp.replace(tzinfo=None)
def is_in_dict(target_dict: dict, path: str) -> bool:
@@ -106,8 +105,7 @@ def is_in_dict(target_dict: dict, path: str) -> bool:
for item in path:
if item not in current_level:
return False
- else:
- current_level = current_level[item]
+ current_level = current_level[item]
return True
diff --git a/src/sec_certs/utils/pandas.py b/src/sec_certs/utils/pandas.py
index b8a6bef7..749292e3 100644
--- a/src/sec_certs/utils/pandas.py
+++ b/src/sec_certs/utils/pandas.py
@@ -252,7 +252,6 @@ def filter_to_cves_within_validity_period(cc_df: pd.DataFrame, cve_dset: CVEData
def filter_cves(
cve_dset: CVEDataset, cves: set[str], not_valid_before: pd.Timestamp, not_valid_after: pd.Timestamp
) -> set[str] | float:
-
# Mypy is complaining, but the Optional date is resolved at the beginning of the and condition
result: set[str] = {
x
diff --git a/src/sec_certs/utils/pdf.py b/src/sec_certs/utils/pdf.py
index 1c5ff684..38d61ded 100644
--- a/src/sec_certs/utils/pdf.py
+++ b/src/sec_certs/utils/pdf.py
@@ -181,10 +181,9 @@ def extract_pdf_metadata(filepath: Path) -> tuple[str, dict[str, Any] | None]:
def resolve_indirect(val, bound=10):
if isinstance(val, list) and bound:
return [resolve_indirect(v, bound - 1) for v in val]
- elif isinstance(val, IndirectObject) and bound:
+ if isinstance(val, IndirectObject) and bound:
return resolve_indirect(val.get_object(), bound - 1)
- else:
- return val
+ return val
metadata: dict[str, Any] = {}
diff --git a/src/sec_certs/utils/sanitization.py b/src/sec_certs/utils/sanitization.py
index 2f9cd046..3563e1f4 100644
--- a/src/sec_certs/utils/sanitization.py
+++ b/src/sec_certs/utils/sanitization.py
@@ -26,9 +26,9 @@ def sanitize_link(record: str | None) -> str | None:
def sanitize_date(record: pd.Timestamp | date | np.datetime64) -> date | None:
if pd.isnull(record):
return None
- elif isinstance(record, pd.Timestamp):
+ if isinstance(record, pd.Timestamp):
return record.date()
- elif isinstance(record, (date, type(None))):
+ if isinstance(record, (date, type(None))):
return record
raise ValueError("Unsupported type given as input")