mirror of
https://github.com/PR0M3TH3AN/python_charts.git
synced 2026-10-27 08:50:39 +00:00
- Introduce a Makefile to define standard targets for installation, data preparation, plotting, testing, and cleaning. - Update `startup.sh` to enhance clarity and functionality, including better command handling and virtual environment management. - Document changes in `repo-context.txt` to reflect the addition of the Makefile.
3.4 KiB
3.4 KiB
AGENTS.md — Guidance for OpenAI Codex
Project Overview
This repository, python_charts, provides a framework for fetching economic time series from FRED, storing them locally, and producing custom matplotlib charts with configurable parameters. The core components are:
startup.sh: Single-entrypoint script to bootstrap a Python venv, install dependencies, fetch data, and run specified commands under the venv interpreter.Makefile: Convenient high-level targets (install,data,plot,plot-custom,test,clean) that funnel throughstartup.shfor reproducible builds.scripts/refresh_data.py: Downloads UNRATE and DCOILWTICO series intodata/fred.db.scripts/lagged_oil_unrate_chart_styled.py: Generates the lagged oil vs. unemployment chart with fixed axes styling and log scale.
Future extensions will add additional custom chart scripts under scripts/, all driven by the same bootstrapping and command conventions.
Usage Conventions
Primary Commands
- Bootstrap & default plot:
./startup.shormake plot— runs the lagged-oil chart with an 18‑month offset. - Custom plot:
./startup.sh --offset 12 --end 2025-05-31 --extend-years 5ormake plot-custom ARGS="--offset 12 --end 2025-05-31 --extend-years 5". - Data refresh:
./startup.sh scripts/refresh_data.pyormake data. - Run tests:
./startup.sh pytest -qormake test.
Argument Rules
- Arguments beginning with
--are forwarded to the default chart script. - If the first token is a
.pyscript or executable, it is invoked under the venv’s Python. - Otherwise, commands are executed directly (e.g. linters, test frameworks).
Coding Standards
- Python: Target version 3.12. Use type hints for all function signatures. Follow PEP8 with Black formatting.
- Bash:
startup.shmust useset -euo pipefailand always call$VENV_DIR/bin/pythonto avoid system‑Python mismatches. - Makefile: Use tab‑indented commands. All tasks should funnel to
startup.sh.
Testing & Validation
- Automated tests: No current tests; add pytest modules under
tests/following the patterntest_*.py. - Data mocking: For new chart scripts, mock FRED downloads via monkeypatching
pandas_datareader.data.DataReader.
Extending with New Charts
-
Create a new script under
scripts/, for examplescripts/custom_chart.py. -
Implement a
main()accepting--start,--end,--offsetor custom args usingargparse. -
Leverage
startup.shinvocation: add usage example in your script’s docstring. -
Update the
Makefileif you need a dedicated target, otherwise users can call:./startup.sh python scripts/custom_chart.py --your-args
CI / Codex Integration
- In Codex cloud or CLI tasks, set the Setup Script to
./startup.sh install datato ensure dependencies and data are ready. - Task Commands should call
make plotormake test, which delegates tostartup.sh. - AGENTS.md is automatically loaded by Codex to understand structure and commands.
PR & Commit Guidelines
- Prefix branches/PRs with
feature/orfix/. - Commit messages:
<type>(<scope>): <description>(e.g.feat(charts): add custom inflation plot). - Include screenshots or saved chart outputs under
outputs/for visual verification.
End of AGENTS.md — tailored for python_charts repo