v1.5.0: socceraction π€ kloppy
github-actions
released this
30 Dec 20:23
·
137 commits
to refs/heads/master
since this release
β¨ Highlights
Loading data with kloppy
This release adds support for loading data using kloppy.
from kloppy import statsbomb
from socceraction.spadl.kloppy import convert_to_actions
import socceraction.atomic.spadl as atomicspadl
dataset = statsbomb.load_open_data(match_id=8657)
spadl_actions = convert_to_actions(dataset, game_id=8657)
atomic_spadl_actions = atomicspadl.convert_to_atomic(spadl_actions)
This will also work for other data sources, but the resulting SPADL representation will be incomplete / contain errors. A bit more work is required on the kloppy-side to implement the full data model and resolve bugs (see #643 and #644).
Pandas 2.0 support
This release adds support for Pandas v2. Pandas < v2 should be supported for the foreseeable future.
Changes
π₯ Breaking Changes
- Use categorical dtype for categorical features (#603) @probberechts
π Features
- Add Kloppy as reader (#229) @probberechts @MKlaasman
- [Wyscout] Add support for left/right foot (#634) @probberechts
- [StatsBomb] Timestamps up to millisecond accuracy (#602) @probberechts
- [StatsBomb] Support high fidelity coordinates (#600) @probberechts
πͺ² Fixes
- [SPADL] Do not insert synthetic dribbles before headed shots (#642) @probberechts
- [SPADL] Do not insert synthetic dribbles before offensive fouls (#641) @probberechts
- [Opta] Set body part of keeper actions to "other" (#631) @probberechts
- [Wyscout] Insert interceptions before clearances and accelerations (#638) @probberechts
- Use stable sort for ordering events/actions (#637) @probberechts
- [Opta] Interceptions must regain possession to be successful (#635) @probberechts
- [Wyscout] Ignore "missed ball"-touches (#640) @probberechts
- [Opta] Set the body part of throw-ins to "other" (#630) @probberechts
- [Wyscout] Add cards to result of fouls (#639) @probberechts
- [Opta] Fix definition of 'freekick_crossed' (#636) @probberechts
- [Wyscout] Only estimate goalmouth coordinates for shots (#633) @probberechts
- [Opta] Fix bug when x or y-coordinate is zero (#632) @probberechts
- [StatsBomb] The default result of a foul should always be 'fail' (#629) @probberechts
- [StatsBomb] Fix fidelity of shot y-coordinates (#628) @probberechts
- [StatsBomb] Set body part of throw-ins to "other" (#627) @probberechts
- [StatsBomb] Split intercepted passes in two events (#619) @probberechts
- Removal of "is" for boolean check in "_fix_unintentional_ball_touches" (#586) @ksbharaj
π¨ Testing
- Update StatsBomb IDs in tests (#607) @probberechts
π· Continuous Integration
- Update RTD config (#598) @probberechts
π¦ Dependencies
- Bump virtualenv from 20.24.5 to 20.25.0 in /.github/workflows (#622) @dependabot
- Bump poetry from 1.6.1 to 1.7.1 in /.github/workflows (#618) @dependabot
- Bump sphinx-autodoc-typehints from 1.24.0 to 1.25.2 in /docs (#617) @dependabot
- Bump pypa/gh-action-pypi-publish from 1.8.10 to 1.8.11 (#621) @dependabot
- Bump actions/setup-python from 4 to 5 (#623) @dependabot
- Bump pip from 23.3 to 23.3.2 in /.github/workflows (#626) @dependabot
- Bump pylint from 2.17.6 to 2.17.7 (#595) @dependabot
- Bump pip from 23.2.1 to 23.3 in /.github/workflows (#604) @dependabot
- Bump release-drafter/release-drafter from 5.24.0 to 5.25.0 (#605) @dependabot
- Support Pandas 2.0 (#597) @probberechts
- Bump furo from 2023.8.19 to 2023.9.10 in /docs (#588) @dependabot
- Bump scikit-learn from 1.3.0 to 1.3.1 (#592) @dependabot
- Bump pylint from 2.17.5 to 2.17.6 (#593) @dependabot
- Bump crazy-max/ghaction-github-labeler from 4.2.0 to 5.0.0 (#587) @dependabot
- Bump virtualenv from 20.24.4 to 20.24.5 in /.github/workflows (#589) @dependabot
- Bump sphinx from 7.2.5 to 7.2.6 in /docs (#591) @dependabot