From a982728c48ec1ac00fa5384f47207aa7c9ad1968 Mon Sep 17 00:00:00 2001 From: kallejre Date: Tue, 18 May 2021 19:01:43 +0300 Subject: [PATCH] style --- wonderful _cleanup.py | 164 +++++++++++++++++++++++------------------- 1 file changed, 91 insertions(+), 73 deletions(-) diff --git a/wonderful _cleanup.py b/wonderful _cleanup.py index f6b4e9c..1cad707 100644 --- a/wonderful _cleanup.py +++ b/wonderful _cleanup.py @@ -1,123 +1,141 @@ -import os, re -#for itm in os.listdir('mystery'): -crime_separator='*******\nCrime' +import os +import re + +crime_separator = '*******\nCrime' not_sus_regex = r"[Nn][o\']t[ a-z]*sus" -not_sus=re.compile(not_sus_regex, re.IGNORECASE) -people=dict() -companies=set() +not_sus = re.compile(not_sus_regex, re.IGNORECASE) +people = dict() +companies = set() # in_to_cm('6\'0"') == 182.88 + + class Person: def __init__(self, name): - n=name.strip().split() - if len(n)>2: + n = name.strip().split() + if len(n) > 2: print(name) - self.first=n[0] - self.last=n[1] - self.memberships=set() - self.gender=None - self.age=None - self.not_sus=None - self.addr=None - self.interview=None - self.height=None - self.weight=None - self.plate=None - self.make=None - self.color=None + self.first = n[0] + self.last = n[1] + self.memberships = set() + self.gender = None + self.age = None + self.not_sus = None + self.addr = None + self.interview = None + self.height = None + self.weight = None + self.plate = None + self.make = None + self.color = None + def add_member(self, comp): self.memberships.add(comp) + def __repr__(self): - out=list() - for i in sorted(filter(lambda x: x[0]!='_',dir(self))): - if not callable(eval('self.'+i)): - out.append(': '.join([i, str(eval('self.'+i))])) + out = list() + for i in sorted(filter(lambda x: x[0] != '_', dir(self))): + if not callable(eval('self.' + i)): + out.append(': '.join([i, str(eval('self.' + i))])) return '\n'.join(out) + + def in_to_cm(inch): - return round(int(inch.split('\'')[0])*30.48+int(inch.split('\'')[1][:-1])*2.54,2) + return round(int(inch.split('\'')[0]) * 30.48 + int(inch.split('\'')[1][:-1]) * 2.54, 2) + + def lb_to_kg(lb): - return round(int(lb.split()[0])*0.4536,2) -wonderful_blacklist={'alice','hatter','rabbit','march mare'} + return round(int(lb.split()[0]) * 0.4536, 2) + + +wonderful_blacklist = {'alice', 'hatter', 'rabbit', 'march mare'} + + def check_wonders(x): - x=x.lower() + x = x.lower() for alice in wonderful_blacklist: if alice in x: return False return True + + with open(r'mystery\crimescene') as f: - scene=filter(lambda x: check_wonders(x) , f.read().split(crime_separator)) + scene = filter(lambda x: check_wonders(x), f.read().split(crime_separator)) -with open(r'mystery\crimescene2','w') as f: - t=list(sorted(scene, key=lambda x:(not 'clue' in x.lower(),x)))[:10] - t=crime_separator+crime_separator.join(t) - print(t.replace('\n\n\n','\n'), file=f) +with open(r'mystery\crimescene2', 'w') as f: + t = list(sorted(scene, key=lambda x: (not 'clue' in x.lower(), x)))[:10] + t = crime_separator + crime_separator.join(t) + print(t.replace('\n\n\n', '\n'), file=f) -addresses=dict() +addresses = dict() for streetname in os.listdir(r'mystery\streets'): - with open(r'mystery\streets'+'\\'+streetname) as f: - street=f.readlines() - #ints=list(filter(lambda x: 'SEE INTER' in x, f.readlines())) - ints=set() + with open(r'mystery\streets' + '\\' + streetname) as f: + street = f.readlines() + # ints=list(filter(lambda x: 'SEE INTER' in x, f.readlines())) + ints = set() for nr in range(len(street)): if 'SEE INTER' in street[nr]: - ints.add((streetname, nr+1, street[nr].strip().split('#')[1])) + ints.add((streetname, nr + 1, street[nr].strip().split('#')[1])) for inter in ints: - intr=inter[2] - with open(r'mystery\interviews\interview-'+intr) as inf: - inview=inf.read().strip().lower().replace('\n', ' ') - ns=bool(not_sus.findall(inview)) + intr = inter[2] + with open(r'mystery\interviews\interview-' + intr) as inf: + inview = inf.read().strip().lower().replace('\n', ' ') + ns = bool(not_sus.findall(inview)) # if ns: print(inview) - streetname=inter[0].replace('_',' ') - addresses[(streetname, str(inter[1]))]={'ns':ns,'interv':inview} + streetname = inter[0].replace('_', ' ') + addresses[(streetname, str(inter[1]))] = {'ns': ns, 'interv': inview} for comp in os.listdir(r'mystery\memberships'): - with open(r'mystery\memberships'+'\\'+comp) as f: + with open(r'mystery\memberships' + '\\' + comp) as f: for name in f: - name=name.strip() + name = name.strip() if name not in people: - people[name]=Person(name) + people[name] = Person(name) people[name].add_member(comp) with open(r'mystery\people') as f: for line in f.readlines()[8:]: - name, g, age, addr=line.strip().split('\t') - name=name.strip() + name, g, age, addr = line.strip().split('\t') + name = name.strip() if name not in people: - people[name]=Person(name) - people[name].age=age.strip() - people[name].gender=g.strip() - people[name].addr=tuple(addr.split(', line ')) + people[name] = Person(name) + people[name].age = age.strip() + people[name].gender = g.strip() + people[name].addr = tuple(addr.split(', line ')) if people[name].addr in addresses: - people[name].interview=addresses[people[name].addr]['interv'] - people[name].not_sus=addresses[people[name].addr]['ns'] + people[name].interview = addresses[people[name].addr]['interv'] + people[name].not_sus = addresses[people[name].addr]['ns'] # else:print(people[name].addr, list(addresses)[4]) with open(r'mystery\vehicles') as f: for car in f.read().split('\n\n')[1:]: - t=list(map(lambda x:x.replace('se Plate', 'te:').split(': ')[1].strip(), car.strip().split('\n'))) - plate, make, color,name, hei, wei=t + t = list(map(lambda x: x.replace('se Plate', 'te:').split(': ')[1].strip(), car.strip().split('\n'))) + plate, make, color, name, hei, wei = t if name not in people: - people[name]=Person(name) - people[name].height=in_to_cm(hei) - people[name].weight=lb_to_kg(wei) - people[name].plate=plate - people[name].make=make - people[name].color=color + people[name] = Person(name) + people[name].height = in_to_cm(hei) + people[name].weight = lb_to_kg(wei) + people[name].plate = plate + people[name].make = make + people[name].color = color + def format_output(field): - if not field:return '' + if not field: + return '' elif type(field) in {list, tuple}: - return ', '.join(list(map(format_output,field))) + return ', '.join(list(map(format_output, field))) elif type(field) in {set}: - return ', '.join(list(map(format_output,sorted(field)))) + return ', '.join(list(map(format_output, sorted(field)))) elif type(field) is float: - return str(field).replace('.',',') + return str(field).replace('.', ',') else: return str(field).replace('\n', ' ') -f=open('people.csv','w') + +f = open('people.csv', 'w') print('Full name;First;Last;G;Height;Age;Weight;Address;Sus;Make;Color;Plate;Membership;Interview', file=f) for name in sorted(people): - output_row=[name] - pp=people[name] + output_row = [name] + pp = people[name] output_row.append(pp.first) output_row.append(pp.last) output_row.append(pp.gender) @@ -131,5 +149,5 @@ for name in sorted(people): output_row.append(pp.plate) output_row.append(pp.memberships) output_row.append(pp.interview) - print(*list(map(format_output,output_row)),sep=';', file=f) + print(*list(map(format_output, output_row)), sep=';', file=f) f.close()