Browse Source
added gen_list, should make cmd printing easier, no fill for last row in print2d
no_compress
added gen_list, should make cmd printing easier, no fill for last row in print2d
no_compress
4 changed files with 85 additions and 25 deletions
-
6ctabus.py
-
74main.py
-
11print2d.py
-
19search.py
@ -1,10 +1,64 @@ |
|||||
from argparse import parser |
|
||||
parser = argparse.ArgumentParser(prog = 'ctabus') |
|
||||
parser.add_argument('arg',metavar = 'stop-id | cross streets') |
|
||||
parser.add_argument('-r','--route') |
|
||||
parser.add_argument('-d','--direction') |
|
||||
args = parser.parse_args() |
|
||||
if args.arg.isdecimal(): |
|
||||
pass |
|
||||
else: |
|
||||
pass |
|
||||
|
# from argparse import parser |
||||
|
from print2d import print2d |
||||
|
import re |
||||
|
# parser = argparse.ArgumentParser(prog = 'ctabus') |
||||
|
# parser.add_argument('arg',metavar = 'stop-id | cross streets') |
||||
|
# parser.add_argument('-r','--route',default = None) |
||||
|
# parser.add_argument('-d','--direction',default = None) |
||||
|
# args = parser.parse_args() |
||||
|
def numb_sort(str): |
||||
|
n = 40 |
||||
|
try: |
||||
|
return re.sub(r'\d+',lambda match: match.group(0).rjust(n,'0'),str) |
||||
|
except Exception as E: |
||||
|
print(str) |
||||
|
raise E |
||||
|
|
||||
|
def gen_list(objs,data,*displays,key = None,sort = 0,num_pic = True): |
||||
|
k = displays[sort] |
||||
|
display_data = {obj[k]:obj[data] for obj in objs} |
||||
|
srt_keys = sorted(display_data.keys(),key=key) |
||||
|
|
||||
|
display = sorted( |
||||
|
[ |
||||
|
[obj[d] for d in displays] for obj in objs |
||||
|
], |
||||
|
key = lambda row: key(row[sort]) |
||||
|
) |
||||
|
if num_pic: |
||||
|
display = [[i] + data for i,data in enumerate(display)] |
||||
|
|
||||
|
opts = { |
||||
|
'spacer':' ', |
||||
|
'seperator':' ', |
||||
|
'interactive': True, |
||||
|
'bottom':'=', |
||||
|
'l_end':'<', |
||||
|
'r_end':'>', |
||||
|
} |
||||
|
print2d(display,**opts) |
||||
|
if num_pic: |
||||
|
which = None |
||||
|
while not which: |
||||
|
try: |
||||
|
which = srt_keys[int(input('Which one?: '))] |
||||
|
except ValueError: |
||||
|
which = None |
||||
|
return display_data[which] |
||||
|
else: |
||||
|
ret = None |
||||
|
while not ret: |
||||
|
try: |
||||
|
ret = display_data[input('Which one?: ')] |
||||
|
except KeyError: |
||||
|
pass |
||||
|
return ret |
||||
|
|
||||
|
|
||||
|
if __name__ == "__main__": |
||||
|
import json |
||||
|
with open('stops_out.json') as file: |
||||
|
d= json.load(file) |
||||
|
|
||||
|
d = d['stops'] |
||||
|
print(gen_list(d,'stpid','stpnm',key=numb_sort,num_pic=True)) |
||||
Write
Preview
Loading…
Cancel
Save
Reference in new issue