forked from expo/troggle
abort messages when parsing caves
This commit is contained in:
parent
5c4a33873f
commit
38a63641bc
@ -191,6 +191,10 @@ def readentrance(filename):
|
|||||||
k.notes = "DUPLICATE entrance found on import. Please fix\n" + k.notes
|
k.notes = "DUPLICATE entrance found on import. Please fix\n" + k.notes
|
||||||
c = k
|
c = k
|
||||||
primary = False
|
primary = False
|
||||||
|
else: # more than one item in long list
|
||||||
|
message = f' ! {slug:12} ABORT loading this entrance. in "{filename}"'
|
||||||
|
DataIssue.objects.create(parser='caves', message=message, url=f'/cave/{slug}/edit/')
|
||||||
|
print(message)
|
||||||
|
|
||||||
def readcave(filename):
|
def readcave(filename):
|
||||||
'''Assumes any area it hasn't seen before is a subarea of 1623
|
'''Assumes any area it hasn't seen before is a subarea of 1623
|
||||||
@ -232,6 +236,7 @@ def readcave(filename):
|
|||||||
description_file = getXML(cavecontents, "description_file", maxItems = 1, context = context)
|
description_file = getXML(cavecontents, "description_file", maxItems = 1, context = context)
|
||||||
url = getXML(cavecontents, "url", maxItems = 1, context = context)
|
url = getXML(cavecontents, "url", maxItems = 1, context = context)
|
||||||
entrances = getXML(cavecontents, "entrance", context = context)
|
entrances = getXML(cavecontents, "entrance", context = context)
|
||||||
|
|
||||||
if len(non_public) == 1 and len(slugs) >= 1 and len(official_name) == 1 and len(areas) >= 1 and len(kataster_code) == 1 and len(kataster_number) == 1 and len(unofficial_number) == 1 and len(explorers) == 1 and len(underground_description) == 1 and len(equipment) == 1 and len(references) == 1 and len(survey) == 1 and len(kataster_status) == 1 and len(underground_centre_line) == 1 and len(notes) == 1 and len(length) == 1 and len(depth) == 1 and len(extent) == 1 and len(survex_file) == 1 and len(description_file ) == 1 and len(url) == 1 and len(entrances) >= 1:
|
if len(non_public) == 1 and len(slugs) >= 1 and len(official_name) == 1 and len(areas) >= 1 and len(kataster_code) == 1 and len(kataster_number) == 1 and len(unofficial_number) == 1 and len(explorers) == 1 and len(underground_description) == 1 and len(equipment) == 1 and len(references) == 1 and len(survey) == 1 and len(kataster_status) == 1 and len(underground_centre_line) == 1 and len(notes) == 1 and len(length) == 1 and len(depth) == 1 and len(extent) == 1 and len(survex_file) == 1 and len(description_file ) == 1 and len(url) == 1 and len(entrances) >= 1:
|
||||||
try:
|
try:
|
||||||
c, state = Cave.objects.update_or_create(non_public = {"True": True, "False": False, "true": True, "false": False,}[non_public[0]],
|
c, state = Cave.objects.update_or_create(non_public = {"True": True, "False": False, "true": True, "false": False,}[non_public[0]],
|
||||||
@ -324,18 +329,22 @@ def readcave(filename):
|
|||||||
print(message)
|
print(message)
|
||||||
#c.description_file="" # done only once, to clear out cruft.
|
#c.description_file="" # done only once, to clear out cruft.
|
||||||
#c.save()
|
#c.save()
|
||||||
|
else: # more than one item in long list
|
||||||
|
message = f' ! {slug:12} ABORT loading this cave. in "{filename}"'
|
||||||
|
DataIssue.objects.create(parser='caves', message=message, url=f'/cave/{slug}/edit/')
|
||||||
|
print(message)
|
||||||
|
|
||||||
def getXML(text, itemname, minItems = 1, maxItems = None, printwarnings = True, context = ""):
|
def getXML(text, itemname, minItems = 1, maxItems = None, printwarnings = True, context = ""):
|
||||||
items = re.findall("<%(itemname)s>(.*?)</%(itemname)s>" % {"itemname": itemname}, text, re.S)
|
items = re.findall("<%(itemname)s>(.*?)</%(itemname)s>" % {"itemname": itemname}, text, re.S)
|
||||||
if len(items) < minItems and printwarnings:
|
if len(items) < minItems and printwarnings:
|
||||||
message = " ! %(count)i %(itemname)s found, at least %(min)i expected" % {"count": len(items),
|
message = " ! %(count)i x %(itemname)s found, at least %(min)i expected. Load ABORT. " % {"count": len(items),
|
||||||
"itemname": itemname,
|
"itemname": itemname,
|
||||||
"min": minItems} + " in file " + context
|
"min": minItems} + " in file " + context
|
||||||
DataIssue.objects.create(parser='caves', message=message, url=""+context)
|
DataIssue.objects.create(parser='caves', message=message, url=""+context)
|
||||||
print(message)
|
print(message)
|
||||||
|
|
||||||
if maxItems is not None and len(items) > maxItems and printwarnings:
|
if maxItems is not None and len(items) > maxItems and printwarnings:
|
||||||
message = " ! %(count)i %(itemname)s found, no more than %(max)i expected in this XML unit " % {"count": len(items),
|
message = " ! %(count)i x %(itemname)s found, no more than %(max)i expected in this XML unit. Load ABORT. " % {"count": len(items),
|
||||||
"itemname": itemname,
|
"itemname": itemname,
|
||||||
"max": maxItems} + " in file " + context
|
"max": maxItems} + " in file " + context
|
||||||
DataIssue.objects.create(parser='caves', message=message)
|
DataIssue.objects.create(parser='caves', message=message)
|
||||||
|
Loading…
Reference in New Issue
Block a user