Skip to main content

PyThra — a Flutter-like GUI framework in Python. a declarative Python UI framework for desktop apps with a webview renderer.

Project description

PyThra GUI Toolkit

PyThra Logo

A declarative Python gui toolkit for building beautiful, modern desktop applications using web technologies.
Inspired by the development patterns of Flutter, PyThra brings the power of a stateful, component-based UI model to Python developers.

Key FeaturesGetting StartedExamplePhilosophyCore ConceptsContributing


🚀 Key Features

  • Declarative UI: Describe your UI as a function of your application's state. When the state changes, PyThra intelligently updates only the necessary parts of the UI.
  • Component-Based: Build your application by composing small, reusable Widgets, just like in modern web frameworks.
  • Python-First: Write your entire application logic, state management, and UI structure in pure Python. No need to write HTML, CSS, or JavaScript by hand.
  • Efficient Reconciliation: Features a sophisticated reconciliation algorithm that minimizes DOM manipulations, ensuring a smooth and responsive user experience.
  • Rich Widget Library: Includes a set of pre-built, Material Design-inspired widgets like Scaffold, AppBar, TextField, ListView, Dialog, and more.
  • Themed and Customizable: Widgets are styled using a shared, dynamic CSS system. Easily create and apply themes, including custom scrollbars powered by SimpleBar.js.
  • Hot Reloading: The architecture is designed to support hot reloading for a rapid development cycle.

📦 Getting Started

Prerequisites

  • Python 3.8+
  • PySide6 (pip install pyside6)

Installation

Currently, PyThra is under active development. To use it, you can install it using pip or clone the repository and install the dependencies.

# Install pythra and its prerequisites
pip install pythra

# Check pythra installation
pythra doctor

# create a pythra project
pyhtra create-project new-app

💡 Example Usage

Building an application with PyThra is simple and intuitive. Here’s a classic "Counter App" example:

# lib/main.py
# import colors
from constants.colors import *

# Welcome to your new Pythra App!
from pythra import (
    Framework,
    StatefulWidget,
    State,
    Column,
    Row,
    Key,
    Widget,
    Container,
    Text,
    Alignment,
    Colors,
    Center,
    ElevatedButton,
    SizedBox,
    MainAxisAlignment,
    CrossAxisAlignment,
    ClipPath,
    EdgeInsets,
    Icon,
    IconButton,
    Icons,
    ButtonStyle,
    TextStyle,
    Stack,
    Positioned,
    ClipBehavior,
    GradientTheme,
)


class HomePageState(State):
    def __init__(self):
        self.count = 0

    def incrementCounter(self):
        self.count += 1
        print("self.count: ", self.count)
        self.setState()

    def decrementCounter(self):
        self.count -= 1
        print("self.count: ", self.count)
        self.setState()

    def build(self) -> Widget:
        rotating_gradient_theme = GradientTheme(
            gradientColors=["red", "yellow", "green", "blue", "red"],
            rotationSpeed="4s",  # <-- Set a rotation speed to enable rotation
        )
        return Container(
            key=Key("home_page_Pythra_wrapper_container"),
            height="100vh",
            width="100vw",
            color=app_black,
            child=Center(
                key=Key("home_page_Pythra_center"),
                child=Stack(
                    key=Key("home_page_Pythra_center_Stack"),
                    clipBehavior=ClipBehavior.NONE,
                    children=[
                        ClipPath(
                            height="30vh",
                            width="30vh",
                            viewBox=[100, 100],
                            points=[
                                (0, 100),
                                (20, 100),
                                (20, 75),
                                (80, 75),
                                (80, 100),
                                (100, 100),
                                (100, 0),
                                (0, 0),
                            ],
                            radius=8,
                            key=Key("home_page_Pythra_home_page_clip_path"),
                            child=Container(
                                key=Key("home_page_Pythra_home_page_container"),
                                height="30vh",
                                width="30vh",
                                gradient=rotating_gradient_theme,
                                padding=EdgeInsets.all(2),
                                child=ClipPath(
                                    height="29.4vh",
                                    width="29.4vh",
                                    viewBox=[100, 100],
                                    points=[
                                        # _ |
                                        (0, 100),
                                        (18.5, 100),
                                        (18.5, 74.8),
                                        (81.5, 74.8),
                                        (81.5, 100),
                                        (100, 100),
                                        (100, 0),
                                        (0, 0),
                                    ],
                                    radius=8,
                                    key=Key(
                                        "home_page_Pythra_home_page_clip_path_child"
                                    ),
                                    child=Container(
                                        key=Key(
                                            "home_page_Pythra_home_page_column_cont"
                                        ),
                                        color=app_white,
                                        padding=EdgeInsets.all(12),
                                        height="100%",
                                        child=Column(
                                            key=Key(
                                                "home_page_Pythra_home_page_column"
                                            ),
                                            children=[
                                                Row(
                                                    crossAxisAlignment=CrossAxisAlignment.END,
                                                    key=Key(
                                                        "home_page_Pythra_counter_headerRow"
                                                    ),
                                                    children=[
                                                        Text(
                                                            "Pythra",
                                                            key=Key("home_page_Pythra"),
                                                            style=TextStyle(
                                                                color=app_black,
                                                                fontSize=20,
                                                            ),
                                                        ),
                                                        SizedBox(
                                                            width=4,
                                                            key=Key("sixe_2_box"),
                                                        ),
                                                        Text(
                                                            "GUI TOOLKIT v0.1.0",
                                                            key=Key(
                                                                "home_page_Pythra_ver"
                                                            ),
                                                            style=TextStyle(
                                                                color=Colors.grey,
                                                                fontSize=10,
                                                            ),
                                                        ),
                                                    ],
                                                ),
                                                SizedBox(
                                                    height=24,
                                                    key=Key("sixe_box_head"),
                                                ),
                                                Row(
                                                    crossAxisAlignment=CrossAxisAlignment.END,
                                                    key=Key(
                                                        "home_page_Pythra_counter_txtRow"
                                                    ),
                                                    children=[
                                                        Text(
                                                            f"Count:",
                                                            key=Key(
                                                                "home_page_Pythra_counter_txt"
                                                            ),
                                                            style=TextStyle(
                                                                color=app_black,
                                                                fontSize=14,
                                                            ),
                                                        ),
                                                        SizedBox(
                                                            width=12,
                                                            key=Key("sixe_box"),
                                                        ),
                                                        Text(
                                                            f"{self.count}",
                                                            key=Key(
                                                                "home_page_Pythra_counter_txt_count"
                                                            ),
                                                            style=TextStyle(
                                                                color=app_black,
                                                                fontSize=20,
                                                                fontWeight="bold",
                                                            ),
                                                        ),
                                                    ],
                                                ),
                                            ],
                                        ),
                                    ),
                                ),
                            ),
                        ),
                        Positioned(
                            height="30vh",
                            width="30vh",
                            top="24.4vh",
                            key=Key("home_page_Pythra_decrement_btn_Positioned"),
                            child=Container(
                                key=Key(
                                    "home_page_Pythra_decrement_btn_Positioned_Container"
                                ),
                                child=Row(
                                    mainAxisAlignment=MainAxisAlignment.CENTER,
                                    key=Key(
                                        "home_page_Pythra_decrement_btn_Positioned_Container_Row"
                                    ),
                                    children=[
                                        IconButton(
                                            key=Key("home_page_Pythra_decrement_btn"),
                                            icon=Icon(
                                                Icons.stat_minus_1_rounded,
                                                key=Key("home_page_Pythra_dec_btn_txt"),
                                            ),
                                            onPressed=self.decrementCounter,
                                        ),
                                        SizedBox(
                                            width=24,
                                            key=Key("sixe_box_dec"),
                                        ),
                                        IconButton(
                                            key=Key("home_page_Pythra_increment_btn"),
                                            icon=Icon(
                                                Icons.stat_1_rounded,
                                                key=Key("home_page_Pythra_btn_txt"),
                                            ),
                                            onPressed=self.incrementCounter,
                                        ),
                                    ],
                                ),
                            ),
                        ),
                    ],
                ),
            ),
        )


class HomePage(StatefulWidget):
    def createState(self) -> HomePageState:
        return HomePageState()


class MainState(State):
    def __init__(self):
        self.home_page = HomePage(key=Key("home_page"))

    def build(self):
        return self.home_page


class Main(StatefulWidget):
    def createState(self) -> MainState:
        return MainState()


if __name__ == "__main__":
    # This allows running the app directly with `python lib/main.py`
    # as well as with the CLI's `pythra run` command.
    app = Framework.instance()
    app.set_root(Main(key=Key("home_page_wrapper")))
    app.run(title="My New Pythra App")

🪄 Demo

PyThra App Demo

📜 Philosophy

PyThra is built on the idea that building desktop UIs should be as fluid and logical as building for the modern web.

  • The UI is a reflection of the state. You don't manually show, hide, or update UI elements. You change the state, and the toolkit figures out the most efficient way to reflect those changes in the UI.
  • Composition over inheritance. Complex UIs are built by nesting simple widgets. A Button isn't a complex class; it's a Container with padding, a Text child, and an event listener.
  • Developer Experience is paramount. Features like hot reloading, a declarative API, and a single language (Python) for everything are designed to make development faster and more enjoyable.

🔬 Core Concepts

  • Widget: The base class for everything you see on the screen. Widgets are lightweight, immutable "blueprints" for UI elements.
  • StatefulWidget & State: For UI that needs to change dynamically, you use a StatefulWidget. Its mutable data is held in a separate State object. Calling setState() on this object is what triggers a UI rebuild.
  • build() method: The core of every State object. It must return a Widget tree that describes the UI for the current state.
  • Reconciler: The engine of the toolkit. It compares the widget tree returned by build() with the previous tree, generates a list of minimal changes (patches), and sends them to the web front-end to be applied to the DOM.
  • Key: A special object that gives a widget a stable identity across rebuilds. This is crucial for preserving state in lists and for maintaining focus on elements like TextField.

🤝 Contributing

Contributions are welcome! Whether it's reporting a bug, proposing a new feature, or submitting a pull request, your help is appreciated.

Please feel free to open an issue to discuss any changes or ideas.

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.


Support the developerr: ko-fi

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

pythra-0.1.23.tar.gz (15.5 MB view details)

Uploaded Source

Built Distributions

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

pythra-0.1.23-cp313-cp313-win_amd64.whl (15.6 MB view details)

Uploaded CPython 3.13Windows x86-64

pythra-0.1.23-cp313-cp313-win32.whl (15.6 MB view details)

Uploaded CPython 3.13Windows x86

pythra-0.1.23-cp313-cp313-musllinux_1_2_x86_64.whl (16.0 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

pythra-0.1.23-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (16.0 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

pythra-0.1.23-cp313-cp313-macosx_11_0_arm64.whl (15.6 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

pythra-0.1.23-cp312-cp312-win_amd64.whl (15.6 MB view details)

Uploaded CPython 3.12Windows x86-64

pythra-0.1.23-cp312-cp312-win32.whl (15.6 MB view details)

Uploaded CPython 3.12Windows x86

pythra-0.1.23-cp312-cp312-musllinux_1_2_x86_64.whl (16.0 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

pythra-0.1.23-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (16.0 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

pythra-0.1.23-cp312-cp312-macosx_11_0_arm64.whl (15.6 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

pythra-0.1.23-cp311-cp311-win_amd64.whl (15.6 MB view details)

Uploaded CPython 3.11Windows x86-64

pythra-0.1.23-cp311-cp311-win32.whl (15.6 MB view details)

Uploaded CPython 3.11Windows x86

pythra-0.1.23-cp311-cp311-musllinux_1_2_x86_64.whl (16.0 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

pythra-0.1.23-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (16.0 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

pythra-0.1.23-cp311-cp311-macosx_11_0_arm64.whl (15.6 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

pythra-0.1.23-cp310-cp310-win_amd64.whl (15.6 MB view details)

Uploaded CPython 3.10Windows x86-64

pythra-0.1.23-cp310-cp310-win32.whl (15.6 MB view details)

Uploaded CPython 3.10Windows x86

pythra-0.1.23-cp310-cp310-musllinux_1_2_x86_64.whl (15.9 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

pythra-0.1.23-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (15.9 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

pythra-0.1.23-cp310-cp310-macosx_11_0_arm64.whl (15.6 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

pythra-0.1.23-cp39-cp39-win_amd64.whl (15.6 MB view details)

Uploaded CPython 3.9Windows x86-64

pythra-0.1.23-cp39-cp39-win32.whl (15.6 MB view details)

Uploaded CPython 3.9Windows x86

pythra-0.1.23-cp39-cp39-musllinux_1_2_x86_64.whl (16.0 MB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ x86-64

pythra-0.1.23-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (16.0 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

pythra-0.1.23-cp39-cp39-macosx_11_0_arm64.whl (15.6 MB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

File details

Details for the file pythra-0.1.23.tar.gz.

File metadata

  • Download URL: pythra-0.1.23.tar.gz
  • Upload date:
  • Size: 15.5 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pythra-0.1.23.tar.gz
Algorithm Hash digest
SHA256 760ef9d77ae3e9470dfa8d575ffb0cb78a645c1d456389a8f97527601b13d134
MD5 4c10dbbcfca69f05dc3c48e1f65cf0a0
BLAKE2b-256 09acb3af1a28b5ce22b2b31778a6a4c0dab512f95180a947c0cccc63bec8ec96

See more details on using hashes here.

Provenance

The following attestation bundles were made for pythra-0.1.23.tar.gz:

Publisher: build_wheels.yml on pythra-toolkit/pythra-toolkit

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

File details

Details for the file pythra-0.1.23-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: pythra-0.1.23-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 15.6 MB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pythra-0.1.23-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 1f99f43d7adbda306a4038ad607f8af7e6705e8b8e6fb0ffc3c5c4936574c954
MD5 8b4ef66503a5ca502b15ff0480a1e8ae
BLAKE2b-256 f5843b4c68d27e925bcc024783b9db8e858476e6bd163e7dfbc415a29e313633

See more details on using hashes here.

Provenance

The following attestation bundles were made for pythra-0.1.23-cp313-cp313-win_amd64.whl:

Publisher: build_wheels.yml on pythra-toolkit/pythra-toolkit

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

File details

Details for the file pythra-0.1.23-cp313-cp313-win32.whl.

File metadata

  • Download URL: pythra-0.1.23-cp313-cp313-win32.whl
  • Upload date:
  • Size: 15.6 MB
  • Tags: CPython 3.13, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pythra-0.1.23-cp313-cp313-win32.whl
Algorithm Hash digest
SHA256 ce317507aece6af536a36f89ace17e2f929cbcc61c5f4a6ef00d8667a0d178f4
MD5 fa9cf6302d81259830ed4376dd3e0a3b
BLAKE2b-256 4a980044439d9e64b3bf97bbcfdfc1099bd457514264c6d6922718fe4946486c

See more details on using hashes here.

Provenance

The following attestation bundles were made for pythra-0.1.23-cp313-cp313-win32.whl:

Publisher: build_wheels.yml on pythra-toolkit/pythra-toolkit

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

File details

Details for the file pythra-0.1.23-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pythra-0.1.23-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 4a88caa2d8683575cc2231788a135834bac69ef8fd96ede39e110ddb801fa4bf
MD5 8ef531812bc8202555f06e20926489b0
BLAKE2b-256 d4bc8ba4cd3e8798c63c0108a3cbd1cf424fce9f182eca96d7b998fea92eefca

See more details on using hashes here.

Provenance

The following attestation bundles were made for pythra-0.1.23-cp313-cp313-musllinux_1_2_x86_64.whl:

Publisher: build_wheels.yml on pythra-toolkit/pythra-toolkit

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

File details

Details for the file pythra-0.1.23-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pythra-0.1.23-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 fce5eb19265dee978ccfd4a6bcd895d981b6a8f8e10930da8932bb774017f7a9
MD5 0c2486e96d213928eb79cffa27c30be4
BLAKE2b-256 18348bc0275050bab79dfdd14381d61d73dc53b9601bccccb1bb340e68ca9bf0

See more details on using hashes here.

Provenance

The following attestation bundles were made for pythra-0.1.23-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:

Publisher: build_wheels.yml on pythra-toolkit/pythra-toolkit

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

File details

Details for the file pythra-0.1.23-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pythra-0.1.23-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 19255eebdd75235c4aab5981fd0c0e281e296f3b1edc24895adae11909cb68f8
MD5 f80f1056de614d6170bba34f795f56c2
BLAKE2b-256 0cd03e585e5a14cbced88d0a28e639a3c2b1e484155a0e32c8e5875bef7d4933

See more details on using hashes here.

Provenance

The following attestation bundles were made for pythra-0.1.23-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: build_wheels.yml on pythra-toolkit/pythra-toolkit

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

File details

Details for the file pythra-0.1.23-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: pythra-0.1.23-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 15.6 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pythra-0.1.23-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 dfc43b16c05fc04cf4e1ca6b3ec250744f581ef218ba9946b2209a442a0a678f
MD5 631f7ccb2e33512b1514dacef37faa5a
BLAKE2b-256 5588d462cd1ec0bc801f9167ce4c677ceca1a619d0b37b7f3840056e6556d48e

See more details on using hashes here.

Provenance

The following attestation bundles were made for pythra-0.1.23-cp312-cp312-win_amd64.whl:

Publisher: build_wheels.yml on pythra-toolkit/pythra-toolkit

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

File details

Details for the file pythra-0.1.23-cp312-cp312-win32.whl.

File metadata

  • Download URL: pythra-0.1.23-cp312-cp312-win32.whl
  • Upload date:
  • Size: 15.6 MB
  • Tags: CPython 3.12, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pythra-0.1.23-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 1ad5c9f552108b5319836de395812209e815feec22b9cddbe54146ee22a1e28e
MD5 ee7b0009ada8f4b2a8378f03d80f55c6
BLAKE2b-256 db5f95ed41c6b9cfa1b33d9e44c0b8ea50299ca80a078449d3e3b96627df0814

See more details on using hashes here.

Provenance

The following attestation bundles were made for pythra-0.1.23-cp312-cp312-win32.whl:

Publisher: build_wheels.yml on pythra-toolkit/pythra-toolkit

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

File details

Details for the file pythra-0.1.23-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pythra-0.1.23-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 be0c548b3595ab7d063343e50040f87d134e5dcaf23246cd621c605c7632351e
MD5 40fa65bce2300c1ac5fa1b36c7eedc29
BLAKE2b-256 dfca49acb2f45ca6bfcad97b560b8c4ac682019cfc309b91f164a1a72ff40793

See more details on using hashes here.

Provenance

The following attestation bundles were made for pythra-0.1.23-cp312-cp312-musllinux_1_2_x86_64.whl:

Publisher: build_wheels.yml on pythra-toolkit/pythra-toolkit

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

File details

Details for the file pythra-0.1.23-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pythra-0.1.23-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ed4fe55c069b237d8b76b3a0ed3541b133732ca1515b295b59335160ab43f255
MD5 28c444a8660368d7c22625c01da2ed0c
BLAKE2b-256 195d70d3c9c1cbca887f3ba0fa066e4183cff5dae753f8bba794b4bfd711ed7c

See more details on using hashes here.

Provenance

The following attestation bundles were made for pythra-0.1.23-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:

Publisher: build_wheels.yml on pythra-toolkit/pythra-toolkit

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

File details

Details for the file pythra-0.1.23-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pythra-0.1.23-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3e257045849ba520ca96bf8cad600272f2694ea33ce255787714b4a836b86193
MD5 bfd2c21f5a100d5ddee251c496a16de8
BLAKE2b-256 da0d8d498c46a604b9053f0a3728f9a4d7592ae01ae2eac0b51ca6f5bb974ecc

See more details on using hashes here.

Provenance

The following attestation bundles were made for pythra-0.1.23-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: build_wheels.yml on pythra-toolkit/pythra-toolkit

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

File details

Details for the file pythra-0.1.23-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: pythra-0.1.23-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 15.6 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pythra-0.1.23-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 34454ff96c5eb35603e2e5b785258f954d73276958c10cee303ddfedc7ad5a94
MD5 9a2aad5dd168a6e73bf5e673ced52329
BLAKE2b-256 912c01b621ef1cf7ad16baf820ffb73fd06cc99498e87a9ff22e60736a103767

See more details on using hashes here.

Provenance

The following attestation bundles were made for pythra-0.1.23-cp311-cp311-win_amd64.whl:

Publisher: build_wheels.yml on pythra-toolkit/pythra-toolkit

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

File details

Details for the file pythra-0.1.23-cp311-cp311-win32.whl.

File metadata

  • Download URL: pythra-0.1.23-cp311-cp311-win32.whl
  • Upload date:
  • Size: 15.6 MB
  • Tags: CPython 3.11, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pythra-0.1.23-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 f7c865550d6c99ee22014f0624bdda7ea521c758e6be4d9550d5faa23c121ec9
MD5 0d0dfaa82862c4df1c7a290dd89efa72
BLAKE2b-256 212d7fd4e10c49dcf2370ed2afbc6520bdbef1851242b5bc8b35da40be757048

See more details on using hashes here.

Provenance

The following attestation bundles were made for pythra-0.1.23-cp311-cp311-win32.whl:

Publisher: build_wheels.yml on pythra-toolkit/pythra-toolkit

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

File details

Details for the file pythra-0.1.23-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pythra-0.1.23-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 7cb10b7470b43a93f27ae05f3de10df132d3d19f0165de5ddb147419b36c3e23
MD5 2bdd132d574fe1483175719cd384ca27
BLAKE2b-256 729af3e1ee82a4aa76c5a854daa26d579cca624dcac2590f3826596a91d16e11

See more details on using hashes here.

Provenance

The following attestation bundles were made for pythra-0.1.23-cp311-cp311-musllinux_1_2_x86_64.whl:

Publisher: build_wheels.yml on pythra-toolkit/pythra-toolkit

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

File details

Details for the file pythra-0.1.23-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pythra-0.1.23-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a51a806f2cc27282d63978990de158bbd43a065a990a4637fc3b6e60f0aedd61
MD5 692411313701d3c56f7e132734ce89fd
BLAKE2b-256 a6342ab98f410d81091a45b0e61a8d5a3f11b0d1f74e356d21561b59c436039a

See more details on using hashes here.

Provenance

The following attestation bundles were made for pythra-0.1.23-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:

Publisher: build_wheels.yml on pythra-toolkit/pythra-toolkit

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

File details

Details for the file pythra-0.1.23-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pythra-0.1.23-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 752e834968ea0002ca8c0b37c443de76f48dee4f7dc98587a08b0fd301b1539f
MD5 970650290fca85d3411ad6c0fe37c666
BLAKE2b-256 55a0510a67d73950f92ef834ae9d60fc8dc485997d3c24a1b14601400c62860b

See more details on using hashes here.

Provenance

The following attestation bundles were made for pythra-0.1.23-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: build_wheels.yml on pythra-toolkit/pythra-toolkit

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

File details

Details for the file pythra-0.1.23-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: pythra-0.1.23-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 15.6 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pythra-0.1.23-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 2dd4c736e96f4c3286ea6322838151b7e82ca23fe6043682b5b5b22120e41e69
MD5 bc7609f2d8d0f697625f92fde615fb3d
BLAKE2b-256 a8fea6f4e768d1b5bd78addb136dcf06eaa2d455784b229bde68d8b73aa04ba8

See more details on using hashes here.

Provenance

The following attestation bundles were made for pythra-0.1.23-cp310-cp310-win_amd64.whl:

Publisher: build_wheels.yml on pythra-toolkit/pythra-toolkit

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

File details

Details for the file pythra-0.1.23-cp310-cp310-win32.whl.

File metadata

  • Download URL: pythra-0.1.23-cp310-cp310-win32.whl
  • Upload date:
  • Size: 15.6 MB
  • Tags: CPython 3.10, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pythra-0.1.23-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 a7509a24635959c33623a23c444032acca545af337203694d32c5c29198368ab
MD5 4fb1ad6b903257981cc739966078091c
BLAKE2b-256 e1f76b376c6d5ea45ba4f96479fef9ff30ad6964378253025749ae1af9c76f93

See more details on using hashes here.

Provenance

The following attestation bundles were made for pythra-0.1.23-cp310-cp310-win32.whl:

Publisher: build_wheels.yml on pythra-toolkit/pythra-toolkit

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

File details

Details for the file pythra-0.1.23-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pythra-0.1.23-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 c08c0d72da4e5e2fc256b483822ea57b0d39cb7af13233f4270d9ac0d958eb83
MD5 cc0f684923b45a78579caa1ca78176aa
BLAKE2b-256 38519b350987201a1861ded7e453f4c415c6bd04cbd5756feae5144913936cf7

See more details on using hashes here.

Provenance

The following attestation bundles were made for pythra-0.1.23-cp310-cp310-musllinux_1_2_x86_64.whl:

Publisher: build_wheels.yml on pythra-toolkit/pythra-toolkit

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

File details

Details for the file pythra-0.1.23-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pythra-0.1.23-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 4192bc0f3b1d08e889bf24875d23a410cd9150b5d5b6fa00f1a07126286bc563
MD5 3dd3fbe62063a1597ede5f23d611e383
BLAKE2b-256 9586acfa81b7e4f29ea121a820f5137de12b6df5788eae44fec1e2c63fbd8129

See more details on using hashes here.

Provenance

The following attestation bundles were made for pythra-0.1.23-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:

Publisher: build_wheels.yml on pythra-toolkit/pythra-toolkit

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

File details

Details for the file pythra-0.1.23-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pythra-0.1.23-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1136bec3fb52c6c6a473cf3cef37d10661a8b26162a26d7d6628f8356d07db61
MD5 0ac00b44a3af088af213fc064e89ec69
BLAKE2b-256 ce0eba0fe176c97552ed77fbba229d1487bb9cdcb8e9d028d2ff1c7833eb2f1f

See more details on using hashes here.

Provenance

The following attestation bundles were made for pythra-0.1.23-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: build_wheels.yml on pythra-toolkit/pythra-toolkit

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

File details

Details for the file pythra-0.1.23-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: pythra-0.1.23-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 15.6 MB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pythra-0.1.23-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 e7bb29638f92231ea40e0c7f7cc50bc7d5fe8717391c748abbf64df60f629c40
MD5 7943e0280b494e846036e2f2b56ed42e
BLAKE2b-256 ec1efb57071e0d7f6f5f25218e1ed1d4fa078a5d58cd4951dc2f9f90eec3e56d

See more details on using hashes here.

Provenance

The following attestation bundles were made for pythra-0.1.23-cp39-cp39-win_amd64.whl:

Publisher: build_wheels.yml on pythra-toolkit/pythra-toolkit

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

File details

Details for the file pythra-0.1.23-cp39-cp39-win32.whl.

File metadata

  • Download URL: pythra-0.1.23-cp39-cp39-win32.whl
  • Upload date:
  • Size: 15.6 MB
  • Tags: CPython 3.9, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pythra-0.1.23-cp39-cp39-win32.whl
Algorithm Hash digest
SHA256 a78618623736e59e3ba2bf8e97922387de55823f2171dd376f2194a9724960cb
MD5 5e33651973a497b7db7b61f77789b664
BLAKE2b-256 c5518d7a9a38de3d54a3f89d2d8c352394ecb5e0744774173e5f9b8d519f6a44

See more details on using hashes here.

Provenance

The following attestation bundles were made for pythra-0.1.23-cp39-cp39-win32.whl:

Publisher: build_wheels.yml on pythra-toolkit/pythra-toolkit

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

File details

Details for the file pythra-0.1.23-cp39-cp39-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pythra-0.1.23-cp39-cp39-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 2680025590bd21b1ab020a63c780283e1b9ed4f853d55cea54b2d62e6a0a2cc9
MD5 4c4f3f2ff9f4e5d0ff3ac7e9ba3f5a26
BLAKE2b-256 720982a61c4343cb61ae3c425c84670668ea4561f951cbf8ab4067b957a1129c

See more details on using hashes here.

Provenance

The following attestation bundles were made for pythra-0.1.23-cp39-cp39-musllinux_1_2_x86_64.whl:

Publisher: build_wheels.yml on pythra-toolkit/pythra-toolkit

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

File details

Details for the file pythra-0.1.23-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pythra-0.1.23-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 fe8ae3781569ed9974fa098d65b74fbde279ed741f747035e9bfe8e99ea49fb9
MD5 d1640d2a2752047335bda8e2368fffff
BLAKE2b-256 b0f3394d2441319e86e128d35ba667009dffb5c1cafaf238303848ce1fc1fe5c

See more details on using hashes here.

Provenance

The following attestation bundles were made for pythra-0.1.23-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:

Publisher: build_wheels.yml on pythra-toolkit/pythra-toolkit

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

File details

Details for the file pythra-0.1.23-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pythra-0.1.23-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8adcea561f6b7794e044a16108a1fa42dc514bfe5c2e2f1dceaaea7fbb67ee1f
MD5 d85a2d1b973fe8fd6d934d42cfe890bb
BLAKE2b-256 a176e14060b4e4e0ddb146c0a9be6d93287d31e3d0dcdc74cfd8b1176ff2d00f

See more details on using hashes here.

Provenance

The following attestation bundles were made for pythra-0.1.23-cp39-cp39-macosx_11_0_arm64.whl:

Publisher: build_wheels.yml on pythra-toolkit/pythra-toolkit

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