Skip to main content

Interface for obtaining data about KHL teams

Project description

This package is the interface to the KHL teams data.

Available data:

  • information about players and stats

  • information about matches

  • team statistics

  • meta data

There is possibility to generate ics file from specific events. The title of teams and parameters statistics are displayed in Russian language only.

Usage

import datetime

from khl_team import KHLTeam, KHLEvent

team = KHLTeam('Локомотив')

"""
The title of the teams:

Авангард, Автомобилист, Адмирал, Ак Барс, Амур, Барыс, Витязь,
Динамо М, Динамо Мн, Динамо Р, Йокерит, Куньлунь Ред Стар, Лада,
Локомотив, Медвешчак, Металлург Мг, Металлург Нк, Нефтехимик,
Салават Юлаев, Северсталь, Сибирь, СКА, Слован, Спартак, Торпедо,
Трактор, ХК Сочи, ЦСКА, Югра.
"""

# Printing all data:
for attr in team.__dict__:
    print('%s : %s\n' % (attr, team.__dict__[attr]))

"""
sponsor :  ОАО "РЖД"

matches : [
    KHLEvent(Амур - Локомотив, 2016-08-24 12:30:00), KHLEvent(Адмирал - Локомотив, 2016-08-26 11:30:00),
    KHLEvent(Локомотив - Динамо М, 2016-08-29 19:00:00), KHLEvent(Локомотив - Авангард, 2016-08-31 19:00:00),
    KHLEvent(Локомотив - Металлург Нк, 2016-09-02 19:00:00), KHLEvent(Локомотив - Сибирь, 2016-09-05 19:00:00),
    KHLEvent(Лада - Локомотив, 2016-09-08 18:00:00), KHLEvent(Ак Барс - Локомотив, 2016-09-12 17:00:00),
    KHLEvent(Нефтехимик - Локомотив, 2016-09-14 19:30:00), KHLEvent(Локомотив - Торпедо, 2016-09-16 19:30:00),
    KHLEvent(Локомотив - Торпедо, 2016-09-18 17:30:00), KHLEvent(Локомотив - Спартак, 2016-09-20 19:00:00),
    KHLEvent(ХК Сочи - Локомотив, 2016-09-23 19:30:00), KHLEvent(Динамо М - Локомотив, 2016-09-26 19:30:00),
    ...
]

players : [
    KHLPlayer(Павел Евгеньевич Кудрявцев, 84), KHLPlayer(Павел Дмитриевич Красковский, 63),
    KHLPlayer(Денис Андреевич Осипов, 66), KHLPlayer(Роман Сергеевич Манухов, 26),
    KHLPlayer(Егор Алексеевич Коршков, 96), KHLPlayer(Станислав Михайлович Чистов, 41),
    KHLPlayer(Рушан Русланович Рафиков, 87), KHLPlayer(Даниил Юрьевич Апальков, 40),
    KHLPlayer(Егор Валерьевич Аверин, 29), KHLPlayer(Максим  Тальбо, 25),
    KHLPlayer(Дмитрий Евгеньевич Лугин, 19), KHLPlayer(Артём Сергеевич Ильенко, 34),
    KHLPlayer(Патрик  Херсли, 6), KHLPlayer(Андрей Вячеславович Локтионов, 90),
    KHLPlayer(Якуб  Накладал, 22), KHLPlayer(Денис Александрович Мосалёв, 54), KHLPlayer(Брэндон  Козун, 15),
    KHLPlayer(Егор Андреевич Фатеев, 8), KHLPlayer(Владислав Андреевич Гавриков, 4),
    KHLPlayer(Михаил Валерьевич Пашнин, 33),
     ...
]

# Team stats is divided into three parts: the first tuple is total stats, second - home, a third - guest.
# Percentage values are the average stat value.
stats : {
    'Выигранные вбрасывания (соперник) (% от возможных)': ('48.3%', '46.3%', '50.1%'),
    'Сыгранные матчи': ('57', '27', '30'),
    'Вбрасывания': ('3236', '1491', '1745'),
    'Разность шайб': [('28', '0.49'), ('20', '0.74'), ('8', '0.27')],
    'Штрафное время': [('626', '10.98'), ('276', '10.22'), ('350', '11.67')],
    'Пропущенные шайбы': [('122', '2.14'), ('55', '2.04'), ('67', '2.23')],
    'Поражения': [('17', '30%'), ('6', '22%'), ('11', '37%')],
    'Буллиты (назначенные / забитые)': [('1 / 1', '100%'), ('1 / 1', '100%'), ('0 / 0', '0%')],
    'Победы по буллитам': [('3', '5%'), ('0', '0%'), ('3', '10%')],
    'Реализация бросков (соперник)': ('8.4%', '8.3%', '8.5%'),
    'Реализация бросков': ('8.3%', '8.7%', '8%'),
    'Броски по воротам': [('1809', '31.74'), ('866', '32.07'), ('943', '31.43')],
    'Буллиты (соперник) (назначенные / забитые)': [('1 / 0', '0%'), ('1 / 0', '0%'), ('0 / 0', '0%')],
    'Заброшенные шайбы': [('150', '2.63'), ('75', '2.78'), ('75', '2.5')],
    'Победы': [('30', '53%'), ('18', '67%'), ('12', '40%')],
    'Поражения в овертайме': [('3', '5%'), ('2', '7%'), ('1', '3%')],
    'Победы в овертайме': [('1', '2%'), ('1', '4%'), ('0', '0%')],
    'Ничьи': [('0', '0%'), ('0', '0%'), ('0', '0%')],
    'Выигранные вбрасывания (% от возможных)': ('51.7%', '53.7%', '49.9%'),
    'Поражения по буллитам': [('3', '5%'), ('0', '0%'), ('3', '10%')],
    'Набранные очки': [('104', '61%'), ('58', '72%'), ('46', '51%')],
    'Броски по воротам (соперник)': [('1449', '25.42'), ('662', '24.52'), ('787', '26.23')],
    'Зрители': [('413365', '7252'), ('225834', '8364'), ('187531', '6251')]}

president :  Юрий Николаевич Яковлев

arena : Арена-2000-Локомотив

location : Ярославль

head_coach : Алексей Николаевич Кудашов

team : Локомотив

site : http://hclokomotiv.ru
"""

# Match filter.

# By opponent:
matches = team.get_match(opponent='СКА', played=True)
print(matches)

# Output:
# [KHLEvent(Локомотив - СКА, 2016-11-13 17:00:00), KHLEvent(СКА - Локомотив, 2016-12-29 19:30:00)]

# By result (won/lose):
matches = team.get_match(result='won', played=True)

# played parameter specifies whether to include games played.

# Player filter.

# By number:
player = team.get_player(number='27')
print(player)

# Output:
# [KHLPlayer(Стаффан  Кронвалль, 27)]

# By last name:
player = team.get_player(l_name='Кронвалль')

# By role:
players = team.get_player(role='вратарь')

# Generation of the ics file:
matches = team.get_match(played=False)
duration = datetime.timedelta(hours=3)
remind = datetime.timedelta(minutes=15)

ics_data = KHLEvent.gen_ics(
    matches,
    title="HockeyEvent: %s - %s",  # Will be inserted title teams.
    duration=duration,
    remind=remind
)

with open('hockey_events.ics', 'wb') as ics_file:
    ics_file.write(ics_data)

Project details


Release history Release notifications | RSS feed

This version

1.0

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

khl_team-1.0.zip (18.2 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page