From a772bc74d48ec2fc65f544851f296ff7cff89064 Mon Sep 17 00:00:00 2001 From: Coding with Peter Date: Fri, 24 Mar 2023 11:26:45 -0700 Subject: [PATCH] remove this conflicting, unused file --- depricated.py | 100 +++++++++++++++++++++++++++++++++++++++++++++++++- sched.py | 94 ----------------------------------------------- 2 files changed, 99 insertions(+), 95 deletions(-) delete mode 100644 sched.py diff --git a/depricated.py b/depricated.py index d0e0934..009460b 100644 --- a/depricated.py +++ b/depricated.py @@ -1567,4 +1567,102 @@ for L in str.split("\n"): print(qry) - \ No newline at end of file + +## sched.py + +import requests, re, csv, json, funcy, sys + + +def dates(s): + #print(s) + m = re.match(r'(\d\d\d\d)\-(\d\d)\-(\d\d)',s) + if m: + s = m.group(2) + "/" + m.group(3) + #print(s) + return s +# "Course Code","Start Date","End Date",Term,Delivery,CRN,Status,"Course Name","Course Description","Units/Credit hours","Instructor Last Name","Instructor First Name",Campus/College,"Meeting Days and Times","Pass/No Pass available?","Class Capacity","Available Seats","Waitlist Capacity","Current Waitlist Length","Meeting Locations","Course Notes",ZTC +# ACCT103,2021-06-14,2021-07-23,"Summer 2021",Online,80386,Active,"General Office Accounting","This course is designed to prepare students for entry-level office accounting positions. Emphasis is on practical accounting applications. This course has the option of a letter grade or pass/no pass. ADVISORY: Eligible for Mathematics 430."," 3.00","Valenzuela Roque",Karla,"Gavilan College"," ",T," 30"," 18"," 20"," 0",,, + + +def parse_www_csv_sched(): + old_keys = [ "CRN","Course Code","Units/Credit hours","Course Name","Meeting Days and Times","Class Capacity","Available Seats","Waitlist Capacity","Current Waitlist Length","Instructor Last Name","Start Date","Meeting Locations","ZTC","Delivery","Campus/College","Status","Course Description","Pass/No Pass available?","Course Notes" ] + + # "Instructor First Name","End Date","Term", + + new_keys = [ "crn", "code","cred", "name", "days", "cap", "rem", "wl_cap", "wl_act", "teacher", "date", "loc", "ztc", "type", "site","status","desc","pnp","note" ] + + # "time","act","wl_rem", "partofday", + + + url = "https://gavilan.edu/_files/php/current_schedule.csv" + + sched_txt = requests.get(url).text.splitlines() + sched = {"Fall 2021":[], "Spring 2022":[], "Winter 2022":[], "Summer 2021":[]} + shortsems = {"Fall 2021":"fa21", "Spring 2022":"sp22", "Winter 2022":"wi22", "Summer 2021":"su21","Summer 2022":"su22","Fall 2022":"fa22"} + for row in csv.DictReader(sched_txt): + d = dict(row) + for (old_key,new_key) in zip(old_keys,new_keys): + d[new_key] = d.pop(old_key).strip() + d['teacher'] = d.pop('Instructor First Name').strip() + " " + d['teacher'] + d['date'] = dates(d['date']) + '-' + dates(d.pop('End Date').strip()) + d['term'] = shortsems[d.pop('Term')] + if d['cred'] == ".00": + d['cred'] = "0" + if d['type'] == "Online": + d["loc"] = "ONLINE" + d["site"] = "Online" + d["type"] = "online" + #d.pop('Instructor First Name').strip() + " " + d['teacher'] + #d["code"] = d.pop("Course Code") + #d["crn"] = d.pop("CRN") + sched[row['Term']].append(d) #print(row) + + print( json.dumps(sched,indent=2)) + for k,v in sched.items(): + print("%s: %i" % (k,len(v))) + + for v in sched["Fall 2021"]: + print("%s\t %s\t %s\t %s" % ( v['code'], v['days'], v['type'], v['loc'] )) + #print("%s\t %s\t %s\t %s" % ( v['Course Code'], v['Meeting Days and Times'], v['Delivery'], v['Meeting Locations'] )) + +def parse_json_test_sched(): + j2 = open('cache/classes_json.json','r').readlines() + + for L in j2: + o3 = json.loads(L) + print(json.dumps(o3,indent=2)) + + + + + + +if __name__ == "__main__": + + print ('') + options = { + 1: ['fetch and parse the csv on www.', parse_www_csv_sched], + 2: ['parse the test json file.', parse_json_test_sched ], + } + + if len(sys.argv) > 1 and re.search(r'^\d+',sys.argv[1]): + resp = int(sys.argv[1]) + print("\n\nPerforming: %s\n\n" % options[resp][0]) + + else: + print ('') + for key in options: + print(str(key) + '.\t' + options[key][0]) + + print('') + resp = input('Choose: ') + + # Call the function in the options dict + options[ int(resp)][1]() + + + + + + + diff --git a/sched.py b/sched.py deleted file mode 100644 index 10bbf19..0000000 --- a/sched.py +++ /dev/null @@ -1,94 +0,0 @@ -import requests, re, csv, json, funcy, sys - - -def dates(s): - #print(s) - m = re.match(r'(\d\d\d\d)\-(\d\d)\-(\d\d)',s) - if m: - s = m.group(2) + "/" + m.group(3) - #print(s) - return s -# "Course Code","Start Date","End Date",Term,Delivery,CRN,Status,"Course Name","Course Description","Units/Credit hours","Instructor Last Name","Instructor First Name",Campus/College,"Meeting Days and Times","Pass/No Pass available?","Class Capacity","Available Seats","Waitlist Capacity","Current Waitlist Length","Meeting Locations","Course Notes",ZTC -# ACCT103,2021-06-14,2021-07-23,"Summer 2021",Online,80386,Active,"General Office Accounting","This course is designed to prepare students for entry-level office accounting positions. Emphasis is on practical accounting applications. This course has the option of a letter grade or pass/no pass. ADVISORY: Eligible for Mathematics 430."," 3.00","Valenzuela Roque",Karla,"Gavilan College"," ",T," 30"," 18"," 20"," 0",,, - - -def parse_www_csv_sched(): - old_keys = [ "CRN","Course Code","Units/Credit hours","Course Name","Meeting Days and Times","Class Capacity","Available Seats","Waitlist Capacity","Current Waitlist Length","Instructor Last Name","Start Date","Meeting Locations","ZTC","Delivery","Campus/College","Status","Course Description","Pass/No Pass available?","Course Notes" ] - - # "Instructor First Name","End Date","Term", - - new_keys = [ "crn", "code","cred", "name", "days", "cap", "rem", "wl_cap", "wl_act", "teacher", "date", "loc", "ztc", "type", "site","status","desc","pnp","note" ] - - # "time","act","wl_rem", "partofday", - - - url = "https://gavilan.edu/_files/php/current_schedule.csv" - - sched_txt = requests.get(url).text.splitlines() - sched = {"Fall 2021":[], "Spring 2022":[], "Winter 2022":[], "Summer 2021":[]} - shortsems = {"Fall 2021":"fa21", "Spring 2022":"sp22", "Winter 2022":"wi22", "Summer 2021":"su21","Summer 2022":"su22","Fall 2022":"fa22"} - for row in csv.DictReader(sched_txt): - d = dict(row) - for (old_key,new_key) in zip(old_keys,new_keys): - d[new_key] = d.pop(old_key).strip() - d['teacher'] = d.pop('Instructor First Name').strip() + " " + d['teacher'] - d['date'] = dates(d['date']) + '-' + dates(d.pop('End Date').strip()) - d['term'] = shortsems[d.pop('Term')] - if d['cred'] == ".00": - d['cred'] = "0" - if d['type'] == "Online": - d["loc"] = "ONLINE" - d["site"] = "Online" - d["type"] = "online" - #d.pop('Instructor First Name').strip() + " " + d['teacher'] - #d["code"] = d.pop("Course Code") - #d["crn"] = d.pop("CRN") - sched[row['Term']].append(d) #print(row) - - print( json.dumps(sched,indent=2)) - for k,v in sched.items(): - print("%s: %i" % (k,len(v))) - - for v in sched["Fall 2021"]: - print("%s\t %s\t %s\t %s" % ( v['code'], v['days'], v['type'], v['loc'] )) - #print("%s\t %s\t %s\t %s" % ( v['Course Code'], v['Meeting Days and Times'], v['Delivery'], v['Meeting Locations'] )) - -def parse_json_test_sched(): - j2 = open('cache/classes_json.json','r').readlines() - - for L in j2: - o3 = json.loads(L) - print(json.dumps(o3,indent=2)) - - - - - - -if __name__ == "__main__": - - print ('') - options = { - 1: ['fetch and parse the csv on www.', parse_www_csv_sched], - 2: ['parse the test json file.', parse_json_test_sched ], - } - - if len(sys.argv) > 1 and re.search(r'^\d+',sys.argv[1]): - resp = int(sys.argv[1]) - print("\n\nPerforming: %s\n\n" % options[resp][0]) - - else: - print ('') - for key in options: - print(str(key) + '.\t' + options[key][0]) - - print('') - resp = input('Choose: ') - - # Call the function in the options dict - options[ int(resp)][1]() - - - - -