8 Commits
Author SHA1 Message Date
rr- 1ad563ad93 misc: release 1.0.2 2020-08-17 09:12:56 +02:00
rr- 29207c1d4c misc: remove unused imports 2020-08-17 09:12:56 +02:00
CJ Kucera 67c3888f82 docs: add troubleshooting section 2020-06-22 21:57:43 +02:00
rr- d4675c747a misc: require windows-curses for Windows 2020-05-07 15:36:41 +02:00
Petr Gašparík c5f0c60ec8 roster: fix overwriting old saves on Windows 2020-05-07 15:27:56 +02:00
rr- fc4dcff9e3 ui/curses: fix division by zero 2020-05-07 15:04:58 +02:00
rr- f8a030a648 misc: release 1.0.1 2019-04-10 20:09:47 +02:00
rr- 82c8d21395 ui/curses: fix division by zero 2019-04-10 20:09:22 +02:00
11 changed files with 28 additions and 19 deletions
+11
View File
@@ -41,3 +41,14 @@ $ git clone https://github.com/rr-/pq-cli.git
$ cd pq-cli $ cd pq-cli
$ pip install --user . $ pip install --user .
``` ```
## Troubleshooting
### `_curses.error: init_pair() returned ERR`
If running on Linux and you get the error `_curses.error: init_pair() returned ERR`,
try making sure that your `$TERM` variable is set to a value which supports
256 colors, such as via the following:
TERM=xterm-256color pqcli
+2
View File
@@ -29,6 +29,8 @@ class Roster:
tmp_path.parent.mkdir(parents=True, exist_ok=True) tmp_path.parent.mkdir(parents=True, exist_ok=True)
tmp_path.write_bytes(pickle.dumps(self.players)) tmp_path.write_bytes(pickle.dumps(self.players))
if self.path.exists(): if self.path.exists():
if old_path.exists():
old_path.unlink()
self.path.rename(old_path) self.path.rename(old_path)
tmp_path.rename(self.path) tmp_path.rename(self.path)
@@ -3,10 +3,8 @@ import typing as T
from pqcli.lingo import act_name, to_roman from pqcli.lingo import act_name, to_roman
from pqcli.roster import Roster from pqcli.roster import Roster
from pqcli.ui.curses.event_handler import EventHandler
from pqcli.ui.curses.util import KEYS_CANCEL, Choice from pqcli.ui.curses.util import KEYS_CANCEL, Choice
from pqcli.ui.curses.views.menu_view import MenuView from pqcli.ui.curses.views.menu_view import MenuView
from pqcli.ui.curses.widgets import Menu
class ChooseCharacterView(MenuView): class ChooseCharacterView(MenuView):
@@ -1,14 +1,7 @@
import curses
import typing as T import typing as T
from pqcli.lingo import to_roman
from pqcli.mechanic import InventoryItem, Player from pqcli.mechanic import InventoryItem, Player
from pqcli.ui.curses.widgets import ( from pqcli.ui.curses.widgets import Focusable
DataTable,
Focusable,
ProgressBar,
WindowWrapper,
)
from .progress_bar_window import DataTableProgressBarWindow from .progress_bar_window import DataTableProgressBarWindow
@@ -2,7 +2,7 @@ import typing as T
from pqcli.lingo import act_name from pqcli.lingo import act_name
from pqcli.mechanic import Player from pqcli.mechanic import Player
from pqcli.ui.curses.widgets import Focusable, ListBox, WindowWrapper from pqcli.ui.curses.widgets import Focusable
from .progress_bar_window import ListBoxProgressBarWindow from .progress_bar_window import ListBoxProgressBarWindow
@@ -1,7 +1,7 @@
import typing as T import typing as T
from pqcli.mechanic import Player from pqcli.mechanic import Player
from pqcli.ui.curses.widgets import Focusable, ListBox, WindowWrapper from pqcli.ui.curses.widgets import Focusable
from .progress_bar_window import ListBoxProgressBarWindow from .progress_bar_window import ListBoxProgressBarWindow
-1
View File
@@ -1,4 +1,3 @@
import functools
import typing as T import typing as T
from pqcli.ui.curses.event_handler import EventHandler from pqcli.ui.curses.event_handler import EventHandler
-1
View File
@@ -1,5 +1,4 @@
import curses import curses
import enum
import typing as T import typing as T
from pqcli.ui.curses.colors import COLOR_HIGHLIGHT, has_colors from pqcli.ui.curses.colors import COLOR_HIGHLIGHT, has_colors
+1 -2
View File
@@ -1,5 +1,4 @@
import curses import curses
import enum
import typing as T import typing as T
from pqcli.ui.curses.colors import COLOR_HIGHLIGHT, has_colors from pqcli.ui.curses.colors import COLOR_HIGHLIGHT, has_colors
@@ -37,7 +36,7 @@ class ListBox(Scrollable):
del self._items[idx : idx + count] del self._items[idx : idx + count]
def select(self, idx: T.Optional[int]) -> None: def select(self, idx: T.Optional[int]) -> None:
if idx < 0: if idx < 0 and len(self._items):
idx %= len(self._items) idx %= len(self._items)
self._selected = idx self._selected = idx
+4 -1
View File
@@ -25,7 +25,10 @@ class ProgressBar(WindowWrapper):
return None return None
time_then, pos_then = self._last_tick time_then, pos_then = self._last_tick
time_now, pos_now = datetime.datetime.now(), self._cur_pos time_now, pos_now = datetime.datetime.now(), self._cur_pos
speed = (pos_now - pos_then) / (time_now - time_then).total_seconds() div = (time_now - time_then).total_seconds()
if div == 0:
return None
speed = (pos_now - pos_then) / div
if not speed: if not speed:
return None return None
return datetime.timedelta(seconds=(self._max_pos - pos_now) / speed) return datetime.timedelta(seconds=(self._max_pos - pos_now) / speed)
+7 -2
View File
@@ -5,12 +5,17 @@ setup(
author_email="rr-@sakuya.pl", author_email="rr-@sakuya.pl",
name="pqcli", name="pqcli",
long_description="Progress Quest: the CLI edition", long_description="Progress Quest: the CLI edition",
version="1.0", version="1.0.2",
url="https://github.com/rr-/pq-cli.git", url="https://github.com/rr-/pq-cli.git",
packages=find_packages(), packages=find_packages(),
entry_points={"console_scripts": ["pqcli = pqcli.__main__:main"]}, entry_points={"console_scripts": ["pqcli = pqcli.__main__:main"]},
package_dir={"pqcli": "pqcli"}, package_dir={"pqcli": "pqcli"},
install_requires=["xdg", "urwid", "urwid_readline"], install_requires=[
"xdg",
"urwid",
"urwid_readline",
'windows-curses;platform_system=="Windows"',
],
classifiers=[ classifiers=[
"Environment :: Console", "Environment :: Console",
"Development Status :: 4 - Beta", "Development Status :: 4 - Beta",