# standard path wrangling to be able to import project config and sources
import os
import sys
root = os.path.dirname(os.getcwd())
sys.path.append(root)
print('Project root: {}'.format(root))
Project root: /Users/dasha/code/jcdl_2019
Imports:
# Built-in
import json
from datetime import datetime
# Custom
from src.utils.config_loader import ConfigLoader
from src.compliance.compliance_checker import ComplianceChecker
Load config:
cfg = ConfigLoader.load_config()
Test the class:
dois = [
'10.1002/14651858.CD012515', # not compliant
'10.1007/s11192-018-2669-y', # compliant
'10.1145/3057148.3057154', # in CrossRef but not in CORE
98765 # not a DOI
]
cc = ComplianceChecker(cfg['core']['api_key'], cfg['core']['max_query_size'])
print(json.dumps(cc.compliance_status(dois), indent=4))
{ "10.1002/14651858.CD012515": { "published": "2017-01-24", "deposited": "2017-09-12", "status": "Not compliant" }, "10.1007/s11192-018-2669-y": { "published": "2018-02-10", "deposited": "2018-02-14", "status": "Likely compliant" }, "10.1145/3057148.3057154": { "published": "2017", "deposited": null, "status": "Missing data" }, "98765": { "published": null, "deposited": null, "status": "Invalid DOI" } }