@@ -47,48 +47,50 @@ def loadPlayers(filename,enc="iso8859_2"
print("ignored:",line,file=sys.stderr)
continue
(pin,name,cc,cl,rank,tcode,wc,gc,r1,r2)=match.groups()
record=dict(zip(
["pin","name","countryCode","club","rank","tournamentCode","winCount","gameCount","rating1","rating2"],
(int(pin),name,cc,cl,rank,tcode,int(wc),int(gc),int(r1),int(r2))
))
players.append(record)
return players
def setupDB():
cursor=connection.cursor()
cursor.execute("""create table tournaments (code text primary key, datum text, class text, round_count integer, player_count integer, country_code text, description text)""")
cursor.execute("""create table players (pin integer primary key, name text)""")
cursor.execute("""create table players_performance (pin integer references players(pin), tournament_code text references tournaments(code), country_code text, club text, win_count integer, game_count integer, rating_before real, rating_after real, primary key (pin,tournament_code))""")
cursor.execute("""
create view players_performance_tournaments (pin,p_country_code,rating_before,rating_after,t_country_code,datum) as
select pin,pp.country_code,rating_before,rating_after,ts.country_code,datum
from players_performance as pp join tournaments as ts on pp.tournament_code=ts.code
""")
cursor.execute("""create index pp_pin on players_performance (pin)""")
cursor.execute("""create index pp_tournament_code on players_performance (tournament_code)""")
cursor.execute("""create index pp_country_ind on players_performance (country_code)""")
cursor.execute("""create index t_datum_ind on tournaments (datum)""")
connection.commit()
def fillDB(tournaments,players):
cursor.execute("""delete from players_performance""")
cursor.execute("""delete from players""")
cursor.execute("""delete from tournaments""")
cursor.executemany(
"""insert into tournaments (code,datum,class,round_count,player_count,country_code,description) values (:code,:date,:class,:roundCount,:playerCount,:countryCode,:description)""",
tournaments.values()
)
cursor.executemany("""insert or ignore into players (pin,name) values (:pin,:name)""", players)
"""insert into players_performance (pin,tournament_code,country_code,club,win_count,game_count,rating_before,rating_after) values (:pin,:tournamentCode,:countryCode,:club,:winCount,:gameCount,:rating1,:rating2)""",
players
Status change: