Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
raw_response_data = [
{data_key_list[i][0]: raw_response_data[data_key_list[i][0]]},
{data_key_list[i][1]: raw_response_data[data_key_list[i][1]]}
]
else:
raw_response_data = raw_response_data.get(data_key_list[i])
if raw_response_data:
logger.debug("Response (Yahoo fantasy data extracted from: {}): {}".format(data_key_list,
raw_response_data))
else:
logger.error("NO DATA FOUND WHEN ATTEMPTING EXTRACTION FROM FIELDS {}".format(data_key_list))
sys.exit()
# unpack, parse, and assign data types to all retrieved data content
unpacked = unpack_data(raw_response_data, YahooFantasyObject)
logger.debug(
"Unpacked and parsed JSON (Yahoo fantasy data wth parent type: {}):\n{}".format(
data_type_class, unpacked))
self.executed_queries.append({
"url": response.url,
"response_status_code": response.status_code,
"response": response
})
# cast highest level of data to type corresponding to query (if type exists)
query_data = data_type_class(unpacked) if data_type_class else unpacked
if self.all_output_as_json:
return json.dumps(query_data, indent=2, default=complex_json_handler, ensure_ascii=False)
else:
return query_data
# print("~" * 100)
# extract data from "fantasy_content" field if it exists
if raw_response_data:
logger.debug("Data fetched with query URL: {}".format(response.url))
logger.debug("Response (Yahoo fantasy data extracted from: \"fantasy_content\"): {}".format(
raw_response_data))
else:
logger.error("NO DATA FOUND WHEN ATTEMPTING EXTRACTION FROM FIELD \"fantasy_content\"")
sys.exit()
# iterate through list of data keys and drill down to final desired data field
for i in range(len(data_key_list)):
if isinstance(raw_response_data, list):
if isinstance(data_key_list[i], list):
reformatted = reformat_json_list(raw_response_data)
raw_response_data = [
{data_key_list[i][0]: reformatted[data_key_list[i][0]]},
{data_key_list[i][1]: reformatted[data_key_list[i][1]]}
]
else:
raw_response_data = reformat_json_list(raw_response_data)[data_key_list[i]]
else:
if isinstance(data_key_list[i], list):
raw_response_data = [
{data_key_list[i][0]: raw_response_data[data_key_list[i][0]]},
{data_key_list[i][1]: raw_response_data[data_key_list[i][1]]}
]
else:
raw_response_data = raw_response_data.get(data_key_list[i])
if raw_response_data:
raw_response_data))
else:
logger.error("NO DATA FOUND WHEN ATTEMPTING EXTRACTION FROM FIELD \"fantasy_content\"")
sys.exit()
# iterate through list of data keys and drill down to final desired data field
for i in range(len(data_key_list)):
if isinstance(raw_response_data, list):
if isinstance(data_key_list[i], list):
reformatted = reformat_json_list(raw_response_data)
raw_response_data = [
{data_key_list[i][0]: reformatted[data_key_list[i][0]]},
{data_key_list[i][1]: reformatted[data_key_list[i][1]]}
]
else:
raw_response_data = reformat_json_list(raw_response_data)[data_key_list[i]]
else:
if isinstance(data_key_list[i], list):
raw_response_data = [
{data_key_list[i][0]: raw_response_data[data_key_list[i][0]]},
{data_key_list[i][1]: raw_response_data[data_key_list[i][1]]}
]
else:
raw_response_data = raw_response_data.get(data_key_list[i])
if raw_response_data:
logger.debug("Response (Yahoo fantasy data extracted from: {}): {}".format(data_key_list,
raw_response_data))
else:
logger.error("NO DATA FOUND WHEN ATTEMPTING EXTRACTION FROM FIELDS {}".format(data_key_list))
sys.exit()
self.type = self.extracted_data.get("type", "")
self.url = self.extracted_data.get("url", "")
class GameWeek(YahooFantasyObject):
"""Yahoo fantasy object for "game_week" data key.
"""
def __init__(self, extracted_data):
YahooFantasyObject.__init__(self, extracted_data)
self.display_name = self.extracted_data.get("display_name", "")
self.end = self.extracted_data.get("end", "")
self.start = self.extracted_data.get("start", "")
self.week = self.extracted_data.get("week", "")
class PositionType(YahooFantasyObject):
"""Yahoo fantasy object for "position_type" data key.
"""
def __init__(self, extracted_data):
YahooFantasyObject.__init__(self, extracted_data)
self.type = self.extracted_data.get("type", "")
self.display_name = self.extracted_data.get("display_name", "")
class League(YahooFantasyObject):
"""Yahoo fantasy object for "league" data key.
"""
def __init__(self, extracted_data):
YahooFantasyObject.__init__(self, extracted_data)
self.allow_add_to_dl_extra_pos = self.extracted_data.get("allow_add_to_dl_extra_pos", "")
self.current_week = self.extracted_data.get("current_week", "")
self.draft_results = self.extracted_data.get("draft_results", "")
self.waiver_priority = self.extracted_data.get("waiver_priority", "")
self.win_probability = self.extracted_data.get("win_probability", "")
class DraftResult(YahooFantasyObject):
"""Yahoo fantasy object for "draft_result" data key.
"""
def __init__(self, extracted_data):
YahooFantasyObject.__init__(self, extracted_data)
self.pick = self.extracted_data.get("pick", "")
self.round = self.extracted_data.get("round", "")
self.team_key = self.extracted_data.get("team_key", "")
self.player_key = self.extracted_data.get("player_key", "")
class Standings(YahooFantasyObject):
"""Yahoo fantasy object for "standings" data key.
"""
def __init__(self, extracted_data):
YahooFantasyObject.__init__(self, extracted_data)
self.teams = self.extracted_data.get("teams", "")
class Transaction(YahooFantasyObject):
"""Yahoo fantasy object for "transaction" data key.
"""
def __init__(self, extracted_data):
YahooFantasyObject.__init__(self, extracted_data)
self.players = self.extracted_data.get("players", "")
self.status = self.extracted_data.get("status", "")
self.timestamp = self.extracted_data.get("timestamp", "")
self.tradee_team_key = self.extracted_data.get("tradee_team_key", "")
self.url = self.extracted_data.get("url", "")
class Name(YahooFantasyObject):
"""Yahoo fantasy object for "name" data key.
"""
def __init__(self, extracted_data):
YahooFantasyObject.__init__(self, extracted_data)
self.ascii_first = self.extracted_data.get("ascii_first", "")
self.ascii_last = self.extracted_data.get("ascii_last", "")
self.first = self.extracted_data.get("first", "")
self.full = self.extracted_data.get("full", "")
self.last = self.extracted_data.get("last", "")
class Ownership(YahooFantasyObject):
"""Yahoo fantasy object for "ownership" data key.
"""
def __init__(self, extracted_data):
YahooFantasyObject.__init__(self, extracted_data)
self.ownership_type = self.extracted_data.get("ownership_type", "")
self.owner_team_key = self.extracted_data.get("owner_team_key", "")
self.owner_team_name = self.extracted_data.get("owner_team_name", "")
self.teams = self.extracted_data.get("teams", "")
class PercentOwned(YahooFantasyObject):
"""Yahoo fantasy object for "percent_owned" data key.
"""
def __init__(self, extracted_data):
YahooFantasyObject.__init__(self, extracted_data)
self.coverage_type = self.extracted_data.get("coverage_type", "")
self.week = self.extracted_data.get("week", "")
self.week_end = self.extracted_data.get("week_end", "")
self.week_start = self.extracted_data.get("week_start", "")
self.winner_team_key = self.extracted_data.get("winner_team_key", "")
class MatchupGrade(YahooFantasyObject):
"""Yahoo fantasy object for "matchup_grade" data key.
"""
def __init__(self, extracted_data):
YahooFantasyObject.__init__(self, extracted_data)
self.grade = self.extracted_data.get("grade", "")
self.team_key = self.extracted_data.get("team_key", "")
class Player(YahooFantasyObject):
"""Yahoo fantasy object for "player" data key.
"""
def __init__(self, extracted_data):
YahooFantasyObject.__init__(self, extracted_data)
self.bye_weeks = self.extracted_data.get("bye_weeks", ByeWeeks({})) # type: ByeWeeks
self.bye = self.bye_weeks.week
self.display_position = self.extracted_data.get("display_position", "")
self.draft_analysis = self.extracted_data.get("draft_analysis", DraftAnalysis({})) # type: DraftAnalysis
self.average_draft_pick = self.draft_analysis.average_pick
self.average_draft_round = self.draft_analysis.average_round
self.average_draft_cost = self.draft_analysis.average_cost
self.percent_drafted = self.draft_analysis.percent_drafted
self.editorial_player_key = self.extracted_data.get("editorial_player_key", "")
self.editorial_team_abbr = self.extracted_data.get("editorial_team_abbr", "")
self.editorial_team_full_name = self.extracted_data.get("editorial_team_full_name", "")
self.editorial_team_key = self.extracted_data.get("editorial_team_key", "")
self.season = self.extracted_data.get("season", "")
self.total = self.extracted_data.get("total", 0)
self.week = self.extracted_data.get("week", "")
class TeamProjectedPoints(YahooFantasyObject):
"""Yahoo fantasy object for "team_projected_points" data key.
"""
def __init__(self, extracted_data):
YahooFantasyObject.__init__(self, extracted_data)
self.coverage_type = self.extracted_data.get("coverage_type", "")
self.total = self.extracted_data.get("total", 0)
self.week = self.extracted_data.get("week", "")
class TeamStandings(YahooFantasyObject):
"""Yahoo fantasy object for "team_standings" data key.
"""
def __init__(self, extracted_data):
YahooFantasyObject.__init__(self, extracted_data)
self.divisional_outcome_totals = self.extracted_data.get(
"divisional_outcome_totals", DivisionalOutcomeTotals({})) # type: DivisionalOutcomeTotals
self.outcome_totals = self.extracted_data.get("outcome_totals", OutcomeTotals({})) # type: OutcomeTotals
self.playoff_seed = self.extracted_data.get("playoff_seed", 0)
self.points_against = float(self.extracted_data.get("points_against", 0) or 0)
self.points_for = float(self.extracted_data.get("points_for", 0) or 0)
self.rank = self.extracted_data.get("rank", 0)
self.streak = self.extracted_data.get("streak", Streak({})) # type: Streak
class DivisionalOutcomeTotals(YahooFantasyObject):
"""Yahoo fantasy object for "divisional_outcome_totals" data key.
def __init__(self, extracted_data):
YahooFantasyObject.__init__(self, extracted_data)
self.coverage_type = self.extracted_data.get("coverage_type", "")
self.is_flex = self.extracted_data.get("is_flex", "")
self.position = self.extracted_data.get("position", "")
self.week = self.extracted_data.get("week", "")
def __init__(self, extracted_data):
YahooFantasyObject.__init__(self, extracted_data)
self.type = self.extracted_data.get("type", "")
self.value = self.extracted_data.get("value", "")
class Scoreboard(YahooFantasyObject):
"""Yahoo fantasy object for "scoreboard" data key.
"""
def __init__(self, extracted_data):
YahooFantasyObject.__init__(self, extracted_data)
self.week = self.extracted_data.get("week", "")
self.matchups = self.extracted_data.get("matchups", [])
class Settings(YahooFantasyObject):
"""Yahoo fantasy object for "settings" data key.
"""
def __init__(self, extracted_data):
YahooFantasyObject.__init__(self, extracted_data)
self.cant_cut_list = self.extracted_data.get("cant_cut_list", "")
self.divisions = self.extracted_data.get("divisions", "")
self.draft_pick_time = self.extracted_data.get("draft_pick_time", "")
self.draft_time = self.extracted_data.get("draft_time", "")
self.draft_type = self.extracted_data.get("draft_type", "")
self.has_multiweek_championship = self.extracted_data.get("has_multiweek_championship", "")
self.has_playoff_consolation_games = self.extracted_data.get("has_playoff_consolation_games", "")
self.is_auction_draft = self.extracted_data.get("is_auction_draft", "")
self.max_teams = self.extracted_data.get("max_teams", "")
self.num_playoff_consolation_teams = self.extracted_data.get("num_playoff_consolation_teams", "")
self.num_playoff_teams = self.extracted_data.get("num_playoff_teams", "")
self.pickem_enabled = self.extracted_data.get("pickem_enabled", "")