Skip to content

Commit a081c50

Browse files
Merge pull request #3 from mathanamathav/CPGA-bug-fix
CGPA bug fix
2 parents 898ee1f + 8aedce0 commit a081c50

File tree

3 files changed

+27
-30
lines changed

3 files changed

+27
-30
lines changed
82 Bytes
Binary file not shown.

__pycache__/wsgi.cpython-310.pyc

0 Bytes
Binary file not shown.

bunker_mod.py

+27-30
Original file line numberDiff line numberDiff line change
@@ -216,27 +216,31 @@ def return_timetable(session):
216216
return {"error" : "no data"}
217217

218218
def gradeMap(grade):
219-
grade_score_map = {
220-
'O':10,
221-
'A+':9,
222-
'A':8,
223-
'B+':7,
224-
'B':6,
225-
'C+':5,
226-
'C':4,
227-
'W':0,
228-
'RA':0,
229-
'SA':0
230-
}
231-
return grade_score_map[grade]
219+
grade_score_map = {
220+
'O':10,
221+
'A+':9,
222+
'A':8,
223+
'B+':7,
224+
'B':6,
225+
'C+':5,
226+
'C':4,
227+
'W':0,
228+
'RA':0,
229+
'SA':0
230+
}
231+
232+
if grade not in grade_score_map.keys():
233+
return 0
234+
235+
return grade_score_map[grade]
232236

233237
def return_cgpa(session):
234238
resultspage = 'https://ecampus.psgtech.ac.in/studzone2/FrmEpsStudResult.aspx'
235239

236240
page = session.get(resultspage)
237241
soup = BeautifulSoup(page.text,"html.parser")
238242

239-
lastest_sem_data = []
243+
latest_sem_data = []
240244
table = soup.find('table', attrs={'id':"DgResult"})
241245

242246
if table != None:
@@ -246,11 +250,9 @@ def return_cgpa(session):
246250

247251
cols = row.find_all('td')
248252
cols = [ele.text.strip() for ele in cols]
249-
lastest_sem_data.append([ele for ele in cols if ele])
253+
latest_sem_data.append([ele for ele in cols if ele])
250254
except:
251-
lastest_sem_data = {"error" : "no data"}
252-
else:
253-
lastest_sem_data = {"error" : "no data"}
255+
print("No results available !!")
254256

255257
coursepage = 'https://ecampus.psgtech.ac.in/studzone2/AttWfStudCourseSelection.aspx'
256258

@@ -273,22 +275,17 @@ def return_cgpa(session):
273275
else:
274276
return {"error" : "no data"}
275277

276-
latest_sem_no = lastest_sem_data[1][0]
277-
278278
cols = data.pop(0)
279279
df = pd.DataFrame(data, columns=cols)
280280

281-
# Add latest sem results of not available
282-
if latest_sem_no not in df['COURSE SEM']:
283-
latest_sem_record = {
284-
'COURSE CODE':lastest_sem_data[1][1],
285-
'COURSE TITLE':lastest_sem_data[1][2],
286-
'COURSE SEM':lastest_sem_data[1][0],
287-
'GRADE':lastest_sem_data[1][4].split()[1],
288-
'CREDITS':lastest_sem_data[1][3]
289-
}
290-
df = df.append(latest_sem_record, ignore_index=True)
281+
# Add latest sem results if available
282+
if len(latest_sem_data) != 0:
283+
latest_sem_data.pop(0)
284+
latest_sem_records = pd.DataFrame(latest_sem_data, columns=['COURSE SEM', 'COURSE CODE', 'COURSE TITLE', 'CREDITS', 'GRADE', 'RESULT'])
285+
latest_sem_records['GRADE'] = latest_sem_records['GRADE'].str.split().str[-1]
291286

287+
df = df.append(latest_sem_records, ignore_index=True)
288+
df.drop_duplicates(subset="COURSE CODE", keep="last", inplace=True)
292289

293290
# CPGA calculation
294291
latest_sem = df['COURSE SEM'].max()

0 commit comments

Comments
 (0)