1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105
|
from datetime import datetime
def directory(value):
expected = "DOAJ"
if str(value) in expected:
return True
msg = "Directory specified as {} but must be one of: {}".format(str(value), ", ".join(expected))
raise ValueError(
msg,
)
def archive(value):
expected = ("Portico", "CLOCKSS", "DWT")
if str(value) in expected:
return True
msg = "Archive specified as {} but must be one of: {}".format(str(value), ", ".join(expected))
raise ValueError(
msg,
)
def document_type(value):
expected = (
"book-section",
"monograph",
"report",
"book-track",
"journal-article",
"book-part",
"other",
"book",
"journal-volume",
"book-set",
"reference-entry",
"proceedings-article",
"journal",
"component",
"book-chapter",
"report-series",
"proceedings",
"standard",
"reference-book",
"posted-content",
"journal-issue",
"dissertation",
"dataset",
"book-series",
"edited-book",
"standard-series",
)
if str(value) in expected:
return True
msg = "Type specified as {} but must be one of: {}".format(str(value), ", ".join(expected))
raise ValueError(
msg,
)
def is_bool(value):
expected = ["t", "true", "1", "f", "false", "0"]
if str(value) in expected:
return True
msg = "Boolean specified {} True but must be one of: {}".format(str(value), ", ".join(expected))
raise ValueError(
msg,
)
def is_date(value):
try:
datetime.strptime(value, "%Y") # noqa: DTZ007
except ValueError:
try:
datetime.strptime(value, "%Y-%m") # noqa: DTZ007
except ValueError:
try:
datetime.strptime(value, "%Y-%m-%d") # noqa: DTZ007
except ValueError as exc:
msg = f"Invalid date {value}."
raise ValueError(msg) from exc
return True
def is_integer(value):
try:
value = int(value)
if value >= 0:
return True
except ValueError:
pass
raise ValueError("Integer specified as %s but must be a positive integer." % str(value))
|