From 14dff0d21830dac08601b9bca21b7ca7346537a8 Mon Sep 17 00:00:00 2001 From: krystianch Date: Sun, 13 Sep 2020 17:02:48 +0200 Subject: [PATCH] Code cleanup --- wotstats/api.py | 1 + wotstats/cli.py | 15 ++++++------- wotstats/{legacy => legacy.py} | 10 ++++++--- wotstats/sql.py | 40 ---------------------------------- 4 files changed, 15 insertions(+), 51 deletions(-) rename wotstats/{legacy => legacy.py} (98%) diff --git a/wotstats/api.py b/wotstats/api.py index 19558f6..fc1e406 100644 --- a/wotstats/api.py +++ b/wotstats/api.py @@ -7,6 +7,7 @@ from urllib.request import urlopen FIELDS = [ + "account_id", "last_battle_time", "updated_at", "global_rating", diff --git a/wotstats/cli.py b/wotstats/cli.py index 8349f20..6bd3748 100644 --- a/wotstats/cli.py +++ b/wotstats/cli.py @@ -7,7 +7,7 @@ from sqlalchemy.exc import IntegrityError from wotstats.api import Realm, account_info -from wotstats.sql import fields, statistics +from wotstats.sql import statistics parser = argparse.ArgumentParser() parser.add_argument("--realm", choices=Realm.__members__, required=True) @@ -21,22 +21,21 @@ def main(args=None): info = account_info(Realm[args.realm], args.application_id, args.account_ids) - tuples = [ - (account_id, *(data[key] for key in fields)) - for account_id, data in info.items() - ] + tuples = [tuple(data[x.name] for x in statistics.columns) for data in info.values()] with sa.create_engine("postgresql://wotstats@localhost/wotstats").connect() as conn: for row in tuples: try: conn.execute( - statistics.insert().values(row).compile(dialect=postgresql.dialect()) + statistics.insert() + .values(row) + .compile(dialect=postgresql.dialect()) ) - logging.info("Updated table") + logging.info("Record added") except IntegrityError as e: if not isinstance(e.orig, psycopg2.errors.UniqueViolation): raise e from e - logging.info(f"No new data: {e}") + logging.info(f"Record exists, skipping") if __name__ == "__main__": diff --git a/wotstats/legacy b/wotstats/legacy.py similarity index 98% rename from wotstats/legacy rename to wotstats/legacy.py index 92afae4..ddc0e08 100755 --- a/wotstats/legacy +++ b/wotstats/legacy.py @@ -115,7 +115,7 @@ def split_players(df, only_recent=False): nickname: df[df["nickname"] == nickname].drop("nickname", axis="columns") for nickname in df["nickname"].unique() } - + for key in dfs: dfs[key].index = pd.DatetimeIndex(dfs[key].index.get_level_values(0)) @@ -185,7 +185,8 @@ def plot(dfs, filename, updated_at): for nickname, stats_df in dfs.items(): if (stats_df[name] != 0).any(axis="rows"): ax.plot( - mdates.date2num(pd.to_datetime(stats_df[name].index)), stats_df[name].values + mdates.date2num(pd.to_datetime(stats_df[name].index)), + stats_df[name].values, ) for nickname, stats_df in dfs.items(): if (stats_df[name] != 0).any(axis="rows"): @@ -235,7 +236,10 @@ def plot(dfs, filename, updated_at): fig.tight_layout(pad=1.5) fig.text( - 0.001, 0.001, f"Updated: {updated_at} UTC", color=rcParams["axes.labelcolor"], + 0.001, + 0.001, + f"Updated: {updated_at} UTC", + color=rcParams["axes.labelcolor"], ) fig.savefig( diff --git a/wotstats/sql.py b/wotstats/sql.py index bd2865f..7795be2 100644 --- a/wotstats/sql.py +++ b/wotstats/sql.py @@ -42,43 +42,3 @@ sa.Column("nickname", sa.String), sa.Column("logout_at", sa.DateTime(timezone=True)), ) - -fields = [ - "battles_on_stunning_vehicles", - "spotted", - "avg_damage_blocked", - "direct_hits_received", - "explosion_hits", - "piercings", - "xp", - "avg_damage_assisted", - "dropped_capture_points", - "piercings_received", - "hits_percents", - "draws", - "battles", - "damage_received", - "survived_battles", - "avg_damage_assisted_track", - "frags", - "stun_number", - "avg_damage_assisted_radio", - "capture_points", - "stun_assisted_damage", - "hits", - "battle_avg_xp", - "wins", - "losses", - "damage_dealt", - "no_damage_direct_hits_received", - "shots", - "explosion_hits_received", - "tanking_factor", - "trees_cut", - "last_battle_time", - "updated_at", - "global_rating", - "clan_id", - "nickname", - "logout_at", -]