========= 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 `_) - Distinguish between left/right foot in bodyparts (`GH220 `_) - 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 `_) - The ``bodypart_onehot`` feature generator now sets "bodypart_head/other" to True for "head", "other" and "head/other". (`GH275 `_) - All feature generators now keep the original index of the input actions DataFrame.(`GH273 `_) - 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 `_) 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 `_) - 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 `_) 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 `_) 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 `_) - Fixes the result of shots when subsequent events are not registered due to replays (`GH199 `_) - 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 `_) 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 `_) - Add missing WhoScored type ID (`GH143 `_) - 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 `__ and `@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 `_) - 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 `_) 1.0.2_ - 2021-04-03 ==================== Fixed ----- - Opta converter converted goalkicks to regular passes (`GH45 `_) - Fix StatsBomb converter for the public CL dataset (`GH46 `_) - 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 `_) - A new bodypart type "head/other", since Wyscout does not distinguish beteen headers and other body parts (`GH27 `_) - Unit tests for the StatsBomb, Opta and Wyscout data convertors. - Add an `original_event_id` column to the SPADL format (`GH7 `_) - 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 `_) - 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 `_) - Fix own goals from bad touch events (`GH25 `_) 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 `__ and `@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 `__ - Fix utf-8 endcoding errors in convertors by `@dbelcham `__ - Retrieval of Wyscout substitutions by `@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 `__ - 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