From 8f66837f6fb5b74ba3166ae6e31328f8a9e68d96 Mon Sep 17 00:00:00 2001 From: Sam Wenham Date: Sun, 24 Feb 2019 13:03:34 +0000 Subject: Make things more compatiable with newer python Fix the expeditions list Improvements to make it compatiable with django 1.8 Bump the years to add 2018 Update the .hgignore file to ignore junk --- parsers/survex.py | 98 ++++++++++++++++++++++++++++++------------------------- 1 file changed, 54 insertions(+), 44 deletions(-) (limited to 'parsers/survex.py') diff --git a/parsers/survex.py b/parsers/survex.py index 0c108ac..536314f 100644 --- a/parsers/survex.py +++ b/parsers/survex.py @@ -9,7 +9,6 @@ import re import os - def LoadSurvexLineLeg(survexblock, stardata, sline, comment): ls = sline.lower().split() ssfrom = survexblock.MakeSurvexStation(ls[stardata["from"]]) @@ -20,23 +19,23 @@ def LoadSurvexLineLeg(survexblock, stardata, sline, comment): try: survexleg.tape = float(ls[stardata["tape"]]) except ValueError: - print "Tape misread in", survexblock.survexfile.path - print "Stardata:", stardata - print "Line:", ls + print("Tape misread in", survexblock.survexfile.path) + print("Stardata:", stardata) + print("Line:", ls) survexleg.tape = 1000 try: lclino = ls[stardata["clino"]] except: - print "Clino misread in", survexblock.survexfile.path - print "Stardata:", stardata - print "Line:", ls + print("Clino misread in", survexblock.survexfile.path) + print("Stardata:", stardata) + print("Line:", ls) lclino = error try: lcompass = ls[stardata["compass"]] except: - print "Compass misread in", survexblock.survexfile.path - print "Stardata:", stardata - print "Line:", ls + print("Compass misread in", survexblock.survexfile.path) + print("Stardata:", stardata) + print("Line:", ls) lcompass = error if lclino == "up": survexleg.compass = 0.0 @@ -48,14 +47,14 @@ def LoadSurvexLineLeg(survexblock, stardata, sline, comment): try: survexleg.compass = float(lcompass) except ValueError: - print "Compass misread in", survexblock.survexfile.path - print "Stardata:", stardata - print "Line:", ls + print("Compass misread in", survexblock.survexfile.path) + print("Stardata:", stardata) + print("Line:", ls) survexleg.compass = 1000 survexleg.clino = -90.0 else: - assert re.match("[\d\-+.]+$", lcompass), ls - assert re.match("[\d\-+.]+$", lclino) and lclino != "-", ls + assert re.match(r"[\d\-+.]+$", lcompass), ls + assert re.match(r"[\d\-+.]+$", lclino) and lclino != "-", ls survexleg.compass = float(lcompass) survexleg.clino = float(lclino) @@ -67,9 +66,10 @@ def LoadSurvexLineLeg(survexblock, stardata, sline, comment): try: survexblock.totalleglength += float(ls[itape]) except ValueError: - print "Length not added" + print("Length not added") survexblock.save() - + + def LoadSurvexEquate(survexblock, sline): #print sline # stations = sline.split() @@ -77,12 +77,13 @@ def LoadSurvexEquate(survexblock, sline): for station in stations: survexblock.MakeSurvexStation(station) + def LoadSurvexLinePassage(survexblock, stardata, sline, comment): pass -stardatadefault = { "type":"normal", "t":"leg", "from":0, "to":1, "tape":2, "compass":3, "clino":4 } -stardataparamconvert = { "length":"tape", "bearing":"compass", "gradient":"clino" } +stardatadefault = {"type":"normal", "t":"leg", "from":0, "to":1, "tape":2, "compass":3, "clino":4} +stardataparamconvert = {"length":"tape", "bearing":"compass", "gradient":"clino"} def RecursiveLoad(survexblock, survexfile, fin, textlines): iblankbegins = 0 @@ -91,7 +92,7 @@ def RecursiveLoad(survexblock, survexfile, fin, textlines): teammembers = [ ] # uncomment to print out all files during parsing -# print "Reading file:", survexblock.survexfile.path + print("Reading file:", survexblock.survexfile.path) while True: svxline = fin.readline().decode("latin1") if not svxline: @@ -99,10 +100,10 @@ def RecursiveLoad(survexblock, survexfile, fin, textlines): textlines.append(svxline) # break the line at the comment - sline, comment = re.match("([^;]*?)\s*(?:;\s*(.*))?\n?$", svxline.strip()).groups() + sline, comment = re.match(r"([^;]*?)\s*(?:;\s*(.*))?\n?$", svxline.strip()).groups() # detect ref line pointing to the scans directory - mref = comment and re.match('.*?ref.*?(\d+)\s*#\s*(\d+)', comment) + mref = comment and re.match(r'.*?ref.*?(\d+)\s*#\s*(\d+)', comment) if mref: refscan = "%s#%s" % (mref.group(1), mref.group(2)) survexscansfolders = models.SurvexScansFolder.objects.filter(walletname=refscan) @@ -116,7 +117,7 @@ def RecursiveLoad(survexblock, survexfile, fin, textlines): continue # detect the star command - mstar = re.match('\s*\*[\s,]*(\w+)\s*(.*?)\s*(?:;.*)?$', sline) + mstar = re.match(r'\s*\*[\s,]*(\w+)\s*(.*?)\s*(?:;.*)?$', sline) if not mstar: if "from" in stardata: LoadSurvexLineLeg(survexblock, stardata, sline, comment) @@ -129,7 +130,7 @@ def RecursiveLoad(survexblock, survexfile, fin, textlines): cmd, line = mstar.groups() cmd = cmd.lower() if re.match("include$(?i)", cmd): - includepath = os.path.join(os.path.split(survexfile.path)[0], re.sub("\.svx$", "", line)) + includepath = os.path.join(os.path.split(survexfile.path)[0], re.sub(r"\.svx$", "", line)) includesurvexfile = models.SurvexFile(path=includepath, cave=survexfile.cave) includesurvexfile.save() includesurvexfile.SetDirectory() @@ -157,7 +158,7 @@ def RecursiveLoad(survexblock, survexfile, fin, textlines): elif re.match("date$(?i)", cmd): if len(line) == 10: - survexblock.date = re.sub("\.", "-", line) + survexblock.date = re.sub(r"\.", "-", line) expeditions = models.Expedition.objects.filter(year=line[:4]) if expeditions: assert len(expeditions) == 1 @@ -166,9 +167,9 @@ def RecursiveLoad(survexblock, survexfile, fin, textlines): survexblock.save() elif re.match("team$(?i)", cmd): - mteammember = re.match("(Insts|Notes|Tape|Dog|Useless|Pics|Helper|Disto|Consultant)\s+(.*)$(?i)", line) + mteammember = re.match(r"(Insts|Notes|Tape|Dog|Useless|Pics|Helper|Disto|Consultant)\s+(.*)$(?i)", line) if mteammember: - for tm in re.split(" and | / |, | & | \+ |^both$|^none$(?i)", mteammember.group(2)): + for tm in re.split(r" and | / |, | & | \+ |^both$|^none$(?i)", mteammember.group(2)): if tm: personexpedition = survexblock.expedition and GetPersonExpeditionNameLookup(survexblock.expedition).get(tm.lower()) if (personexpedition, tm) not in teammembers: @@ -206,22 +207,25 @@ def RecursiveLoad(survexblock, survexfile, fin, textlines): survexblock.MakeSurvexStation(line.split()[0]) else: - if not cmd in [ "sd", "include", "units", "entrance", "data", "flags", "title", "export", "instrument", "calibrate", "set", "infer", "alias", "ref" ]: - print ("Unrecognised command in line:", cmd, line, survexblock) - - + if cmd not in ["sd", "include", "units", "entrance", "data", "flags", "title", "export", "instrument", + "calibrate", "set", "infer", "alias", "ref", "cs", "declination", "case"]: + print("Unrecognised command in line:", cmd, line, survexblock, survexblock.survexfile.path) -def ReloadSurvexCave(survex_cave): - cave = models.Cave.objects.get(kataster_number=survex_cave) + +def ReloadSurvexCave(survex_cave, area): + print(survex_cave, area) + cave = models.Cave.objects.get(kataster_number=survex_cave, area__short_name=area) + print(cave) + #cave = models.Cave.objects.get(kataster_number=survex_cave) cave.survexblock_set.all().delete() cave.survexfile_set.all().delete() cave.survexdirectory_set.all().delete() - survexfile = models.SurvexFile(path="caves/" + survex_cave + "/" + survex_cave, cave=cave) + survexfile = models.SurvexFile(path="caves-" + cave.kat_area() + "/" + survex_cave + "/" + survex_cave, cave=cave) survexfile.save() survexfile.SetDirectory() - survexblockroot = models.SurvexBlock(name="root", survexpath="caves", begin_char=0, cave=cave, survexfile=survexfile, totalleglength=0.0) + survexblockroot = models.SurvexBlock(name="root", survexpath="caves-" + cave.kat_area(), begin_char=0, cave=cave, survexfile=survexfile, totalleglength=0.0) survexblockroot.save() fin = survexfile.OpenFile() textlines = [ ] @@ -232,7 +236,7 @@ def ReloadSurvexCave(survex_cave): def LoadAllSurvexBlocks(): - print 'Loading All Survex Blocks...' + print('Loading All Survex Blocks...') models.SurvexBlock.objects.all().delete() models.SurvexFile.objects.all().delete() @@ -243,6 +247,8 @@ def LoadAllSurvexBlocks(): models.SurvexPersonRole.objects.all().delete() models.SurvexStation.objects.all().delete() + print(" - Data flushed") + survexfile = models.SurvexFile(path="all", cave=None) survexfile.save() survexfile.SetDirectory() @@ -259,22 +265,26 @@ def LoadAllSurvexBlocks(): #Load each cave, #FIXME this should be dealt with load all above + print(" - Reloading all caves") caves = models.Cave.objects.all() for cave in caves: - if cave.kataster_number and os.path.isdir(os.path.join(settings.SURVEX_DATA, "caves", cave.kataster_number)): + if cave.kataster_number and os.path.isdir(os.path.join(settings.SURVEX_DATA, "caves-" + cave.kat_area(), cave.kataster_number)): if cave.kataster_number not in ['40']: - print "loading", cave - ReloadSurvexCave(cave.kataster_number) - -poslineregex = re.compile("^\(\s*([+-]?\d*\.\d*),\s*([+-]?\d*\.\d*),\s*([+-]?\d*\.\d*)\s*\)\s*([^\s]+)$") + print("loading", cave, cave.kat_area()) + ReloadSurvexCave(cave.kataster_number, cave.kat_area()) + + +poslineregex = re.compile(r"^\(\s*([+-]?\d*\.\d*),\s*([+-]?\d*\.\d*),\s*([+-]?\d*\.\d*)\s*\)\s*([^\s]+)$") + + def LoadPos(): - print 'Loading Pos....' + print('Loading Pos....') call([settings.CAVERN, "--output=%s/all.3d" % settings.SURVEX_DATA, "%s/all.svx" % settings.SURVEX_DATA]) call([settings.THREEDTOPOS, '%sall.3d' % settings.SURVEX_DATA], cwd = settings.SURVEX_DATA) posfile = open("%sall.pos" % settings.SURVEX_DATA) - posfile.readline()#Drop header + posfile.readline() #Drop header for line in posfile.readlines(): r = poslineregex.match(line) if r: @@ -286,4 +296,4 @@ def LoadPos(): ss.z = float(z) ss.save() except: - print "%s not parsed in survex" % name + print("%s not parsed in survex" % name) -- cgit v1.2.3