File size: 14,289 Bytes
d6ea71e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
=========
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