Skip to main content

tucoopy-py

Python package for cooperative game theory (TU) algorithms and for generating animation specs (JSON) consumed by the JS renderer.

Optional speedups:

  • pip install "tucoopy[fast]" (uses NumPy for small linear solves in geometry helpers)
  • pip install "tucoopy[lp]" (enables LP-based methods like least-core / nucleolus via SciPy)

Optional visualization:

  • pip install "tucoopy[viz]" for Matplotlib visualization (2 or 3 players only)

Optional extras (feature -> extra)

Feature Extra Notes
LP-backed methods lp SciPy backend (recommended)
LP-backed methods (fallback) lp_alt PuLP backend
Speedups fast NumPy helper routines
Static visualization viz Matplotlib (2 or 3 players only)
Dev tools dev pytest + mypy + ruff
Docs build docs mkdocs + mkdocstrings

Package layout

  • tucoopy.base: game/coalition primitives (bitmask-based)
  • tucoopy.properties: game properties / recognizers
  • tucoopy.games: classic games (glove, weighted voting, airport, bankruptcy, savings, unanimity, apex, ...)
  • tucoopy.geometry: geometry for visualization (core vertices, ...)
  • tucoopy.solutions: solution concepts (Shapley, Banzhaf, ...)
  • tucoopy.power: voting/simple-game power indices
  • tucoopy.transforms: transforms/representations (Harsanyi dividends, ...)
  • tucoopy.viz: optional visualization with Matplotlib (games with 2 or 3 players only)
  • tucoopy.io: JSON + animation spec helpers
  • tucoopy.backends: adapters for optional dependencies (LP, NumPy, ...)

Docs (in this repo): see packages/tucoopy-py/docs/en/index.md (EN) and packages/tucoopy-py/docs/pt/index.md (PT). Examples (runnable scripts): see packages/tucoopy-py/examples/README.md.

Install

pip install tucoopy

Optional extras:

  • pip install "tucoopy[lp]" for LP-based methods (least-core / nucleolus / modiclus / balancedness) using SciPy (recommended)
  • pip install "tucoopy[lp_alt]" for LP-based methods (least-core / nucleolus / modiclus / balancedness) using PuLP (fallback)
  • pip install "tucoopy[fast]" for NumPy speedups (kernel / prekernel and helpers)
  • pip install "tucoopy[viz]" for Matplotlib visualization (2 or 3 players only)

Quick example (generate an animation spec)

from tucoopy import Game
from tucoopy.solutions import shapley_value
from tucoopy.io.animation_spec import build_animation_spec

game = Game.from_coalitions(
    n_players=3,
    values={
        (): 0.0,
        (0,): 1.0,
        (1,): 1.2,
        (2,): 0.8,
        (0, 1): 2.8,
        (0, 2): 2.2,
        (1, 2): 2.0,
        (0, 1, 2): 4.0,
    },
    player_labels=["P1", "P2", "P3"],
)

phi = shapley_value(game)
spec = build_animation_spec(
    game,
    series_id="shapley",
    allocations=[phi] * 60,
    dt=1 / 30,
    series_description="Shapley value (static).",
    include_analysis=True,
)
print(spec.to_json())

Nucleolus / least-core (LP)

LP-based methods are behind the optional lp extra:

from tucoopy import Game
from tucoopy.solutions import least_core, nucleolus

g = Game.from_coalitions(
    n_players=3,
    values={
        (): 0.0,
        (0,): 1.0,
        (1,): 1.2,
        (2,): 0.8,
        (0, 1): 2.8,
        (0, 2): 2.2,
        (1, 2): 2.0,
        (0, 1, 2): 4.0,
    },
)

lc = least_core(g)
nu = nucleolus(g)
print(lc.epsilon, lc.x)
print(nu.levels, nu.x)

Core non-emptiness certificate (LP)

Bondareva–Shapley balancedness check (behind lp):

from tucoopy import Game
from tucoopy.properties.balancedness import balancedness_check

g = Game.from_coalitions(
    n_players=3,
    values={
        (): 0.0,
        (0,): 0.0,
        (1,): 0.0,
        (2,): 0.0,
        (0, 1): 1.0,
        (0, 2): 1.0,
        (1, 2): 1.0,
        (0, 1, 2): 1.0,
    },
)

res = balancedness_check(g)
print(res.core_nonempty, res.objective, res.weights)

Schema (Python <-> JS contract)

  • Canonical schema: schema/tucoopy-animation.schema.json
  • Bundled schema (package data): packages/tucoopy-py/src/tucoopy/io/schemas/tucoopy-animation.schema.json

Metadata

Release files for tucoopy 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for tucoopy 0.1.0
File Size Uploaded
tucoopy-0.1.0.tar.gz 172.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for tucoopy 0.1.0
File Interpreter ABI Platform
tucoopy-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 400.7 kB

Release files / tucoopy-0.1.0.tar.gz

Download URL tucoopy-0.1.0.tar.gz
Size 172.8 kB
Tags Source
SHA-256 checksum
How to use checksums
aa4b5f5dc82bbeea0bdbe9030445bb07e7c06882e9671bd69507041e6fc4e087
BLAKE2b-256 checksum
How to use checksums
f598e2e13dfe7db1ef47759bff608fa52132c61e5fa374a4156bfbe370db9d22
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

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 Feb 4, 2026.

Transparency log

Release files / tucoopy-0.1.0-py3-none-any.whl

Download URL tucoopy-0.1.0-py3-none-any.whl
Size 227.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
11cda703278b45ba67e1b7dac5d02d430ae722278104b1899591d5f49e72f958
BLAKE2b-256 checksum
How to use checksums
b77087e027efd5f4a2e77922aa652e746c604a6eafd287391b5bfed0940fa4e2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

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 Feb 4, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page