Source code for fpl.models.team
from ..constants import API_URLS
from ..utils import fetch
from .player import Player
[docs]class Team():
"""A class representing a real team in the Fantasy Premier League.
Basic usage::
from fpl import FPL
import aiohttp
import asyncio
>>>
async def main():
async with aiohttp.ClientSession() as session:
fpl = FPL(session)
team = await fpl.get_team(14)
print(team)
...
# Python 3.7+
asyncio.run(main())
...
# Python 3.6
loop = asyncio.get_event_loop()
loop.run_until_complete(main())
Man Utd
"""
def __init__(self, team_information, session):
self._session = session
for k, v in team_information.items():
setattr(self, k, v)
[docs] async def get_players(self, return_json=False):
"""Returns a list containing the players who play for the team. Does
not include the player's summary.
:param return_json: (optional) Boolean. If ``True`` returns a list of
dicts, if ``False`` returns a list of Player objects. Defaults to
``False``.
:type return_json: bool
:rtype: list
"""
team_players = getattr(self, "players", [])
if not team_players:
players = await fetch(self._session, API_URLS["static"])
players = players["elements"]
team_players = [player for player in players
if player["team"] == self.id]
self.players = team_players
if return_json:
return team_players
return [Player(player, self._session) for player in team_players]
[docs] async def get_fixtures(self, return_json=False):
"""Returns a list containing the team's fixtures.
:param return_json: (optional) Boolean. If ``True`` returns a list of
dicts, if ``False`` returns a list of TeamFixture objects.
Defaults to ``False``.
:type return_json: bool
:rtype: list
"""
fixtures = getattr(self, "fixtures", [])
if fixtures:
return fixtures
players = getattr(self, "players", [])
if not players:
await self.get_players()
player = self.players[0]
url = API_URLS["player"].format(player["id"])
player_summary = await fetch(self._session, url)
self.fixtures = player_summary["fixtures"]
if return_json:
return self.fixtures
# TODO: create TeamFixture
return self.fixtures
def __str__(self):
return self.name