Skip to main content

Easily represent, progress, and visualize Bracket-style Tournaments

Project description

Tourneyket

GitHub License Python Version from PEP 621 TOML PyPI - Version

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.

Installation:

Install from pip:

pip install Tourneyket 

Example:

from tourneyket import Bracket

# List of competitors. 1 plays 2, 3 plays 4... and so on. Likewise, winner 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-1.0.0.tar.gz (6.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-1.0.0-py3-none-any.whl (5.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: tourneyket-1.0.0.tar.gz
  • Upload date:
  • Size: 6.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for tourneyket-1.0.0.tar.gz
Algorithm Hash digest
SHA256 c5b3dd9edd40b451cbb2d58a8376d89be4139a0e8817912f4adda0889afd1b4f
MD5 07b4e09cb23febcbb6622b09d42a63a5
BLAKE2b-256 5a56080bc7a46fd8797de764d7b851fa640b7912d21d88471ceb5f86349a138b

See more details on using hashes here.

Provenance

The following attestation bundles were made for tourneyket-1.0.0.tar.gz:

Publisher: python-publish.yml on shoenot/tourneyket

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

  • Download URL: tourneyket-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 5.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for tourneyket-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 fea2f7356d448d0f0fa8ad806368528b85f7d928747a48d644a8f7e08b1b61e7
MD5 fa96547e57f4ce917a69826a4b333ea2
BLAKE2b-256 80494b254963ddfc579c9512ced12ccf3ae8f6276efc673a73642eb0f0a16d46

See more details on using hashes here.

Provenance

The following attestation bundles were made for tourneyket-1.0.0-py3-none-any.whl:

Publisher: python-publish.yml on shoenot/tourneyket

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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