| ========= | |
| Changelog | |
| ========= | |
| All notable changes to this project will be documented in this file. | |
| Unreleased_ | |
| ============ | |
| 1.3.0_ - 2022-11-11 | |
| =================== | |
| Changed | |
| ------- | |
| - Runtime scheme validation of pandas dataframes is now disabled. This | |
| increases performance, but also means that the user is responsible for | |
| ensuring that the dataframes are valid. | |
| Added | |
| ----- | |
| - Implement caching for the ``PublicWyscoutLoader``. (`GH277 <https://github.com/ML-KULeuven/socceraction/issues/277>`_) | |
| - Distinguish between left/right foot in bodyparts (`GH220 <https://github.com/ML-KULeuven/socceraction/issues/220>`_) | |
| - The ``WyscoutLoader`` now also supports accessing the API. It is no longer | |
| needed to download the JSON files first. | |
| Fixed | |
| ----- | |
| - Handle missing players in the public Wyscout data. (`GH276 <https://github.com/ml-kuleuven/socceraction/issues/276>`_) | |
| - The ``bodypart_onehot`` feature generator now sets "bodypart_head/other" to True | |
| for "head", "other" and "head/other". (`GH275 <https://github.com/ml-kuleuven/socceraction/issues/275>`_) | |
| - All feature generators now keep the original index of the input actions DataFrame.(`GH273 <https://github.com/ml-kuleuven/socceraction/issues/273>`_) | |
| - Fixed a PerformanceWarning in the ``actiontype_onehot``, ``result_onehot``, | |
| ``actiontype_result_onehot`` and ``bodypart_onehot`` feature generators. | |
| The efficiency of these generators should have been improved too. | |
| (`GH370 <https://github.com/ml-kuleuven/socceraction/issues/370>`_) | |
| Removed | |
| ------- | |
| - ``ExpectedThreat.predict`` was renamed to ``ExpectedThreat.rate``. | |
| - ``OptaLoader``, ``OptaCompetitionSchema``, ``OptaGameSchema``, | |
| ``OptaPlayerSchema``, ``OptaTeamSchema`` and ``OptaEventSchema`` were moved | |
| to ``socceraction.data.opta``. | |
| - ``StatsBombLoader``, ``extract_player_games``, | |
| ``StatsBombCompetitionSchema``, ``StatsBombGameSchema``, | |
| ``StatsBombPlayerSchema``, ``StatsBombTeamSchema`` and ``StatsBombEventSchema`` were | |
| moved to ``socceraction.data.statsbomb``. | |
| - ``WyscoutLoader``, ``PublicWyscoutLoader``, ``WyscoutCompetitionSchema``, | |
| ``WyscoutGameSchema``, ``WyscoutPlayerSchema``, ``WyscoutTeamSchema`` and | |
| ``WyscoutEventSchema`` were moved to ``socceraction.data.wyscout``. | |
| CI | |
| -- | |
| - Added PyUpgrade to the CI pipeline to automatically update Python syntax. | |
| - Moved darglint to its own manual pre-commit hook. | |
| - Reduced merge conflicts using the lockfile-only strategy for Depandabot | |
| 1.2.3_ - 2022-04-23 | |
| =================== | |
| Changed | |
| ------- | |
| - Spaces, dashes and underscores are now allowed in Opta filenames. | |
| - Wyscout considers a few off the ball fouls, namely "Out of play foul", | |
| "Protest", "Time lost foul" and "Late card foul". These are now excluded | |
| from the SPADL representation. (`GH240 <https://github.com/ML-KULeuven/socceraction/issues/240>`_) | |
| - The Wyscout converter converted simulations to regular fouls. Now, we check | |
| if the preceding event was a take-on or a dribble. If so, we set the outcome | |
| to "failed" and drop the "Simulation". Otherwise, we replace the | |
| "simulation" with a failed take-on. (`GH240 <https://github.com/ML-KULeuven/socceraction/issues/240>`_) | |
| Fixed | |
| ----- | |
| - Fixed a bug where the WhoScored parser crashed when a coach received a red | |
| card. | |
| - Fixed a bug where the WhoScored parser crashed on events with out-of-bounds | |
| coordinates. | |
| - The "minutes_played" column in the "players" dataframe did not take red | |
| cards into account. This was fixed for all data providers. | |
| - The ``ExpectedThreat.rate`` method gave incorrect results when applied on a SPADL dataframe with duplicate index. (`GH237 <https://github.com/ML-KULeuven/socceraction/issues/237>`_) | |
| 1.2.2_ - 2022-03-11 | |
| =================== | |
| Fixed | |
| ----- | |
| - Fix the atomic version of the ``goal_from_shot`` labeling function | |
| - Added missing opta event types 78 - 84 | |
| - Fixes conversion of owngoals in Atomic-SPADL (`GH198 <https://github.com/ML-KULeuven/socceraction/issues/198>`_) | |
| - Fixes the result of shots when subsequent events are not registered due to replays (`GH199 <https://github.com/ML-KULeuven/socceraction/issues/199>`_) | |
| - Handle incorrect timestamps in Stats Perform event data | |
| Documentation | |
| -------------- | |
| - Added instruction for downloading test data to the contributor guide. Also, | |
| the download script was improved. | |
| - Fixed the description on how SPADL handles the direction of play | |
| 1.2.1_ - 2022-01-09 | |
| =================== | |
| Fixed | |
| ----- | |
| - SchemaErrors on Windows (`GH157 <https://github.com/ML-KULeuven/socceraction/issues/157>`_) | |
| 1.2.0_ - 2022-01-07 | |
| =================== | |
| Added | |
| ----- | |
| - Add support for loading StatsBomb 360 data | |
| - Add support for loading StatsBomb data directly from the paid API | |
| - Add documentation for the data module | |
| - Add documentation for the StatsBomb data schemas | |
| - Add documentation for the Opta data schemas | |
| Changed | |
| ------- | |
| - Remove the requests dependency | |
| - Remove the Unicode dependency | |
| - Some fields in the Opta data schema were removed or renamed to make them | |
| more uniform with the other data loaders | |
| - The ``referee_id`` and ``venue_id`` fields were replaced by a ``referee`` and | |
| ``venue`` field, respectively | |
| Fixed | |
| ----- | |
| - Fix a bug in the "minutes_played" field of the dataframe returned by the socceraction.data.wyscout.PublicWyscoutLoader.players method. (`GH153 <https://github.com/ML-KULeuven/socceraction/issues/153>`_) | |
| - Add missing WhoScored type ID (`GH143 <https://github.com/ML-KULeuven/socceraction/issues/143>`_) | |
| - Update the MA1 and MA3 Stats Perform parsers to make them compatible with the latest API version | |
| - Several small fixes in the Opta parsers | |
| 1.1.3_ - 2021-12-20 | |
| =================== | |
| Fixed | |
| ----- | |
| - Support loading new StatsBomb event data containing 360 snaphots. | |
| 1.1.2_ - 2021-12-08 | |
| =================== | |
| Added | |
| ----- | |
| - Use Poetry for depency management. | |
| - Use Nox for testing multiple Python versions. | |
| - Automatic depandency updates with Depandabot. | |
| Changed | |
| ------- | |
| - Drop support for Python 3.6 | |
| - Updated README.md | |
| - Updated CONTRIBUTING.md | |
| - Improved CI workflow with deployment to test PyPi and test coverage. | |
| Fixed | |
| ----- | |
| - Bugs in the StatsPerform MA3 parser affecting `extract_players()`. | |
| - Conversion to Atomic-SPADL changed the data type of the `player_id` column to `float`. | |
| - Fix incorrect type annnotations. | |
| - Wyscout action coordinates could be outside the [0, 68] or [0, 105] range. | |
| - Moved broken CI workflow from Travis to Github Actions. | |
| 1.1.1_ - 2021-09-22 | |
| ==================== | |
| Fixed | |
| ----- | |
| - Add missing `data` module to pip release. | |
| 1.1.0_ - 2021-09-17 | |
| ==================== | |
| Added | |
| ----- | |
| - Support for Stats Perform's MA1 and MA3 JSON feeds by `@JanVanHaaren <https://github.com/JanVanHaaren>`__ and `@denisov-vlad <https://github.com/denisov-vlad>`__ | |
| - Enhanced tests suite by use of ``@slow`` decorator, which is controlled via a ``--skip-slow`` command line argument. | |
| - A `play_left_to_right()` function to `socceraction.spadl` and `socceraction.atomic.spadl` which changes the start and end location of each action such that all actions are performed as if the team plays from left to right. | |
| - A `load_model()` function to `socceraction.xthreat` to load a precomputed xT grid | |
| Changed | |
| ------- | |
| - Own goals are converted to a "bad_touch" SPADL event with outcome "owngoal". Previously, the action type differed between providers. (`GH26 <https://github.com/ML-KULeuven/socceraction/issues/26>`_) | |
| - All event data loaders are moved from `socceraction.spadl` to `socceraction.data` | |
| - `socceraction.xthreat.ExpectedThreat.predict` is depracated and replaced by `socceraction.xthreat.ExpectedThreat.rate` to be compatible with the VAEP api | |
| Fixed | |
| ----- | |
| - Bugs in OptaLoader's `extract_lineups()` function affecting "is_starter" & "minutes_played" columns (`GH48 <https://github.com/ML-KULeuven/socceraction/issues/48>`_) | |
| 1.0.2_ - 2021-04-03 | |
| ==================== | |
| Fixed | |
| ----- | |
| - Opta converter converted goalkicks to regular passes (`GH45 <https://github.com/ML-KULeuven/socceraction/issues/45>`_) | |
| - Fix StatsBomb converter for the public CL dataset (`GH46 <https://github.com/ML-KULeuven/socceraction/issues/46>`_) | |
| - The `goalscore` feature also counted goalkicks as goals | |
| 1.0.1_ - 2021-01-16 | |
| ==================== | |
| Changed | |
| ------- | |
| - The WhoScored parser extracts the 'competition_id', 'season_id' and | |
| 'game_id' fields from the filename. It is no longer required to append these | |
| fields to the JSON. | |
| 1.0.0_ - 2021-01-11 | |
| ==================== | |
| Added | |
| ----- | |
| - Sphinx documentation | |
| - A `PublicWyscoutLoader` class which enables easy access to the open source Wyscout soccer-logs dataset (`GH14 <https://github.com/ML-KULeuven/socceraction/issues/14>`_) | |
| - A new bodypart type "head/other", since Wyscout does not distinguish beteen | |
| headers and other body parts (`GH27 <https://github.com/ML-KULeuven/socceraction/issues/27>`_) | |
| - Unit tests for the StatsBomb, Opta and Wyscout data convertors. | |
| - Add an `original_event_id` column to the SPADL format (`GH7 <https://github.com/ML-KULeuven/socceraction/issues/7>`_) | |
| - Add an `action_id` column to Opta and Wyscout SPADL to be consistent with the StatsBomb converter | |
| - A high-level API for training VAEP and Atomic-VAEP models | |
| - A parser for WhoScored JSON | |
| - CI with Travis | |
| - A logo | |
| - Minimal version requirements for dependencies | |
| Changed | |
| ------- | |
| - Opta and Wyscout convertors are refactored as a class based API to be | |
| consistent with the StatsBomb converter (`GH23 <https://github.com/ML-KULeuven/socceraction/issues/23>`_) | |
| - Details in the README are moved to the docs | |
| Fixed | |
| ----- | |
| - Check for same period when adding dribbles. | |
| - Fix typo in StatsBomb converter | |
| - Fix type of return value in xthreat.predict | |
| - Fix 'time_seconds' field in the StatsBomb converter for overtime periods and | |
| shoutouts | |
| - Fix result of Wyscout interception passes (`GH28 <https://github.com/ML-KULeuven/socceraction/issues/28>`_) | |
| - Fix own goals from bad touch events (`GH25 <https://github.com/ML-KULeuven/socceraction/issues/25>`_) | |
| 0.2.1_ - 2020-06-16 | |
| ==================== | |
| Fixed | |
| ----- | |
| - Use the atomic version of actiontypes in Atomic-SPADL | |
| 0.2.0_ - 2020-06-15 | |
| ==================== | |
| Added | |
| ----- | |
| - Atomic-SPADL and Atomic-VAEP | |
| Changed | |
| ------- | |
| - Rename `socceraction.classification` to `socceraction.vaep` | |
| 0.1.1_ - 2020-01-30 | |
| ==================== | |
| Added | |
| ----- | |
| - mypy typhinting | |
| Fixed | |
| ----- | |
| - Add missing requests dependency | |
| 0.1.0_ - 2020-01-22 | |
| ==================== | |
| Changed | |
| ------- | |
| - Simpler and more transparant API for the StatsBomb converter | |
| 0.0.9_ - 2020-01-14 | |
| ==================== | |
| Added | |
| ----- | |
| - Expected threat (xT) implementation by `@MaaikeVR <https://github.com/MaaikeVR>`__ and `@karunsingh <https://github.com/karunsingh>`__ | |
| Fixed | |
| ----- | |
| - Information leakage in xG model | |
| - Fix end coordinates of clearances | |
| 0.0.8_ - 2019-11-29 | |
| ==================== | |
| Fixed | |
| ----- | |
| - Remove ujson from setup.py | |
| 0.0.7_ - 2019-11-28 | |
| ==================== | |
| Added | |
| ----- | |
| - Expected goals demo | |
| Fixed | |
| ----- | |
| - Possibility of extra time periods in the Wyscout converter by `@dbelcham <https://github.com/dbelcham>`__ | |
| - Fix utf-8 endcoding errors in convertors by `@dbelcham <https://github.com/dbelcham>`__ | |
| - Retrieval of Wyscout substitutions by `@dbelcham <https://github.com/dbelcham>`__ | |
| - Incorrect "bad touch" event type name in Opta parser | |
| - Fix SIGKDD citation in the readme | |
| - Fix storage of events in the optastore | |
| Removed | |
| ------- | |
| - ujson dependency | |
| 0.0.6_ - 2019-10-15 | |
| ==================== | |
| Fixed | |
| ----- | |
| - Typo in statsbomb.py | |
| - Fixed "scores" and "concedes" label of the last action in a dataframe | |
| 0.0.5_ - 2019-10-15 | |
| ==================== | |
| Changed | |
| ------- | |
| - Improve speed and memory usage of the StatsBomb converter | |
| - Improve README | |
| - Add `action_id` column to spadl action table | |
| Fixed | |
| ----- | |
| - Fixed Opta bugs related to fouls and playergamestats | |
| 0.0.4_ - 2019-10-01 | |
| ==================== | |
| Fixed | |
| ----- | |
| - Fixed encoding error in StatsBomb parser by `@kim-younghan <https://github.com/kim-younghan>`__ | |
| - Fixed `start_angle_to_goal` and `end_angle_to_goal` features | |
| Removed | |
| ------- | |
| - LICENCE.txt | |
| 0.0.3_ - 2019-08-26 | |
| ==================== | |
| Added | |
| ----- | |
| - SPADL convertor for Wyscout event data | |
| - MIT License file | |
| - setup.py file | |
| 0.0.2_ - 2019-07-31 | |
| ==================== | |
| 0.0.1_ - 2019-07-31 | |
| ==================== | |
| Initial release. | |
| .. _Unreleased: https://github.com/ML-KULeuven/socceraction/compare/v1.3.0...HEAD | |
| .. _1.3.0: https://github.com/ML-KULeuven/socceraction/compare/v1.2.3...v1.3.0 | |
| .. _1.2.3: https://github.com/ML-KULeuven/socceraction/compare/v1.2.2...v1.2.3 | |
| .. _1.2.2: https://github.com/ML-KULeuven/socceraction/compare/v1.2.1...v1.2.2 | |
| .. _1.2.1: https://github.com/ML-KULeuven/socceraction/compare/v1.2.0...v1.2.1 | |
| .. _1.2.0: https://github.com/ML-KULeuven/socceraction/compare/v1.1.3...v1.2.0 | |
| .. _1.1.3: https://github.com/ML-KULeuven/socceraction/compare/v1.1.2...v1.1.3 | |
| .. _1.1.2: https://github.com/ML-KULeuven/socceraction/compare/v1.1.1...v1.1.2 | |
| .. _1.1.1: https://github.com/ML-KULeuven/socceraction/compare/v1.1.0...v1.1.1 | |
| .. _1.1.0: https://github.com/ML-KULeuven/socceraction/compare/v1.0.2...v1.1.0 | |
| .. _1.0.2: https://github.com/ML-KULeuven/socceraction/compare/v1.0.1...v1.0.2 | |
| .. _1.0.1: https://github.com/ML-KULeuven/socceraction/compare/v1.0.0...v1.0.1 | |
| .. _1.0.0: https://github.com/ML-KULeuven/socceraction/compare/v0.2.1...v1.0.0 | |
| .. _0.2.1: https://github.com/ML-KULeuven/socceraction/compare/v0.2.0...v0.2.1 | |
| .. _0.2.0: https://github.com/ML-KULeuven/socceraction/compare/v0.1.1...v0.2.0 | |
| .. _0.1.1: https://github.com/ML-KULeuven/socceraction/compare/v0.1.0...v0.1.1 | |
| .. _0.1.0: https://github.com/ML-KULeuven/socceraction/compare/v0.0.9...v0.1.0 | |
| .. _0.0.9: https://github.com/ML-KULeuven/socceraction/compare/v0.0.8...v0.0.9 | |
| .. _0.0.8: https://github.com/ML-KULeuven/socceraction/compare/v0.0.7...v0.0.8 | |
| .. _0.0.7: https://github.com/ML-KULeuven/socceraction/compare/v0.0.6...v0.0.7 | |
| .. _0.0.6: https://github.com/ML-KULeuven/socceraction/compare/v0.0.5...v0.0.6 | |
| .. _0.0.5: https://github.com/ML-KULeuven/socceraction/compare/v0.0.4...v0.0.5 | |
| .. _0.0.4: https://github.com/ML-KULeuven/socceraction/compare/v0.0.3...v0.0.4 | |
| .. _0.0.3: https://github.com/ML-KULeuven/socceraction/compare/v0.0.2...v0.0.3 | |
| .. _0.0.2: https://github.com/ML-KULeuven/socceraction/compare/v0.0.1...v0.0.2 | |
| .. _0.0.1: https://github.com/ML-KULeuven/socceraction/releases/tag/v0.0.1 | |