return (win, panel)
+class CursesError(BaseException):
+ def __init__(self, message="lightcards: Curses error!"):
+ self.message = message
+ print(self.message)
+ sys.exit(3)
+
+
class Help:
def __init__(self, outer, mlines=21, mcols=52):
"""Initialize help screen"""
try:
return markdown.markdown(open(file, "r").read(), extensions=["tables"])
except FileNotFoundError:
- sys.exit(f'lightcards: "{file}": No such file or directory')
+ raise Exception(
+ f'lightcards: "{file}": No such file or directory'
+ ) from None
def parse_html(html):
for x in soup.find_all("tr"):
outp.append(Card(tuple([clean_text(y) for y in x.find_all("td")])))
except AttributeError:
- sys.exit("lightcards: No table found")
+ raise Exception("lightcards: No table found") from None
ths = soup.find_all("th")
if len(ths) != 2:
- sys.exit("lightcards: Headings malformed")
+ raise Exception("lightcards: Headings malformed")
# Return a tuple of nested lists
return ([clean_text(x) for x in ths], outp[1:])
# Armaan Bhojwani 2021
import argparse
-from curses import wrapper
+import curses
import os
import pkg_resources
from random import shuffle
import sys
from . import parse, progress
-from .display import Display
+from .display import Display, CursesError
from .deck import Status
# Send to display
win = Display(stack, headers, idx, args.view)
- wrapper(win.run)
+ try:
+ curses.wrapper(win.run)
+ except curses.error as e:
+ raise CursesError() from e
def reparse():
def main(args=sys.argv):
+ sys.tracebacklimit = 0
args = parse_args()
global headers, stack
(headers, stack) = parse.parse_html(parse.md2html(args.inp[0]))
.TP
\f[B]2\f[R]
Invalid option
+.TP
+\f[B]3\f[R]
+Curses error
.SH BUGS
.PP
https://lists.sr.ht/\[ti]armaan/public-inbox
**2**
: Invalid option
+**3**
+: Curses error
+
# BUGS
https://lists.sr.ht/~armaan/public-inbox