Skip to main content

GM standings and fixtures parser

Project description

# unicorner

GM season standings and fixtures parser as a reusable library.

This library can change at any time. Same applies to GM’s actual websites. Use at your own risk.

### Install

pip install unicorner

### Usage

#### Parsing Standings and Fixtures Pages

Standings page has to parsed before fixtures can be parsed.

from unicorner import SeasonParse

sp = SeasonParse() sp.parse_standings_page(path=”standings.html”) sp.parse_fixtures_page(path=”fixtures.html”) print(sp.game_days[0])

#### Extracting to CSV

python -m unicorner extract_all –help

### GM Data Model Issues

  • GM does not store the historical team names - only the latest version of the name is preserved.

  • In the past, GM would reuse the same team object for unrelated groups of people so you would have one season TeamId=23 point to to Team A and the next season, if all the people of Team A left, TeamId=23 could point to another group of players Team B. You would see this in team history page which would show past games that the new group of players had never heard of.

Both of the above are caused by not having a season-team model.

We work around this by first introducing the concept of Franchise - the identity of a group of players playing together that spans over more than one season. Each franchise should be given an ID which is independent from GM IDs. These can be maintained in a franchises.csv file.

Then, for each season that a franchise joins, we create a separate Team object whose ID is a concatenation of zero-padded GM season’s ID and team ID. For example, team identified by GM with TeamId=23 playing in season SeasonId=101 gets ID 0101.23

Each such team can have its own name so every season a franchise can use a different name. The mapping from teams to franchises is maintained in a franchise_seasons.csv file.

Examples of both files can be found under tests/data/

Project details


Download files

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

Source Distribution

unicorner-0.2.4.tar.gz (24.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

unicorner-0.2.4-py2.py3-none-any.whl (10.8 kB view details)

Uploaded Python 2Python 3

File details

Details for the file unicorner-0.2.4.tar.gz.

File metadata

  • Download URL: unicorner-0.2.4.tar.gz
  • Upload date:
  • Size: 24.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.14.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.40.0 CPython/3.7.5

File hashes

Hashes for unicorner-0.2.4.tar.gz
Algorithm Hash digest
SHA256 27008aae0603c905ed26ec324fc80a3b846a5dc977fdf2a03dec6bb5ba36abf3
MD5 407c8b677c8568cca791d694dabdd947
BLAKE2b-256 3baa50cc1f43f1963a8b02e8210c4c4cf422d960a9e1900d264388d2f78fa173

See more details on using hashes here.

File details

Details for the file unicorner-0.2.4-py2.py3-none-any.whl.

File metadata

  • Download URL: unicorner-0.2.4-py2.py3-none-any.whl
  • Upload date:
  • Size: 10.8 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.14.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.40.0 CPython/3.7.5

File hashes

Hashes for unicorner-0.2.4-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 ffd7e23037db51ebd00f0f5e15282ddf0a5133df54d88a5779d3291e8dc62eaf
MD5 00e265cf6d09b34247adc99345557578
BLAKE2b-256 59e154a9ef4a32f3f32f70d2554ff18a62a5e42280beac96361970098d85e4c7

See more details on using hashes here.

Supported by

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