From 88c023551118830d66fa128b78bb19fc1cc48e01 Mon Sep 17 00:00:00 2001 From: "google-labs-jules[bot]" <161369871+google-labs-jules[bot]@users.noreply.github.com> Date: Thu, 5 Feb 2026 13:32:59 +0000 Subject: [PATCH] feat: add CLI args, quiet mode, and accessibility options - Add `argparse` to allow configuring simulation parameters (days, cash, etc.). - Add `--quiet` flag to suppress daily status logs (focus on trades). - Add `--no-color` flag to disable ANSI colors for accessibility. - Create `test_simulation.py` with `pytest` suite. - Update `requirements.txt` with dev dependencies. - Fix PEP8 whitespace issues. - Update `.gitignore` to exclude python cache files. Co-authored-by: EiJackGH <172181576+EiJackGH@users.noreply.github.com> --- .Jules/palette.md | 4 ++ .gitignore | 4 ++ ...bitcoin_trading_simulation.cpython-312.pyc | Bin 0 -> 8363 bytes ...st_simulation.cpython-312-pytest-9.0.2.pyc | Bin 0 -> 6809 bytes bitcoin_trading_simulation.py | 39 +++++++++++++++--- requirements.txt | 2 + test_simulation.py | 33 +++++++++++++++ 7 files changed, 77 insertions(+), 5 deletions(-) create mode 100644 __pycache__/bitcoin_trading_simulation.cpython-312.pyc create mode 100644 __pycache__/test_simulation.cpython-312-pytest-9.0.2.pyc create mode 100644 test_simulation.py diff --git a/.Jules/palette.md b/.Jules/palette.md index 5de3a38..787ef57 100644 --- a/.Jules/palette.md +++ b/.Jules/palette.md @@ -1,3 +1,7 @@ ## 2024-05-22 - Visual Hierarchy in CLI Output **Learning:** Adding color-coded indicators (Green/Red) and emojis (💰, 📉) in CLI tools significantly reduces cognitive load when parsing financial data streams. It transforms a wall of text into a scannable narrative. **Action:** For data-heavy CLI applications, always implement a semantic color system and visual anchors (icons/emojis) for key events. + +## 2024-05-24 - Accessibility in CLI Tools +**Learning:** While colors and emojis improve scannability, they can be inaccessible to screen readers or users with specific terminal configurations. Providing standard flags like `--quiet` (for reducing noise) and `--no-color` (for plain text) is a critical UX pattern for CLI tools, allowing users to tailor the experience to their needs. +**Action:** Always include `--quiet` and `--no-color` flags in CLI applications to support diverse user needs and automation use cases. diff --git a/.gitignore b/.gitignore index d4fb281..907591b 100644 --- a/.gitignore +++ b/.gitignore @@ -39,3 +39,7 @@ # debug information files *.dwo + +# Python +__pycache__/ +*.pyc diff --git a/__pycache__/bitcoin_trading_simulation.cpython-312.pyc b/__pycache__/bitcoin_trading_simulation.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f8671ae0e834649cd14970048467500b808138f2 GIT binary patch literal 8363 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