diff --git a/django/library/doi.py b/django/library/doi.py index 26965b167..9cc98b83c 100644 --- a/django/library/doi.py +++ b/django/library/doi.py @@ -36,6 +36,7 @@ # prefix differs across (dev + staging) and production DATACITE_PREFIX = settings.DATACITE_PREFIX +DOI_PATTERN = re.compile(f"{DATACITE_PREFIX}/[-._;()/:a-zA-Z0-9]+") MAX_DATACITE_API_WORKERS = 25 @@ -99,8 +100,9 @@ def print_console_message(dry_run: bool, interactive: bool): def is_valid_doi(doi: str) -> bool: # checks if DOI is formatted like this "00.12345/q2xt-rj46" - pattern = re.compile(f"{DATACITE_PREFIX}/[-._;()/:a-zA-Z0-9]+") - return re.match(pattern, doi) + if doi: + return re.match(DOI_PATTERN, doi) + return False class DataCiteApi: