Skip to main content

High-performance C++/Python engine for a triangle puzzle game.

Project description

CI Status codecov PyPI version License: MIT Python Version

Triangle Engine (trianglengin) v2

trianglengin logo

Version 2 introduces a high-performance C++ core for the game logic.

This library provides the core components for a triangle puzzle game, suitable for reinforcement learning agents or other applications requiring a fast game engine. Interactive play/debug modes are included.

It encapsulates:

  1. Core Game Logic (C++): High-performance implementation of environment rules, state representation, actions, placement validation, and line clearing. (src/trianglengin/cpp/README.md)
  2. Python Interface: A Python GameState wrapper providing a user-friendly API to interact with the C++ core. (src/trianglengin/game_interface.py)
  3. Configuration (Python/Pydantic): Models for environment settings (EnvConfig). (src/trianglengin/config/README.md)
  4. Utilities (Python): General helpers, geometry functions, shared types. (src/trianglengin/utils/README.md)
  5. UI Components (Python/Pygame/Typer): Basic visualization, interaction handling, and CLI for interactive modes. (src/trianglengin/ui/README.md)

๐ŸŽฎ The Ultimate Triangle Puzzle Guide ๐Ÿงฉ

(Game rules remain the same)

(... Game rules section remains unchanged ...)


Purpose

The primary goal is to provide a self-contained, installable library with a high-performance C++ core and a Python interface for the triangle puzzle game. This allows different RL agent implementations or other applications to build upon a consistent and fast game backend. The interactive UI is included but only initialized when running the specific UI commands.

Installation

Prerequisites:

  • A C++ compiler supporting C++17 (e.g., GCC, Clang, MSVC).
  • CMake (version 3.14 or higher).
  • Python (>= 3.10) and Pip.
# For standard use (once published or built):
pip install trianglengin

# Building from source (requires compiler and CMake):
git clone https://github.com/lguibr/trianglengin.git
cd trianglengin
pip install .

(Note: pygame and typer will be installed as core dependencies).

Running Interactive Modes

After installing, you can run the interactive modes directly:

  • Play Mode:
    trianglengin play [--seed 42] [--log-level INFO]
    
  • Debug Mode:
    trianglengin debug [--seed 42] [--log-level DEBUG]
    

Local Development & Testing

These instructions are for developers contributing to trianglengin.

  1. Clone the Repository:

    git clone https://github.com/lguibr/trianglengin.git
    cd trianglengin
    
  2. Prerequisites: Ensure you have a C++17 compiler and CMake installed.

  3. Create and Activate Virtual Environment: (venv or conda)

    # Example using venv
    python -m venv venv
    source venv/bin/activate # or .\venv\Scripts\activate on Windows
    

    IMPORTANT: Ensure your virtual environment is activated.

  4. Install Build Dependencies: (Needed even for core dev)

    pip install pybind11>=2.10 cmake wheel
    
  5. Clean Previous Builds (Optional but Recommended):

    rm -rf build/ src/trianglengin.egg-info/ dist/ src/trianglengin/trianglengin_cpp.*.so src/trianglengin/trianglengin_cpp*.cpp
    
  6. Install in Editable Mode with Dev Dependencies:

    • Make sure your virtual environment is active!
    • Run from the project root directory:
      # Installs core, UI, and dev tools
      pip install -e '.[dev]'
      
      This command compiles the C++ extension and installs the Python package so changes are reflected immediately. It also installs development tools.
  7. Running Checks:

    • Make sure your virtual environment is active!
    • Tests & Coverage:
      pytest tests/ --cov=src/trianglengin --cov-report=xml
      
      (Coverage measures core Python code, excluding UI). To just run tests: pytest
    • Linting: ruff check .
    • Formatting: ruff format .
    • Type Checking: mypy src/trianglengin/ tests/
  8. Troubleshooting Build/Import Errors:

    • Ensure compiler and CMake are installed and in PATH.
    • Make sure the virtual environment is active before running pip install -e.
    • Clean previous builds (Step 5).
    • Check pyproject.toml and setup.py for correct configuration.
    • Verify Pybind11 version compatibility.

Project Structure (v2 - UI Included)

trianglengin/
โ”œโ”€โ”€ .github/workflows/      # GitHub Actions CI/CD
โ”‚   โ””โ”€โ”€ ci_cd.yml
โ”œโ”€โ”€ src/                    # Source root
โ”‚   โ””โ”€โ”€ trianglengin/       # Python package source
โ”‚       โ”œโ”€โ”€ __init__.py     # Exposes core public API (GameState, EnvConfig, Shape)
โ”‚       โ”œโ”€โ”€ game_interface.py # Python GameState wrapper class
โ”‚       โ”œโ”€โ”€ py.typed        # PEP 561 marker
โ”‚       โ”œโ”€โ”€ cpp/            # C++ Core Implementation ([src/trianglengin/cpp/README.md])
โ”‚       โ”‚   โ”œโ”€โ”€ CMakeLists.txt
โ”‚       โ”‚   โ”œโ”€โ”€ bindings.cpp
โ”‚       โ”‚   โ”œโ”€โ”€ config.h
โ”‚       โ”‚   โ”œโ”€โ”€ structs.h
โ”‚       โ”‚   โ”œโ”€โ”€ grid_data.h / .cpp
โ”‚       โ”‚   โ”œโ”€โ”€ grid_logic.h / .cpp
โ”‚       โ”‚   โ”œโ”€โ”€ shape_logic.h / .cpp
โ”‚       โ”‚   โ””โ”€โ”€ game_state.h / .cpp
โ”‚       โ”œโ”€โ”€ core/           # Core Python components (now minimal/empty)
โ”‚       โ”‚   โ””โ”€โ”€ __init__.py
โ”‚       โ”œโ”€โ”€ utils/          # General Python utilities ([src/trianglengin/utils/README.md])
โ”‚       โ”‚   โ””โ”€โ”€ ... (geometry.py, types.py)
โ”‚       โ”œโ”€โ”€ config/         # Core configuration models ([src/trianglengin/config/README.md])
โ”‚       โ”‚   โ”œโ”€โ”€ __init__.py
โ”‚       โ”‚   โ””โ”€โ”€ env_config.py   # EnvConfig (Pydantic)
โ”‚       โ””โ”€โ”€ ui/             # UI Components ([src/trianglengin/ui/README.md])
โ”‚           โ”œโ”€โ”€ __init__.py # Exposes UI API (Application, cli_app, DisplayConfig)
โ”‚           โ”œโ”€โ”€ app.py      # Interactive mode application runner
โ”‚           โ”œโ”€โ”€ cli.py      # CLI definition (play/debug)
โ”‚           โ”œโ”€โ”€ config.py   # DisplayConfig (Pydantic)
โ”‚           โ”œโ”€โ”€ interaction/    # User input handling ([src/trianglengin/ui/interaction/README.md])
โ”‚           โ”‚   โ”œโ”€โ”€ __init__.py
โ”‚           โ”‚   โ”œโ”€โ”€ event_processor.py
โ”‚           โ”‚   โ”œโ”€โ”€ input_handler.py
โ”‚           โ”‚   โ”œโ”€โ”€ play_mode_handler.py
โ”‚           โ”‚   โ””โ”€โ”€ debug_mode_handler.py
โ”‚           โ””โ”€โ”€ visualization/  # Pygame rendering ([src/trianglengin/ui/visualization/README.md])
โ”‚               โ”œโ”€โ”€ __init__.py
โ”‚               โ”œโ”€โ”€ core/       # Core vis components ([src/trianglengin/ui/visualization/core/README.md])
โ”‚               โ”‚   โ”œโ”€โ”€ __init__.py
โ”‚               โ”‚   โ”œโ”€โ”€ colors.py
โ”‚               โ”‚   โ”œโ”€โ”€ coord_mapper.py
โ”‚               โ”‚   โ”œโ”€โ”€ fonts.py
โ”‚               โ”‚   โ”œโ”€โ”€ layout.py # NEW
โ”‚               โ”‚   โ””โ”€โ”€ visualizer.py
โ”‚               โ””โ”€โ”€ drawing/    # Drawing functions ([src/trianglengin/ui/visualization/drawing/README.md])
โ”‚                   โ”œโ”€โ”€ __init__.py
โ”‚                   โ”œโ”€โ”€ grid.py
โ”‚                   โ”œโ”€โ”€ highlight.py
โ”‚                   โ”œโ”€โ”€ hud.py
โ”‚                   โ”œโ”€โ”€ previews.py
โ”‚                   โ”œโ”€โ”€ shapes.py
โ”‚                   โ””โ”€โ”€ utils.py
โ”œโ”€โ”€ tests/                  # Unit/Integration tests (Python) ([tests/README.md])
โ”‚   โ”œโ”€โ”€ __init__.py
โ”‚   โ”œโ”€โ”€ conftest.py
โ”‚   โ””โ”€โ”€ core/environment/
โ”‚       โ””โ”€โ”€ test_game_state.py # Tests the Python GameState wrapper
โ”œโ”€โ”€ .gitignore
โ”œโ”€โ”€ pyproject.toml          # Build config, dependencies
โ”œโ”€โ”€ setup.py                # C++ Extension build script
โ”œโ”€โ”€ README.md               # This file
โ”œโ”€โ”€ LICENSE
โ””โ”€โ”€ MANIFEST.in

Core Components (v2)

  • trianglengin.cpp (C++ Core): Implements the high-performance game logic (state, grid, shapes, rules). Not directly imported in Python.
  • trianglengin.game_interface.GameState (Python Wrapper): The primary Python class for interacting with the game engine. It holds a reference to the C++ game state object and provides methods like step, reset, is_over, valid_actions, get_shapes, get_grid_data_np.
  • trianglengin.config.EnvConfig: Python Pydantic model for core environment configuration. Passed to C++ core during initialization.
  • trianglengin.utils: General Python utility functions and types. (src/trianglengin/utils/README.md)

UI Components (trianglengin.ui)

  • trianglengin.ui.config.DisplayConfig: Pydantic model for UI display settings.
  • trianglengin.ui.visualization: Python/Pygame rendering components. Uses data obtained from the GameState wrapper. (src/trianglengin/ui/visualization/README.md)
  • trianglengin.ui.interaction: Python/Pygame input handling for interactive modes. Interacts with the GameState wrapper. (src/trianglengin/ui/interaction/README.md)
  • trianglengin.ui.app.Application: Integrates UI components for interactive modes.
  • trianglengin.ui.cli: Command-line interface (trianglengin play/debug).

Contributing

Contributions are welcome! Please open an issue or submit a pull request on the GitHub repository. Ensure that changes maintain code quality (pass tests, linting, type checking) and keep READMEs updated. Building requires a C++17 compiler and CMake.

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

trianglengin-2.0.1.tar.gz (56.7 kB view details)

Uploaded Source

Built Distributions

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

trianglengin-2.0.1-pp310-pypy310_pp73-win_amd64.whl (288.6 kB view details)

Uploaded PyPyWindows x86-64

trianglengin-2.0.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (346.9 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

trianglengin-2.0.1-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl (368.4 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ i686

trianglengin-2.0.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl (161.3 kB view details)

Uploaded PyPymacOS 11.0+ ARM64

trianglengin-2.0.1-cp313-cp313-win_amd64.whl (287.9 kB view details)

Uploaded CPython 3.13Windows x86-64

trianglengin-2.0.1-cp313-cp313-win32.whl (287.9 kB view details)

Uploaded CPython 3.13Windows x86

trianglengin-2.0.1-cp313-cp313-musllinux_1_2_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

trianglengin-2.0.1-cp313-cp313-musllinux_1_2_i686.whl (1.4 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ i686

trianglengin-2.0.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (346.9 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

trianglengin-2.0.1-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl (368.4 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ i686

trianglengin-2.0.1-cp313-cp313-macosx_11_0_arm64.whl (162.4 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

trianglengin-2.0.1-cp312-cp312-win_amd64.whl (287.9 kB view details)

Uploaded CPython 3.12Windows x86-64

trianglengin-2.0.1-cp312-cp312-win32.whl (287.9 kB view details)

Uploaded CPython 3.12Windows x86

trianglengin-2.0.1-cp312-cp312-musllinux_1_2_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

trianglengin-2.0.1-cp312-cp312-musllinux_1_2_i686.whl (1.4 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ i686

trianglengin-2.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (346.9 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

trianglengin-2.0.1-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl (368.4 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ i686

trianglengin-2.0.1-cp312-cp312-macosx_11_0_arm64.whl (162.4 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

trianglengin-2.0.1-cp311-cp311-win_amd64.whl (287.9 kB view details)

Uploaded CPython 3.11Windows x86-64

trianglengin-2.0.1-cp311-cp311-win32.whl (287.9 kB view details)

Uploaded CPython 3.11Windows x86

trianglengin-2.0.1-cp311-cp311-musllinux_1_2_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

trianglengin-2.0.1-cp311-cp311-musllinux_1_2_i686.whl (1.4 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ i686

trianglengin-2.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (346.9 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

trianglengin-2.0.1-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl (368.4 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ i686

trianglengin-2.0.1-cp311-cp311-macosx_11_0_arm64.whl (162.4 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

trianglengin-2.0.1-cp310-cp310-win_amd64.whl (287.9 kB view details)

Uploaded CPython 3.10Windows x86-64

trianglengin-2.0.1-cp310-cp310-win32.whl (287.9 kB view details)

Uploaded CPython 3.10Windows x86

trianglengin-2.0.1-cp310-cp310-musllinux_1_2_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

trianglengin-2.0.1-cp310-cp310-musllinux_1_2_i686.whl (1.4 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ i686

trianglengin-2.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (346.9 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

trianglengin-2.0.1-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl (368.4 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ i686

trianglengin-2.0.1-cp310-cp310-macosx_11_0_arm64.whl (161.0 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

Details for the file trianglengin-2.0.1.tar.gz.

File metadata

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

File hashes

Hashes for trianglengin-2.0.1.tar.gz
Algorithm Hash digest
SHA256 547a9592e362f7c327644776ec69b18c0a834d75f35e39f2ee2f1ffb7b38fc96
MD5 a9076862a69ef9e380b716048cba301a
BLAKE2b-256 539a22b09e023c0c7d77cb14e17d68fabaee51ceab3c1093c407923d4f5d7728

See more details on using hashes here.

Provenance

The following attestation bundles were made for trianglengin-2.0.1.tar.gz:

Publisher: ci_cd.yml on lguibr/trianglengin

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

File details

Details for the file trianglengin-2.0.1-pp310-pypy310_pp73-win_amd64.whl.

File metadata

File hashes

Hashes for trianglengin-2.0.1-pp310-pypy310_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 da84af312e684d1278375ad19df9f227a8a2ce0e0d20fdb14e04ceb2100200bd
MD5 9a772192068492f65b1bc28866be9df4
BLAKE2b-256 31712f8f781855008d65ba6133770ded93b75432836f673947eeb3aa7625eaad

See more details on using hashes here.

Provenance

The following attestation bundles were made for trianglengin-2.0.1-pp310-pypy310_pp73-win_amd64.whl:

Publisher: ci_cd.yml on lguibr/trianglengin

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

File details

Details for the file trianglengin-2.0.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for trianglengin-2.0.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8e09798773a9dcd6cd2dabad825fcbaea9c9283d219236a5d94c15e9d29aef53
MD5 addd8fc56affbb3261d9cd6f6522f183
BLAKE2b-256 52746568d48e1b0749ae0074a1dd0e0ef6be361a52274f27567d0602861dea8d

See more details on using hashes here.

Provenance

The following attestation bundles were made for trianglengin-2.0.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: ci_cd.yml on lguibr/trianglengin

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

File details

Details for the file trianglengin-2.0.1-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for trianglengin-2.0.1-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 12e96f8bc9eb9bcaab0bf2720373c48418d03dd2eed6dd676d5fe794dcb0ed61
MD5 699c418c3cdc5fac0aca6dcb8083f635
BLAKE2b-256 8aab50d4543784510a3ee96854e4d0ca2ee45b652f5093382dc637e589d404e9

See more details on using hashes here.

Provenance

The following attestation bundles were made for trianglengin-2.0.1-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl:

Publisher: ci_cd.yml on lguibr/trianglengin

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

File details

Details for the file trianglengin-2.0.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for trianglengin-2.0.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 dd123e903b0e052bbebe1586cc100d3c16b5e67767a3228c2257bbf23f162b62
MD5 697a8b7c9cc829b9cb45d190bf2ff8d1
BLAKE2b-256 06c08dc781a0e2ea466bcc89a3406ab7dd552633014bfb192e165e4f585e7426

See more details on using hashes here.

Provenance

The following attestation bundles were made for trianglengin-2.0.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl:

Publisher: ci_cd.yml on lguibr/trianglengin

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

File details

Details for the file trianglengin-2.0.1-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for trianglengin-2.0.1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 cbd6e0fc87be0d3da7ded50f40ce6863e2e028dbcf1154f76d5d1f6f1266e75c
MD5 e0ea8ff6923b14ac262273e097072ea5
BLAKE2b-256 24c8d45ae52b702c7aeade77dd22b83f047e19930436adb7c9c343d4dfb788c8

See more details on using hashes here.

Provenance

The following attestation bundles were made for trianglengin-2.0.1-cp313-cp313-win_amd64.whl:

Publisher: ci_cd.yml on lguibr/trianglengin

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

File details

Details for the file trianglengin-2.0.1-cp313-cp313-win32.whl.

File metadata

  • Download URL: trianglengin-2.0.1-cp313-cp313-win32.whl
  • Upload date:
  • Size: 287.9 kB
  • Tags: CPython 3.13, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for trianglengin-2.0.1-cp313-cp313-win32.whl
Algorithm Hash digest
SHA256 8b71ba2100bf75dcca2c206e263467a567ddd0c661d9965c5c241cd7aba331c0
MD5 e11f22ad74303fbdc658ac801beb87fa
BLAKE2b-256 8e49a84b56d9724a21cc8b1d9647220e99ded0f18130a92a32bff0176906ac1b

See more details on using hashes here.

Provenance

The following attestation bundles were made for trianglengin-2.0.1-cp313-cp313-win32.whl:

Publisher: ci_cd.yml on lguibr/trianglengin

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

File details

Details for the file trianglengin-2.0.1-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for trianglengin-2.0.1-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 397913fd15ce37d6f69b08cbfb5025d03e9f422b5d2271900e2a06242d4c5943
MD5 baa65beb8f208c4fb5914e7545fc6cd3
BLAKE2b-256 76b43b0ca4ba4101fbbb2785630ca8c4c85c48b0b28e726091157b62dadf848e

See more details on using hashes here.

Provenance

The following attestation bundles were made for trianglengin-2.0.1-cp313-cp313-musllinux_1_2_x86_64.whl:

Publisher: ci_cd.yml on lguibr/trianglengin

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

File details

Details for the file trianglengin-2.0.1-cp313-cp313-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for trianglengin-2.0.1-cp313-cp313-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 a5f770af4af72f6e87acb7eb2d74077c8d388ce866261270724ac48b10bb2f1a
MD5 d052b932101babfedf325fe272791dfc
BLAKE2b-256 36c0553fc7906e819d009b326b068c8c59be263d6dca1e49194cf5fa20926f1a

See more details on using hashes here.

Provenance

The following attestation bundles were made for trianglengin-2.0.1-cp313-cp313-musllinux_1_2_i686.whl:

Publisher: ci_cd.yml on lguibr/trianglengin

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

File details

Details for the file trianglengin-2.0.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for trianglengin-2.0.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 15189b2ceda08248707773aef24590bd500f953c150d7c3fd3c69d1e029cca98
MD5 2c3281691c56832babc3ca3d2736f892
BLAKE2b-256 bc1b2d04913a562de6b587d46879615589355999138f159b319be643e7f1667e

See more details on using hashes here.

Provenance

The following attestation bundles were made for trianglengin-2.0.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: ci_cd.yml on lguibr/trianglengin

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

File details

Details for the file trianglengin-2.0.1-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for trianglengin-2.0.1-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 e851361db3049acd13d3e375b22069b6e9946095a7c8da816a7710851e941e71
MD5 018878c915badfcb60b2a9bc2ce8133b
BLAKE2b-256 6f278e41191c3ad927dc7fd1d08328cbc8b796f2a7dc63f985e07653e8d35259

See more details on using hashes here.

Provenance

The following attestation bundles were made for trianglengin-2.0.1-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl:

Publisher: ci_cd.yml on lguibr/trianglengin

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

File details

Details for the file trianglengin-2.0.1-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for trianglengin-2.0.1-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 071956a277bb3be027b2be413771a3f8f964829694dfaa8c003920b38cee1f07
MD5 8e0bfaf80ac7473a350ac16e28c50bf0
BLAKE2b-256 4b2a4ce89d0fd0e4bdd6092abf7c41388595260220dcae4f15c08fad41a87551

See more details on using hashes here.

Provenance

The following attestation bundles were made for trianglengin-2.0.1-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: ci_cd.yml on lguibr/trianglengin

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

File details

Details for the file trianglengin-2.0.1-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for trianglengin-2.0.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 c13ca01572d391c47d27d34a5e3c2d88ef7d7a331ae36d8beca8f693f303adad
MD5 5f43de9605e426c6ec1e051e0ea2eb4e
BLAKE2b-256 de5bf63e136ad251143e7c9daa3555fd8a361d6f303d56464036cbfc611746b9

See more details on using hashes here.

Provenance

The following attestation bundles were made for trianglengin-2.0.1-cp312-cp312-win_amd64.whl:

Publisher: ci_cd.yml on lguibr/trianglengin

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

File details

Details for the file trianglengin-2.0.1-cp312-cp312-win32.whl.

File metadata

  • Download URL: trianglengin-2.0.1-cp312-cp312-win32.whl
  • Upload date:
  • Size: 287.9 kB
  • Tags: CPython 3.12, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for trianglengin-2.0.1-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 56d89d02b176a85b2abdd2ff0af6bf0cc70de7474a769ff4b192c29687a2845a
MD5 e15f43ba889b11ddc2e8d08de31d7e16
BLAKE2b-256 21372a266035c9ec70c1e12c8527523c67e147cac6e0e2ea799067760df249d3

See more details on using hashes here.

Provenance

The following attestation bundles were made for trianglengin-2.0.1-cp312-cp312-win32.whl:

Publisher: ci_cd.yml on lguibr/trianglengin

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

File details

Details for the file trianglengin-2.0.1-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for trianglengin-2.0.1-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 997b7f6c635fb96ba005394c62183def39fcb71dab7d13c777b2095d53c69b23
MD5 b0d65787b64d185188eb2271e4a4aa1c
BLAKE2b-256 a52bf586f34f09608e00713f426984799836549ac08c2c603ce809d241cfc5b9

See more details on using hashes here.

Provenance

The following attestation bundles were made for trianglengin-2.0.1-cp312-cp312-musllinux_1_2_x86_64.whl:

Publisher: ci_cd.yml on lguibr/trianglengin

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

File details

Details for the file trianglengin-2.0.1-cp312-cp312-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for trianglengin-2.0.1-cp312-cp312-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 148c900d5147edca0389857cb3117e8618ce2de1c084a165342978d53cbdb944
MD5 a1a38b221c1908894d47c5140c5e5ef6
BLAKE2b-256 96146cf511942c2b1a35c89d1682733a8a9e60e5fc9d3386a8ee6db066d50ce1

See more details on using hashes here.

Provenance

The following attestation bundles were made for trianglengin-2.0.1-cp312-cp312-musllinux_1_2_i686.whl:

Publisher: ci_cd.yml on lguibr/trianglengin

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

File details

Details for the file trianglengin-2.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for trianglengin-2.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c7fe8696f4db8268c23b830d71792db878c8c5101718ac52c5946a2d118e5818
MD5 982b1736d2040f7d269efabe229522de
BLAKE2b-256 ea11256d830043468768e92869e82c3a6a8c3b02e5e9d4c13d76dc01d158b8af

See more details on using hashes here.

Provenance

The following attestation bundles were made for trianglengin-2.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: ci_cd.yml on lguibr/trianglengin

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

File details

Details for the file trianglengin-2.0.1-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for trianglengin-2.0.1-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 db8eed44935728414ee2c46898c3686b3ca4219ada05ee2e30d7f73763c7a015
MD5 e875deaaf931ded18a249da49f750281
BLAKE2b-256 d4afd31f44631d7c1c60ff82f0bdf26645ac1d59159bc1f4db33deb536d9e47b

See more details on using hashes here.

Provenance

The following attestation bundles were made for trianglengin-2.0.1-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl:

Publisher: ci_cd.yml on lguibr/trianglengin

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

File details

Details for the file trianglengin-2.0.1-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for trianglengin-2.0.1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9d36b29cec9df8f52887187fae32a29bc78bda6c156d3dd3c3411f90607838c0
MD5 cde6ac8d9d8d514935568a1c1f4e5f72
BLAKE2b-256 469d6f44392b978e0b024857aea9bc21bdde53d9207b3c39422b2692c65d7809

See more details on using hashes here.

Provenance

The following attestation bundles were made for trianglengin-2.0.1-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: ci_cd.yml on lguibr/trianglengin

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

File details

Details for the file trianglengin-2.0.1-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for trianglengin-2.0.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 3852f35da514b71b523c6ffe66bdb69f39a09ea278dc0a4a6bad55599df3d273
MD5 9aba68ed6d2bf401362d489e2b7bf448
BLAKE2b-256 8325e37edfc0b058de34f6ed39c9af47912b8ff84745b5ceba9ccbb366fc6e6f

See more details on using hashes here.

Provenance

The following attestation bundles were made for trianglengin-2.0.1-cp311-cp311-win_amd64.whl:

Publisher: ci_cd.yml on lguibr/trianglengin

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

File details

Details for the file trianglengin-2.0.1-cp311-cp311-win32.whl.

File metadata

  • Download URL: trianglengin-2.0.1-cp311-cp311-win32.whl
  • Upload date:
  • Size: 287.9 kB
  • Tags: CPython 3.11, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for trianglengin-2.0.1-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 a0a8b2a9902cabfe40e2586bb1381e06a40417eec8f613a01ff260ec94e0800d
MD5 c67e383ee7f3cfcbd8720c12d9e39d80
BLAKE2b-256 fabc6f81dc24b0007e3c763ef66b53faa4751813fa33b114e38ed323c7469dd4

See more details on using hashes here.

Provenance

The following attestation bundles were made for trianglengin-2.0.1-cp311-cp311-win32.whl:

Publisher: ci_cd.yml on lguibr/trianglengin

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

File details

Details for the file trianglengin-2.0.1-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for trianglengin-2.0.1-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 47dfe250abf17f6cfae19387afb514069fbdf120f66d58764c40b24d486011b4
MD5 ad84b027b6a88e088f3e43fd9128b1e1
BLAKE2b-256 9350d96bf70ea6a282f82bbe5de9c33d87dcf8eba1822eb39f477039253a3968

See more details on using hashes here.

Provenance

The following attestation bundles were made for trianglengin-2.0.1-cp311-cp311-musllinux_1_2_x86_64.whl:

Publisher: ci_cd.yml on lguibr/trianglengin

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

File details

Details for the file trianglengin-2.0.1-cp311-cp311-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for trianglengin-2.0.1-cp311-cp311-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 a3080433996a8134764996601e2dc296c6f37fe172bc6c075e9cab54146d8bb8
MD5 73f0f741d5e82e6fe080797f11f46160
BLAKE2b-256 6af694605e11d530177835182a7bcffff8f4bdad46af5a85a12b10a312d1a1cc

See more details on using hashes here.

Provenance

The following attestation bundles were made for trianglengin-2.0.1-cp311-cp311-musllinux_1_2_i686.whl:

Publisher: ci_cd.yml on lguibr/trianglengin

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

File details

Details for the file trianglengin-2.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for trianglengin-2.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2e2bb0db954bae3e6424efad03758f0dc16cf86e2f92b882885ffbccd8b08b04
MD5 dd378edb187a6303923c80aae7f8c7a3
BLAKE2b-256 7e3d5b2f9d7fa8cc87c3f7ebacb0cd1f8373684d53d292ac0f73f5e02573ec55

See more details on using hashes here.

Provenance

The following attestation bundles were made for trianglengin-2.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: ci_cd.yml on lguibr/trianglengin

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

File details

Details for the file trianglengin-2.0.1-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for trianglengin-2.0.1-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 64edefe44abf83fe0ef3d9c0133cfc22fd94a8a0397575b513503cc4cb86232f
MD5 7ca99a7b688659de5ef9ed5831a0caa9
BLAKE2b-256 aaae1d4a775e910face17fe020b0a33af5a500a9800e32f82048f0a03f3276eb

See more details on using hashes here.

Provenance

The following attestation bundles were made for trianglengin-2.0.1-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl:

Publisher: ci_cd.yml on lguibr/trianglengin

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

File details

Details for the file trianglengin-2.0.1-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for trianglengin-2.0.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f07513c9783a315feeeeb35b8c92349c087a96d79fceebaa321d319d7d9b2415
MD5 b731ff7c8c7c6bd3d1c41b2d7b27af9e
BLAKE2b-256 67397a0139265e9f5c6463010a6c329ab58f20737e97785c70b786aea8c4e1b9

See more details on using hashes here.

Provenance

The following attestation bundles were made for trianglengin-2.0.1-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: ci_cd.yml on lguibr/trianglengin

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

File details

Details for the file trianglengin-2.0.1-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for trianglengin-2.0.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 dca7fb50eda34cfc6c89db610c313188e08e90732f9969a185955501bdf6fefa
MD5 14acfd686d4dc6326d38ba1801c798de
BLAKE2b-256 09087bff58a85f9a1a0ad69c84ece18bfe1624d8c8294a386343c895d78004ee

See more details on using hashes here.

Provenance

The following attestation bundles were made for trianglengin-2.0.1-cp310-cp310-win_amd64.whl:

Publisher: ci_cd.yml on lguibr/trianglengin

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

File details

Details for the file trianglengin-2.0.1-cp310-cp310-win32.whl.

File metadata

  • Download URL: trianglengin-2.0.1-cp310-cp310-win32.whl
  • Upload date:
  • Size: 287.9 kB
  • Tags: CPython 3.10, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for trianglengin-2.0.1-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 6e1f368c161a0ff4f4e57c38aef6749a6bdea1b29ce26e899661dbaca486475d
MD5 69452a84cf985d68b3bf28a5b914a7b7
BLAKE2b-256 8de849a4c38da24fee536a0537d991158e2ed36fab321fd326a0fc4115b39f15

See more details on using hashes here.

Provenance

The following attestation bundles were made for trianglengin-2.0.1-cp310-cp310-win32.whl:

Publisher: ci_cd.yml on lguibr/trianglengin

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

File details

Details for the file trianglengin-2.0.1-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for trianglengin-2.0.1-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 e4d095c8319ed693535a5c8f4f2c2887d5629b0024aebb22deb6006f8f0ef4d0
MD5 5f552e0d161fddbd2a8db18ff3b51f86
BLAKE2b-256 a991cc8977eae4455d18bb575ae399e3f384bdfdd3078b8bf2e88f7902aeae80

See more details on using hashes here.

Provenance

The following attestation bundles were made for trianglengin-2.0.1-cp310-cp310-musllinux_1_2_x86_64.whl:

Publisher: ci_cd.yml on lguibr/trianglengin

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

File details

Details for the file trianglengin-2.0.1-cp310-cp310-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for trianglengin-2.0.1-cp310-cp310-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 29f38537ebb4fd512b596c37f369c28e87d89d878bf7253963a7761369973f12
MD5 9c64c52b2365b69c68285d69efb5a1a6
BLAKE2b-256 de3891f8d34e2ddd89cb9c5d8b5b644df54bdb2f4248c4e6632912c52f6573a3

See more details on using hashes here.

Provenance

The following attestation bundles were made for trianglengin-2.0.1-cp310-cp310-musllinux_1_2_i686.whl:

Publisher: ci_cd.yml on lguibr/trianglengin

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

File details

Details for the file trianglengin-2.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for trianglengin-2.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 cdc6df3fe185029b2e79fe16a0c460daaa85f49a557b4955a954d31a74db5e50
MD5 ce91001362ad29f3d98cff00c0976d27
BLAKE2b-256 2d1197bf03d5fb0629a846f406cfe41a92b7d4f821537237cabb7981a949c12e

See more details on using hashes here.

Provenance

The following attestation bundles were made for trianglengin-2.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: ci_cd.yml on lguibr/trianglengin

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

File details

Details for the file trianglengin-2.0.1-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for trianglengin-2.0.1-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 e9f6faf5f631215a6e5ba5e6f8f7cfb0e040ac04c37e4249ab3a92d09d0f6cbd
MD5 3a591deb7470776af42e45b9c9c2fa48
BLAKE2b-256 ee3f9a86583ac037264b6c12585174566fc5ec76f8cf834deacbe7c18b9b64ae

See more details on using hashes here.

Provenance

The following attestation bundles were made for trianglengin-2.0.1-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl:

Publisher: ci_cd.yml on lguibr/trianglengin

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

File details

Details for the file trianglengin-2.0.1-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for trianglengin-2.0.1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 dc5f4e7a14a2c6367acf22ed6dbe1b0fe81b6977c6e5c31ba7336995b6a5089a
MD5 200ebbd43a26873c4142592f53bd9c1c
BLAKE2b-256 53d0d45c69844790cc3cac013074e4cc4d755595b7384d4838bd0762d7e2fcb3

See more details on using hashes here.

Provenance

The following attestation bundles were made for trianglengin-2.0.1-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: ci_cd.yml on lguibr/trianglengin

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