INNER CODE UNIT · Python
validate
defiprime/defiprime1 · scripts/product_add.py:41
def validate(entry):
for key in REQUIRED:
if not entry.get(key):
raise ValueError(f"{entry.get('slug', '?')}: missing {key}")
directory = entry["dir"]
if directory not in TAXONOMY:
raise ValueError(f"{entry['slug']}: unknown dir {directory}")
filters = entry["filter"].split(", ")
unknown = set(filters) - set(TAXONOMY[directory]["filters"])
if unknown:
raise ValueError(f"{entry['slug']}: unknown filter {sorted(unknown)}")
chains = set(entry["ecosystem"].split(", ")) - ECOSYSTEMS
if chains:
raise ValueError(f"{entry['slug']}: unknown ecosystem {sorted(chains)}")
length = len(entry["description"])
if not NEW_DESCRIPTION_MIN <= length <= NEW_DESCRIPTION_MAX or "\u2014" in entry["description"]:
raise ValueError(f"{entry['slug']}: description length {length} or em dash")
if entry.get("product_type", "non-custodial") not in PRODUCT_TYPES: