From fc6c7cf4ac2d11dac9deda8f9dd6d860c16e22f8 Mon Sep 17 00:00:00 2001 From: Lev Gusiev Date: Thu, 25 Jun 2026 16:01:24 +0200 Subject: [PATCH 1/5] docs(#41): add dockerfile --- dockerfile | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 dockerfile diff --git a/dockerfile b/dockerfile new file mode 100644 index 0000000..9f0eabd --- /dev/null +++ b/dockerfile @@ -0,0 +1,12 @@ +FROM python:3.11.18-slim + +WORKDIR /app + +COPY pyproject.toml README.md ./ +COPY src/ ./src/ +COPY tests/ ./tests/ + +RUN python -m pip install --upgrade pip \ + && pip install -e ".[dev]" + +CMD ["pytest"] \ No newline at end of file From 549ffafbb3d82ffb4d81899afbd512a8feaad0b1 Mon Sep 17 00:00:00 2001 From: Lev Gusiev Date: Thu, 25 Jun 2026 16:20:44 +0200 Subject: [PATCH 2/5] docs(#41): add dockerignore --- .dockerignore | 19 +++++++++++++++++++ dockerfile | 2 +- 2 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 .dockerignore diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..a97f748 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,19 @@ +//Git Stuff +.git +.github +.githooks +.gitignore + +// Pyhon Stuff +.venv +__pycache__ +.pytest_cache + +-- Portfolio stuff +Contributing.md +Licence.md +README.md +CODE_OD_CONDUCT.md +.ruff_cache +docs +.env diff --git a/dockerfile b/dockerfile index 9f0eabd..1dce2e8 100644 --- a/dockerfile +++ b/dockerfile @@ -1,4 +1,4 @@ -FROM python:3.11.18-slim +FROM python:3.11-slim WORKDIR /app From 6e921cb15f258dc06c6a748e9c83493f3b3a1c5e Mon Sep 17 00:00:00 2001 From: Lev Gusiev Date: Thu, 25 Jun 2026 16:28:16 +0200 Subject: [PATCH 3/5] docs(#41): fix dockerignore --- .dockerignore | 26 ++++++++++++++++---------- README.md | 13 +++++++++++++ 2 files changed, 29 insertions(+), 10 deletions(-) diff --git a/.dockerignore b/.dockerignore index a97f748..8c24b79 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,19 +1,25 @@ -//Git Stuff +# Git .git .github .githooks .gitignore -// Pyhon Stuff +# Local environment and secrets .venv +.env + +# Python cache and test cache __pycache__ .pytest_cache - --- Portfolio stuff -Contributing.md -Licence.md -README.md -CODE_OD_CONDUCT.md .ruff_cache -docs -.env +.mypy_cache +.coverage +htmlcov + +# Build artifacts +dist +build +*.egg-info + +# Project docs not needed for the test image +docs \ No newline at end of file diff --git a/README.md b/README.md index 607f0d0..54180b0 100644 --- a/README.md +++ b/README.md @@ -192,6 +192,7 @@ Before running ARGUS locally, make sure you have: - Python 3.11 or newer - Git - pip +- docker - an ExchangeRate API key for live currency conversion. Historical analytics currently use yfinance and do not require an additional API key. Recommended for development: @@ -321,6 +322,18 @@ pytest --- +## Docker + +ARGUS can also be tested inside a minimal Docker container. + +Build the Docker image: + +```bash +docker build -t argus . +``` + +--- + ## Documentation More detailed project documentation lives in [`docs/`](docs/). From 00609455e98655abcda42e358a325c0a4d16035f Mon Sep 17 00:00:00 2001 From: Lev Gusiev Date: Thu, 25 Jun 2026 16:46:16 +0200 Subject: [PATCH 4/5] docs(#41): update readme --- README.md | 43 +++++++++++++++++++++++++++++-------------- 1 file changed, 29 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index 54180b0..007b8e9 100644 --- a/README.md +++ b/README.md @@ -200,6 +200,7 @@ Recommended for development: - VS Code - a virtual environment - pytest +- Docker, if you want to run tests in an isolated container environment > [!NOTE] > Runtime dependencies are managed through `pyproject.toml`. @@ -275,7 +276,17 @@ Add your API key: EXCHANGE_RATE_API_KEY=your_api_key_here ``` -### 3. Keep secrets private +### 3. Docker + +ARGUS can also be tested inside a minimal Docker container. + +Build the Docker image: + +```bash +docker build -t argus . +``` + +### 4. Keep secrets private The `.env` file must stay local and should never be committed. @@ -285,7 +296,7 @@ The `.env` file must stay local and should never be committed. --- -## Running ARGUS +## Running ARGUS Locally Start the current Tkinter GUI: @@ -295,6 +306,22 @@ python -m argus.main This starts the local ARGUS prototype with calculator, currency conversion and basic analytics views. +## Running Argus in Docker + +ARGUS includes a minimal Docker setup for running the test suite in an isolated container environment. + +Build the Docker image: + +```bash +docker build -t argus . +``` + +Run ARGUS in a container: + +```bash +docker run --rm argus +``` + ### Legacy CLI / Debug Interface The legacy CLI is still available for quick local checks and debugging: @@ -322,18 +349,6 @@ pytest --- -## Docker - -ARGUS can also be tested inside a minimal Docker container. - -Build the Docker image: - -```bash -docker build -t argus . -``` - ---- - ## Documentation More detailed project documentation lives in [`docs/`](docs/). From e1d4b65980f059e7c075547f7739a580a5f30c63 Mon Sep 17 00:00:00 2001 From: Lev Gusiev Date: Thu, 25 Jun 2026 17:03:07 +0200 Subject: [PATCH 5/5] docs(#41): improve readme --- README.md | 25 ++++--------------------- 1 file changed, 4 insertions(+), 21 deletions(-) diff --git a/README.md b/README.md index 007b8e9..213fe1d 100644 --- a/README.md +++ b/README.md @@ -120,7 +120,7 @@ README.md - Tkinter - pytest -### Current data source +### Current data sources - ExchangeRate API for live currency conversion - yfinance for historical market-data retrieval and analytics @@ -140,8 +140,6 @@ Planned or likely future technologies include: ### Data processing -- pandas -- NumPy - possibly Polars later for larger datasets ### Storage @@ -153,14 +151,10 @@ Planned or likely future technologies include: ### Visualization and UI -- matplotlib -- Plotly - NiceGUI ### DevOps and deployment -- GitHub Actions -- Docker - Docker Compose - cloud deployment later @@ -192,7 +186,6 @@ Before running ARGUS locally, make sure you have: - Python 3.11 or newer - Git - pip -- docker - an ExchangeRate API key for live currency conversion. Historical analytics currently use yfinance and do not require an additional API key. Recommended for development: @@ -256,7 +249,7 @@ pip install -e ".[dev]" ## API Key Setup -ARGUS currently uses the ExchangeRate API for live currency conversion. +ARGUS uses the ExchangeRate API for live currency conversion. Historical analytics currently use yfinance and do not require an additional API key. ### 1. Create an API key @@ -276,17 +269,7 @@ Add your API key: EXCHANGE_RATE_API_KEY=your_api_key_here ``` -### 3. Docker - -ARGUS can also be tested inside a minimal Docker container. - -Build the Docker image: - -```bash -docker build -t argus . -``` - -### 4. Keep secrets private +### 3. Keep secrets private The `.env` file must stay local and should never be committed. @@ -338,7 +321,7 @@ python src/legacy/debug_main.py ## Running Tests -Run the test suite: +Run the test suite locally: ```bash pytest