Skip to main content

Easily represent, progress, and visualize Bracket-style Tournaments

Project description

Tourneyket

Package to let you easily represent and progress Bracket-style single elimination Tournaments, allowing you to focus on matchup logic and analysis without worrying about the boilerplate. Supports 2, 4, 8, 16, 32, 64...n^2 starting teams.

The Bracket object accepts an initial bracket and a function to select matchup winner. Automatically fills out the rest of the bracket using whatever logic you provide, and implements a method to print out the final bracket to console in a nice, bracket shaped format.

Example:

from tourneyket import Bracket

# List of competitors. 1 plays 2, 3 plays 4... and so on. Likewise, inner of 1v2 plays winner of 3v4, etc.
my_tournament = [{"name": "Kitten State", "power_level": 9001},
                {"name": "Bunnyville", "power_level": 6000},
                {"name": "Muscle Hamsters", "power_level": 2},
                {"name": "Doggy Dog World", "power_level": 8500},
                {"name": "Horsies", "power_level": 8934},
                {"name": "Lizard Wizards", "power_level": 7800},
                {"name": "Ole Penguin", "power_level": 8300},
                {"name": "Pigchamps", "power_level": 7500}]

def pick_by_power_level(a, b):
    if a["power_level"] > b["power_level"]:
        return a 
    else: 
        return b

MyBracket = Bracket(my_tournament)
# play_out_bracket accepts an optional pick_winner parameter. 
# Default just picks a random winner in each matchup.
MyBracket.play_out_bracket(pick_winner=pick_by_power_level)
# Optional formatting= parameter lets you specify what to print instead of just printing the whole dictionary
# Can also specify spacing for how it is printed. Default is 20.
MyBracket.print_bracket(formatting=lambda t: t["name"], spaces=20)

Which outputs:


Kitten State
 |----------------- Kitten State
Bunnyville
                     |----------------- Kitten State
Muscle Hamsters
 |----------------- Doggy Dog World
Doggy Dog World
                                         |----------------- Kitten State
Horsies
 |----------------- Horsies
Lizard Wizards
                     |----------------- Horsies
Ole Penguin
 |----------------- Ole Penguin
Pigchamps

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

tourneyket-0.1.5.tar.gz (5.5 kB view details)

Uploaded Source

Built Distribution

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

tourneyket-0.1.5-py3-none-any.whl (5.1 kB view details)

Uploaded Python 3

File details

Details for the file tourneyket-0.1.5.tar.gz.

File metadata

  • Download URL: tourneyket-0.1.5.tar.gz
  • Upload date:
  • Size: 5.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.13.2

File hashes

Hashes for tourneyket-0.1.5.tar.gz
Algorithm Hash digest
SHA256 6a5267336bd47c02d09b8e6ecf1092c89a58be5130040900da570e494e88f60d
MD5 9fb394e554a45a3091baf36bebbe5650
BLAKE2b-256 32999494a6061af637f03fefd6a5d5c457f12ba674e1cb54f25bb9d02668ee7a

See more details on using hashes here.

File details

Details for the file tourneyket-0.1.5-py3-none-any.whl.

File metadata

  • Download URL: tourneyket-0.1.5-py3-none-any.whl
  • Upload date:
  • Size: 5.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.13.2

File hashes

Hashes for tourneyket-0.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 b2fb14b49483ae751a54bb9835ba22f5d6de2e58634b4047f963e9a4cafa62b5
MD5 d5325ca21b38d53eb2672518d50b640f
BLAKE2b-256 570aef4457f3f3dcec5634d5a739658d4b5ad192c81157172252340821e43c78

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