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... 2^n 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
Metadata
Release files for Tourneyket 1.0.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| tourneyket-1.0.1.tar.gz | 6.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| tourneyket-1.0.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 11.8 kB
Release files / tourneyket-1.0.1.tar.gz
| Download URL | tourneyket-1.0.1.tar.gz |
|---|---|
| Size | 6.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
5da2530d6b63fec7bbb49e88999fb34a8d308baf25bbb4cf41e26171f1422546
|
|
BLAKE2b-256 checksum How to use checksums |
15e404956b85de99c2292ef20c90482a9c532a772f647e269db6c9f884ad50ac
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Mar 22, 2025.
Transparency logRelease files / tourneyket-1.0.1-py3-none-any.whl
| Download URL | tourneyket-1.0.1-py3-none-any.whl |
|---|---|
| Size | 5.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
6b19295815f0162109b9497e01c36151c8095987900537cb3d16c2b35e3ee275
|
|
BLAKE2b-256 checksum How to use checksums |
fe4b9d20574a10d920768548fcc8caa276faa9671f55fdef4ab0abeef12bf58f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Mar 22, 2025.
Transparency log