Remember to check out the README file.
June 30th, 2025.
First post-release update. Added and fixed lots of documentation, made configuration a lot easier, added much better logging, and created a more efficient statistics calculation system.
- #49 In statistics ranking, Google Sheets template spreadsheet "ties" between two teams cuases it to show neither.
- #1 "Recent OPR" calculations sometimes show up as 0 due to the way that statistic is calculated.
- #2 Tests failed due to argparse usage.
- #30 Global data from two or more seasons interacted with one another, causing incorrect season statistics.
- 2babbce A FIRST API authentication bug.
- 2737b9f A tests file filter bug.
- #5 Added configuration using environment variables!
- Completely redid the flow of operation.
- Added
app/__main__.pyas the main function (replaces BASH/PowerShell files)
- Added
- Added
.env.template - Removed old configuration (
app/init_settings.py,app/python_settings.py).
- Completely redid the flow of operation.
- #20 Scrapped the old manual logging system and replaced it with Python's builtin
loggingmodule.- Removed functions
log_error,green_check,info_i, andred_x. - Added
create_logger. - Added clearer debug logging levels (configurable).
- Added
debug.loglog file. - Added logging tests.
line_counter.pynow treats logging output lines as output lines.
- Removed functions
- #23 and #33 Renamed
PATH_TO_FTCAPItoPROJECT_PATHand added automatic detection (PROJECT_PATHis no longer a required configuration variable).- Paths are now more resilient and can support both backslashes and forwardslashes (now using
os.path). - Added function to automatically create required directories, solving many
FilepathNotFoundError.
- Paths are now more resilient and can support both backslashes and forwardslashes (now using
- #9 Added option to disable Google Sheets api interaction.
- #29 Reworked statistics calculation (what calculations happen when).
- Added
CALCULATION_MODEconfiguration variable. - Added a time counter since last global calculation
- Added documentation.
- Reworked various functions in json_parse, specifically:
- prepare_opr_calculation, and
- SeasonEvents.filter.
- Added
- Separated caching heavy functions into its own function in opr.
- #39 Main program now warns the user when API data doesn't exist.
- Made the GitHub Project management easier.
- #3 Added Google Sheets spreadsheet version validation (user is warned if version is too old).
- Updated the .gitignore (rearranged, added Scalene profile output files)
- Cleaned up a lot of comments.
- Removed old code.
- Documentation was updated to be more clear and useful.
- Split Google Sheets setup into its own page.
- Added statistics calculation information page.
- Added flowchart diagrams.
December 25th, 2024
First version released to public.
Many fixes, a license, revamped docs, and a better file system.
- Gitignore in all branches not ignoring .venv/ folder. Otherwise, VS Code says too many changes and won't show the git changes for any other branch.
- Line counter bug where gitignore items were not being ignored due to Windows using backslashes in their paths.
- Fixed a lot of bugs with bad pathing (now using
os.path.jointo navigate to specific folders)
- Renamed
ml-test.pytotrain_algorithm.py - Put all docs in the
docsfolder - Add a generated files folder
- Added the license
- Referenced licenses for all parent packages used
- Updated conventions, tests, and scripts to include license in header
- Added instructions to creating secrets.txt to the ReadMe.
- Updated ReadMe
- Updated file instructions, file names, and directory names to match current ones.
- Added link to contribution guidelines.
- Added contribution guidelines
- Added setup docs
- Added running the project docs
- Added FAQs
- Added Conventions page
- Create standard variable naming, file naming, and code conventions
- Reorganized this
todos.mdpage and sorted by category.
- Added tests for new license headers in Python files
- Added tests for correct files in correct places
- Removed references to heatmap stuff (unused)
- Updated the
__all__variable incommonresources.py - Made the season year an input variable
- Uploaded to GitHub
- Added name and description
- Added issue and feature request templates
- Added milestones
- Added tags
August 24th, 2024
Wow, this update took awhile. here's the overview:
- Redid the file system
- Added tests
- Fixed numerous bugs
- Added diagram to files (soon to be in docs)
- Updated ReadMe (still needs work)
Fixed a lot of bugs:
- Joblib Cachewarning due to oversized path (only on Windows machines)
- global OPR calculation running during events, causing rediculously slow cycle times
- OPR was "really wrong for some reason."
- Version number wasn't correctly displayed
- Lots more that I forgot about or don't care to mention
- Renamed files to remove versions in their names. Ex:
ftcapiv4.ps1->ftcapi.ps1 - Updated version number
- Added a virtual environment directory option to the main powershell script
- Retrained the algorithms
- Added tests to make sure files in
appwere scripts and files inapp/generatedfileswere not scripts. - Added a couple debug/stats tools (probably temporary)
flushGeneratedFiles.ps1linecounter.py
- Updated the
LICENSE.txt - Updated the ReadMe
- Redid the file system
- Most scripts are in the
appsfolder - Generated files are in the
apps/generatedfilesfolder - Tests are in the
testsfolder - Gitignore now properly works
- Most scripts are in the
That's all for now!
Fixed a bunch of bugs.
Made the ReadMe more readable.
Added FieldMode, a variable when true will disable global OPR calculation (saves cpu time not needed)
Reduced size of certain matrices (lower RAM and faster overall!).
Now rounding stats to 14 places instead of 10 for greater accuracy and precision.
Various code quality-of-life and clarity updates.
Added a python script init_settings.py to keep track of all global settings.
Added git (version control yay!).
Deleted archive files.
Added support for windows (added ftcapiv4.ps1).
Added a new virtual environment (outside of working directory for now), ftcapivenvwindows for windows,
because apparently the other one just didn't work at all on windows for whatever reason.
Lots of machine learning stuff and some bug fixes.
The biggest thing is better organization of data; Machine learning training set now calculates OPR and recent OPR more accurate to time period of the match, calculated using only the matches before the given match.
Some optimizations were made (thanks to Scalene for allowing me to pinpoint the most troublesome lines of code)
Mostly backend stuff, renamed OPRv4-event.py to OPRv4.py for importability and made it more modular.
Various changes for code readability.
In addition, the flow of the machine learning prep stuff is being redone and being made a lot easier to use.
The machine learning preparation in prepare-machinelearning.py has been redone and now calculates the team stats relative to the time period in which the match was played, allowing for a better trained machine learning algorithm.
Various bugfixes, no real new features since 43-1.
Whether an error is printed to the terminal or not, the common ones will be added to error.log with a datestamp and timestamp.
- No rankings bug (malformed authentication headers in curl request)