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 ๐Ÿงฉ

Get ready to become a Triangle Master! This guide explains everything you need to know to play the game, step-by-step, with lots of details!

1. Introduction: Your Mission! ๐ŸŽฏ

Your goal is to place colorful shapes onto a special triangular grid. By filling up lines of triangles, you make them disappear and score points! Keep placing shapes and clearing lines for as long as possible to get the highest score before the grid fills up and you run out of moves. Sounds simple? Let's dive into the details!

2. The Playing Field: The Grid ๐Ÿ—บ๏ธ

  • Triangle Cells: The game board is a grid made of many small triangles. Some point UP (๐Ÿ”บ) and some point DOWN (๐Ÿ”ป). They alternate like a checkerboard pattern based on their row and column index (specifically, (row + col) % 2 != 0 means UP).
  • Shape: The grid itself is rectangular overall, but the playable area within it is typically shaped like a triangle or hexagon, wider in the middle and narrower at the top and bottom.
  • Playable Area: You can only place shapes within the designated playable area.
  • Death Zones ๐Ÿ’€: Around the edges of the playable area (often at the start and end of rows), some triangles are marked as "Death Zones". You cannot place any part of a shape onto these triangles. They are off-limits! Think of them as the boundaries within the rectangular grid.

3. Your Tools: The Shapes ๐ŸŸฆ๐ŸŸฅ๐ŸŸฉ

  • Shape Formation: Each shape is a collection of connected small triangles (๐Ÿ”บ and ๐Ÿ”ป). They come in different colors and arrangements. Some might be a single triangle, others might be long lines, L-shapes, or more complex patterns.
  • Relative Positions: The triangles within a shape have fixed positions relative to each other. When you move the shape, all its triangles move together as one block.
  • Preview Area: You will always have three shapes available to choose from at any time. These are shown in a special "preview area" on the side of the screen.

4. Making Your Move: Placing Shapes ๐Ÿ–ฑ๏ธโžก๏ธโ–ฆ

This is the core action! Here's exactly how to place a shape:

  • Step 4a: Select a Shape: Look at the three shapes in the preview area. Click on the one you want to place. It should highlight ๐Ÿ’ก to show it's selected.
  • Step 4b: Aim on the Grid: Move your mouse cursor over the main grid. You'll see a faint "ghost" image of your selected shape following your mouse. This preview helps you aim.
  • Step 4c: The Placement Rules (MUST Follow!)
    • ๐Ÿ“ Rule 1: Fit Inside Playable Area: ALL triangles of your chosen shape must land within the playable grid area. No part of the shape can land in a Death Zone ๐Ÿ’€.
    • ๐Ÿงฑ Rule 2: No Overlap: ALL triangles of your chosen shape must land on currently empty spaces on the grid. You cannot place a shape on top of triangles that are already filled with color from previous shapes.
    • ๐Ÿ“ Rule 3: Orientation Match! This is crucial!
      • If a part of your shape is an UP triangle (๐Ÿ”บ), it MUST land on an UP space (๐Ÿ”บ) on the grid.
      • If a part of your shape is a DOWN triangle (๐Ÿ”ป), it MUST land on a DOWN space (๐Ÿ”ป) on the grid.
      • ๐Ÿ”บโžก๏ธ๐Ÿ”บ (OK!)
      • ๐Ÿ”ปโžก๏ธ๐Ÿ”ป (OK!)
      • ๐Ÿ”บโžก๏ธ๐Ÿ”ป (INVALID! โŒ)
      • ๐Ÿ”ปโžก๏ธ๐Ÿ”บ (INVALID! โŒ)
    • Visual Feedback: The game helps you!
      • ๐Ÿ‘ Valid Spot: If the position under your mouse follows ALL three rules, the ghost preview will usually look solid and possibly greenish. This means you can place the shape here.
      • ๐Ÿ‘Ž Invalid Spot: If the position breaks any of the rules (out of bounds, overlaps, wrong orientation), the ghost preview will usually look faded and possibly reddish. This means you cannot place the shape here.
  • Step 4d: Confirm Placement: Once you find a valid spot (๐Ÿ‘), click the left mouse button again. Click! The shape is now placed permanently on the grid! โœจ

5. Scoring Points: How You Win! ๐Ÿ†

You score points in two main ways:

  • Placing Triangles: You get a small number of points for every single small triangle that makes up the shape you just placed. (e.g., placing a 3-triangle shape might give you 3 * tiny_score points).
  • Clearing Lines: This is where the BIG points come from! You get a much larger number of points for every single small triangle that disappears when you clear a line (or multiple lines at once!). See the next section for details!

6. Line Clearing Magic! โœจ (The Key to High Scores!)

This is the most exciting part! When you place a shape, the game immediately checks if you've completed any lines. This section explains how the game finds and clears these lines.

  • What Lines Can Be Cleared? There are three types of lines the game looks for:

    • Horizontal Lines โ†”๏ธ: A straight, unbroken line of filled triangles going across a single row.
    • Diagonal Lines (Top-Left to Bottom-Right) โ†˜๏ธ: An unbroken diagonal line of filled triangles stepping down and to the right.
    • Diagonal Lines (Bottom-Left to Top-Right) โ†—๏ธ: An unbroken diagonal line of filled triangles stepping up and to the right.
  • How Lines are Found: Pre-calculation of Maximal Lines

    • The Idea: Instead of checking every possible line combination all the time, the game pre-calculates all maximal continuous lines of playable triangles when it starts. A maximal line is the longest possible straight segment of playable triangles (not in a Death Zone) in one of the three directions (Horizontal, Diagonal โ†˜๏ธ, Diagonal โ†—๏ธ).
    • Tracing: For every playable triangle on the grid, the game traces outwards in each of the three directions to find the full extent of the continuous playable line passing through that triangle in that direction.
    • Storing Maximal Lines: Only the complete maximal lines found are stored. For example, if tracing finds a playable sequence A-B-C-D, only the line (A,B,C,D) is stored, not the sub-segments like (A,B,C) or (B,C,D). These maximal lines represent the potential lines that can be cleared.
    • Coordinate Map: The game also builds a map linking each playable triangle coordinate (r, c) to the set of maximal lines it belongs to. This allows for quick lookup.
  • Defining the Paths (Neighbor Logic): How does the game know which triangle is "next" when tracing? It depends on the current triangle's orientation (๐Ÿ”บ or ๐Ÿ”ป) and the direction being traced:

    • Horizontal โ†”๏ธ:
      • Left Neighbor: (r, c-1) (Always in the same row)
      • Right Neighbor: (r, c+1) (Always in the same row)
    • Diagonal โ†˜๏ธ (TL-BR):
      • If current is ๐Ÿ”บ (Up): Next is (r+1, c) (Down triangle directly below)
      • If current is ๐Ÿ”ป (Down): Next is (r, c+1) (Up triangle to the right)
    • Diagonal โ†—๏ธ (BL-TR):
      • If current is ๐Ÿ”ป (Down): Next is (r-1, c) (Up triangle directly above)
      • If current is ๐Ÿ”บ (Up): Next is (r, c+1) (Down triangle to the right)
  • Visualizing the Paths:

    • Horizontal โ†”๏ธ:
      ... [๐Ÿ”ป][๐Ÿ”บ][๐Ÿ”ป][๐Ÿ”บ][๐Ÿ”ป][๐Ÿ”บ] ...  (Moves left/right in the same row)
      
    • Diagonal โ†˜๏ธ (TL-BR): (Connects via shared horizontal edges)
      ...[๐Ÿ”บ]...
      ...[๐Ÿ”ป][๐Ÿ”บ] ...
      ...     [๐Ÿ”ป][๐Ÿ”บ] ...
      ...         [๐Ÿ”ป] ...
      (Path alternates row/col increments depending on orientation)
      
    • Diagonal โ†—๏ธ (BL-TR): (Connects via shared horizontal edges)
      ...           [๐Ÿ”บ]  ...
      ...      [๐Ÿ”บ][๐Ÿ”ป]   ...
      ... [๐Ÿ”บ][๐Ÿ”ป]        ...
      ... [๐Ÿ”ป]            ...
      (Path alternates row/col increments depending on orientation)
      
  • The "Full Line" Rule: After you place a piece, the game looks at the coordinates (r, c) of the triangles you just placed. Using the pre-calculated map, it finds all the maximal lines that contain any of those coordinates. For each of those maximal lines (that have at least 2 triangles), it checks: "Is every single triangle coordinate in this maximal line now occupied?" If yes, that line is complete! (Note: Single isolated triangles don't count as clearable lines).

  • The Poof! ๐Ÿ’จ:

    • If placing your shape completes one or MORE maximal lines (of any type, length >= 2) simultaneously, all the triangles in ALL completed lines vanish instantly!
    • The spaces become empty again.
    • You score points for every single triangle that vanished. Clearing multiple lines at once is the best way to rack up points! ๐Ÿฅณ

7. Getting New Shapes: The Refill ๐Ÿช„

  • The Trigger: The game only gives you new shapes when a specific condition is met.
  • The Condition: New shapes appear only when all three of your preview slots become empty at the exact same time.
  • How it Happens: This usually occurs right after you place your last available shape (the third one).
  • The Refill: As soon as the third slot becomes empty, BAM! ๐Ÿช„ Three brand new, randomly generated shapes instantly appear in the preview slots.
  • Important: If you place a shape and only one or two slots are empty, you do not get new shapes yet. You must use up all three before the refill happens.

8. The End of the Road: Game Over ๐Ÿ˜ญ

So, how does the game end?

  • The Condition: The game is over when you cannot legally place any of the three shapes currently available in your preview slots anywhere on the grid.
  • The Check: After every move (placing a shape and any resulting line clears), and after any potential shape refill, the game checks: "Is there at least one valid spot on the grid for Shape 1? OR for Shape 2? OR for Shape 3?"
  • No More Moves: If the answer is "NO" for all three shapes (meaning none of them can be placed anywhere according to the Placement Rules), then the game immediately ends.
  • Strategy: This means you need to be careful! Don't fill up the grid in a way that leaves no room for the types of shapes you might get later. Always try to keep options open! ๐Ÿค”

That's it! Now you know all the rules. Go forth and conquer the Triangle Puzzle! ๐Ÿ†


Purpose

The primary goal is to provide a self-contained, installable library for the core logic and basic interactive UI of the triangle puzzle game. This allows different RL agent implementations or other applications to build upon a consistent and well-defined game backend, avoiding code duplication.

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.7.tar.gz (65.0 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.7-pp310-pypy310_pp73-win_amd64.whl (292.6 kB view details)

Uploaded PyPyWindows x86-64

trianglengin-2.0.7-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (349.5 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

trianglengin-2.0.7-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl (370.7 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ i686

trianglengin-2.0.7-pp310-pypy310_pp73-macosx_11_0_arm64.whl (165.0 kB view details)

Uploaded PyPymacOS 11.0+ ARM64

trianglengin-2.0.7-cp313-cp313-win_amd64.whl (291.5 kB view details)

Uploaded CPython 3.13Windows x86-64

trianglengin-2.0.7-cp313-cp313-win32.whl (291.5 kB view details)

Uploaded CPython 3.13Windows x86

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

Uploaded CPython 3.13musllinux: musl 1.2+ i686

trianglengin-2.0.7-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (349.4 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

trianglengin-2.0.7-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl (370.7 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ i686

trianglengin-2.0.7-cp313-cp313-macosx_11_0_arm64.whl (166.1 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

trianglengin-2.0.7-cp312-cp312-win_amd64.whl (291.5 kB view details)

Uploaded CPython 3.12Windows x86-64

trianglengin-2.0.7-cp312-cp312-win32.whl (291.5 kB view details)

Uploaded CPython 3.12Windows x86

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

Uploaded CPython 3.12musllinux: musl 1.2+ i686

trianglengin-2.0.7-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (349.4 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

trianglengin-2.0.7-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl (370.7 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ i686

trianglengin-2.0.7-cp312-cp312-macosx_11_0_arm64.whl (166.0 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

trianglengin-2.0.7-cp311-cp311-win_amd64.whl (291.5 kB view details)

Uploaded CPython 3.11Windows x86-64

trianglengin-2.0.7-cp311-cp311-win32.whl (291.5 kB view details)

Uploaded CPython 3.11Windows x86

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

Uploaded CPython 3.11musllinux: musl 1.2+ i686

trianglengin-2.0.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (349.4 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

trianglengin-2.0.7-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl (370.7 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ i686

trianglengin-2.0.7-cp311-cp311-macosx_11_0_arm64.whl (166.0 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

trianglengin-2.0.7-cp310-cp310-win_amd64.whl (291.5 kB view details)

Uploaded CPython 3.10Windows x86-64

trianglengin-2.0.7-cp310-cp310-win32.whl (291.5 kB view details)

Uploaded CPython 3.10Windows x86

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

Uploaded CPython 3.10musllinux: musl 1.2+ i686

trianglengin-2.0.7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (349.4 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

trianglengin-2.0.7-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl (370.7 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ i686

trianglengin-2.0.7-cp310-cp310-macosx_11_0_arm64.whl (164.7 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: trianglengin-2.0.7.tar.gz
  • Upload date:
  • Size: 65.0 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.7.tar.gz
Algorithm Hash digest
SHA256 d8f0381551dfee2bc44e6ecf8da77547a5a10a5b14419cbc62d49d6c87a1e9b5
MD5 599b36cc791a84b510e57672f7470b3c
BLAKE2b-256 54a7f82fc6bfce62720373d10564080f1fe648c5ab35e210d0576e0e269e4382

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for trianglengin-2.0.7-pp310-pypy310_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 2cb285a3ea07e456bd0951c9a04ea006747ac1604e2a363f58001e43dcfe72ec
MD5 b0087e6ab0081b3a7f4cab1da32eec9c
BLAKE2b-256 c3328d55af2f516767153a8abbe04cc9391f87a3df673aaa2746a926f9f84648

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for trianglengin-2.0.7-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 314eefdd48ab150bc5d9389ec6b18ee07163e8f773630827c90611e60ff88c9b
MD5 fc6c8cfb6769df7b4de3f5ed13142987
BLAKE2b-256 745b99be3eaf5650c34d32871e258bf5c18be94d57633e6ceb520fb08ae7ee84

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for trianglengin-2.0.7-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 3827e4b48dab7bfb3a5d6452de13b2e667f07fdc6aa0f1414f55081b08c902af
MD5 b636259798faf5bf00d5f44049bd7585
BLAKE2b-256 678ac025c879330180dacdf972ffd5e0b7e0d2535462650b961ce2dc72c8050c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for trianglengin-2.0.7-pp310-pypy310_pp73-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6a6bc60208e9f744f8437d93968f050656f55d91cecd5c8d278cd4a86a62f1d2
MD5 90c370ebf8729d023d154b4494bca611
BLAKE2b-256 401d757b804833ee54eaff2ec562915bc2104de7985e13447e4f98f94d6c5cac

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for trianglengin-2.0.7-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 5469ea81bd57a65a9b8c79ccf727a339e97111d84f6fbc78afeef18833aa27e7
MD5 66c900ea242d3061eabc0566add2e31e
BLAKE2b-256 6e818dc2395bc056cbf9a859f628b41f4f4c5981f9741e0b71354ac1bb973be3

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: trianglengin-2.0.7-cp313-cp313-win32.whl
  • Upload date:
  • Size: 291.5 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.7-cp313-cp313-win32.whl
Algorithm Hash digest
SHA256 58f5ecdf5c2c8a6a706ead82a17a9f43480dfc45da631d02e1bb864d8e0bc761
MD5 b6fbf4a0d109b77c79b4eb323588f56d
BLAKE2b-256 9416c8c45a93a086018142641ef96985b6c2c9bfc200ff322393695916493b9c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for trianglengin-2.0.7-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 51078862c285e1be8d08f7d09c24ae567d45c43bc848875ec6266df4b5b49f1c
MD5 ffad3059f599c8b7f2976833eb8a6449
BLAKE2b-256 0c891d59e9edc4ddfe7f6f2042608a7614493bcdce6080797587d9a65a97cdce

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for trianglengin-2.0.7-cp313-cp313-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 d07d3459ef9aad4015cfca16f590332e7613805181acac7e437421d7ced4edb7
MD5 0195783dc662895c93debfd28706001a
BLAKE2b-256 2a4e4311dc4a07f1e380e191eb9e3b03867ed82cfbe8ab2f3926f1327c793f1b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for trianglengin-2.0.7-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 420c8ff262719f8bc61eebb8a019de7fd8afd987216ef733e20ff457c7bef7b6
MD5 ea998411f2ff5d8ffc744754e59aec0f
BLAKE2b-256 160613b87a4d806bac2cb299d9856a90231beaea202f5fbea7b921cd77c6e4c6

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for trianglengin-2.0.7-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 aa95015e1f3304dad5b81c8a23f00064986eb7991ccf4bf2714e1ec257e7c287
MD5 dfe57a625ce139a3bffc47ef7a841f7c
BLAKE2b-256 003f1229801b2b4c85e779c0888944d6619fa013157154682ab729802522d020

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for trianglengin-2.0.7-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 011d403db8ae9f20a4bc99b636a7251aa448354f157c35f3aecb901556a2411f
MD5 ec6bbd27fd8a1fd4edcd51050b8ed29d
BLAKE2b-256 c1c08eaae04ac433c24484935cf42ca1eea93f09772b4f4bb0e6b827ee442568

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for trianglengin-2.0.7-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 60aeea5c5e62020fb1cb7ef4d77e31af14e8af45aa15e268cd62e629a8b5f1b6
MD5 8f1bee922ae75fc82b7af088e1211b74
BLAKE2b-256 c14c6d2b910f17f41404dc58442435f1ae24699ef455d27d106127decd1ccbc6

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: trianglengin-2.0.7-cp312-cp312-win32.whl
  • Upload date:
  • Size: 291.5 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.7-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 f66d66a2cf0798b37be3c0e42df69eb70998f8e79ecdd70126bf41575b4a79c4
MD5 2db341c3e216604dae7a4a9f5d3adb86
BLAKE2b-256 3d233deba216f89041c8fe76bc762a8ff3fc3e217b14a551456226a13a131321

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for trianglengin-2.0.7-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 1b15889cfacf08905c6705e6198b22ceca384af749f19bcf2f7fa98620396106
MD5 76c0f74b18977f3c9f6994fe8abd7868
BLAKE2b-256 91e27953b3c395e72c51d684d8f2ab54d837bc1afb0f397f311aee7bac19a883

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for trianglengin-2.0.7-cp312-cp312-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 3b14fcee491e74d78a70e62f39aa3e87856136a114e9b64ffda2fe78449ee66a
MD5 aeae0307bea5aa3a2c7ca52d277a55a9
BLAKE2b-256 e2c4240e3faffee43c82cb3e7d462eeb8e19247e27c9a5f61edea8603292c79f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for trianglengin-2.0.7-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4813a8719a0a974ac0a725d7335e7d76ae1c760957210ee78393380a6dbff3bc
MD5 7395b7d0fe576ac71c1332d79b927de6
BLAKE2b-256 1e7d6dff883dcd5104f1e1806d8cb00af164e10ad9b3670252cab15b53d8f016

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for trianglengin-2.0.7-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 3f9d9b9218a33611d333f61946bacf7e1b4f5afce725fdb8783674bbc14b0ee9
MD5 a9b6fb6cc0b5f2c25038dd4b0a42c817
BLAKE2b-256 d76126b6e7c12fd8fb313f70c05e240fbc14f3dc9c230dbe61642a8c6827a286

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for trianglengin-2.0.7-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e1a9d2bd822aabc8d1fa6c5289104a30fbffd0719a5d539c44b5345a04d92f12
MD5 1320961c7a8836c92391324e20fb94dd
BLAKE2b-256 c4483b90918d5c918c11dae7ee79ee49fa9c9d64a8602af781d694d5b238a4c9

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for trianglengin-2.0.7-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 11ba048e61fe0f4a22300aa12869466806892e1df2fcf0bce01d0dddd671335a
MD5 5f2425dd33029d4b4f72b725139f3cc4
BLAKE2b-256 f96e0925eda3b9d5908f90668771be40a4ac3f4ffb33c9976b5abaa8ccfb6839

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: trianglengin-2.0.7-cp311-cp311-win32.whl
  • Upload date:
  • Size: 291.5 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.7-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 281d3251c2b4e4dbfd934f4e8cdfe421010fb37bbbdd05f78297de01c88463fe
MD5 c4c9a6b71acb4d344783e732ed40f5e2
BLAKE2b-256 f9b995236030d31f4c447b581e3a5f3035f4ee632b7ec2f5e397dca1b30afe7e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for trianglengin-2.0.7-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 7d4bc3f1ba92798c3c5e87f690a79869da3e1c5c02deaa3a5d95178d2c021173
MD5 974e15e7c241881ed89b11892a105a6b
BLAKE2b-256 4393e76d3d6973dba6eee943b902b4fab38077f9853a4919c9f9d3a11abf3b83

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for trianglengin-2.0.7-cp311-cp311-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 aa977a6c42a4f0a402d2f829f399d87570118b5bcccc6e436b45d8462cc0259c
MD5 413107a7638336d2ed6618afbfbbf0bf
BLAKE2b-256 fb12c8fad56ffc383c15fe28e0f9659b7a2c05c95b07e855f1f9ae632ad192b2

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for trianglengin-2.0.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 75457caf02a529d49d79f505215f093b3b8f6e1cebc60f9fe43f509878732695
MD5 81b44e1dd522f10ed88dff22f823024f
BLAKE2b-256 e0ece5e9fe8d1e784e4724087ca8cee5740f21a9fd3d2175b9d698e0e560fde0

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for trianglengin-2.0.7-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 29a18c4805d0f6aab1872d025927f2cbba882328ff8d44d30eb8a2483e0f7414
MD5 115fa92152157695838c07c80c1ff29f
BLAKE2b-256 25c5a5766d86d6d6f65a24114770b8afd8e172f01f9fbfe5a13c6c0883bdb0a3

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for trianglengin-2.0.7-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0e9c3d89ecce6893c0d0dd7ae81b15e3c4b2fbb67fa59d4093b277d05903b52d
MD5 e382c0ffa0e50ab64bcefe6685b3e84d
BLAKE2b-256 3912a9a10f67daa03a5119faca530bc8f557a8ae2ef05656b3801385b3ccb2bd

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for trianglengin-2.0.7-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 f43f048ed3aec41f3dd408514d9914f770e3bd2744b251bc03bfd5fa9ce62a05
MD5 6f2ad01ffd8a05472c12de8c8f46fcc2
BLAKE2b-256 b979c62d6c479f06019a79b43011acb9f139bd2c4f64da3f81f2c824839b3929

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: trianglengin-2.0.7-cp310-cp310-win32.whl
  • Upload date:
  • Size: 291.5 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.7-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 6a65665d7fcee3d1b47914d5fdcb3e0d89e191da6d2479f6a0b0cadc927ad147
MD5 4a562d1888a2a4649c5983a9e90d0e43
BLAKE2b-256 1787b38fc2b632e98da83beb5676d36a377cc073460edf627ab5e87c3235b063

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for trianglengin-2.0.7-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 d7f750b96b7a7dc3df80737aeca1a9ce50fad6e7ef8e56c6a62ef2a5bffad324
MD5 257bad2dde1361da00e4bd9093fc9df4
BLAKE2b-256 9de7b4fab790b65902e9fb149c2a8e88ce9327f3f97ba22b01d9c6de13be6d9e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for trianglengin-2.0.7-cp310-cp310-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 b2d3fddb9fa7e985e71b814a7e87acca8e26174846d1d28d4c6e70e500549889
MD5 e8e67db0963384fa7b2a3e6efb01f2a7
BLAKE2b-256 f2fd07fc2ecb961e10f62f3b2fb1b79efb42d541e87f1c01b5768a141dd9f850

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for trianglengin-2.0.7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f0202e913863e989ff616cb9936b5f6119c312fe91b237b0d36c0521ea19bbed
MD5 ce00b72ecff7b7f36796bb4806c4ed2b
BLAKE2b-256 3bc582bf1f39f2ecc00158266694a16b0c6e386d25eca5a9bc57c5253f2ac03d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for trianglengin-2.0.7-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 e42d55b159e8ad3e5f2dcc20e8f7214e7c96ed62257ae4666ecf80dcdf5d6dae
MD5 e4e153cfc82e3f2de8a61db6c58693e8
BLAKE2b-256 c1db6fe5f78a68981fd9b9d2f7b706be9dcf580e660daf89237c8a1b79982d38

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for trianglengin-2.0.7-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e6b55dafbb4e9cb705fc3c29739f1adaad9501da88037f268c3060c0f047bddd
MD5 6c894853545310a4eb6d915ef49e9274
BLAKE2b-256 042b9abb612ec49a612d2f2323ba44ad8c0643b3a6ee6fa41f3287628e93e7e3

See more details on using hashes here.

Provenance

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