diff options
| author | Adam Janovsky | 2021-05-14 16:44:16 +0200 |
|---|---|---|
| committer | Adam Janovsky | 2021-05-14 16:44:16 +0200 |
| commit | 41bb82d784a603b6589f66f0660cddfcf43cc43b (patch) | |
| tree | 73441cad723ac636187b49486129195d9572f555 /examples | |
| parent | dddceeb8ff1e130dcdbc57f12ebc1d2f2eeb5934 (diff) | |
| parent | cfab313d013b530c5ceed5b29877be71f74da7e8 (diff) | |
| download | sec-certs-41bb82d784a603b6589f66f0660cddfcf43cc43b.tar.gz sec-certs-41bb82d784a603b6589f66f0660cddfcf43cc43b.tar.zst sec-certs-41bb82d784a603b6589f66f0660cddfcf43cc43b.zip | |
merge dev into cc-feature-parity
Diffstat (limited to 'examples')
| -rw-r--r-- | examples/fips_oop_demo.py | 40 |
1 files changed, 16 insertions, 24 deletions
diff --git a/examples/fips_oop_demo.py b/examples/fips_oop_demo.py index dde76101..d27429fc 100644 --- a/examples/fips_oop_demo.py +++ b/examples/fips_oop_demo.py @@ -5,69 +5,61 @@ 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.helpers import analyze_matched_algs + @click.command() @click.option('--config-file', help='Path to config file') @click.option('--json-file', help='Path to dataset json file') -@click.option('--no-download-algs', help='don\'t download algs', is_flag=True) -def main(config_file, json_file, no_download_algs): +@click.option('--no-download-algs', help='Redo scan of html files', is_flag=True) +@click.option('--redo-web-scan', help='Redo scan of PDF files', is_flag=True) +@click.option('--redo-keyword-scan', help='Don\'t download algs', is_flag=True) +@click.option('--higher-precision-results', + help='Redo table search for certificates with high error rate. Behaviour undefined if used on a newly instantiated dataset.', + is_flag=True) +def main(config_file, json_file, no_download_algs, redo_web_scan, redo_keyword_scan, higher_precision_results): logging.basicConfig(level=logging.INFO) start = datetime.now() # Load config - config.load(config_file if config_file else 'sec_certs/settings.yaml') + config.load(config_file if config_file else '../sec_certs/settings.yaml') # Create empty dataset - dset = FIPSDataset({}, Path('./fips_dataset'), 'sample_dataset', 'sample dataset description') + dset = FIPSDataset({}, Path('../fips_dataset'), 'sample_dataset', 'sample dataset description') # this is for creating test dataset, usually with small number of pdfs # dset = FIPSDataset({}, Path('./fips_test_dataset'), 'small dataset', 'small dataset for keyword testing') # Load metadata for certificates from CSV and HTML sources - dset.get_certs_from_web(json_file=json_file, redo=True) + dset.get_certs_from_web(json_file=json_file, redo=redo_web_scan) logging.info(f'Finished parsing. Have dataset with {len(dset)} certificates.') - # Dump dataset into JSON - dset.to_json(dset.root_dir / 'fips_full_dataset.json') logging.info(f'Dataset saved to {dset.root_dir}/fips_full_dataset.json') logging.info("Converting pdfs") dset.convert_all_pdfs() - dset.to_json(dset.root_dir / 'fips_full_dataset.json') logging.info("Extracting keywords now.") - dset.extract_keywords(redo=True) + dset.extract_keywords(redo=redo_keyword_scan) logging.info(f'Finished extracting certificates for {len(dset.certs)} items.') - logging.info("Dumping dataset again...") - dset.to_json(dset.root_dir / 'fips_full_dataset.json') logging.info("Searching for tables in pdfs") - not_decoded_files = dset.extract_certs_from_tables() + not_decoded_files = dset.extract_certs_from_tables(higher_precision_results) logging.info(f"Done. Files not decoded: {not_decoded_files}") - dset.to_json(dset.root_dir / 'fips_mentioned.json') logging.info("Parsing algorithms") if not no_download_algs: - aset = FIPSAlgorithmDataset({}, Path('fips_dataset/web/algorithms'), 'algorithms', 'sample algs') + aset = FIPSAlgorithmDataset({}, Path(dset.root_dir / 'web/algorithms'), 'algorithms', 'sample algs') aset.get_certs_from_web() + logging.info(f'Finished parsing. Have algorithm dataset with {len(aset)} algorithm numbers.') dset.algorithms = aset logging.info("finalizing results.") - dset.finalize_results() - logging.info('dump again') - dset.to_json(dset.root_dir / 'fips_full_dataset.json') - - dset.get_dot_graph('different_new') - - data = dset.match_algs() - analyze_matched_algs(data) - + dset.plot_graphs(show=False) end = datetime.now() logging.info(f'The computation took {(end - start)} seconds.') |
