forked from BurntSushi/nflgame
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCHANGELOG
231 lines (185 loc) · 8.32 KB
/
CHANGELOG
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
1.1.21
======
- Expunge errant drives from games.
1.1.20
======
- Fix a bug where drives with no plays (a bug in the source data)
causes loading a drive to crash your program.
- Player database update.
1.1.19
======
- Windows can't handle symlinks in setup.py.
1.1.18
======
- Switched to a more "professional" UNLICENCE.
(There are no practical differences from the WTFPL.)
- Player database update and first game of week 3.
- Moved nflgame-update-players to its own module. (Fixes issue #43.)
1.1.17
======
- Make the PyPI page look nicer.
1.1.16
======
- Player database updates.
- Weeks 1 and 2 of the 2013 regular season.
- Fixed a bug with getting the uniform number from the JSON file.
- Fixed embarrassing team name misspellings. (issue #41)
- Cleaned up setup.py dependencies and got smarter about requiring
argparse and ordereddict from PyPI.
- Set a timeout on updating the current season week so it doesn't
hang forever.
- A total rewrite of the README to reflect API updates, the new IRC
channel, and teasers about other projects.
1.1.15
======
- Player database updates.
- Changed the player update script to stay fresh on position and status
data (in addition to team data). Namely, if the attributes become
unavailable, then they should be empty, regardless of their previous
values.
- Changed the `csv` import to be local to the csv export function as a
bandaide for QPython on Android (see issue #32).
- Expose player identifiers as `gsis_id` in addition to `player_id`.
1.1.14
======
- Data updates for preseason weeks 2-4 (4 isn't complete yet).
- A complete rewrite of the JSON player database. Meta data is
now much more complete (with the vast majority of every player
in nflgame data back to 2009 having some meta data). Also,
nflgame now includes a `nflgame-update-players` script to
update the JSON player database using a minimal number of
HTTP requests.
- Use `tsv` extension so GitHub shows test results better.
- Recover gracefully if there is a socket timeout when downloading
JSON data.
1.1.13
======
- Mostly a maintenance release with some reorganization.
I'm beginning migration to a new documentation tool `pdoc`.
1.1.12
======
- Fixed a bug where `nflgame.live` was not properly interpreting
the phase of the season. (It thought it was always the regular
season.) Now it should automatically infer preseason, regular
season or postseason.
1.1.11
======
- Update schedule for the 2013 preseason and regular season.
- Updated the players.json meta data file.
- Added nflgame's first test. It compares aggregate statistics
from 2012 against statistics reported by Yahoo. Overall, the
prognosis is good, but there are definitely some inaccuracies.
But I do think `nflgame` is doing the best it can without
another source. Look in `test-data` for test results and look
in `scripts/compare-with-yahoo` for more details on the
methodology.
- Added some more team abbreviations from Yahoo. (Weird ones.)
- Added a method to player objects to guess their position
based on available statistics.
- Corrected a few typos (or artifacts from old names) in the
`nflgame.statmap` module.
1.1.10
======
- Make the FieldPosition type constructor more accepting of
different inputs. e.g., an integer. Also, added an add_yards
method to FieldPosition that returns a new FieldPosition
with the given yards added to it.
- Make the default string representation of a game unambiguous.
- Modified the quarter numbering correction of drives to be
smarter by looking at all plays of a drive instead of just
the last one.
- Modified the play duplication logic to be heuristically smarter.
Namely, instead of just looking at play ids, nflgame now
inspects play data to see if two plays are semantically
equivalent. This was necessary because duplicate plays could
have different ids.
- Manually corrected some seriously corrupt data in the
Week 13 match up DET at NO. Also updated a couple other
games from 2012 with updates from upstream.
- Updated players.json with most recent player meta data.
1.1.9
=====
- Manually fixed the ATL/SF 2012 playoff game so that it
reports itself as being "over".
- Make the license field in setup.py accurate.
- Added "gamekey" or "gsis" identifiers to nflgame's
schedule data. These ids are used in other services,
like Neulion's content delivery network.
- Added a method to the Game class that returns the season
year that the game was played. In particular, games
played in January or February of 2013 will still return
2012.
- Added a new "schedule" field to the Game class which contains
the meta data in nflgame/schedule.py.
1.1.8
=====
Data updates:
- Schedule (end of 2012 postseason)
- README inconsistency.
- Make the CSV function output consistent column headings/ordering.
1.1.7
=====
Data updates:
- Player database (end of 2012 regular season)
- Game data (full 2012 regular season)
- Game schedule up to first week of 2012 postseason
1.1.6
=====
Data update. And made parsing game times a bit more robust with respect to
errant or malformed data.
1.1.5
=====
Added player team and position information to CSV output. Team information
should always be available, but position information is dependent on whether
or not the player meta data exists for that particular player. (Chances are
good.)
1.1.4
=====
Bug fixes and added game diffs to the nflgame.live callback API.
- Fixed a bug where Game.max_player_stats didn't include statistics from
players that only had stats recorded in play-by-play data.
- When player stats are combined over a game or multiple games, keep the 'home'
attribute if the two objects agree on its value.
- Added Week 2 data from the 2012 season.
- The callback function used in the nflgame.live module now requires a third
parameter: a list of diffs between the games reported in the last interval
and the games reported in the current interval. It is hopefully useful in
inspecting statistics and plays that have been added or changed since the
last inspection of the game data. (The diffs list is orthogonal to the first
two parameters: active and completed.)
- Fixed bug #14. Games that hadn't started yet weren't filtered out of the
return list of nflgame.games and related functions.
- Fixed a bug where if JSON data from NFL.com is totally unparseable, then we
return None when constructing a Game object rather than crash the program.
- Added a team attribute to PlayerStats objects.
- When filtering by a particular field, if that fields value is None, then
always return False.
1.1.3
=====
Bug fixes.
- Fixed a bug that made pytz a hard dependency when importing nflgame.
1.1.2
=====
Added a couple of convenience methods to the API and fixed a few bugs.
- Added a 'started' parameter to nflgame.{games,games_gen,one} that when set,
will only return games that have already started or will start in five
minutes. This is useful for preemptying 404 errors that may be too costly.
- Added a max_player_stats method to the Game class. It works by combining
player statistics reported at the game level and player statistics reported
at the play level. Each statistic is combined by taking the max of each
value. (This is a heuristic designed to mitigate errors in the GameCenter
JSON data. It is not perfect.)
- Deprecated the nflgame.combine function. It has been replaced by three
different ways of combining player data across games: combine game level
player statistics with nflgame.combine_game_stats, combine play level
player statistics with nflgame.combine_play_stats and combine the maximum
of game and play level statistics with nflgame.combine_max_stats.
- Added three two point conversion properties to player stats objects: twopta,
twoptm and twoptmissed. These group the two point conversion statistics that
exist only as individual passing, rushing and receiving statistics.
- Fixed a bug in the main sequence generator where decorated properties
could not be used as a field in 'filter'. (i.e., use 'getattr' instead of
accessing '__dict__' directly.)
- Fixed bug 9. (Updated PlayerStats.csv to work with recent API changes.)
- Added a 'defense_tds' statistical field in the nflgame.statmap module for
convenience purposes.