]> git.armaanb.net Git - lightcards.git/commitdiff
Add comments to code
authorArmaan Bhojwani <me@armaanb.net>
Sun, 31 Jan 2021 17:18:05 +0000 (12:18 -0500)
committerArmaan Bhojwani <me@armaanb.net>
Sun, 31 Jan 2021 17:21:51 +0000 (12:21 -0500)
lightcards/deck.py
lightcards/display.py
lightcards/lightcards.py
lightcards/parse.py

index 4a768b6b2f7d41fca9f703f63c76e189f132ab2f..e3ef5c523a3a27d0068c23882be9c541e91aee62 100644 (file)
@@ -2,6 +2,7 @@
 # Armaan Bhojwani 2021
 
 class Card(list):
+    """Card extends the list class, and adds ability to star them."""
     starred = False
 
     def unStar(self):
@@ -27,6 +28,7 @@ class Card(list):
 
 
 class Status():
+    """The status class keeps track of where in the deck the user is"""
     index = 0
     side = 0
 
index bdad1d1e3c82acdef7dfec5da5167cfb9f9d0795..71fec497fd2155c8fc0f6b45afef2f2830efc72d 100755 (executable)
@@ -8,12 +8,19 @@ import textwrap
 
 
 def disp_bar(stdscr, stack, headers, obj):
+    """
+    Display the statusbar at the bottom of the screen with progress, star
+    status, and card side.
+    """
     (mlines, mcols) = stdscr.getmaxyx()
+
+    # Calculate percent done
     if len(stack) <= 1:
         percent = "100"
     else:
         percent = str(round(obj.getIdx() / (len(stack) - 1) * 100)).zfill(3)
 
+    # Put all the info together
     stdscr.insstr(mlines - 1, 0,
                   "[" +
                   stack[obj.getIdx()].printStar() +
@@ -32,6 +39,10 @@ def disp_bar(stdscr, stack, headers, obj):
 
 
 def disp_menu(stdscr, stack, headers, idx):
+    """
+    Display a menu once the end of the deck has been reached, offering
+    multiple options on how to continue.
+    """
     stdscr.addstr("Good job, you've completed a round!\n\n",
                   curses.color_pair(1))
     stdscr.addstr("Choose one of the following options:\n" +
@@ -53,6 +64,8 @@ def disp_menu(stdscr, stack, headers, idx):
                 x.unStar()
             get_key(stdscr, stack, headers, idx)
         elif key == "s":
+            # Check if there are any starred cards before proceeding, and if
+            # not, don't allow to proceed and show an error message
             cont = False
             for x in stack:
                 if x.getStar():
@@ -74,11 +87,17 @@ def disp_menu(stdscr, stack, headers, idx):
 
 
 def disp_card(stdscr, stack, headers, obj):
+    """
+    Display the contents of the card
+    Shows a header, a horizontal line, and the contents of the current side.
+    """
     stdscr.clear()
     (mlines, mcols) = stdscr.getmaxyx()
     if obj.getIdx() == len(stack):
         disp_menu(stdscr, stack, headers, obj)
     else:
+        # If on the back of the card, show the content of the front side in the
+        # header
         if obj.getSide() == 0:
             top = str(obj.getIdx() + 1) + " | " + headers[obj.getSide()]
         else:
@@ -107,6 +126,7 @@ def disp_card(stdscr, stack, headers, obj):
 
 
 def disp_help(stdscr, stack, headers, idx):
+    """Display help screen"""
     stdscr.clear()
     stdscr.addstr("LIGHTCARDS HELP SCREEN", curses.color_pair(1))
     stdscr.hline(1, 0, curses.ACS_HLINE, 23)
@@ -129,12 +149,19 @@ def disp_help(stdscr, stack, headers, idx):
 
 
 def init_disp(stdscr, stack, headers, idx):
-    curses.curs_set(0)
+    """Initialize curses options. Entrypoint into the display functions."""
+    curses.curs_set(0)  # Hide cursor
     curses.init_pair(1, curses.COLOR_CYAN, 0)
     curses.init_pair(2, curses.COLOR_RED, 0)
     get_key(stdscr, stack, headers, idx)
 
+
 def get_key(stdscr, stack, headers, idx):
+    """
+    Display a card and wait for the input.
+    Used as a general way of getting back into the card flow from a menu
+    """
+
     disp_card(stdscr, stack, headers, idx)
     while True:
         key = stdscr.getkey()
index 2377c69e675d2b02b2594a59d2c8479ef6abd213..66d123189628ce426ba3e69707a0635cb8941338 100755 (executable)
@@ -33,6 +33,10 @@ def parse_args():
 
 
 def show(args, stack, headers):
+    """
+    Manipulate deck according to passed arguments, and send it to the display
+    functions
+    """
     idx = Status()
     if args.flip:
         for x in stack:
index 6f3c25f6baf0d40b75fbdcfcf6ecbe4e850fae98..65cad627d4cd25e38dce77973fb9b25ae958a6dd 100755 (executable)
@@ -10,11 +10,13 @@ from .deck import Card
 
 
 def md2html(file):
+    """Use the markdown module to convert input to HTML"""
     with open(file, "r", encoding="utf-8") as input_file:
         return markdown.markdown(input_file.read(), extensions=['tables'])
 
 
 def parse_html(html):
+    """Use BeautifulSoup to parse the HTML"""
     def clean_text(inp):
         return inp.get_text().rstrip()
 
@@ -30,6 +32,7 @@ def parse_html(html):
     for x in soup.find_all("tr"):
         outp.append(Card([clean_text(y) for y in x.find_all("td")]))
 
+    # Return a tuple of nested lists
     return ([clean_text(x) for x in soup.find_all("th")],
             clean_list(outp))