socr / docs /development /changelog.rst
scfive's picture
Upload 203 files
d6ea71e verified
=========
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