Browse Source

Search function and took out api key

no_compress
Raphael Roberts 7 years ago
parent
commit
f7af686063
  1. 2
      .gitignore
  2. 13
      ctabus.py
  3. 10
      main.py
  4. 22
      search.py

2
.gitignore

@ -1,4 +1,4 @@
/cta_api_key.json
/cta_api_key
/output /output
__pycache__ __pycache__
*.pyc *.pyc

13
ctabus.py

@ -2,11 +2,10 @@ from urllib.parse import urlencode
from requests import get from requests import get
import json import json
import datetime import datetime
import argparse
from editdistance import eval as editdistance
test = False test = False
test = True test = True
api = "***REMOVED***"
with open('cta_api_key') as file:
api = file.read()
def get_data(type,api_key = api,**args): def get_data(type,api_key = api,**args):
base_url = "http://www.ctabustracker.com/bustime/api/v2/{type}?{query}" base_url = "http://www.ctabustracker.com/bustime/api/v2/{type}?{query}"
@ -34,11 +33,3 @@ def get_directions(route,api_key = api):
def get_stops(route,direction,api_key = api): def get_stops(route,direction,api_key = api):
return get_data('getstops',api_key,rt = route,dir=direction) return get_data('getstops',api_key,rt = route,dir=direction)
if __name__ == "__main__":
if test:
data = get_times('4752')
else:
parser = argparse.ArgumentParser(prog = 'ctabus')
parser.add_argument('arg',metavar = 'stop-id | cross streets')
parser.add_argument('-r','--route')
parser.add_argument('-d','--direction')

10
main.py

@ -0,0 +1,10 @@
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

22
search.py

@ -0,0 +1,22 @@
from editdistance import eval as editdistance
import re
import json
class StopSearch:
def __init__(self,query):
parts = re.split(r' ?(?:and|&) ?',query)
self.query = ' & '.join(parts)
self.query_reversed = ' & '.join(reversed(parts))
def __call__(self,stop):
stop = stop.lower()
return min(
editdistance(self.query,stop),
editdistance(self.query_reversed,stop)
)
def __str__(self):
return '{}|{}'.format(self.query,self.query_reversed)
def __repr__(self):
return str(self)
if __name__ == "__main__":
with open('stops_out.json') as file:
data = json.load(file)
names = [stop['stpnm'] for stop in data['stops']]
Loading…
Cancel
Save