diff options
| author | Adam Janovsky | 2023-04-16 19:30:08 +0200 |
|---|---|---|
| committer | Adam Janovsky | 2023-04-16 19:30:08 +0200 |
| commit | 88f46304f3d679b17e2f41b79134cd046e2ed732 (patch) | |
| tree | dd7a9ad37ad724c72e52df7696c83e618b1509ac /src | |
| parent | c4a256bd2a28cef3c210d181e7f9b118ea25c8ee (diff) | |
| download | sec-certs-88f46304f3d679b17e2f41b79134cd046e2ed732.tar.gz sec-certs-88f46304f3d679b17e2f41b79134cd046e2ed732.tar.zst sec-certs-88f46304f3d679b17e2f41b79134cd046e2ed732.zip | |
defer few imports
Diffstat (limited to 'src')
| -rw-r--r-- | src/sec_certs/dataset/cc.py | 3 | ||||
| -rw-r--r-- | src/sec_certs/model/cpe_matching.py | 3 | ||||
| -rw-r--r-- | src/sec_certs/sample/fips.py | 3 | ||||
| -rw-r--r-- | src/sec_certs/utils/pdf.py | 11 |
4 files changed, 15 insertions, 5 deletions
diff --git a/src/sec_certs/dataset/cc.py b/src/sec_certs/dataset/cc.py index 910a0a6a..c2d9ca0c 100644 --- a/src/sec_certs/dataset/cc.py +++ b/src/sec_certs/dataset/cc.py @@ -12,7 +12,6 @@ from typing import ClassVar, Iterator, cast import numpy as np import pandas as pd import requests -import tabula from bs4 import BeautifulSoup, NavigableString, Tag import sec_certs.utils.sanitization @@ -1532,6 +1531,8 @@ class CCSchemeDataset: @staticmethod def get_turkey_certified(): + import tabula + results = [] with tempfile.TemporaryDirectory() as tmpdir: pdf_path = Path(tmpdir) / "turkey.pdf" diff --git a/src/sec_certs/model/cpe_matching.py b/src/sec_certs/model/cpe_matching.py index 5d08d7af..3015aeaa 100644 --- a/src/sec_certs/model/cpe_matching.py +++ b/src/sec_certs/model/cpe_matching.py @@ -6,7 +6,6 @@ import operator import re from typing import Pattern -import spacy from rapidfuzz import fuzz from sec_certs import cert_rules, constants @@ -28,6 +27,8 @@ class CPEClassifier: vendors_: set[str] def __init__(self, match_threshold: int = 80, n_max_matches: int = 10, spacy_model_to_use: str = "en_core_web_sm"): + import spacy + self.match_threshold = match_threshold self.n_max_matches = n_max_matches self.nlp = spacy.load(spacy_model_to_use, disable=["parser", "ner"]) diff --git a/src/sec_certs/sample/fips.py b/src/sec_certs/sample/fips.py index 82aa1c18..d351c3ce 100644 --- a/src/sec_certs/sample/fips.py +++ b/src/sec_certs/sample/fips.py @@ -12,7 +12,6 @@ import numpy as np import pandas as pd import requests from bs4 import BeautifulSoup, Tag -from tabula import read_pdf from sec_certs import constants from sec_certs.cert_rules import FIPS_ALGS_IN_TABLE, fips_rules @@ -632,6 +631,8 @@ class FIPSCertificate( Retrieves IDs of algorithms from tables inside security policy pdfs. External library is used to handle this. """ + from tabula import read_pdf + if table_rich_page_numbers := tables.find_pages_with_tables(cert.state.policy_txt_path): pdf.repair_pdf(cert.state.policy_pdf_path) try: diff --git a/src/sec_certs/utils/pdf.py b/src/sec_certs/utils/pdf.py index edda0570..749a8a5a 100644 --- a/src/sec_certs/utils/pdf.py +++ b/src/sec_certs/utils/pdf.py @@ -11,8 +11,6 @@ from typing import Any import pdftotext import pikepdf -from pypdf import PdfReader -from pypdf.generic import BooleanObject, ByteStringObject, FloatObject, IndirectObject, NumberObject, TextStringObject from sec_certs import constants from sec_certs.constants import ( @@ -156,6 +154,15 @@ def extract_pdf_metadata(filepath: Path) -> tuple[str, dict[str, Any] | None]: :param filepath: THe path to the PDF. :return: A tuple of the result code (see constants) and the metadata dictionary. """ + from pypdf import PdfReader + from pypdf.generic import ( + BooleanObject, + ByteStringObject, + FloatObject, + IndirectObject, + NumberObject, + TextStringObject, + ) def map_metadata_value(val, nope_out=False): if isinstance(val, BooleanObject): |
