From 5c38e900ada8915ded1a0b4e568d88327b64ea35 Mon Sep 17 00:00:00 2001 From: Armaan Bhojwani <3fb650a9-b47e-4604-a282-1dd91953b2ee@anonaddy.me> Date: Fri, 4 Dec 2020 11:25:12 -0500 Subject: [PATCH] add -o flag --- README.md | 10 +++++----- phrases.py | 40 +++++++++++++++++++++++----------------- 2 files changed, 28 insertions(+), 22 deletions(-) diff --git a/README.md b/README.md index 95ffe8d..8b47a32 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,6 @@ # phrases Latin famous phrases in the terminal -## Source of famous phrases -Wikipedia contributors, "List of Latin phrases (full)," Wikipedia, The Free Encyclopedia, https://en.wikipedia.org/w/index.php?title=List_of_Latin_phrases_(full)&oldid=986793908. - -There are currently 2239 famous phrases in the database - ## Installation ### On Linux + MacOS `sudo make` to install. @@ -18,5 +13,10 @@ The program can also be run without installing * If you want to generate a new phrase database file with the `extract.py` script, then you need the beautifulsoup4 Python module. * Tested and written on Python 3.9.0 +## Source of famous phrases +Wikipedia contributors, "List of Latin phrases (full)," Wikipedia, The Free Encyclopedia, https://en.wikipedia.org/w/index.php?title=List_of_Latin_phrases_(full)&oldid=986793908. + +There are currently 2239 famous phrases in the database + ## License Phrases is MIT Licensed by [Armaan Bhojwani](https://armaanb.net), 2020. See the LICENSE file for more information. diff --git a/phrases.py b/phrases.py index 43cc774..a834881 100755 --- a/phrases.py +++ b/phrases.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -# Display Latin famous phrases in the terminal +# Display Latin famous phrases in the terminal - python version # Armaan Bhojwani 2020 import argparse @@ -23,20 +23,23 @@ def main(args=sys.argv[1:]): help="print the English translation.") parser.add_argument("-n", "--notes", action='store_true', - help="print any notes on phrase") + help="print any notes on phrase.") parser.add_argument("-m", "--min", default=0, type=int, - help="set the minimum length of the Latin phrase") + help="set the minimum length of the Latin phrase.") parser.add_argument("-M", "--max", default=10000000, type=int, - help="set the maximum length of Latin phrase") + help="set the maximum length of Latin phrase.") parser.add_argument("-p", "--num", action='store_true', - help="print number of possibilities within constraints") + help="print number of possibilities within constraints.") parser.add_argument("-f", "--file", - help="set the location of the phrase file") + help="set the location of the phrase file.") + parser.add_argument("-o", "--open", + type=int, + help="specify the id of a specific phrase to print.") args = parser.parse_args() right_length = [] @@ -59,17 +62,20 @@ def main(args=sys.argv[1:]): f.close() # iterate through all the phrases - for row in all_lines: - try: # generate a shortlist of phrases of the right length - if args.max >= int(row[4]) >= args.min: - right_length.append(row[0]) - except: # skip malformed rows without exiting - pass + if args.open: + chosen = args.open + else: + for row in all_lines: + try: # generate a shortlist of phrases of the right length + if args.max >= int(row[4]) >= args.min: + right_length.append(row[0]) + except: # skip malformed rows without exiting + pass - try: # choose a random id from the shortlist - chosen = int(right_length[random.randint(0, len(right_length) - 1)]) - except: - sys.exit("no phrase within the given parameters!") + try: # choose a random id from the shortlist + chosen = int(right_length[random.randint(0, len(right_length) - 1)]) + except: + sys.exit("no phrase within the given parameters!") # Output as specified in flags for row in all_lines: @@ -83,7 +89,7 @@ def main(args=sys.argv[1:]): sys.exit(0) else: if args.id: - print(row[1]) + print(row[0]) if args.latin: print(row[1]) if args.english: -- 2.39.2