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.0.3

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>=2.0.3

# 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, get_outcome.
  • 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.6.tar.gz (58.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.6-pp310-pypy310_pp73-win_amd64.whl (289.9 kB view details)

Uploaded PyPyWindows x86-64

trianglengin-2.0.6-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (347.0 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

trianglengin-2.0.6-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl (368.5 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ i686

trianglengin-2.0.6-pp310-pypy310_pp73-macosx_11_0_arm64.whl (162.4 kB view details)

Uploaded PyPymacOS 11.0+ ARM64

trianglengin-2.0.6-cp313-cp313-win_amd64.whl (288.9 kB view details)

Uploaded CPython 3.13Windows x86-64

trianglengin-2.0.6-cp313-cp313-win32.whl (288.9 kB view details)

Uploaded CPython 3.13Windows x86

trianglengin-2.0.6-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.6-cp313-cp313-musllinux_1_2_i686.whl (1.4 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ i686

trianglengin-2.0.6-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (347.0 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

trianglengin-2.0.6-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl (368.5 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ i686

trianglengin-2.0.6-cp313-cp313-macosx_11_0_arm64.whl (163.6 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

trianglengin-2.0.6-cp312-cp312-win_amd64.whl (288.9 kB view details)

Uploaded CPython 3.12Windows x86-64

trianglengin-2.0.6-cp312-cp312-win32.whl (288.9 kB view details)

Uploaded CPython 3.12Windows x86

trianglengin-2.0.6-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.6-cp312-cp312-musllinux_1_2_i686.whl (1.4 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ i686

trianglengin-2.0.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (347.0 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

trianglengin-2.0.6-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl (368.5 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ i686

trianglengin-2.0.6-cp312-cp312-macosx_11_0_arm64.whl (163.5 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

trianglengin-2.0.6-cp311-cp311-win_amd64.whl (288.9 kB view details)

Uploaded CPython 3.11Windows x86-64

trianglengin-2.0.6-cp311-cp311-win32.whl (288.9 kB view details)

Uploaded CPython 3.11Windows x86

trianglengin-2.0.6-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.6-cp311-cp311-musllinux_1_2_i686.whl (1.4 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ i686

trianglengin-2.0.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (347.0 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

trianglengin-2.0.6-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl (368.5 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ i686

trianglengin-2.0.6-cp311-cp311-macosx_11_0_arm64.whl (163.5 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

trianglengin-2.0.6-cp310-cp310-win_amd64.whl (288.9 kB view details)

Uploaded CPython 3.10Windows x86-64

trianglengin-2.0.6-cp310-cp310-win32.whl (288.9 kB view details)

Uploaded CPython 3.10Windows x86

trianglengin-2.0.6-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.6-cp310-cp310-musllinux_1_2_i686.whl (1.4 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ i686

trianglengin-2.0.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (347.0 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

trianglengin-2.0.6-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl (368.5 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ i686

trianglengin-2.0.6-cp310-cp310-macosx_11_0_arm64.whl (162.1 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: trianglengin-2.0.6.tar.gz
  • Upload date:
  • Size: 58.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.6.tar.gz
Algorithm Hash digest
SHA256 8ae4f9601dd460c26106e9f31c1d3379bb47752cceabc0880d16245ac768397f
MD5 0b7618b81b103fced64cdce8361434d0
BLAKE2b-256 4772647f4b7300b77b0b4005e3408f9a098037870960a25d0c00e38bb5bfccfe

See more details on using hashes here.

Provenance

The following attestation bundles were made for trianglengin-2.0.6.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.6-pp310-pypy310_pp73-win_amd64.whl.

File metadata

File hashes

Hashes for trianglengin-2.0.6-pp310-pypy310_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 6165d49321843a6c4520698b82f1dedc443053fb8efdbe893f7398f26a4965b3
MD5 3ee99303fef003e75a755a5adb527101
BLAKE2b-256 ff5dc8b2ba065a0eba32aa6cdf9b5466996c0c1298e0f0ea8b66cd3418431390

See more details on using hashes here.

Provenance

The following attestation bundles were made for trianglengin-2.0.6-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.6-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for trianglengin-2.0.6-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e0a053557424789e40d23bf206ac09145947e0405a7e7ca461b2a1452defebae
MD5 e13fbf1fbbea86d7bc7c8c8b45eb65a7
BLAKE2b-256 1738e126881fbdab5eda1d212eb8200c4e4deca467c157bcb29f90df5f4a07e1

See more details on using hashes here.

Provenance

The following attestation bundles were made for trianglengin-2.0.6-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.6-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for trianglengin-2.0.6-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 ab35eb667f57a16b0a98083a99b5bf174c814f8c0acca3828a8a75783909791e
MD5 ac001e3d5e047ad8ebce2b45140fc5a5
BLAKE2b-256 89c773eeeff215ce4109155a46a0ec0a206b1df9bbdc1a5eab8900aae9966fbe

See more details on using hashes here.

Provenance

The following attestation bundles were made for trianglengin-2.0.6-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.6-pp310-pypy310_pp73-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for trianglengin-2.0.6-pp310-pypy310_pp73-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 cd7a5bbbc7df69a02e28bb08eb705ad70ae30b3e90a28c79656af5d40416a426
MD5 c0f5422aef6f7de18d2f83779e41b327
BLAKE2b-256 f72b2dd5ba3c27152c9c756b1a16516951e5218da4a17fedb101076d339c1779

See more details on using hashes here.

Provenance

The following attestation bundles were made for trianglengin-2.0.6-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.6-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for trianglengin-2.0.6-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 da7f917714d7d43151b97f73fc24ba30ca21401d598631cad5ec668754ff06d1
MD5 fc585719c490a537162842e07e7ce91f
BLAKE2b-256 03e4689365a5fc5979790f2fdfbb22af0ce0b3e8ee3b8b4318dde0062975a0a3

See more details on using hashes here.

Provenance

The following attestation bundles were made for trianglengin-2.0.6-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.6-cp313-cp313-win32.whl.

File metadata

  • Download URL: trianglengin-2.0.6-cp313-cp313-win32.whl
  • Upload date:
  • Size: 288.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.6-cp313-cp313-win32.whl
Algorithm Hash digest
SHA256 ee0b85732555e8310bc46f103f58174f814aee6a3dce29fa7d682f0024daae13
MD5 527d59cda23706a722539bae5d505fbf
BLAKE2b-256 06de487fb2c2e489e471391d55bdf62a48df147db735854cd4ef187fc494c598

See more details on using hashes here.

Provenance

The following attestation bundles were made for trianglengin-2.0.6-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.6-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for trianglengin-2.0.6-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 723ee70e948a285dc459f19ca9015873681414265c49764e61ac9c0617bf17f6
MD5 c3d942e1152f3939ba028cef03635163
BLAKE2b-256 07648a49def3b88225d4caed70cc4d553add765079d7406239c72b61492f6d63

See more details on using hashes here.

Provenance

The following attestation bundles were made for trianglengin-2.0.6-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.6-cp313-cp313-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for trianglengin-2.0.6-cp313-cp313-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 108fc665d53cbe3d0aa51a43cfa1b97823d4fb9e98752bc8535b31556b3c40b7
MD5 b7d9d46e9ac4feee6e6c46a8e461b140
BLAKE2b-256 b173396da63431e7066de5f009da231c5bd07bd32502e6073f31dc658867534e

See more details on using hashes here.

Provenance

The following attestation bundles were made for trianglengin-2.0.6-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.6-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for trianglengin-2.0.6-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0a3e4f701ca03f5339dfa671ba63587f20167f861a13a8cb75941330d66a2682
MD5 4d73211670ca9207b87e9f15c0b38d3d
BLAKE2b-256 b2b85cce7de84e7d0e4f866f16347ca771af7b02cefd413e883171bc7d1613a3

See more details on using hashes here.

Provenance

The following attestation bundles were made for trianglengin-2.0.6-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.6-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for trianglengin-2.0.6-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 beb8c88a81fe928d5dd466fc93115d0348ecc9cf70d743dda41e1298cb5630f5
MD5 b40957b3e6e076213927949bb588187c
BLAKE2b-256 11211a8fc0a3da5606dbe4dbe84361dbbb29ef366f1804d164af5b527489f629

See more details on using hashes here.

Provenance

The following attestation bundles were made for trianglengin-2.0.6-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.6-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for trianglengin-2.0.6-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 325d125415d334e91136470a739b08d07e563d63197269e218ff7f10d14fdba5
MD5 3cf42a0e3a38f2628b7d6e7283df214d
BLAKE2b-256 5c6510cf4ca706cbfa1befa4e07bc604f9c3ea58a81331f25a136484c4acb2b3

See more details on using hashes here.

Provenance

The following attestation bundles were made for trianglengin-2.0.6-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.6-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for trianglengin-2.0.6-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 e3829812211be8c92ef36135612274895f3bdca69df08776851811a28409d57b
MD5 ea54122fcda2a4b93a742464ae343596
BLAKE2b-256 d8c6b878e76c514e4d84535048892bcfb1a6808f970edf0db16b5b6c72ccd90e

See more details on using hashes here.

Provenance

The following attestation bundles were made for trianglengin-2.0.6-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.6-cp312-cp312-win32.whl.

File metadata

  • Download URL: trianglengin-2.0.6-cp312-cp312-win32.whl
  • Upload date:
  • Size: 288.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.6-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 2abb716c4cf9ebdcf57428518f668b301511f9d1908048de2145f268298888fd
MD5 0ee4dcf1461209a25ad60b616362f89c
BLAKE2b-256 b491fa774869c970f975edfc6eacb22eaf169064541d0adc96f2772360c5cbf8

See more details on using hashes here.

Provenance

The following attestation bundles were made for trianglengin-2.0.6-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.6-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for trianglengin-2.0.6-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 35da704cbdf644d4990e2088a5bec23c3c8bc84a490e070070d3a18b2bd88b94
MD5 47487ff5e053835e998b19ac7a06ec39
BLAKE2b-256 5c230037281c3e336178bf8e74eb11bc80accacca05220e694291dae587fb020

See more details on using hashes here.

Provenance

The following attestation bundles were made for trianglengin-2.0.6-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.6-cp312-cp312-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for trianglengin-2.0.6-cp312-cp312-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 d8552022f6074055e6f49d357b46ab88600609671e0b4e1505e5d8fdeaf26e9e
MD5 f526a2bf4b5c48a76ff175603e837286
BLAKE2b-256 8020317664259171b9ac1db21d24e78ab868d98daef3810b5e1befba361cafae

See more details on using hashes here.

Provenance

The following attestation bundles were made for trianglengin-2.0.6-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.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for trianglengin-2.0.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 dd077eb20ac6d698906ae5bb04c8eb095d12e3d61f868eb52f969d32c505a34d
MD5 6d39b4749183ddb9b640fdec29892bba
BLAKE2b-256 d0537b751e71dc58ae6e0218acbd880597a9f1bef2a855d3416aadc398a1fc89

See more details on using hashes here.

Provenance

The following attestation bundles were made for trianglengin-2.0.6-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.6-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for trianglengin-2.0.6-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 e8a19b392d541d225378a98f74cf595bc9e136840ee6cd08129a543f51982752
MD5 6054bdbbb151f865743523f7098a436b
BLAKE2b-256 db71485467337235b97f6cfb771d5f44802b3ec761fac1481a777df035bd36a6

See more details on using hashes here.

Provenance

The following attestation bundles were made for trianglengin-2.0.6-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.6-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for trianglengin-2.0.6-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f4bf3da6141d84222c950ca5bc38e77dee4c4b70892f82e3fba7490e34d6e73b
MD5 95d4176372827767b20734b9a089d581
BLAKE2b-256 71ebf6421957c36af47c3cb3f33885b87c4aa37c538e6f293db14f389bd46106

See more details on using hashes here.

Provenance

The following attestation bundles were made for trianglengin-2.0.6-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.6-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for trianglengin-2.0.6-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 180be9f22d810b05d282268f7d0e55d13fed86c13a23bee1e65e52d5de0c1dc3
MD5 960295a373bf928de24a6bc34efec9ef
BLAKE2b-256 dadc00f2d61f64f37ea6f04d1056c433cd4dca1c21ed896900b9e72186bfc4a6

See more details on using hashes here.

Provenance

The following attestation bundles were made for trianglengin-2.0.6-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.6-cp311-cp311-win32.whl.

File metadata

  • Download URL: trianglengin-2.0.6-cp311-cp311-win32.whl
  • Upload date:
  • Size: 288.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.6-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 3f076b1090660303f31fc2662ceb5393e891add7a362aa70576153ca4fc69091
MD5 4f964f85bb548c10e095129be07b220b
BLAKE2b-256 9c8db37ce869c71051c38b081efbe8d6665edae8348ba38cf79c6e296d78b85f

See more details on using hashes here.

Provenance

The following attestation bundles were made for trianglengin-2.0.6-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.6-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for trianglengin-2.0.6-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 757b674d152f9d9f081d21d209124996fc91ad0ba5b3526ffad72bdfe671243e
MD5 647c10be3d65653f92951e4aa04a8de5
BLAKE2b-256 f3f74bd6e3f55158e64dce9223bc424a2ef2a2c85e000fa47f0029a5452e2d94

See more details on using hashes here.

Provenance

The following attestation bundles were made for trianglengin-2.0.6-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.6-cp311-cp311-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for trianglengin-2.0.6-cp311-cp311-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 1af1b3c8ed86e75958bc92c661c251630f7bd7ca54cd10c742d5b95f42b026c2
MD5 2ad3f89627639e510297eb6a27a0225b
BLAKE2b-256 a213dbbed8790b7dedf45a2060a9411b0ef57858343829f68f35bf63f6a60e58

See more details on using hashes here.

Provenance

The following attestation bundles were made for trianglengin-2.0.6-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.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for trianglengin-2.0.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 638dd71d2ba0150f5f7032c5e9a6bd3099eca21454b462582973055b1f6c56d8
MD5 8bdff3926bb4f05752b5d175bcdf0b5c
BLAKE2b-256 047765e3d025b73325b4036b708724b4daf2613657abb5cf7284c1f724cf4a9b

See more details on using hashes here.

Provenance

The following attestation bundles were made for trianglengin-2.0.6-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.6-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for trianglengin-2.0.6-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 8ae3d4d6c9b13d0249eb710e707c351d58509be5fcff23f74e7a9f6b143e001e
MD5 b013cd2777e9f8a42e11f661fb9deaae
BLAKE2b-256 a7b62621d343cad778a2e4c013d6ba47eba2706411ddbb16981b9f85c07f78b2

See more details on using hashes here.

Provenance

The following attestation bundles were made for trianglengin-2.0.6-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.6-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for trianglengin-2.0.6-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e822c8842494b5e2f03bf9e2b2c72fbd7ac4cc44ceb5d3a92add0253604ae8aa
MD5 0614a9c85656ed7ea9b75b2301180a5b
BLAKE2b-256 4be29ca307c153ccf07ec89a3f421f420e09d79e4935485a271865e7487779cb

See more details on using hashes here.

Provenance

The following attestation bundles were made for trianglengin-2.0.6-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.6-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for trianglengin-2.0.6-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 537efe8dac88b1168606f6cb63e2d305d234d0eb81c3fea3e78c6ff159a48abc
MD5 3f79d610538d78bdb046572083ccd946
BLAKE2b-256 f3157eaafcc78850c8243b47f426f369bfbc0884edc41ee918e86463c83bab95

See more details on using hashes here.

Provenance

The following attestation bundles were made for trianglengin-2.0.6-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.6-cp310-cp310-win32.whl.

File metadata

  • Download URL: trianglengin-2.0.6-cp310-cp310-win32.whl
  • Upload date:
  • Size: 288.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.6-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 521529f0aa5b4a8858d622bfe880439fde6d6766769abb4e9f85a2ceefe4879a
MD5 f89d02c6bce94095d2dbf378af5d305a
BLAKE2b-256 c6c9e23ef3e8bd8c5142e3b8abc4f76d0864f83fc5bc093a4ae9468b57b77820

See more details on using hashes here.

Provenance

The following attestation bundles were made for trianglengin-2.0.6-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.6-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for trianglengin-2.0.6-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 7e79532c95824d89ab2e122efbf4638484c2330903f26bc3a705854d996e4c24
MD5 b7c9e8a77f25663cd41950304c80f6b2
BLAKE2b-256 e4ba8c75fe8144bc455cfbae103860c48e2a1583bb52931d57a450bde32a5e1e

See more details on using hashes here.

Provenance

The following attestation bundles were made for trianglengin-2.0.6-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.6-cp310-cp310-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for trianglengin-2.0.6-cp310-cp310-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 2b5a170015730ac3ba89fe5b82986587be3b45f98b33f8d598c9d41fd9ff8daf
MD5 a2eda9f38b27b9a578acfe8010be3a09
BLAKE2b-256 5aa43c07f195ff8563d975443315cb20975cb27835d0579bee1b97f5e16aab39

See more details on using hashes here.

Provenance

The following attestation bundles were made for trianglengin-2.0.6-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.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for trianglengin-2.0.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 dc7451d1be8372aaff1ad3bac2cac27e6ea9021ca6bcf1ed5d5cb45d11916a58
MD5 491aeea68c6aed59f3f0ade8a7bfa4ad
BLAKE2b-256 996566acd2fd7d8444579aca2fcaf58c0f5b4a2f08d8dea6890c92eacedc0edd

See more details on using hashes here.

Provenance

The following attestation bundles were made for trianglengin-2.0.6-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.6-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for trianglengin-2.0.6-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 1e9b4a27d2af10e172c098836301cfc09ce8476f362917481351166832537a7e
MD5 915989f966ba3c63db81c0e937bebcdf
BLAKE2b-256 669f06da312b0ab76e257d198be0be68ecb01ea3f87be6d892efbc3d93c71ce1

See more details on using hashes here.

Provenance

The following attestation bundles were made for trianglengin-2.0.6-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.6-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for trianglengin-2.0.6-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 02390cbc57974cd09bc9b0ec8c9b51d7de5419c1ea37b9adb18b50fb94cc2cde
MD5 5e3764c4684b025834f4d1fe5b47c446
BLAKE2b-256 7a55020103d0d5e5a433476e0726d32d6cf627f9d147809767c576b73bd037c9

See more details on using hashes here.

Provenance

The following attestation bundles were made for trianglengin-2.0.6-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