Skip to content

Commit

Permalink
Code cleanup
Browse files Browse the repository at this point in the history
  • Loading branch information
krystiancha committed Sep 13, 2020
1 parent 24cbc95 commit 14dff0d
Show file tree
Hide file tree
Showing 4 changed files with 15 additions and 51 deletions.
1 change: 1 addition & 0 deletions wotstats/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
from urllib.request import urlopen

FIELDS = [
"account_id",
"last_battle_time",
"updated_at",
"global_rating",
Expand Down
15 changes: 7 additions & 8 deletions wotstats/cli.py
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand All @@ -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__":
Expand Down
10 changes: 7 additions & 3 deletions wotstats/legacy → wotstats/legacy.py
Original file line number Diff line number Diff line change
Expand Up @@ -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))

Expand Down Expand Up @@ -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"):
Expand Down Expand Up @@ -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(
Expand Down
40 changes: 0 additions & 40 deletions wotstats/sql.py
Original file line number Diff line number Diff line change
Expand Up @@ -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",
]

0 comments on commit 14dff0d

Please sign in to comment.