Retrieve selected leagues from the datasource. Returns ------- pd.DataFrame
(self)
| 92 | raise ValueError(f"Invalid value for versions: {versions}") |
| 93 | |
| 94 | def read_leagues(self) -> pd.DataFrame: |
| 95 | """Retrieve selected leagues from the datasource. |
| 96 | |
| 97 | Returns |
| 98 | ------- |
| 99 | pd.DataFrame |
| 100 | """ |
| 101 | # read home page (overview) |
| 102 | filepath = self.data_dir / "leagues.json" |
| 103 | urlmask = SO_FIFA_API + "/api/league" |
| 104 | reader = self.get(urlmask, filepath) |
| 105 | response = json.load(reader) |
| 106 | |
| 107 | # extract league links |
| 108 | leagues = [] |
| 109 | for node in response["data"]: |
| 110 | for child in node["childs"]: |
| 111 | leagues.append( |
| 112 | { |
| 113 | "league_id": child["id"], |
| 114 | "league": f"[{child['nationName']}] {child['value']}", |
| 115 | } |
| 116 | ) |
| 117 | return ( |
| 118 | pd.DataFrame(leagues) |
| 119 | .pipe(self._translate_league) |
| 120 | .set_index("league") |
| 121 | .sort_index() |
| 122 | .loc[self._selected_leagues.keys()] |
| 123 | ) |
| 124 | |
| 125 | def read_versions(self, max_age: Union[int, timedelta] = 1) -> pd.DataFrame: |
| 126 | """Retrieve available FIFA releases and rating updates. |
no test coverage detected