aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorAdam Janovsky2021-10-22 15:26:29 +0200
committerAdam Janovsky2021-10-22 15:26:29 +0200
commit47e548aaa8a13cdd124be0a039d5e43df3e1fbcb (patch)
tree4fe530308cc1b9f913b26fc2a490a412dc2fecb8
parenta035274a413c12ef41036a9d18f575f6b6f5179d (diff)
downloadsec-certs-47e548aaa8a13cdd124be0a039d5e43df3e1fbcb.tar.gz
sec-certs-47e548aaa8a13cdd124be0a039d5e43df3e1fbcb.tar.zst
sec-certs-47e548aaa8a13cdd124be0a039d5e43df3e1fbcb.zip
move config and add better error message to invalid jsonschema
-rw-r--r--examples/cc_cpe_labeling.py2
-rw-r--r--examples/cc_oop_demo.py2
-rw-r--r--examples/fips_oop_demo.py2
-rw-r--r--sec_certs/certificate/common_criteria.py3
-rw-r--r--sec_certs/certificate/fips.py4
-rw-r--r--sec_certs/config/configuration.py (renamed from sec_certs/configuration.py)15
-rw-r--r--sec_certs/config/settings-schema.json (renamed from sec_certs/settings-schema.json)0
-rw-r--r--sec_certs/config/settings.yaml (renamed from sec_certs/settings.yaml)0
-rw-r--r--sec_certs/dataset/common_criteria.py7
-rw-r--r--sec_certs/dataset/cve.py2
-rw-r--r--sec_certs/dataset/dataset.py2
-rw-r--r--sec_certs/dataset/fips.py6
-rw-r--r--sec_certs/dataset/fips_algorithm.py3
-rw-r--r--tests/test_fips_oop.py2
14 files changed, 22 insertions, 28 deletions
diff --git a/examples/cc_cpe_labeling.py b/examples/cc_cpe_labeling.py
index e467cfa9..d0d0548d 100644
--- a/examples/cc_cpe_labeling.py
+++ b/examples/cc_cpe_labeling.py
@@ -3,7 +3,7 @@ import logging
from pathlib import Path
from sec_certs.dataset.common_criteria import CCDataset
-from sec_certs.configuration import config
+from sec_certs.config.configuration import config
logger = logging.getLogger(__name__)
diff --git a/examples/cc_oop_demo.py b/examples/cc_oop_demo.py
index c89832fe..1f2919e8 100644
--- a/examples/cc_oop_demo.py
+++ b/examples/cc_oop_demo.py
@@ -3,7 +3,7 @@ from datetime import datetime
import logging
from sec_certs.dataset.common_criteria import CCDataset
-from sec_certs.configuration import config
+from sec_certs.config.configuration import config
logger = logging.getLogger(__name__)
diff --git a/examples/fips_oop_demo.py b/examples/fips_oop_demo.py
index dd74e866..0ae3a444 100644
--- a/examples/fips_oop_demo.py
+++ b/examples/fips_oop_demo.py
@@ -4,7 +4,7 @@ import logging
import click
from sec_certs.dataset.fips import FIPSDataset
from sec_certs.dataset.fips_algorithm import FIPSAlgorithmDataset
-from sec_certs.configuration import config
+from sec_certs.config.configuration import config
@click.command()
diff --git a/sec_certs/certificate/common_criteria.py b/sec_certs/certificate/common_criteria.py
index b64eadd8..0446b1b0 100644
--- a/sec_certs/certificate/common_criteria.py
+++ b/sec_certs/certificate/common_criteria.py
@@ -1,7 +1,6 @@
import copy
import itertools
import operator
-import re
from dataclasses import dataclass, field
from datetime import date, datetime
from pathlib import Path
@@ -16,7 +15,7 @@ from sec_certs.dataset.cpe import CPE, CPEDataset
from sec_certs.dataset.cve import CVEDataset
from sec_certs.serialization import ComplexSerializableType
from sec_certs.certificate.protection_profile import ProtectionProfile
-from sec_certs.configuration import config
+from sec_certs.config.configuration import config
class CommonCriteriaCert(Certificate, ComplexSerializableType):
diff --git a/sec_certs/certificate/fips.py b/sec_certs/certificate/fips.py
index d90fe835..6d131ab5 100644
--- a/sec_certs/certificate/fips.py
+++ b/sec_certs/certificate/fips.py
@@ -11,10 +11,10 @@ from dateutil import parser
from tabula import read_pdf
import sec_certs.constants
-from sec_certs import helpers, dataset, constants as constants
+from sec_certs import helpers, constants as constants
from sec_certs.cert_rules import fips_common_rules, REGEXEC_SEP, fips_rules
from sec_certs.certificate.certificate import Certificate, logger
-from sec_certs.configuration import config
+from sec_certs.config.configuration import config
from sec_certs.constants import LINE_SEPARATOR
from sec_certs.helpers import save_modified_cert_file, normalize_match_string, load_cert_file
from sec_certs.serialization import ComplexSerializableType
diff --git a/sec_certs/configuration.py b/sec_certs/config/configuration.py
index 6a495e60..7a3b8831 100644
--- a/sec_certs/configuration.py
+++ b/sec_certs/config/configuration.py
@@ -1,12 +1,8 @@
import yaml
-from typing import Union, Any
+from typing import Union
from pathlib import Path
-from importlib_resources import files
import jsonschema
import json
-import os
-
-import sec_certs
class Configuration(object):
@@ -16,10 +12,13 @@ class Configuration(object):
script_dir = Path(__file__).parent
- with open(Path(script_dir) / 'settings-schema.json', 'r') as file:
+ with (Path(script_dir) / 'settings-schema.json').open('r') as file:
schema = json.loads(file.read())
- jsonschema.validate(state, schema)
+ try:
+ jsonschema.validate(state, schema)
+ except jsonschema.exceptions.ValidationError as e:
+ print(f'{e}\n\nIn file {filepath}')
for k, v in state.items():
setattr(self, k, v)
@@ -31,6 +30,6 @@ class Configuration(object):
return object.__getattribute__(self, key)
-config_path = files(sec_certs).joinpath('settings.yaml')
+config_path = Path(__file__).parent / 'settings.yaml'
config = Configuration()
config.load(config_path)
diff --git a/sec_certs/settings-schema.json b/sec_certs/config/settings-schema.json
index e05d06e5..e05d06e5 100644
--- a/sec_certs/settings-schema.json
+++ b/sec_certs/config/settings-schema.json
diff --git a/sec_certs/settings.yaml b/sec_certs/config/settings.yaml
index a5c8911f..a5c8911f 100644
--- a/sec_certs/settings.yaml
+++ b/sec_certs/config/settings.yaml
diff --git a/sec_certs/dataset/common_criteria.py b/sec_certs/dataset/common_criteria.py
index 430b7b33..f50fdf67 100644
--- a/sec_certs/dataset/common_criteria.py
+++ b/sec_certs/dataset/common_criteria.py
@@ -7,7 +7,7 @@ import time
from dataclasses import dataclass
from datetime import datetime
from pathlib import Path
-from typing import Dict, Optional, Union, List, Tuple, Set
+from typing import Dict, Optional, Union, List, Tuple
import json
import numpy as np
@@ -15,15 +15,14 @@ import pandas as pd
from bs4 import Tag, BeautifulSoup
from tqdm import tqdm
-from sec_certs import helpers as helpers, parallel_processing as cert_processing, constants as constants
-from sec_certs.dataset.cpe import CPEDataset, CPE
+from sec_certs import helpers as helpers, parallel_processing as cert_processing
from sec_certs.dataset.cve import CVEDataset
from sec_certs.dataset.dataset import Dataset, logger
from sec_certs.serialization import ComplexSerializableType, serialize, CustomJSONDecoder
from sec_certs.certificate.common_criteria import CommonCriteriaCert
from sec_certs.dataset.protection_profile import ProtectionProfileDataset
from sec_certs.certificate.protection_profile import ProtectionProfile
-from sec_certs.configuration import config
+from sec_certs.config.configuration import config
from sec_certs.certificate.cc_maintenance_update import CommonCriteriaMaintenanceUpdate
diff --git a/sec_certs/dataset/cve.py b/sec_certs/dataset/cve.py
index a69b648f..e8d70a55 100644
--- a/sec_certs/dataset/cve.py
+++ b/sec_certs/dataset/cve.py
@@ -15,7 +15,7 @@ from sec_certs.parallel_processing import process_parallel
import sec_certs.constants as constants
import sec_certs.helpers as helpers
from sec_certs.serialization import ComplexSerializableType, CustomJSONDecoder, CustomJSONEncoder
-from sec_certs.configuration import config
+from sec_certs.config.configuration import config
logger = logging.getLogger(__name__)
diff --git a/sec_certs/dataset/dataset.py b/sec_certs/dataset/dataset.py
index bb4469b6..0842122d 100644
--- a/sec_certs/dataset/dataset.py
+++ b/sec_certs/dataset/dataset.py
@@ -14,7 +14,7 @@ import sec_certs.parallel_processing as cert_processing
from sec_certs.certificate.certificate import Certificate
from sec_certs.serialization import CustomJSONDecoder, CustomJSONEncoder
-from sec_certs.configuration import config
+from sec_certs.config.configuration import config
from sec_certs.serialization import serialize
from sec_certs.dataset.cpe import CPEDataset
diff --git a/sec_certs/dataset/fips.py b/sec_certs/dataset/fips.py
index 354aec8d..9f39af5c 100644
--- a/sec_certs/dataset/fips.py
+++ b/sec_certs/dataset/fips.py
@@ -3,19 +3,17 @@ import logging
import os
from itertools import groupby
from pathlib import Path
-from typing import ClassVar, Tuple, List, Dict, Optional, Union
-import json
+from typing import Tuple, List, Dict, Optional, Union
from bs4 import BeautifulSoup
from graphviz import Digraph
from sec_certs import constants as constants, parallel_processing as cert_processing, helpers as helpers
-from sec_certs.configuration import config
+from sec_certs.config.configuration import config
from sec_certs.dataset.dataset import Dataset, logger
from sec_certs.dataset.fips_algorithm import FIPSAlgorithmDataset
from sec_certs.serialization import ComplexSerializableType, serialize
from sec_certs.certificate.fips import FIPSCertificate
-from sec_certs.dataset.cpe import CPEDataset
class FIPSDataset(Dataset, ComplexSerializableType):
diff --git a/sec_certs/dataset/fips_algorithm.py b/sec_certs/dataset/fips_algorithm.py
index 42f1b22e..2ef3f22d 100644
--- a/sec_certs/dataset/fips_algorithm.py
+++ b/sec_certs/dataset/fips_algorithm.py
@@ -5,12 +5,11 @@ from typing import Dict, Union, List
from bs4 import BeautifulSoup
-import sec_certs.helpers
from sec_certs import helpers as helpers, constants as constants, parallel_processing as cert_processing
from sec_certs.dataset.dataset import Dataset
from sec_certs.serialization import ComplexSerializableType, CustomJSONEncoder, CustomJSONDecoder
from sec_certs.certificate.fips import FIPSCertificate
-from sec_certs.configuration import config
+from sec_certs.config.configuration import config
class FIPSAlgorithmDataset(Dataset, ComplexSerializableType):
diff --git a/tests/test_fips_oop.py b/tests/test_fips_oop.py
index a212d5b9..e7f3a01c 100644
--- a/tests/test_fips_oop.py
+++ b/tests/test_fips_oop.py
@@ -4,7 +4,7 @@ from tempfile import TemporaryDirectory
from sec_certs.dataset.fips import FIPSDataset
from sec_certs.dataset.fips_algorithm import FIPSAlgorithmDataset
-from sec_certs.configuration import config
+from sec_certs.config.configuration import config
from tests.fips_test_utils import generate_html