Example #1
0
Kod szybkiego testowania:
from config import * ; from usos import * ; usos = USOS(); \ 
usos_baza = USOS_Baza(plik_bazy) ; usos.login(login,haslo)
"""

import sys

from USOS_Baza import USOS_Baza
from USOS import USOS
from config import plik_bazy,login,haslo,debug,powiadom


if __name__ == '__main__':    

  baza = USOS_Baza(plik_bazy)
  usos = USOS()
  
  if not baza.ustaw_login(usos):
    usos.login(login,haslo)
    baza.zapisz_login(usos)
  
  oceny = []
  try:
    oceny = usos.pobierz_oceny()
    debug("Pobranie ocen udane")
  except Exception,e:
    if str(e[0]).count("Blad logowania")>0:
      print("Potrzebuje ponownie sie zalogowac..."),
      usos.login(login,haslo)
      baza.zapisz_login(usos)
      oceny = usos.pobierz_oceny()
Example #2
0
def policz_srednia():
    usos = USOS()
    t_login = getpass('PESEL: ')
    t_haslo = getpass('Haslo: ')
    usos.login(t_login,t_haslo)
    oceny = usos.pobierz_oceny()

    #uporzadkuj oceny wedlug slownika 'kody'
    kody = {}
    for ocena in oceny:
      tmp_kody = ocena.kod.split(' ')
      if len(tmp_kody)!=2:
        debug("tmp_kody!=2 - %s" % ocena.przedmiot)
        break
      kierunek=tmp_kody[0]
      semestr = tmp_kody[1].replace('('+tmp_kody[0], '').rstrip(')')
      if not semestr:
        semestr='?'
      elif semestr.find(')')!=-1:
        semestr = semestr.rsplit(')',1)[1]
      if not kierunek in kody:
        kody[kierunek] = {}
      if not semestr in kody[kierunek]:
         kody[kierunek][semestr] = []
      kody[kierunek][semestr].append(ocena)

    wszystkie_liczba=0.0
    wszystkie_suma=0
    for kierunek in kody:
      kierunek_liczba=0.0
      kierunek_suma=0
      print "Kierunek %s" % kierunek
      semestry = kody[kierunek].keys()
      semestry.sort()
      for semestr in semestry:
        print "->Semestr %s -" % semestr, 
        liczba = 0.0
        suma = 0
        for przedmiot in kody[kierunek][semestr]:
          if przedmiot.oceny=="ZWL":
            continue
          if przedmiot.do_sredniej=="-1":
	    print ".", ; sys.stdout.flush()
            przedmiot.do_sredniej=usos.do_sredniej(przedmiot.url,przedmiot.typ)
          if przedmiot.oceny.startswith('('):
            if przedmiot.do_sredniej:
              liczba+=1
              suma+=float(przedmiot.oceny.split(') ')[0].replace(
                ',','.').strip('('))+float(przedmiot.oceny.split(
                ') ')[1].replace(',','.'))/2
              #suma+=float(przedmiot.oceny.split(') ')[1].replace(',','.'))
          else:
            if przedmiot.do_sredniej:
              liczba+=1
              suma+=float(przedmiot.oceny.replace(',','.'))
        if liczba!=0:
          print "średnia: %f" % (float(suma)/liczba),
        print " "
        kierunek_liczba+=liczba
        wszystkie_liczba+=kierunek_liczba
        kierunek_suma+=suma
        wszystkie_suma+=kierunek_suma
      if kierunek_liczba!=0:
        print "Średnia dla kierunku: %s\n" % (
          float(kierunek_suma)/kierunek_liczba)
    print "Średnia ogólna: %s" % (float(wszystkie_suma)/wszystkie_liczba)