Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
0.15.1 - 2026-07-28
Docs
- amend the constitution to 2.4.0 for plain writing (f6fc2a2 by georgedouzas).
- rewrite the documentation and examples in plain English (4f08106 by georgedouzas).
0.15.0 - 2026-07-27
Features
- execution as one pipeline, four steps, both modes (ee6d72d by georgedouzas).
- execute the value bets one match at a time (2b96ceb by georgedouzas).
- the tools reach what the commands reach (36a26a8 by georgedouzas).
- follow the money, and drive a site an agent can place at (6249397 by georgedouzas).
- place the bets a model found, at a venue with a betting API (4a33ac1 by georgedouzas).
Bug Fixes
- make
execution statuswork on a single bet's identity (98f7cef by georgedouzas). - read the football-data index against beautifulsoup 4.13 (2b693bc by georgedouzas).
Docs
- give the odds-api example a placeholder key (19d2dc2 by georgedouzas).
- amend the constitution to 2.3.0 and restructure for clarity (51f8c91 by georgedouzas).
- show the single-event unit in the execution example and guide (31dd959 by georgedouzas).
- amend the constitution to 2.2.0 with the sweep's lessons (1007cbe by georgedouzas).
- restructure the constitution into a repo-agnostic body and a project profile (d1f19f3 by georgedouzas).
- tighten source docstrings and extend the docstring rules (64bb490 by georgedouzas).
- describe source content in docstrings and amend the constitution (021c69d by georgedouzas).
- conform core docstrings to Principle VI (272d64b by georgedouzas).
- single-line docstrings for the snapshot hooks (c2823df by georgedouzas).
- name what dataloaders/_base is, not what its class does (843c60d by georgedouzas).
- plainer package docstrings for dataloaders and sources (7a71903 by georgedouzas).
- fold the conventions into the constitution, drop CONVENTIONS.md (a3f059a by georgedouzas).
- complete the rename ledger for the conformance sweep (6ba4261 by georgedouzas).
- rewrite the reconciliation docs to the current resolve_odds API (d987f6b by georgedouzas).
- require plain English in docstrings, and apply it (c7f64ac by georgedouzas).
- specify the conventions-conformance refactor (speckit 007) (a99366a by georgedouzas).
- adopt the code conventions as constitution Principle VI (8a1dcbb by georgedouzas).
- a runnable execution example, and two bugs it found (7748835 by georgedouzas).
- show placement in the README, with real tool output (1c7be4d by georgedouzas).
- the execution page, leading with what it costs (e96b53c by georgedouzas).
- break bet execution into tasks (ea9f722 by georgedouzas).
- specify and plan bet execution (06afaa7 by georgedouzas).
- sync the constitution to the surfaces that exist (8aa8ac9 by georgedouzas).
Code Refactoring
- keep the core helpers in one _utils module (9e20de8 by georgedouzas).
- conform all of src to the constitution's code conventions (326b124 by georgedouzas).
- conform sources to Principle VI (6804b0e by georgedouzas). BREAKING CHANGE: source methods index_items/catalogue/available_params/required_items/fixtures_items are now list_index_items/read_catalogue/list_available_params/list_required_items/list_fixtures_items; schema methods snapshot_cols/col_metadata/odds_cols are now list_snapshot_cols/get_col_metadata/list_odds_cols; and OddsApi(key=...) is now OddsApi(key_env=...).
- conform dataloaders to Principle VI and sharpen the naming rule (e5aaf7d by georgedouzas). BREAKING CHANGE: the dataloader properties
sourcesandsportare nowsources_andsport_. - privatize dataloaders/_base helpers, move event-time grammar to core (9331ee3 by georgedouzas).
- make load_object a public core utility (7f11c83 by georgedouzas).
- a core subpackage of shared leaves, builders with what they build (968e4ea by georgedouzas).
- rework the factory, dataloader persistence and model selection (8fb4971 by georgedouzas).
- drop the dead max_unmatched_rate parameter (38eb5e9 by georgedouzas).
- conform the mcp package to Principle VI (59fad03 by georgedouzas).
- conform the cli package to Principle VI (7c9615b by georgedouzas).
- conform the selection and artifacts glue to Principle VI (d52144b by georgedouzas).
- conform the execution package to Principle VI (b7668cf by georgedouzas).
- conform the evaluation package to Principle VI (fee4516 by georgedouzas).
- conform the dataloaders package to Principle VI (109583a by georgedouzas).
- conform the sources package to Principle VI (4345af2 by georgedouzas).
- restore the source reorganization to green (ed0c53a by georgedouzas). Full gate green: formatting, checks and tests on 3.11, 3.12 and 3.13.
- ship no bookmaker, the venue is the user's (be18a8c by georgedouzas).
Chore
- Release 0.15.0 (36ef644 by georgedouzas).
- point speckit at the conventions-conformance feature (41dcc62 by georgedouzas).
0.14.0 - 2026-07-16
Features
- Show the results of a command as a table (03c870c by georgedouzas).
- Add an MCP server, so an assistant can drive the library (2230389 by georgedouzas).
- Add the NBA as a second basketball league (fd6997d by georgedouzas).
- Add basketball, starting with the EuroLeague (71381d1 by georgedouzas).
- Reconcile two sources, and refuse a dataset with holes in it (c35e3b6 by georgedouzas).
- Add the odds source backed by The Odds API (a10fc83 by georgedouzas).
- Make
datethe kick-off instant in UTC (d6c7e6a by georgedouzas). - Replace the mirrored dataset with pluggable data sources (b4e8ae0 by georgedouzas).
Bug Fixes
- pass the test suite on Windows (bbff2a9 by georgedouzas).
- Do not let the features run past the odds they are bet against (6f07100 by georgedouzas).
- Read the catalogue once, and stop the manifest growing forever (affe495 by georgedouzas).
- Drop the fake sport from the CLI, and stop the messages lecturing (774eb33 by georgedouzas).
- Make the CLI reach the whole API, and fix four bugs it exposed (5fd6afa by georgedouzas).
- Do not report a club that belongs to another competition (96d93ca by georgedouzas).
- Derive the complementary markets from the data (e817c5d by georgedouzas).
- Rebuild the derived data when the transform or the upstream changes (118988f by georgedouzas).
Docs
- rewrite the user guide and README, concise and positive (e67d049 by georgedouzas).
- rework the example gallery (cf2303c by georgedouzas).
- give Interfaces its own landing page (66bba2b by georgedouzas).
- rerun and expand the README chat; docstrings say what things do (116ec98 by georgedouzas).
- simpler README example, and docstrings that say what things do (d3e244d by georgedouzas).
- consolidate the practice guides into one section (2c0adf1 by georgedouzas).
- an interfaces menu, a betting guide, and a lighter README (f6c9b4e by georgedouzas).
- write the README the way it reads best (e9277a0 by georgedouzas).
- fix the warnings the documentation build emits (16c5b3b by georgedouzas).
- Make the assistant a first-class way into the library (4908b4a by georgedouzas).
- Show what the examples print (7b3b3b8 by georgedouzas).
- Give the CLI the same example as the Python API (1f77b06 by georgedouzas).
- Say what the CLI does, not what it is not (9b9d97d by georgedouzas).
- Rewrite the betting theory, with the mathematics written out (397a86d by georgedouzas).
- Document the surfaces, and the two breaking changes (7a3c6df by georgedouzas).
- Document the extension surface with runnable examples (2c27189 by georgedouzas).
Code Refactoring
- scikit-learn init style, and remove dead code (2d4d879 by georgedouzas).
- Pair the rosters of a league, rather than a name against every club (3d05d04 by georgedouzas).
- Move parameter discovery from the dataloader to the source (9b78e1f by georgedouzas).
Chore
- Release 0.14.0 (3ffbd6c by georgedouzas).
0.13.1 - 2026-07-10
Bug Fixes
- Drop nptyping so numpy can move to 2.x (20cc10a by georgedouzas).
Chore
- Release 0.13.1 (bb63246 by georgedouzas).
0.13.0 - 2026-07-10
Features
- Add an input horizon and factory construction functions (a04a0c8 by georgedouzas).
- Expose target moment in CLI and GUI (364d7b0 by georgedouzas).
- Adapt bettors to moment-aware X/Y/O (d33d330 by georgedouzas).
- Add soccer and offline dummy snapshot dataloaders (c4dda0b by georgedouzas).
- Add moment-aware event-snapshot data model (d2237da by georgedouzas).
- Validate pandas schema (05470ca by georgedouzas).
- Modify base class (9fcdb3c by georgedouzas).
Bug Fixes
- Pass the full odds data to bet when scoring (d92f245 by georgedouzas).
- Discover feed parameters from a manifest (1631b4f by georgedouzas).
- Make the soccer feed robust to empty fixtures (f4f59e6 by georgedouzas).
Docs
- Fix stale betting_markets grammar in the README (7864397 by georgedouzas).
- Document all bettor parameters and the grid search (82226c3 by georgedouzas).
- Fix the ambiguous user-guide cross-reference (16737ed by georgedouzas).
- Expand the dataloader guide and add an end-to-end guide (9ee55ea by georgedouzas).
- Document long-format snapshots and consumption (6b1dbae by georgedouzas).
- Use market_average provider in bettor examples (090ec29 by georgedouzas).
- Align spec-kit gate docs with copier update (ef602ec by georgedouzas).
- Update guides and changelog for in-play model (1cbc2b0 by georgedouzas).
Code Refactoring
- Drop the test-only engine helper from source (506af4b by georgedouzas).
- Move the factory functions to a dedicated module (12a6936 by georgedouzas).
- Make BaseDataLoader abstract and drop from_csv (946b61a by georgedouzas).
- Make all dataloaders inherit BaseDataLoader directly (6f73027 by georgedouzas).
- Read long-format snapshots and derive schemas (5f64d6a by georgedouzas).
- Simplify comments and constants (e6f6958 by georgedouzas).
Tests
- Flatten base tests and quiet the untyped-body note (5692618 by georgedouzas).
- Cover long-format loader and data consumption (025cbcc by georgedouzas).
Chore
- Release 0.13.0 (d069bd1 by georgedouzas).
- Update copier template (1609d73 by georgedouzas).
- Add spec-kit tooling and in-play feature specs (222f2fb by georgedouzas).
- Configure bandit for the checks session (61d3c12 by georgedouzas).
- Change to correct template name (eb8a572 by georgedouzas).
- Do not build source distribution (2fc301b by georgedouzas).
0.12.1 - 2025-12-07
Chore
0.12.0 - 2025-12-07
Features
- Modify supported Python versions (73fff83 by georgedouzas).
Docs
- Fix list indentation (d8b8aed by georgedouzas).
Chore
0.11.3 - 2025-05-18
Bug Fixes
- Remove redundant file (f24cc63 by georgedouzas).
Tests
- Add CLI runner (2cff9a6 by georgedouzas).
Chore
0.11.2 - 2025-03-16
Chore
- Release 0.11.2 (a03a4f9 by georgedouzas).
- Release 0.11.1 (b62c6a9 by georgedouzas).
- Clean .states directory (9af162a by georgedouzas).
0.11.1 - 2025-03-16
Bug Fixes
- Downgrade reflex version to 0.7.0 (6f077a9 by georgedouzas).
Code Refactoring
- Modify to pass checks (b9b69aa by georgedouzas).
Chore
- Release 0.11.1 (94194dc by georgedouzas).
0.11.0 - 2025-01-14
Features
- Make GUI responsive (9d17c35 by georgedouzas).
Docs
- Include screenshots and descriptions from updated GUI (bc7ef79 by georgedouzas).
- Fix broken README links (12589f0 by georgedouzas).
Chore
0.10.0 - 2025-01-11
Features
- Implement full GUI functionality (7a910ee by georgedouzas).
- Add model creation to GUI (33dab84 by georgedouzas).
- Create script to run app (ababb94 by georgedouzas).
- Implement bot functionality (c03bd2a by georgedouzas).
- Implement data functionality of GUI (0af3510 by georgedouzas).
- Initial GUI implementation (6646395 by georgedouzas).
Docs
- Update README to include GUI description (b18b91b by georgedouzas).
- Exclude GUI from API documentation (11fa52d by georgedouzas).
Code Refactoring
- Use common state for dataloader (dcb2ba5 by georgedouzas).
- Implement modules for components and states (8be2a51 by georgedouzas).
- Remove directories (0932445 by georgedouzas).
- Use simpler structure (e97d499 by georgedouzas).
- Split dataloader funcionality to multiple pages (e87cad5 by georgedouzas).
Chore
- Release 0.10.0 (a043b41 by georgedouzas).
- Modify default dataloader settings (92066ba by georgedouzas).
- Increase timeout for backtesting functionality (138246e by georgedouzas).
- Ignore gui from testing (fcad0aa by georgedouzas).
- Change base classes to public (d646258 by georgedouzas).
- Make gui dependencies optional (c53bf7c by georgedouzas).
- Clean .web directory (40159d8 by georgedouzas).
- Add reflex-ag-grid dependency (6c1017b by georgedouzas).
- Renamed GUI app (c33d575 by georgedouzas).
0.9.3 - 2024-12-12
Bug Fixes
- Update scikit-learn minimum version (7b4b6f2 by georgedouzas).
Docs
- Fix doctests (cbaa5ac by georgedouzas).
Chore
- Release 0.9.3 (2d43b44 by georgedouzas).
- Use correct pytest options (721591a by georgedouzas).
- Update copier template (9fb983b by georgedouzas).
0.9.2 - 2024-12-09
Bug Fixes
- Include current date to fixtures (fc7d2c1 by georgedouzas).
Style
- Sort imports (4edc0f4 by georgedouzas).
Chore
- Release 0.9.2 (ed04c81 by georgedouzas).
- Fix ruff check errors (3fc21c7 by georgedouzas).
- Update copier template (4d052d4 by georgedouzas).
0.9.1 - 2024-07-01
Bug Fixes
- Use correct repo to download data (f9ce528 by georgedouzas).
Docs
Chore
- Release 0.9.1 (58ef3d0 by georgedouzas).
0.9.0 - 2024-07-01
Features
- Implement bettor grid search (08ecb8f by georgedouzas).
Bug Fixes
- Add
strict=True(461e5a4 by georgedouzas). - Use parameters from config file (06e46dc by georgedouzas).
Docs
- Add class link (b7376d1 by georgedouzas).
- Simplify attribute description (add2cf3 by georgedouzas).
- Remove
sports-betting-data(7cf877b by georgedouzas). - Fix README template and CHANGELOG (96368dd by georgedouzas).
Tests
- Match regex for all Python versions (3ff9b8d by georgedouzas).
- Ignore type comparison (a488d77 by georgedouzas).
Chore
- Release 0.9.0 (cf657ae by georgedouzas).
- Make it compatible to new Python versions (f20e27f by georgedouzas).
- Update dependencies (2d3d1f5 by georgedouzas).
- Remove support for Python 3.9 (a1ec03a by georgedouzas).
- Remove non used group (4c31432 by georgedouzas).
- Support Python 3.11 and 3.12 (c365e01 by georgedouzas).
- Remove script to generate results (a5cdfe1 by georgedouzas).
- Remove duplicate docstring (7cd1416 by georgedouzas).
- Predictions 29/03/2024 (de32b51 by georgedouzas).
- Predictions 24/03/2024 (3b64b79 by georgedouzas).
- Predictions 16/03/2024 (ea644d5 by georgedouzas).
- Follow private module convention (bfcb854 by georgedouzas).
- Decrease number of splits of
TimeSeriesSplit(c045834 by georgedouzas). - Predictions 13/03/2024 (3120e91 by georgedouzas).
- Predictions 11/03/2024 (1503f88 by georgedouzas).
- Update copier template and Github workflows (f38468d by georgedouzas).
0.8.1 - 2024-03-08
Bug Fixes
- Decode response and convert data types (55f6c33 by georgedouzas).
Docs
- Fix README typo (5477a30 by georgedouzas).
Chore
- Release 0.8.1 (33fe943 by georgedouzas).
- Sort imports (0940efc by georgedouzas).
- Silence ruff usage and configuration warnings (e85e56f by georgedouzas).
- Predictions 13/10/2023 (77a3a72 by georgedouzas).
- Predictions 03/10/2023 (6af121b by georgedouzas).
- Skip session if fixtures data are empty (00d3eeb by georgedouzas).
0.8.0 - 2023-09-29
Features
- Use footballdata only for data source (582d547 by georgedouzas).
Style
- Split line (6b93930 by georgedouzas).
Chore
- Release 0.8.0 (b611337 by georgedouzas).
- Ignore warnings (6b78adc by georgedouzas).
- Update Pandas dependency (51a9a13 by georgedouzas).
- Update copier template (a724b9e by georgedouzas).
0.7.0 - 2023-09-23
Features
- Create script to update results (c7a274f by georgedouzas).
- Simplify CLI functionality (fdcc171 by georgedouzas).
Bug Fixes
- Use GB classifier instead of RF classifier (e14bd71 by georgedouzas).
Docs
- Fix wrong description (e90e23e by georgedouzas).
Chore
- Release 0.7.0 (4e5545f by georgedouzas).
- Add more descriptive names for columns (833a84e by georgedouzas).
0.6.0 - 2023-09-21
Features
- Include daily tips (5df1910 by georgedouzas).
Style
Chore
- Release 0.6.0 (5d647d7 by georgedouzas).
- Modify type aliases (e719d06 by georgedouzas).
- Update copier template to 0.6.8 (7f5c484 by georgedouzas).
0.5.1 - 2023-06-05
Bug Fixes
- Create missing directories for configuration data (bd9dd9f by georgedouzas).
Docs
- Update information (d581fc5 by georgedouzas).
Chore
- Release 0.5.1 (4355bef by georgedouzas).
0.5.0 - 2023-04-27
Features
- Implement async downloading of data (a600307 by georgedouzas).
Docs
- Fix wrong issues link (06cfb4c by georgedouzas).
- Relax condition for numerical columns (2aa53fb by georgedouzas).
Chore
- Release 0.5.0 (9cda706 by georgedouzas).
- Add github workflow for CI and documentation (1052fab by georgedouzas).
- Automate release process (adebdaa by georgedouzas).
0.4.0 - 2023-04-25
Features
- Add configs for dataloaders and bettors (73ba86d by georgedouzas).
- Add more commands (ae5a8e0 by georgedouzas).
- Add rule-based bettor (db154fb by georgedouzas).
Bug Fixes
Docs
- Remove plot of portfolio value (2d0b185 by georgedouzas).
- Add description for CLI and sports betting (9a14f76 by georgedouzas).
- Add all methods to bettors (f94bde9 by georgedouzas).
Code Refactoring
- Rename load function and type hint (0d89209 by georgedouzas).
- Run tests serial or parallel (a495aa2 by georgedouzas).
- Modify base class and subclasses (c232624 by georgedouzas).
- Validate data for backtesting (ab3101c by georgedouzas).
Chore
- Release 0.4.0 (aaf7f48 by georgedouzas).
- Automate release process (c4ff404 by georgedouzas).
- Downgrade mkdocs gallery version (b916110 by georgedouzas).
- Fix pypi page links (a1d83a9 by Nicholas Cassarino).
- Add keywords and ignore variable name (e6d99d6 by georgedouzas).
0.3.1 - 2023-04-12
Chore
- Release 0.3.1 (06b8109 by georgedouzas).
- Export requirements from pyproject (1624021 by georgedouzas).
- Updated copier template (c362bc1 by georgedouzas).
- Split to multiple CI job (5aa7bda by georgedouzas).
- Add multiple Python versions to CI (60d8d2f by georgedouzas).
0.3.0 - 2023-04-12
Features
- Support Python 3.9 and 3.10 (8eb16e7 by georgedouzas).
Docs
- Ignore ruff warning and add attributes type (4d65bd3 by georgedouzas).
Code Refactoring
Chore
- Release 0.3.0 (f85cd17 by georgedouzas).
- Modify type hints to support Python 3.9 (535cf2d by georgedouzas).
- Use copier new template version 0.3.6 (cecce6b by georgedouzas).
- Restricted python version for pandas (23ff003 by georgedouzas).
0.2.9 - 2023-04-03
Chore
- Release 0.2.9 (b66e204 by georgedouzas).
- Use copier template for project restructure (c2f5f94 by georgedouzas).