From 557ebadc9f077da0c388f9fb5e5a68117eba2148 Mon Sep 17 00:00:00 2001 From: sarawone Date: Thu, 30 Jul 2026 13:22:07 +0100 Subject: [PATCH 1/3] updating gitignore & creating new py file --- .gitignore | 4 ++++ implement-cowsay/.venv/cow.py | 0 implement-cowsay/requirements.txt | 1 + 3 files changed, 5 insertions(+) create mode 100644 implement-cowsay/.venv/cow.py create mode 100644 implement-cowsay/requirements.txt diff --git a/.gitignore b/.gitignore index 3c3629e64..6bd924883 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,5 @@ node_modules + +# Virtual Environment +venv / + .venv diff --git a/implement-cowsay/.venv/cow.py b/implement-cowsay/.venv/cow.py new file mode 100644 index 000000000..e69de29bb diff --git a/implement-cowsay/requirements.txt b/implement-cowsay/requirements.txt new file mode 100644 index 000000000..9e0634373 --- /dev/null +++ b/implement-cowsay/requirements.txt @@ -0,0 +1 @@ +cowsay==6.1 From eb532ec5f87bc32d5b52a598ea56be1fa2befd41 Mon Sep 17 00:00:00 2001 From: sarawone Date: Thu, 30 Jul 2026 13:25:58 +0100 Subject: [PATCH 2/3] updating gitignore --- .gitignore | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 6bd924883..d69dce8bb 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,5 @@ node_modules # Virtual Environment -venv / - .venv +venv/ +.venv From f92a5057fbd21dc57a107a68efc3e16e50ef2f09 Mon Sep 17 00:00:00 2001 From: sarawone Date: Fri, 31 Jul 2026 11:45:05 +0100 Subject: [PATCH 3/3] cowsay implementation --- implement-cowsay/.venv/cow.py | 0 implement-cowsay/cow.py | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 33 insertions(+) delete mode 100644 implement-cowsay/.venv/cow.py create mode 100644 implement-cowsay/cow.py diff --git a/implement-cowsay/.venv/cow.py b/implement-cowsay/.venv/cow.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/implement-cowsay/cow.py b/implement-cowsay/cow.py new file mode 100644 index 000000000..daf6e30c5 --- /dev/null +++ b/implement-cowsay/cow.py @@ -0,0 +1,33 @@ +import argparse +import sys +import cowsay + +def main(): + available_chars = sorted(cowsay.char_names) + + parser = argparse.ArgumentParser( + description = "A CLI tool that makes ASCII characters speak!" + ) + + parser.add_argument( + "message", + help = "The message for the character to speak." + ) + + parser.add_argument( + "-c","--character", + choices= available_chars, + default = "cow", + help ="Choose a character (default:cow)" + + ) + + args = parser.parse_args() + + try: + print(cowsay.get_output_string(args.character, args.message)) + except KeyError: + print (f"Error : Character '{args.character}' not found.") + +if __name__ == "__main__": + main() \ No newline at end of file