diff options
| author | Adam Janovsky | 2023-02-03 10:20:16 +0100 |
|---|---|---|
| committer | Adam Janovsky | 2023-02-03 10:20:16 +0100 |
| commit | 4d34a407bad7327398826597c33bc1fdf4c251f3 (patch) | |
| tree | 0a42e16f60c7cff43805fdded3b200559a0ea4d0 | |
| parent | 5f89fa0437f345ba8aa67c62aa68d262005a1e00 (diff) | |
| download | sec-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.py | 20 | ||||
| -rw-r--r-- | src/sec_certs/dataset/cc.py | 10 | ||||
| -rw-r--r-- | src/sec_certs/dataset/cpe.py | 6 | ||||
| -rw-r--r-- | src/sec_certs/dataset/dataset.py | 6 | ||||
| -rw-r--r-- | src/sec_certs/dataset/fips_algorithm.py | 4 | ||||
| -rw-r--r-- | src/sec_certs/model/cpe_matching.py | 12 | ||||
| -rw-r--r-- | src/sec_certs/sample/fips.py | 2 | ||||
| -rw-r--r-- | src/sec_certs/sample/fips_mip.py | 14 | ||||
| -rw-r--r-- | src/sec_certs/serialization/json.py | 5 | ||||
| -rw-r--r-- | src/sec_certs/utils/extract.py | 4 | ||||
| -rw-r--r-- | src/sec_certs/utils/helpers.py | 6 | ||||
| -rw-r--r-- | src/sec_certs/utils/pandas.py | 1 | ||||
| -rw-r--r-- | src/sec_certs/utils/pdf.py | 5 | ||||
| -rw-r--r-- | src/sec_certs/utils/sanitization.py | 4 |
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") |
