nfelodcm 0.1.7__tar.gz → 0.1.9__tar.gz
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.
- {nfelodcm-0.1.7 → nfelodcm-0.1.9}/PKG-INFO +1 -1
- nfelodcm-0.1.9/__init__.py +5 -0
- {nfelodcm-0.1.7 → nfelodcm-0.1.9}/nfelodcm/Engine/Assignments/assignment.py +8 -3
- nfelodcm-0.1.9/nfelodcm/Engine/Assignments/assignments/__init__.py +3 -0
- nfelodcm-0.1.9/nfelodcm/Engine/Assignments/assignments/fastr_team_repl.py +34 -0
- nfelodcm-0.1.9/nfelodcm/Engine/Assignments/assignments/score_clean.py +47 -0
- {nfelodcm-0.1.7 → nfelodcm-0.1.9}/nfelodcm/Engine/DCMTable.py +6 -0
- {nfelodcm-0.1.7 → nfelodcm-0.1.9}/nfelodcm/Engine/Primatives/Freshness.py +2 -0
- {nfelodcm-0.1.7 → nfelodcm-0.1.9}/nfelodcm/Engine/Primatives/LocalIO.py +37 -0
- nfelodcm-0.1.9/nfelodcm/Maps/coaches.json +59 -0
- nfelodcm-0.1.9/nfelodcm/Maps/filmmargins.json +34 -0
- {nfelodcm-0.1.7 → nfelodcm-0.1.9}/nfelodcm/Maps/games.json +3 -3
- nfelodcm-0.1.9/nfelodcm/Maps/hfa.json +39 -0
- nfelodcm-0.1.9/nfelodcm/Maps/logos.json +40 -0
- nfelodcm-0.1.9/nfelodcm/Maps/market_data.json +60 -0
- {nfelodcm-0.1.7 → nfelodcm-0.1.9}/nfelodcm/Maps/participants.json +8 -5
- {nfelodcm-0.1.7 → nfelodcm-0.1.9}/nfelodcm/Maps/pbp.json +5 -3
- nfelodcm-0.1.9/nfelodcm/Maps/player_stats.json +77 -0
- nfelodcm-0.1.9/nfelodcm/Maps/players.json +57 -0
- nfelodcm-0.1.9/nfelodcm/Maps/qbelo.json +55 -0
- {nfelodcm-0.1.7 → nfelodcm-0.1.9}/nfelodcm/Maps/qbr.json +2 -2
- {nfelodcm-0.1.7 → nfelodcm-0.1.9}/nfelodcm/Maps/rosters.json +2 -2
- nfelodcm-0.1.9/nfelodcm/Maps/srs_ratings.json +37 -0
- nfelodcm-0.1.9/nfelodcm/Maps/wepa.json +40 -0
- nfelodcm-0.1.9/nfelodcm/Maps/wt_ratings.json +34 -0
- {nfelodcm-0.1.7 → nfelodcm-0.1.9}/nfelodcm/Utilities/global_variables.json +4 -4
- {nfelodcm-0.1.7 → nfelodcm-0.1.9}/nfelodcm/nfelodcm.py +2 -2
- nfelodcm-0.1.9/nfelodcm/tests.py +38 -0
- {nfelodcm-0.1.7 → nfelodcm-0.1.9}/nfelodcm.egg-info/PKG-INFO +1 -1
- {nfelodcm-0.1.7 → nfelodcm-0.1.9}/nfelodcm.egg-info/SOURCES.txt +11 -0
- {nfelodcm-0.1.7 → nfelodcm-0.1.9}/pyproject.toml +1 -1
- nfelodcm-0.1.7/__init__.py +0 -3
- nfelodcm-0.1.7/nfelodcm/Engine/Assignments/assignments/__init__.py +0 -3
- nfelodcm-0.1.7/nfelodcm/Engine/Assignments/assignments/fastr_team_repl.py +0 -32
- nfelodcm-0.1.7/nfelodcm/Maps/logos.json +0 -70
- nfelodcm-0.1.7/nfelodcm/Maps/qbelo.json +0 -70
- {nfelodcm-0.1.7 → nfelodcm-0.1.9}/README.md +0 -0
- {nfelodcm-0.1.7 → nfelodcm-0.1.9}/nfelodcm/Engine/Assignments/__init__.py +0 -0
- {nfelodcm-0.1.7 → nfelodcm-0.1.9}/nfelodcm/Engine/Assignments/assignments/desc_based_plays.py +0 -0
- {nfelodcm-0.1.7 → nfelodcm-0.1.9}/nfelodcm/Engine/Assignments/assignments/penalty_formatting.py +0 -0
- {nfelodcm-0.1.7 → nfelodcm-0.1.9}/nfelodcm/Engine/Primatives/DataPull.py +0 -0
- {nfelodcm-0.1.7 → nfelodcm-0.1.9}/nfelodcm/Engine/Primatives/TableMap.py +0 -0
- {nfelodcm-0.1.7 → nfelodcm-0.1.9}/nfelodcm/Engine/Primatives/__init__.py +0 -0
- {nfelodcm-0.1.7 → nfelodcm-0.1.9}/nfelodcm/Engine/__init__.py +0 -0
- {nfelodcm-0.1.7 → nfelodcm-0.1.9}/nfelodcm/Utilities/__init__.py +0 -0
- {nfelodcm-0.1.7 → nfelodcm-0.1.9}/nfelodcm/Utilities/checks.py +0 -0
- {nfelodcm-0.1.7 → nfelodcm-0.1.9}/nfelodcm/Utilities/extract_map.py +0 -0
- {nfelodcm-0.1.7 → nfelodcm-0.1.9}/nfelodcm/Utilities/retrieve_season_state.py +0 -0
- {nfelodcm-0.1.7 → nfelodcm-0.1.9}/nfelodcm/Utilities/set_season_state.py +0 -0
- {nfelodcm-0.1.7 → nfelodcm-0.1.9}/nfelodcm.egg-info/dependency_links.txt +0 -0
- {nfelodcm-0.1.7 → nfelodcm-0.1.9}/nfelodcm.egg-info/requires.txt +0 -0
- {nfelodcm-0.1.7 → nfelodcm-0.1.9}/nfelodcm.egg-info/top_level.txt +0 -0
- {nfelodcm-0.1.7 → nfelodcm-0.1.9}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: nfelodcm
|
3
|
-
Version: 0.1.
|
3
|
+
Version: 0.1.9
|
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>
|
@@ -1,11 +1,12 @@
|
|
1
1
|
from .assignments import (
|
2
|
-
|
2
|
+
fastr_team_id_repl, penalty_formatting, desc_based_plays,
|
3
|
+
score_clean
|
3
4
|
)
|
4
5
|
|
5
6
|
## a dictionary that holds assignments and the columns they add ##
|
6
7
|
assignments = {
|
7
|
-
'
|
8
|
-
'func' :
|
8
|
+
'fastr_team_id_repl' : {
|
9
|
+
'func' : fastr_team_id_repl,
|
9
10
|
'new_columns' : []
|
10
11
|
},
|
11
12
|
'penalty_formatting' : {
|
@@ -19,6 +20,10 @@ assignments = {
|
|
19
20
|
('rush_attempt_all', 'float32'),
|
20
21
|
('play_call', 'str'),
|
21
22
|
]
|
23
|
+
},
|
24
|
+
'score_clean' : {
|
25
|
+
'func' : score_clean,
|
26
|
+
'new_columns' : []
|
22
27
|
}
|
23
28
|
}
|
24
29
|
|
@@ -0,0 +1,34 @@
|
|
1
|
+
import pandas as pd
|
2
|
+
|
3
|
+
## assignment functions that replaces fastr team names with legacy team names ##
|
4
|
+
repl = {
|
5
|
+
'LV' : 'OAK',
|
6
|
+
'SD' : 'LAC',
|
7
|
+
'STL' : 'LAR',
|
8
|
+
'LA' : 'LAR',
|
9
|
+
}
|
10
|
+
|
11
|
+
def team_id_repl(df):
|
12
|
+
"""
|
13
|
+
Replaces fastr team ids with a legacy nfelo ids.
|
14
|
+
"""
|
15
|
+
## if a col with team names exists, replace it ##
|
16
|
+
for col in [
|
17
|
+
'home_team', 'away_team', 'team_abbr',
|
18
|
+
'posteam', 'defteam', 'penalty_team',
|
19
|
+
'side_of_field', 'timeout_team', 'td_team',
|
20
|
+
'return_team', 'possession_team',
|
21
|
+
'recent_team', 'opponent_team'
|
22
|
+
]:
|
23
|
+
if col in df.columns:
|
24
|
+
df[col] = df[col].replace(repl)
|
25
|
+
## if game if is also in the DF, replace it
|
26
|
+
if 'game_id' in df.columns:
|
27
|
+
## id col ##
|
28
|
+
df['game_id'] = (
|
29
|
+
df['season'].astype('str') + '_' +
|
30
|
+
df['week'].astype('str').str.zfill(2) + '_' +
|
31
|
+
df['away_team'] + '_' +
|
32
|
+
df['home_team']
|
33
|
+
)
|
34
|
+
return df
|
@@ -0,0 +1,47 @@
|
|
1
|
+
import pandas as pd
|
2
|
+
import numpy
|
3
|
+
|
4
|
+
manual_clean_dict = {
|
5
|
+
"2009_17_IND_BUF": {
|
6
|
+
"home_score": 30,
|
7
|
+
"away_score": 7
|
8
|
+
},
|
9
|
+
"2013_07_CIN_DET": {
|
10
|
+
"home_score": 24,
|
11
|
+
"away_score": 27
|
12
|
+
},
|
13
|
+
"2015_06_ARI_PIT": {
|
14
|
+
"home_score": 25,
|
15
|
+
"away_score": 13
|
16
|
+
},
|
17
|
+
"2015_09_PHI_DAL": {
|
18
|
+
"home_score": 27,
|
19
|
+
"away_score": 33
|
20
|
+
},
|
21
|
+
"2015_15_KC_BAL": {
|
22
|
+
"home_score": 14,
|
23
|
+
"away_score": 34
|
24
|
+
},
|
25
|
+
"2016_01_MIN_TEN": {
|
26
|
+
"home_score": 16,
|
27
|
+
"away_score": 25
|
28
|
+
},
|
29
|
+
"2016_05_NE_CLE": {
|
30
|
+
"home_score": 13,
|
31
|
+
"away_score": 33
|
32
|
+
}
|
33
|
+
}
|
34
|
+
|
35
|
+
def score_clean(df):
|
36
|
+
'''
|
37
|
+
Manually clean scores that are incorrect in the
|
38
|
+
game file
|
39
|
+
'''
|
40
|
+
## create a home and away map ##
|
41
|
+
home_map = {k:manual_clean_dict[k]['home_score'] for k in manual_clean_dict.keys()}
|
42
|
+
away_map = {k:manual_clean_dict[k]['away_score'] for k in manual_clean_dict.keys()}
|
43
|
+
## apply ##
|
44
|
+
df['home_score'] = df['game_id'].map(home_map).combine_first(df['home_score'])
|
45
|
+
df['away_score'] = df['game_id'].map(away_map).combine_first(df['away_score'])
|
46
|
+
## return
|
47
|
+
return df
|
@@ -49,6 +49,12 @@ class DCMTable():
|
|
49
49
|
"""
|
50
50
|
Handles loading of the table based on freshness status.
|
51
51
|
"""
|
52
|
+
## add a check to always make sure there is a local file in the DB.
|
53
|
+
## If a CSV is deleted or a write fails, timestamps, and therefore
|
54
|
+
## freshness, may incorrectly assume we have a current file to read
|
55
|
+
if not self.localIO.loadable():
|
56
|
+
## if the csv does not exist, flag the update flag ##
|
57
|
+
self.freshness.needs_update=True
|
52
58
|
if self.freshness.freshness_check_time is not None:
|
53
59
|
## if freshness was checked, update the time in the config ##
|
54
60
|
self.tableMap.config['freshness']['last_freshness_check'] = self.freshness.freshness_check_time
|
@@ -159,6 +159,8 @@ class Freshness():
|
|
159
159
|
## handle response ##
|
160
160
|
if r.status_code != 200:
|
161
161
|
print('WARN: Request to github commits failed.')
|
162
|
+
print(' Returned {0}'.format(r.status_code))
|
163
|
+
print(' Msg: {0}'.format(r.content))
|
162
164
|
return
|
163
165
|
r = r.json()
|
164
166
|
if len(r) == 0:
|
@@ -1,4 +1,5 @@
|
|
1
1
|
import pandas as pd
|
2
|
+
import os
|
2
3
|
import numpy
|
3
4
|
import json
|
4
5
|
|
@@ -28,10 +29,46 @@ class LocalIO():
|
|
28
29
|
self.columns.append(col[0])
|
29
30
|
self.dtypes[col[0]] = col[1]
|
30
31
|
|
32
|
+
def local_exists(self):
|
33
|
+
"""
|
34
|
+
Checks to make sure their is a local CSV at the filepath
|
35
|
+
"""
|
36
|
+
return os.path.exists(self.data_location)
|
37
|
+
|
38
|
+
def cols_pass(self):
|
39
|
+
"""
|
40
|
+
Checks the local file for columns and matches to
|
41
|
+
cols int eh config
|
42
|
+
"""
|
43
|
+
## parse config cols ##
|
44
|
+
config_cols = list(self.config['map'].keys())
|
45
|
+
## parse local cols ##
|
46
|
+
local_cols = []
|
47
|
+
if self.local_exists():
|
48
|
+
## if local file exists, load the first line ##
|
49
|
+
local_cols = pd.read_csv(self.data_location, nrows=1).columns.tolist()
|
50
|
+
## make comparison ##
|
51
|
+
for col in config_cols:
|
52
|
+
if col not in local_cols:
|
53
|
+
return False
|
54
|
+
## if all passed, return true ##
|
55
|
+
return True
|
56
|
+
|
57
|
+
|
58
|
+
def loadable(self):
|
59
|
+
"""
|
60
|
+
Runs multiple checks to make sure the file can be read
|
61
|
+
by the config
|
62
|
+
"""
|
63
|
+
return self.local_exists() and self.cols_pass()
|
64
|
+
|
31
65
|
def read(self):
|
32
66
|
"""
|
33
67
|
Read the data from local CSV
|
34
68
|
"""
|
69
|
+
## check that path exists first ##
|
70
|
+
if not self.loadable():
|
71
|
+
raise Exception('IO ERROR: Attempting read a local CSV that does not exist')
|
35
72
|
self.df = pd.read_csv(
|
36
73
|
self.data_location,
|
37
74
|
usecols=self.columns,
|
@@ -0,0 +1,59 @@
|
|
1
|
+
{
|
2
|
+
"name": "coaches",
|
3
|
+
"description": "Aggregated head coaching stats",
|
4
|
+
"last_local_update": "2024-07-07T23:13:39.454179",
|
5
|
+
"download_url": "https://raw.githubusercontent.com/greerreNFL/coaches/main/coaches.csv",
|
6
|
+
"compression": null,
|
7
|
+
"engine": "c",
|
8
|
+
"freshness": {
|
9
|
+
"type": "gh_commit",
|
10
|
+
"gh_api_endpoint": "https://api.github.com/repos/greerreNFL/coaches/commits?path=coaches.csv",
|
11
|
+
"gh_release_tag": null,
|
12
|
+
"sla_seconds": 900,
|
13
|
+
"last_freshness_check": "2024-07-10T17:16:06.701316+00:00"
|
14
|
+
},
|
15
|
+
"iter": {
|
16
|
+
"type": null,
|
17
|
+
"start": null
|
18
|
+
},
|
19
|
+
"assignments": [],
|
20
|
+
"map": {
|
21
|
+
"coach": "object",
|
22
|
+
"seasons": "int32",
|
23
|
+
"is_active": "int32",
|
24
|
+
"games": "float32",
|
25
|
+
"wins": "float32",
|
26
|
+
"losses": "float32",
|
27
|
+
"ties": "int32",
|
28
|
+
"playoff_births": "float32",
|
29
|
+
"games_playoff": "float32",
|
30
|
+
"wins_playoff": "float32",
|
31
|
+
"losses_playoff": "float32",
|
32
|
+
"ties_playoff": "float32",
|
33
|
+
"games_superbowl": "float32",
|
34
|
+
"wins_superbowl": "float32",
|
35
|
+
"ats_pct": "float32",
|
36
|
+
"ats_return": "float32",
|
37
|
+
"ats_risked": "float32",
|
38
|
+
"avg_pf": "float32",
|
39
|
+
"avg_pa": "float32",
|
40
|
+
"avg_margin": "float32",
|
41
|
+
"avg_spread": "float32",
|
42
|
+
"ats_pct_home": "float32",
|
43
|
+
"ats_pct_away": "float32",
|
44
|
+
"ats_pct_playoff": "float32",
|
45
|
+
"ats_pct_favorite": "float32",
|
46
|
+
"ats_pct_underdog": "float32",
|
47
|
+
"ats_pct_div": "float32",
|
48
|
+
"ats_pct_non_div": "float32",
|
49
|
+
"ats_pct_bye": "float32",
|
50
|
+
"ats_pct_dome": "float32",
|
51
|
+
"ats_roi": "float32",
|
52
|
+
"win_pct": "float32",
|
53
|
+
"win_pct_playoff": "float32",
|
54
|
+
"teams": "object",
|
55
|
+
"pfr_coach_image_url": "object",
|
56
|
+
"pfr_coach_tree_hired_by": "object",
|
57
|
+
"pfr_coach_tree_hired": "object"
|
58
|
+
}
|
59
|
+
}
|
@@ -0,0 +1,34 @@
|
|
1
|
+
{
|
2
|
+
"name": "filmmargins",
|
3
|
+
"description": "Margins derived from PFF grades",
|
4
|
+
"last_local_update": "2024-07-07T23:35:11.485380",
|
5
|
+
"download_url": "https://raw.githubusercontent.com/greerreNFL/filmmargin/main/film_margins.csv",
|
6
|
+
"compression": null,
|
7
|
+
"engine": "c",
|
8
|
+
"freshness": {
|
9
|
+
"type": "gh_commit",
|
10
|
+
"gh_api_endpoint": "https://api.github.com/repos/greerreNFL/filmmargin/commits?path=film_margins.csv",
|
11
|
+
"gh_release_tag": null,
|
12
|
+
"sla_seconds": 900,
|
13
|
+
"last_freshness_check": "2024-07-10T17:15:32.031946+00:00"
|
14
|
+
},
|
15
|
+
"iter": {
|
16
|
+
"type": null,
|
17
|
+
"start": null
|
18
|
+
},
|
19
|
+
"assignments": [],
|
20
|
+
"map": {
|
21
|
+
"Unnamed: 0": "int32",
|
22
|
+
"game_id": "object",
|
23
|
+
"season": "int32",
|
24
|
+
"week": "int32",
|
25
|
+
"team": "object",
|
26
|
+
"opponent": "object",
|
27
|
+
"pf": "int32",
|
28
|
+
"pa": "int32",
|
29
|
+
"margin": "int32",
|
30
|
+
"film_margin": "float32",
|
31
|
+
"film_margin_predictive": "float32",
|
32
|
+
"film_margin_old_model": "float32"
|
33
|
+
}
|
34
|
+
}
|
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"name": "games",
|
3
3
|
"description": "nflgamedata games",
|
4
|
-
"last_local_update": "
|
4
|
+
"last_local_update": "2024-07-07T23:13:58.469798",
|
5
5
|
"download_url": "https://raw.githubusercontent.com/nflverse/nfldata/master/data/games.csv",
|
6
6
|
"compression": null,
|
7
7
|
"engine": "c",
|
@@ -10,14 +10,14 @@
|
|
10
10
|
"gh_api_endpoint": "https://api.github.com/repos/nflverse/nfldata/commits",
|
11
11
|
"gh_release_tag": null,
|
12
12
|
"sla_seconds": 500,
|
13
|
-
"last_freshness_check": "
|
13
|
+
"last_freshness_check": "2024-07-10T17:15:31.355055+00:00"
|
14
14
|
},
|
15
15
|
"iter": {
|
16
16
|
"type": null,
|
17
17
|
"start": null
|
18
18
|
},
|
19
19
|
"assignments": [
|
20
|
-
"
|
20
|
+
"fastr_team_id_repl", "score_clean"
|
21
21
|
],
|
22
22
|
"map": {
|
23
23
|
"game_id": "object",
|
@@ -0,0 +1,39 @@
|
|
1
|
+
{
|
2
|
+
"name": "hfa",
|
3
|
+
"description": "Estimated home field advantage by game",
|
4
|
+
"last_local_update": null,
|
5
|
+
"download_url": "https://raw.githubusercontent.com/greerreNFL/nfelohfa/main/estimated_hfa.csv",
|
6
|
+
"compression": null,
|
7
|
+
"engine": "c",
|
8
|
+
"freshness": {
|
9
|
+
"type": "gh_commit",
|
10
|
+
"gh_api_endpoint": "https://api.github.com/repos/greerreNFL/nfelohfa/commits?path=estimated_hfa.csv",
|
11
|
+
"gh_release_tag": null,
|
12
|
+
"sla_seconds": 900,
|
13
|
+
"last_freshness_check": "2024-07-10T17:16:06.701316+00:00"
|
14
|
+
},
|
15
|
+
"iter": {
|
16
|
+
"type": null,
|
17
|
+
"start": null
|
18
|
+
},
|
19
|
+
"assignments": [],
|
20
|
+
"map": {
|
21
|
+
"game_id": "object",
|
22
|
+
"season": "int32",
|
23
|
+
"week": "int32",
|
24
|
+
"home_team": "object",
|
25
|
+
"away_team": "object",
|
26
|
+
"home_bye": "int32",
|
27
|
+
"away_bye": "int32",
|
28
|
+
"home_time_advantage": "float32",
|
29
|
+
"dif_surface": "int32",
|
30
|
+
"div_game": "int32",
|
31
|
+
"hfa_base": "float32",
|
32
|
+
"home_bye_adj": "float32",
|
33
|
+
"away_bye_adj": "float32",
|
34
|
+
"home_time_advantage_adj": "float32",
|
35
|
+
"dif_surface_adj": "float32",
|
36
|
+
"div_game_adj": "float32",
|
37
|
+
"hfa_adj": "float32"
|
38
|
+
}
|
39
|
+
}
|
@@ -0,0 +1,40 @@
|
|
1
|
+
{
|
2
|
+
"name": "logos",
|
3
|
+
"description": "nflfastr logos",
|
4
|
+
"last_local_update": "2024-07-07T23:35:10.755659",
|
5
|
+
"download_url": "https://raw.githubusercontent.com/nflverse/nflverse-pbp/master/teams_colors_logos.csv",
|
6
|
+
"compression": null,
|
7
|
+
"engine": "c",
|
8
|
+
"freshness": {
|
9
|
+
"type": "gh_commit",
|
10
|
+
"gh_api_endpoint": "https://api.github.com/repos/nflverse/nflverse-pbp/commits?path=teams_colors_logos.csv",
|
11
|
+
"gh_release_tag": null,
|
12
|
+
"sla_seconds": 900,
|
13
|
+
"last_freshness_check": "2024-07-10T17:15:31.722504+00:00"
|
14
|
+
},
|
15
|
+
"iter": {
|
16
|
+
"type": null,
|
17
|
+
"start": null
|
18
|
+
},
|
19
|
+
"assignments": [
|
20
|
+
"fastr_team_id_repl"
|
21
|
+
],
|
22
|
+
"map": {
|
23
|
+
"team_abbr": "object",
|
24
|
+
"team_name": "object",
|
25
|
+
"team_id": "int32",
|
26
|
+
"team_nick": "object",
|
27
|
+
"team_conf": "object",
|
28
|
+
"team_division": "object",
|
29
|
+
"team_color": "object",
|
30
|
+
"team_color2": "object",
|
31
|
+
"team_color3": "object",
|
32
|
+
"team_color4": "object",
|
33
|
+
"team_logo_wikipedia": "object",
|
34
|
+
"team_logo_espn": "object",
|
35
|
+
"team_wordmark": "object",
|
36
|
+
"team_conference_logo": "object",
|
37
|
+
"team_league_logo": "object",
|
38
|
+
"team_logo_squared": "object"
|
39
|
+
}
|
40
|
+
}
|
@@ -0,0 +1,60 @@
|
|
1
|
+
{
|
2
|
+
"name": "market_data",
|
3
|
+
"description": "Spread and totals from various sources",
|
4
|
+
"last_local_update": "2024-07-08T03:34:47.332681",
|
5
|
+
"download_url": "https://raw.githubusercontent.com/greerreNFL/nfelomarket_data/main/Data/lines.csv",
|
6
|
+
"compression": null,
|
7
|
+
"engine": "c",
|
8
|
+
"freshness": {
|
9
|
+
"type": "gh_commit",
|
10
|
+
"gh_api_endpoint": "https://api.github.com/repos/greerreNFL/nfelomarket_data/commits?path=Data/lines.csv",
|
11
|
+
"gh_release_tag": null,
|
12
|
+
"sla_seconds": 900,
|
13
|
+
"last_freshness_check": "2024-07-10T17:16:07.623265+00:00"
|
14
|
+
},
|
15
|
+
"iter": {
|
16
|
+
"type": null,
|
17
|
+
"start": null
|
18
|
+
},
|
19
|
+
"assignments": [],
|
20
|
+
"map": {
|
21
|
+
"Unnamed: 0": "int32",
|
22
|
+
"game_id": "object",
|
23
|
+
"season": "int32",
|
24
|
+
"week": "int32",
|
25
|
+
"home_team": "object",
|
26
|
+
"away_team": "object",
|
27
|
+
"home_spread_open": "float32",
|
28
|
+
"home_spread_open_price": "float32",
|
29
|
+
"away_spread_open_price": "float32",
|
30
|
+
"home_spread_open_source": "object",
|
31
|
+
"home_spread_open_timestamp": "object",
|
32
|
+
"home_spread_last": "float32",
|
33
|
+
"home_spread_last_price": "float32",
|
34
|
+
"away_spread_last_price": "float32",
|
35
|
+
"home_spread_last_source": "object",
|
36
|
+
"home_spread_last_timestamp": "object",
|
37
|
+
"home_spread_tickets_pct": "float32",
|
38
|
+
"home_spread_money_pct": "float32",
|
39
|
+
"home_spread_pcts_source": "object",
|
40
|
+
"home_spread_pct_timestamp": "object",
|
41
|
+
"home_ml_open": "float32",
|
42
|
+
"away_ml_open": "float32",
|
43
|
+
"ml_open_source": "object",
|
44
|
+
"ml_open_timestamp": "object",
|
45
|
+
"home_ml_last": "float32",
|
46
|
+
"away_ml_last": "float32",
|
47
|
+
"ml_last_source": "object",
|
48
|
+
"ml_last_timestamp": "object",
|
49
|
+
"total_line_open": "float32",
|
50
|
+
"under_price_open": "float32",
|
51
|
+
"over_price_open": "float32",
|
52
|
+
"total_line_open_source": "object",
|
53
|
+
"total_line_open_timestamp": "object",
|
54
|
+
"total_line_last": "float32",
|
55
|
+
"under_price_last": "float32",
|
56
|
+
"over_price_last": "float32",
|
57
|
+
"total_line_last_source": "object",
|
58
|
+
"total_line_last_timestamp": "object"
|
59
|
+
}
|
60
|
+
}
|
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"name": "participants",
|
3
3
|
"description": "nflfastR participants",
|
4
|
-
"last_local_update":
|
4
|
+
"last_local_update": "2024-07-10T17:16:25.862176",
|
5
5
|
"download_url": "https://github.com/nflverse/nflverse-data/releases/download/pbp_participation/pbp_participation_{0}.csv",
|
6
6
|
"compression": null,
|
7
7
|
"engine": "c",
|
@@ -10,14 +10,17 @@
|
|
10
10
|
"gh_api_endpoint": "https://api.github.com/repos/nflverse/nflverse-data/releases/tags",
|
11
11
|
"gh_release_tag": "pbp_participation",
|
12
12
|
"sla_seconds": 900,
|
13
|
-
"last_freshness_check":
|
13
|
+
"last_freshness_check": "2024-07-10T17:16:08.727121+00:00"
|
14
14
|
},
|
15
15
|
"iter": {
|
16
16
|
"type": "season",
|
17
17
|
"start": 2016
|
18
18
|
},
|
19
|
-
"assignments": [
|
19
|
+
"assignments": [
|
20
|
+
"fastr_team_id_repl"
|
21
|
+
],
|
20
22
|
"map": {
|
23
|
+
"nflverse_game_id": "object",
|
21
24
|
"old_game_id": "int32",
|
22
25
|
"play_id": "int32",
|
23
26
|
"possession_team": "object",
|
@@ -35,7 +38,7 @@
|
|
35
38
|
"time_to_throw": "float32",
|
36
39
|
"was_pressure": "object",
|
37
40
|
"route": "object",
|
38
|
-
"defense_man_zone_type": "
|
39
|
-
"defense_coverage_type": "
|
41
|
+
"defense_man_zone_type": "object",
|
42
|
+
"defense_coverage_type": "object"
|
40
43
|
}
|
41
44
|
}
|
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"name": "pbp",
|
3
3
|
"description": "nflfastR play-by-play",
|
4
|
-
"last_local_update": "
|
4
|
+
"last_local_update": "2024-07-07T23:37:14.767747",
|
5
5
|
"download_url": "https://github.com/nflverse/nflverse-data/releases/download/pbp/play_by_play_{0}.csv.gz",
|
6
6
|
"compression": "gzip",
|
7
7
|
"engine": "c",
|
@@ -10,14 +10,16 @@
|
|
10
10
|
"gh_api_endpoint": "https://api.github.com/repos/nflverse/nflverse-data/releases/tags",
|
11
11
|
"gh_release_tag": "pbp",
|
12
12
|
"sla_seconds": 900,
|
13
|
-
"last_freshness_check": "
|
13
|
+
"last_freshness_check": "2024-07-10T17:15:32.328227+00:00"
|
14
14
|
},
|
15
15
|
"iter": {
|
16
16
|
"type": "season",
|
17
17
|
"start": 1999
|
18
18
|
},
|
19
19
|
"assignments": [
|
20
|
-
"
|
20
|
+
"fastr_team_id_repl",
|
21
|
+
"penalty_formatting",
|
22
|
+
"desc_based_plays"
|
21
23
|
],
|
22
24
|
"map": {
|
23
25
|
"play_id": "int32",
|
@@ -0,0 +1,77 @@
|
|
1
|
+
{
|
2
|
+
"name": "player_stats",
|
3
|
+
"description": "nflfastR player stats",
|
4
|
+
"last_local_update": "2024-07-07T23:37:18.361644",
|
5
|
+
"download_url": "https://github.com/nflverse/nflverse-data/releases/download/player_stats/player_stats.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": "2024-07-10T17:16:05.954026+00:00"
|
14
|
+
},
|
15
|
+
"iter": {
|
16
|
+
"type": null,
|
17
|
+
"start": null
|
18
|
+
},
|
19
|
+
"assignments": [
|
20
|
+
"fastr_team_id_repl"
|
21
|
+
],
|
22
|
+
"map": {
|
23
|
+
"player_id": "object",
|
24
|
+
"player_name": "object",
|
25
|
+
"player_display_name": "object",
|
26
|
+
"position": "object",
|
27
|
+
"position_group": "object",
|
28
|
+
"headshot_url": "object",
|
29
|
+
"recent_team": "object",
|
30
|
+
"season": "int32",
|
31
|
+
"week": "int32",
|
32
|
+
"season_type": "object",
|
33
|
+
"opponent_team": "object",
|
34
|
+
"completions": "int32",
|
35
|
+
"attempts": "int32",
|
36
|
+
"passing_yards": "int32",
|
37
|
+
"passing_tds": "int32",
|
38
|
+
"interceptions": "int32",
|
39
|
+
"sacks": "int32",
|
40
|
+
"sack_yards": "int32",
|
41
|
+
"sack_fumbles": "int32",
|
42
|
+
"sack_fumbles_lost": "int32",
|
43
|
+
"passing_air_yards": "int32",
|
44
|
+
"passing_yards_after_catch": "int32",
|
45
|
+
"passing_first_downs": "int32",
|
46
|
+
"passing_epa": "float32",
|
47
|
+
"passing_2pt_conversions": "int32",
|
48
|
+
"pacr": "float32",
|
49
|
+
"dakota": "float32",
|
50
|
+
"carries": "int32",
|
51
|
+
"rushing_yards": "int32",
|
52
|
+
"rushing_tds": "int32",
|
53
|
+
"rushing_fumbles": "int32",
|
54
|
+
"rushing_fumbles_lost": "int32",
|
55
|
+
"rushing_first_downs": "int32",
|
56
|
+
"rushing_epa": "float32",
|
57
|
+
"rushing_2pt_conversions": "int32",
|
58
|
+
"receptions": "int32",
|
59
|
+
"targets": "int32",
|
60
|
+
"receiving_yards": "int32",
|
61
|
+
"receiving_tds": "int32",
|
62
|
+
"receiving_fumbles": "int32",
|
63
|
+
"receiving_fumbles_lost": "int32",
|
64
|
+
"receiving_air_yards": "int32",
|
65
|
+
"receiving_yards_after_catch": "int32",
|
66
|
+
"receiving_first_downs": "int32",
|
67
|
+
"receiving_epa": "float32",
|
68
|
+
"receiving_2pt_conversions": "int32",
|
69
|
+
"racr": "float32",
|
70
|
+
"target_share": "float32",
|
71
|
+
"air_yards_share": "float32",
|
72
|
+
"wopr": "float32",
|
73
|
+
"special_teams_tds": "int32",
|
74
|
+
"fantasy_points": "float32",
|
75
|
+
"fantasy_points_ppr": "float32"
|
76
|
+
}
|
77
|
+
}
|