aboutsummaryrefslogtreecommitdiffstats
path: root/fuzzycat/utils.py
diff options
context:
space:
mode:
authorMartin Czygan <martin.czygan@gmail.com>2020-12-11 02:17:06 +0100
committerMartin Czygan <martin.czygan@gmail.com>2020-12-11 02:17:06 +0100
commite5bcf8ba46b6851b677078358b7ffd26072c2523 (patch)
tree0c84c21efdbe6773d5713415fd7e94537c51f1e3 /fuzzycat/utils.py
parentdf70259a6c42fc17245df419fdcdc73f9c7776f1 (diff)
downloadfuzzycat-e5bcf8ba46b6851b677078358b7ffd26072c2523.tar.gz
fuzzycat-e5bcf8ba46b6851b677078358b7ffd26072c2523.zip
add generic doi version case
Diffstat (limited to 'fuzzycat/utils.py')
-rw-r--r--fuzzycat/utils.py14
1 files changed, 14 insertions, 0 deletions
diff --git a/fuzzycat/utils.py b/fuzzycat/utils.py
index ef3b418..2dc2adb 100644
--- a/fuzzycat/utils.py
+++ b/fuzzycat/utils.py
@@ -3,12 +3,26 @@ import itertools
import re
import string
+from glom import glom, PathAccessError
+
printable_no_punct = string.digits + string.ascii_letters + string.whitespace
# More correct: https://www.johndcook.com/blog/2016/02/04/regular-expression-to-match-a-chemical-element/
CHEM_FORMULA = re.compile(r"([A-Z]{1,2}[0-9]{1,2})+")
+def dict_key_exists(doc, path):
+ """
+ Return true, if a value at a given path exists. XXX: probably in glom, too.
+ """
+ try:
+ _ = glom(doc, path)
+ except PathAccessError:
+ return False
+ else:
+ return True
+
+
def has_doi_prefix(v, prefix="10.1234"):
"""
Returns False, if we cannot parse v or prefix does not match.