diff --git a/setup.py b/setup.py index 700f050..2dcc5ae 100644 --- a/setup.py +++ b/setup.py @@ -12,6 +12,7 @@ """ import os +import sys import runpy from setuptools import setup @@ -26,7 +27,9 @@ def get_version(): setup( name="wpm", - scripts=["scripts/wpm"], + entry_points = { + "console_scripts": ['wpm = wpm.commandline:main'] + }, version=_VERSION, description="Console app for measuring typing speed in words per minute (WPM)", author="Christian Stigen Larsen", @@ -35,6 +38,7 @@ def get_version(): package_dir={"wpm": "wpm"}, package_data={"wpm": ["data/examples.json.gz"]}, include_package_data=True, + install_requires=(["windows-curses"] if sys.platform.startswith("win") else []), url="https://github.com/cslarsen/wpm", download_url="https://github.com/cslarsen/wpm/tarball/v%s" % _VERSION, license="https://www.gnu.org/licenses/agpl-3.0.html", @@ -42,7 +46,7 @@ def get_version(): zip_safe=True, test_suite="tests", keywords=["wpm", "typing", "typist"], - platforms=["unix", "linux", "osx", "cygwin"], + platforms=["unix", "linux", "osx", "cygwin", "win32"], classifiers=[ "Development Status :: 3 - Alpha", "Environment :: Console", diff --git a/wpm/game.py b/wpm/game.py index 02a183f..3343f29 100644 --- a/wpm/game.py +++ b/wpm/game.py @@ -125,12 +125,16 @@ def wpm(self, elapsed): """Words per minute.""" if self.start is None: return 0 + if not elapsed: + return 0 return min((60.0 * self.position / 5.0) / elapsed, 999) def cps(self, elapsed): """Characters per second.""" if self.start is None: return 0 + if not elapsed: + return 0 return min(float(self.position) / elapsed, 99) @property diff --git a/wpm/screen.py b/wpm/screen.py index 530c494..b5455ff 100644 --- a/wpm/screen.py +++ b/wpm/screen.py @@ -150,7 +150,7 @@ def lines(self): def set_colors(self): """Sets up curses color pairs.""" - hicolor = os.getenv("TERM").endswith("256color") + hicolor = os.getenv("TERM").endswith("256color") if os.getenv("TERM") else None if hicolor: color = self.config.xterm256colors diff --git a/wpm/stats.py b/wpm/stats.py index 77be60c..8cd619f 100644 --- a/wpm/stats.py +++ b/wpm/stats.py @@ -224,10 +224,11 @@ def parse(row): reader = csv.reader(file_obj) for row in reader: - result = parse(row) - tag = result[-1] - games[tag].append(result[:-1]) - current_tag = tag + if len(row) == 9: + result = parse(row) + tag = result[-1] + games[tag].append(result[:-1]) + current_tag = tag return Stats(current_tag, games) @@ -254,4 +255,6 @@ def save(self, filename): game[0] = 1 + race writer.writerow(game) + if os.path.exists(filename): + os.remove(filename) os.rename(filename + ".tmp", filename)