nfelodcm 0.1.21__py3-none-any.whl → 0.1.22__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -19,7 +19,7 @@ def team_id_repl(df):
19
19
  'side_of_field', 'timeout_team', 'td_team',
20
20
  'return_team', 'possession_team',
21
21
  'recent_team', 'opponent_team',
22
- 'draft_team', 'draft_club'
22
+ 'draft_team', 'draft_club', 'team'
23
23
  ]:
24
24
  if col in df.columns:
25
25
  df[col] = df[col].replace(repl)
@@ -11,5 +11,20 @@ def temp_players_handle(df):
11
11
  to the new file
12
12
  """
13
13
  ## rename ##
14
- df = df.rename(columns={'draftround': 'draft_round'})
14
+ df = df.rename(columns={
15
+ 'latest_team': 'team_abbr',
16
+ 'rookie_season': 'rookie_year',
17
+ 'draft_team': 'draft_club',
18
+ 'draft_pick': 'draft_number',
19
+ 'draft_year': 'entry_year',
20
+ 'ngs_status' : 'status_description_abbr',
21
+ 'ngs_status_short_description': 'status_short_description'
22
+ })
23
+
24
+ ## add missing columns that were lost in migration ##
25
+ df['team_seq'] = None # Lost - was chronological team sequence
26
+ df['current_team_id'] = None # Lost - was numeric team ID
27
+ df['gsis_it_id'] = None # Lost - was GSIS IT identifier
28
+ df['uniform_number'] = None # Lost - was uniform number field
29
+
15
30
  return df
@@ -60,6 +60,11 @@ class DataPull():
60
60
  ## if not iter type, assume single download url ##
61
61
  self.pull_data(self.config['download_url'])
62
62
  elif self.config['iter']['type'] == 'season':
63
+ ## determine if config accepts partials ##
64
+ accepts_partial = False
65
+ missing_parts = []
66
+ if 'accept_partial' in self.config['iter']:
67
+ accepts_partial = self.config['iter']['accept_partial']
63
68
  ## if season iter, loop through seasons ##
64
69
  for season in range(
65
70
  self.config['iter']['start'],
@@ -68,7 +73,23 @@ class DataPull():
68
73
  ## form download url ##
69
74
  url = self.config['download_url'].format(season)
70
75
  ## pull data ##
71
- self.pull_data(url)
76
+ try:
77
+ self.pull_data(url)
78
+ except Exception as e:
79
+ if accepts_partial:
80
+ missing_parts.append(season)
81
+ print('WARN: Failed to pull data, but partial iter data is accepted.')
82
+ else:
83
+ raise e
84
+ ## if partials accepted, ensure at least one frame was pulled ##
85
+ if accepts_partial:
86
+ if len(self.pulled_data) == 0:
87
+ raise ValueError('ERROR: Partial iter data is accepted, but no data was pulled')
88
+ elif len(missing_parts) > 0:
89
+ print('WARN: Partial iter data is accepted, but the following seasons were missing: {0}'.format(missing_parts))
90
+ else:
91
+ ## if partials are accepted, but no missing parts, do not flag ##
92
+ pass
72
93
  else:
73
94
  raise ValueError('ERROR: Iter type not recognized.')
74
95
 
@@ -14,7 +14,8 @@
14
14
  },
15
15
  "iter": {
16
16
  "type": "season",
17
- "start": 2016
17
+ "start": 2016,
18
+ "accept_partial": true
18
19
  },
19
20
  "assignments": [
20
21
  "fastr_team_id_repl"
@@ -318,6 +318,8 @@
318
318
  "xyac_fd": "float32",
319
319
  "xpass": "float32",
320
320
  "pass_oe": "float32",
321
+ "third_down_converted": "float32",
322
+ "third_down_failed": "float32",
321
323
  "fourth_down_converted": "float32",
322
324
  "fourth_down_failed": "float32"
323
325
  }
@@ -0,0 +1,76 @@
1
+ {
2
+ "name": "player_stats",
3
+ "description": "nflfastR player stats",
4
+ "last_local_update": "2022-05-08T22:20:24.362121",
5
+ "download_url": "https://github.com/nflverse/nflverse-data/releases/download/player_stats/player_stats_season.csv.gz",
6
+ "compression": "gzip",
7
+ "engine": "c",
8
+ "freshness": {
9
+ "type": "gh_release",
10
+ "gh_api_endpoint": "https://api.github.com/repos/nflverse/nflverse-data/releases/tags",
11
+ "gh_release_tag": "player_stats",
12
+ "sla_seconds": 900,
13
+ "last_freshness_check": "2022-05-08T22:20:21.420258+00:00"
14
+ },
15
+ "iter": {
16
+ "type": null,
17
+ "start": null
18
+ },
19
+ "assignments": [
20
+ "fastr_team_id_repl"
21
+ ],
22
+ "map": {
23
+ "season": "int32",
24
+ "season_type": "object",
25
+ "player_id": "object",
26
+ "player_name": "object",
27
+ "player_display_name": "object",
28
+ "position": "object",
29
+ "position_group": "object",
30
+ "headshot_url": "object",
31
+ "games": "int32",
32
+ "recent_team": "object",
33
+ "completions": "int32",
34
+ "attempts": "int32",
35
+ "passing_yards": "int32",
36
+ "passing_tds": "int32",
37
+ "interceptions": "int32",
38
+ "sacks": "int32",
39
+ "sack_yards": "int32",
40
+ "sack_fumbles": "int32",
41
+ "sack_fumbles_lost": "int32",
42
+ "passing_air_yards": "int32",
43
+ "passing_yards_after_catch": "int32",
44
+ "passing_first_downs": "int32",
45
+ "passing_epa": "float32",
46
+ "passing_2pt_conversions": "int32",
47
+ "pacr": "float32",
48
+ "dakota": "float32",
49
+ "carries": "int32",
50
+ "rushing_yards": "int32",
51
+ "rushing_tds": "int32",
52
+ "rushing_fumbles": "int32",
53
+ "rushing_fumbles_lost": "int32",
54
+ "rushing_first_downs": "int32",
55
+ "rushing_epa": "float32",
56
+ "rushing_2pt_conversions": "int32",
57
+ "receptions": "int32",
58
+ "targets": "int32",
59
+ "receiving_yards": "int32",
60
+ "receiving_tds": "int32",
61
+ "receiving_fumbles": "int32",
62
+ "receiving_fumbles_lost": "int32",
63
+ "receiving_air_yards": "int32",
64
+ "receiving_yards_after_catch": "int32",
65
+ "receiving_first_downs": "int32",
66
+ "receiving_epa": "float32",
67
+ "receiving_2pt_conversions": "int32",
68
+ "racr": "float32",
69
+ "target_share": "float32",
70
+ "air_yards_share": "float32",
71
+ "wopr": "float32",
72
+ "special_teams_tds": "int32",
73
+ "fantasy_points": "float32",
74
+ "fantasy_points_ppr": "float32"
75
+ }
76
+ }
@@ -35,23 +35,19 @@
35
35
  "height": "float32",
36
36
  "weight": "float32",
37
37
  "years_of_experience": "float32",
38
- "team_abbr": "object",
39
- "team_seq": "float32",
40
- "current_team_id": "float32",
38
+ "latest_team": "object",
41
39
  "football_name": "object",
42
- "entry_year": "float32",
43
- "rookie_year": "float32",
44
- "draft_club": "object",
45
- "draft_number": "float32",
40
+ "rookie_season": "float32",
41
+ "draft_team": "object",
42
+ "draft_pick": "float32",
43
+ "draft_year": "float32",
44
+ "ngs_status": "object",
46
45
  "college_conference": "object",
47
- "status_description_abbr": "object",
48
- "status_short_description": "object",
49
- "gsis_it_id": "float32",
46
+ "ngs_status_short_description": "object",
50
47
  "short_name": "object",
51
48
  "smart_id": "object",
52
49
  "headshot": "object",
53
50
  "suffix": "object",
54
- "uniform_number": "object",
55
- "draftround": "float32"
51
+ "draft_round": "float32"
56
52
  }
57
53
  }
@@ -17,7 +17,8 @@
17
17
  "start": 1999
18
18
  },
19
19
  "assignments": [
20
- "fix_fastr_qb_names"
20
+ "fix_fastr_qb_names",
21
+ "fastr_team_id_repl"
21
22
  ],
22
23
  "map": {
23
24
  "season": "int32",
@@ -0,0 +1,44 @@
1
+ {
2
+ "name": "team_stadiums_rolling_stats",
3
+ "description": "Rolling HFA stats for the NFL",
4
+ "last_local_update": "2022-02-21T21:36:04.215102",
5
+ "download_url": "https://raw.githubusercontent.com/greerreNFL/Stadiums/refs/heads/main/data/rolling_league_hfa.csv",
6
+ "compression": null,
7
+ "engine": "c",
8
+ "freshness": {
9
+ "type": "gh_commit",
10
+ "gh_api_endpoint": "https://api.github.com/repos/greerreNFL/Stadiums/commits?path=data/rolling_league_hfa.csv",
11
+ "gh_release_tag": null,
12
+ "sla_seconds": 900,
13
+ "last_freshness_check": "2022-05-08T22:17:31.578742+00:00"
14
+ },
15
+ "iter": {
16
+ "type": null,
17
+ "start": null
18
+ },
19
+ "assignments": [],
20
+ "map": {
21
+ "season": "int32",
22
+ "week": "int32",
23
+ "win": "int32",
24
+ "loss": "int32",
25
+ "tie": "int32",
26
+ "mov": "float32",
27
+ "error": "float32",
28
+ "wins_l16": "float32",
29
+ "losses_l16": "float32",
30
+ "ties_l16": "float32",
31
+ "mov_l16": "float32",
32
+ "hfa_l16": "float32",
33
+ "wins_l80": "float32",
34
+ "losses_l80": "float32",
35
+ "ties_l80": "float32",
36
+ "mov_l80": "float32",
37
+ "hfa_l80": "float32",
38
+ "wins_all_time": "float32",
39
+ "losses_all_time": "float32",
40
+ "ties_all_time": "float32",
41
+ "mov_all_time": "float32",
42
+ "hfa_all_time": "float32"
43
+ }
44
+ }
@@ -0,0 +1,48 @@
1
+ {
2
+ "name": "team_stadiums_rolling_stats",
3
+ "description": "Rolling stats for NFL teams and their stadiums",
4
+ "last_local_update": "2022-02-21T21:36:04.215102",
5
+ "download_url": "https://raw.githubusercontent.com/greerreNFL/Stadiums/refs/heads/main/data/rolling_team_hfa.csv",
6
+ "compression": null,
7
+ "engine": "c",
8
+ "freshness": {
9
+ "type": "gh_commit",
10
+ "gh_api_endpoint": "https://api.github.com/repos/greerreNFL/Stadiums/commits?path=data/rolling_team_hfa.csv",
11
+ "gh_release_tag": null,
12
+ "sla_seconds": 900,
13
+ "last_freshness_check": "2022-05-08T22:17:31.578742+00:00"
14
+ },
15
+ "iter": {
16
+ "type": null,
17
+ "start": null
18
+ },
19
+ "assignments": [],
20
+ "map": {
21
+ "season": "int32",
22
+ "week": "int32",
23
+ "team": "object",
24
+ "stadium": "object",
25
+ "mov": "float32",
26
+ "expected_mov": "float32",
27
+ "error": "float32",
28
+ "games_played": "float32",
29
+ "win": "float32",
30
+ "loss": "float32",
31
+ "tie": "float32",
32
+ "wins_l16": "float32",
33
+ "losses_l16": "float32",
34
+ "ties_l16": "float32",
35
+ "mov_l16": "float32",
36
+ "hfa_l16": "float32",
37
+ "wins_l80": "float32",
38
+ "losses_l80": "float32",
39
+ "ties_l80": "float32",
40
+ "mov_l80": "float32",
41
+ "hfa_l80": "float32",
42
+ "wins_all_time": "float32",
43
+ "losses_all_time": "float32",
44
+ "ties_all_time": "float32",
45
+ "mov_all_time": "float32",
46
+ "hfa_all_time": "float32"
47
+ }
48
+ }
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: nfelodcm
3
- Version: 0.1.21
3
+ Version: 0.1.22
4
4
  Summary: Python package for loading and caching CSVs hosted on github into pandas dataframes
5
5
  Author-email: Robert Greer <nfl@robbygreer.com>
6
6
  Maintainer-email: Robert Greer <nfl@robbygreer.com>
@@ -7,13 +7,13 @@ nfelodcm/nfelodcm/Engine/Assignments/__init__.py,sha256=IPKxTBbO3b0xaO922zkwif0F
7
7
  nfelodcm/nfelodcm/Engine/Assignments/assignment.py,sha256=r46K3wcWp4s0QBH5dBArlBvZ1lFXrO02NP1iDjMdMoQ,1673
8
8
  nfelodcm/nfelodcm/Engine/Assignments/assignments/__init__.py,sha256=nH1f3iaMCx7IFreXEOzpyh8bewC65rUM5tXGBb4_Ky0,347
9
9
  nfelodcm/nfelodcm/Engine/Assignments/assignments/desc_based_plays.py,sha256=LAXOlE-IW8A49rRagxcAGRao_4c2RdC7AK6_iV3M2Vc,1810
10
- nfelodcm/nfelodcm/Engine/Assignments/assignments/fastr_team_repl.py,sha256=Zey8ufOPiv7dJBTtH4XM9x7YywjGvEVxBC1vIlqvHSQ,1012
10
+ nfelodcm/nfelodcm/Engine/Assignments/assignments/fastr_team_repl.py,sha256=dIAjbYdNE1BNy_sgkDD-3OzjKwyfPSEvhlgnyOZF57M,1020
11
11
  nfelodcm/nfelodcm/Engine/Assignments/assignments/format_player_file.py,sha256=k_pG-zIfNd2DtlWcc4Ed7Uya-PaWd_0W33BfEKpj3As,583
12
12
  nfelodcm/nfelodcm/Engine/Assignments/assignments/format_qb_file.py,sha256=nu3PiWoxW_MFeqyOzlEARHHKIG4vutPA5yE1zn_OeuY,399
13
13
  nfelodcm/nfelodcm/Engine/Assignments/assignments/penalty_formatting.py,sha256=Ia3x_Z8EnzI4Bz_6LEfY0ICWvdmyzJsckrOUXGYgfRY,517
14
14
  nfelodcm/nfelodcm/Engine/Assignments/assignments/score_clean.py,sha256=2-MgCH1m0XnoUoMwfBQFLCn3mLTflWin6LhAfHPoyqI,1162
15
- nfelodcm/nfelodcm/Engine/Assignments/assignments/temp_players_handle.py,sha256=Q32drAGcSNZ_-AK1E0IHjCLqiMTHLqkVL_byaVdrIGQ,441
16
- nfelodcm/nfelodcm/Engine/Primatives/DataPull.py,sha256=Ho-lrw1Wr4t-y822cHWdznOanZQyMXKXrdIMRMVN7_g,3705
15
+ nfelodcm/nfelodcm/Engine/Assignments/assignments/temp_players_handle.py,sha256=kUWJArjE6kqB75xiuR1xWonHQbobcPGmDjVt3Yvy-qY,1050
16
+ nfelodcm/nfelodcm/Engine/Primatives/DataPull.py,sha256=SK8HqDth2b9-xaXKM6YJqFSxKE_-3nwVJdy-IPAwfFQ,4832
17
17
  nfelodcm/nfelodcm/Engine/Primatives/Freshness.py,sha256=VyRZmW6LI3jd43aWLo7OTnX3ZgGkwu85hn4r3_3ChZo,9803
18
18
  nfelodcm/nfelodcm/Engine/Primatives/LocalIO.py,sha256=LRKpP0t30t_ZUfIi3ASULkB4aKVV4cINZbp1wbrayac,2701
19
19
  nfelodcm/nfelodcm/Engine/Primatives/TableMap.py,sha256=M_T2TTxbT2B1Mv9hY3Ocli_AkoPirNUJDZ8n1HQPlgM,2636
@@ -25,17 +25,20 @@ nfelodcm/nfelodcm/Maps/hfa.json,sha256=0hsTY4ODPH3pAhaJlLS9_73bXFRiwzOH2Ps_nwaxg
25
25
  nfelodcm/nfelodcm/Maps/logos.json,sha256=0-YyBSsJwtrY4FhNGdGoJDhUxIu5vnk_3s6dAuwRTlk,1133
26
26
  nfelodcm/nfelodcm/Maps/market_data.json,sha256=AAF1GTQN4I1qmb5E02QP44Q091bVXrrmiC69c2WTMi0,1994
27
27
  nfelodcm/nfelodcm/Maps/nfelo_games.json,sha256=_PWtweV0cYTnkhwxUv33F45mLMdhv1atOxmVT0RVKHY,2408
28
- nfelodcm/nfelodcm/Maps/participants.json,sha256=hKrpyvrjN5Yx9zZgPR3tz4AHst6hcC-Mk1RgIHiKJiA,1325
29
- nfelodcm/nfelodcm/Maps/pbp.json,sha256=Uy8yh2A3Bni5816Wlg9Q32CFJs_gb79j881yRYDRIRQ,10516
28
+ nfelodcm/nfelodcm/Maps/participants.json,sha256=fIFSadeizBBmMHb_T1MmR90peX9SMFK0MEohkZ7_iaM,1353
29
+ nfelodcm/nfelodcm/Maps/pbp.json,sha256=N8ZtY7r0OxG4lx1SOVQc0G_yyb5qwJn19fEUDRaM5oI,10591
30
30
  nfelodcm/nfelodcm/Maps/player_stats.json,sha256=pTmW-t4KGo_UhbNpkg8h_YliOdBwcUpl3VKmpgpEuwA,2308
31
- nfelodcm/nfelodcm/Maps/players.json,sha256=EcA6s8Auv-yQ0r5xwIB4yjlcv3wTtlHk8eLQuxx2t1k,1611
31
+ nfelodcm/nfelodcm/Maps/player_stats_season.json,sha256=6_ezbDQcXjm87d3jn_ZMMtqd-JH5wgQTNBA17NCLuMM,2285
32
+ nfelodcm/nfelodcm/Maps/players.json,sha256=KRTxEEIev_t0d9doP6QAm2O0eNTXOc1P-9L027yZopc,1483
32
33
  nfelodcm/nfelodcm/Maps/qb_meta.json,sha256=CDSeYnlfhiLEbBfGmltu6x5mhzGa71K2s4zMrbv9r1k,1192
33
34
  nfelodcm/nfelodcm/Maps/qbelo.json,sha256=nxeNjS631Nzq9N_AUhfm9JQbDD20Q-F0eivFZpE3jCA,1609
34
35
  nfelodcm/nfelodcm/Maps/qbr.json,sha256=8UUlPTekHHohMe2znO3SpGwzgXxuKRUVKWcXK5B-LsE,1207
35
- nfelodcm/nfelodcm/Maps/rosters.json,sha256=MJ3JvRXS-4sW7kxH_nsHgLZg_liCreh_7ze_Z7YDKw8,1463
36
+ nfelodcm/nfelodcm/Maps/rosters.json,sha256=_hj41tyZ0e30yHR1e6kqa4_EDpNUxCblQYDw2NNA1Dg,1489
36
37
  nfelodcm/nfelodcm/Maps/srs_ratings.json,sha256=1aRhI1_pg3rA2KeUOJo0DLhwG56-km0L2qnMgRO_DhM,1150
37
38
  nfelodcm/nfelodcm/Maps/stadiums.json,sha256=yNa6l5EdMI3JAP9Fd55y2SSWkhOoI_7VB014nIinHJQ,1630
39
+ nfelodcm/nfelodcm/Maps/stadiums_rolling_stats.json,sha256=KaF-NjgMBzyhmrWat0N6BdDmPvEniTkMK3z68ohKQec,1339
38
40
  nfelodcm/nfelodcm/Maps/team_stadiums.json,sha256=YkK6hB_3SYIGb675YpD3p9ahyZLf7pDcMrfi33KPLGY,2146
41
+ nfelodcm/nfelodcm/Maps/team_stadiums_rolling_stats.json,sha256=6NOdTftWIR8XCcnGDLZefXrF-8PzFoqvwsQOQ2b2MwM,1527
39
42
  nfelodcm/nfelodcm/Maps/wepa.json,sha256=9VLCgj4wKszVrL1Ke2Y0MtTktFOklzmNqV-Zxr-jjQw,1130
40
43
  nfelodcm/nfelodcm/Maps/wt_ratings.json,sha256=Sa3R6aPah-vHcqTfSvRgsAW9BoSKLTfrouZWPhhCtE0,972
41
44
  nfelodcm/nfelodcm/Utilities/__init__.py,sha256=yDsTYf7iVEcU71BiUDpWkHoI2e5Yo8nRWx3Ty5rkkvs,302
@@ -45,7 +48,7 @@ nfelodcm/nfelodcm/Utilities/global_variables.json,sha256=NSIAc9By4ORIx55KnhCU367
45
48
  nfelodcm/nfelodcm/Utilities/load_maps.py,sha256=hNTDmXmfCNhHFgQ-CvrQ3Ah95KGHdcQM4QvkULlwBZk,803
46
49
  nfelodcm/nfelodcm/Utilities/retrieve_season_state.py,sha256=ZrBaMWmo2DA9OZqZ6MBWmrY9Llkc5OUfxmDk7EB1tRU,579
47
50
  nfelodcm/nfelodcm/Utilities/set_season_state.py,sha256=Y5fvop3EZfWcx2F85MtSNEGnwjofWyEMg4_HLTenAUA,3737
48
- nfelodcm-0.1.21.dist-info/METADATA,sha256=9as3j8wERZthYDKRLKhkGjA552jG5OuCgsw0tNuuwQE,4408
49
- nfelodcm-0.1.21.dist-info/WHEEL,sha256=0CuiUZ_p9E4cD6NyLD6UG80LBXYyiSYZOKDm5lp32xk,91
50
- nfelodcm-0.1.21.dist-info/top_level.txt,sha256=SlNA7_yZSwWvZIl9Md6brBH_C7nAYnATe4CrvuUXOGo,9
51
- nfelodcm-0.1.21.dist-info/RECORD,,
51
+ nfelodcm-0.1.22.dist-info/METADATA,sha256=rV-2__lye5aoPgrmG4B2M4mpv9y5FlgMiA-R8JxYQ5Y,4408
52
+ nfelodcm-0.1.22.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
53
+ nfelodcm-0.1.22.dist-info/top_level.txt,sha256=SlNA7_yZSwWvZIl9Md6brBH_C7nAYnATe4CrvuUXOGo,9
54
+ nfelodcm-0.1.22.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (80.3.1)
2
+ Generator: setuptools (80.9.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5