Skip to main content

A fast, Python templating engine powered by Rust's Tera library

Project description

PyTera

PyPI version Python versions License CI Codecov

A fast, Python-native templating engine powered by Rust's Tera library. PyTera brings the power and performance of Tera templates to Python applications through PyO3 bindings.

Features

  • 🚀 High Performance: Rust-powered templating with zero-copy operations
  • 🐍 Python Native: Seamless integration with Python data types and workflows
  • 📝 Tera Compatible: Full support for Tera template syntax and features
  • 🔧 Easy Integration: Simple API that works with Flask, FastAPI, and other web frameworks
  • 🛡️ Type Safe: Comprehensive type hints and error handling
  • 📚 Rich Features: Variables, conditionals, loops, filters, inheritance, and more

Installation

Install PyTera from PyPI:

pip install pytera

Or using uv:

uv add pytera

Requirements

  • Python 3.8+
  • Rust toolchain (for building from source)

Quick Start

import os
from pytera import PyTera

template_dir = os.path.join(os.path.dirname(__file__), "templates")
tera = PyTera(f"{template_dir}/*.html")

result = tera.render_template("basic_variables.html", name="Alice", age=30)
print(result)  # Hello Alice! You are 30 years old.

ℹ️ Glob pattern tips: The current templates live directly under templates/, so PyTera(f"{template_dir}/*.html") works. If you reorganize templates into nested subdirectories, switch to PyTera(f"{template_dir}/**/*.html") to load them recursively.

Usage Examples

Basic Variables

tera = PyTera("templates/*.html")
result = tera.render_template(
    "basic_variables.html",
    name="Alice",
    age=30,
)
print(result)  # Hello Alice! You are 30 years old.

ℹ️ Glob pattern tips: Current templates live directly under templates/, so PyTera(f"{template_dir}/*.html") works. If you organize templates into nested subdirectories later, switch to PyTera(f"{template_dir}/**/*.html") to load them recursively.

<!-- templates/basic_variables.html -->
Hello {{ name }}! You are {{ age }} years old.

Conditionals

user = {"name": "Bob", "is_admin": True}
result = tera.render_template("conditionals.html", user=user)
print(result)  # Welcome, Administrator Bob!
<!-- templates/conditionals.html -->
{% if user.is_admin %}
Welcome, Administrator {{ user.name }}!
{% else %}
Hello, {{ user.name }}!
{% endif %}

Loops

items = [
    {"name": "Apple", "price": 1.50},
    {"name": "Banana", "price": 0.75},
    {"name": "Cherry", "price": 2.25},
]
result = tera.render_template("loops.html", items=items)
print(result)
<!-- templates/loops.html -->
<ul>
{% for item in items %}
<li>{{ item.name }}: {{ item.price | round(precision=2) }}</li>
{% endfor %}
</ul>

Filters

data = {
    "text": "hello world",
    "missing": None,
    "list": ["apple", "banana", "cherry", "date"],
}
result = tera.render_template("filters.html", **data)
print(result)
<!-- templates/filters.html -->
<p>Uppercase: {{ text | upper }}</p>
<p>Length: {{ text | length }}</p>
<p>Default: {{ missing | default(value="N/A") }}</p>
<p>Slice: {{ list | slice(start=1, end=3) | join(sep=", ") }}</p>

Template Inheritance

<!-- templates/base.html -->
<!DOCTYPE html>
<html>
<head>
    <title>{% block title %}Default Title{% endblock %}</title>
</head>
<body>
    <header>
        <h1>My Website</h1>
    </header>
    <main>
        {% block content %}{% endblock %}
    </main>
    <footer>
        <p>&copy; 2023</p>
    </footer>
</body>
</html>
<!-- templates/child.html -->
{% extends "base.html" %}

{% block title %}Home Page{% endblock %}

{% block content %}
<h2>Welcome to {{ site_name }}</h2>
<p>This is the home page content.</p>
{% if user %}
<p>Hello, {{ user.name }}!</p>
{% endif %}
{% endblock %}

Flask Integration

import os
from flask import Flask, render_template
from pytera import PyTera

template_dir = os.path.join(os.path.dirname(__file__), "..", "templates")
tera = PyTera(f"{template_dir}/*.html")

app = Flask(__name__, template_folder=os.path.abspath(template_dir))

@app.route("/")
def index():
    return tera.render_template(
        "child.html",
        site_name="example",
        user={"name": "David"},
    )

@app.route("/child")
def child():
    return render_template(
        "child.html",
        site_name="example",
        user={"name": "David"},
    )

For a complete working example with additional routes (/basic_variables, /conditionals, /filters, /loops), see examples/app.py.

Template Syntax

The templates rendered in examples/app.py cover the core pieces of Tera syntax:

Variables

Hello {{ name }}! You are {{ age }} years old.

Conditionals

{% if user.is_admin %}
Welcome, Administrator {{ user.name }}!
{% else %}
Hello, {{ user.name }}!
{% endif %}

Loops

<ul>
{% for item in items %}
<li>{{ item.name }}: {{ item.price | round(precision=2) }}</li>
{% endfor %}
</ul>

Filters

<p>Uppercase: {{ text | upper }}</p>
<p>Length: {{ text | length }}</p>
<p>Default: {{ missing | default(value="N/A") }}</p>
<p>Slice: {{ list | slice(start=1, end=3) | join(sep=", ") }}</p>

Template Inheritance

{% extends "base.html" %}
{% block title %}Home Page{% endblock %}
{% block content %}
<h2>Welcome to {{ site_name }}</h2>
{% if user %}
<p>Hello, {{ user.name }}!</p>
{% endif %}
{% endblock %}

For more template features—such as macros, tests, and custom filters—consult the Tera documentation.

Error Handling

PyTera provides detailed error messages for common issues:

  • Template Not Found: When requesting a non-existent template
  • Invalid Context: When context keys aren't strings
  • Parsing Errors: Syntax errors in templates
  • Inheritance Issues: Circular dependencies or missing parents

Development

Building from Source

# Clone the repository
git clone https://github.com/un4gt/pytera.git
cd pytera

# Install development dependencies
uv sync --dev

# Build the package
maturin develop

# Run tests
pytest

Running Tests

# Run all tests
pytest

# Run with coverage
pytest --cov=pytera --cov-report=html

Code Quality

# Format code
cargo fmt
black src/

# Lint code
cargo clippy
flake8 src/

Contributing

We welcome contributions! Please see our Contributing Guide for details.

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests
  5. Submit a pull request

Development Setup

# Install development dependencies
uv sync --dev

# Install pre-commit hooks
pre-commit install

# Build and test
maturin develop
pytest

License

PyTera is licensed under the MIT License. See LICENSE for details.

Acknowledgments

  • Tera - The Rust templating engine
  • PyO3 - Python bindings for Rust
  • Maturin - Build tool for Python extensions

Changelog

See CHANGELOG.md for version history.

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

pytera-0.1.2.tar.gz (123.7 kB view details)

Uploaded Source

Built Distributions

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

pytera-0.1.2-cp313-cp313t-win_amd64.whl (1.4 MB view details)

Uploaded CPython 3.13tWindows x86-64

pytera-0.1.2-cp313-cp313t-win32.whl (1.4 MB view details)

Uploaded CPython 3.13tWindows x86

pytera-0.1.2-cp313-cp313t-musllinux_1_2_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ x86-64

pytera-0.1.2-cp313-cp313t-musllinux_1_2_i686.whl (1.8 MB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ i686

pytera-0.1.2-cp313-cp313t-musllinux_1_2_armv7l.whl (1.8 MB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ ARMv7l

pytera-0.1.2-cp313-cp313t-musllinux_1_2_aarch64.whl (1.7 MB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ ARM64

pytera-0.1.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ x86-64

pytera-0.1.2-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl (1.8 MB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ s390x

pytera-0.1.2-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (1.7 MB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ ppc64le

pytera-0.1.2-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (1.5 MB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ ARMv7l

pytera-0.1.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.5 MB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ ARM64

pytera-0.1.2-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.whl (1.6 MB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.5+ i686

pytera-0.1.2-cp313-cp313t-macosx_11_0_arm64.whl (1.4 MB view details)

Uploaded CPython 3.13tmacOS 11.0+ ARM64

pytera-0.1.2-cp313-cp313t-macosx_10_12_x86_64.whl (1.5 MB view details)

Uploaded CPython 3.13tmacOS 10.12+ x86-64

pytera-0.1.2-cp38-abi3-win_amd64.whl (1.4 MB view details)

Uploaded CPython 3.8+Windows x86-64

pytera-0.1.2-cp38-abi3-win32.whl (1.4 MB view details)

Uploaded CPython 3.8+Windows x86

pytera-0.1.2-cp38-abi3-musllinux_1_2_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.8+musllinux: musl 1.2+ x86-64

pytera-0.1.2-cp38-abi3-musllinux_1_2_i686.whl (1.8 MB view details)

Uploaded CPython 3.8+musllinux: musl 1.2+ i686

pytera-0.1.2-cp38-abi3-musllinux_1_2_armv7l.whl (1.8 MB view details)

Uploaded CPython 3.8+musllinux: musl 1.2+ ARMv7l

pytera-0.1.2-cp38-abi3-musllinux_1_2_aarch64.whl (1.7 MB view details)

Uploaded CPython 3.8+musllinux: musl 1.2+ ARM64

pytera-0.1.2-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.8+manylinux: glibc 2.17+ x86-64

pytera-0.1.2-cp38-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl (1.8 MB view details)

Uploaded CPython 3.8+manylinux: glibc 2.17+ s390x

pytera-0.1.2-cp38-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (1.7 MB view details)

Uploaded CPython 3.8+manylinux: glibc 2.17+ ppc64le

pytera-0.1.2-cp38-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (1.5 MB view details)

Uploaded CPython 3.8+manylinux: glibc 2.17+ ARMv7l

pytera-0.1.2-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.6 MB view details)

Uploaded CPython 3.8+manylinux: glibc 2.17+ ARM64

pytera-0.1.2-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.whl (1.6 MB view details)

Uploaded CPython 3.8+manylinux: glibc 2.5+ i686

pytera-0.1.2-cp38-abi3-macosx_11_0_arm64.whl (1.4 MB view details)

Uploaded CPython 3.8+macOS 11.0+ ARM64

pytera-0.1.2-cp38-abi3-macosx_10_12_x86_64.whl (1.5 MB view details)

Uploaded CPython 3.8+macOS 10.12+ x86-64

File details

Details for the file pytera-0.1.2.tar.gz.

File metadata

  • Download URL: pytera-0.1.2.tar.gz
  • Upload date:
  • Size: 123.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.9.6

File hashes

Hashes for pytera-0.1.2.tar.gz
Algorithm Hash digest
SHA256 4f2433a0503d27d1653aef523833f983b624aa2923de3fefcfca1ddf1649fc64
MD5 85b861e3fc903a8a3a47debfbe14dd3b
BLAKE2b-256 c3ce56324ada8340261fdefc48759c98a183c536ac461c4e3f7b54a4defe0df5

See more details on using hashes here.

File details

Details for the file pytera-0.1.2-cp313-cp313t-win_amd64.whl.

File metadata

  • Download URL: pytera-0.1.2-cp313-cp313t-win_amd64.whl
  • Upload date:
  • Size: 1.4 MB
  • Tags: CPython 3.13t, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.9.6

File hashes

Hashes for pytera-0.1.2-cp313-cp313t-win_amd64.whl
Algorithm Hash digest
SHA256 40d3d21d559283d3a0bad626c58b6291880e1c47a5444bbf1b8eb4014bb8257f
MD5 1798ef74f0cf595adecdabf4aa50ceb8
BLAKE2b-256 775eecccda3bbaa9b9d0ca5865a170e43a5000fb1979eac2a878d56b1f886626

See more details on using hashes here.

File details

Details for the file pytera-0.1.2-cp313-cp313t-win32.whl.

File metadata

  • Download URL: pytera-0.1.2-cp313-cp313t-win32.whl
  • Upload date:
  • Size: 1.4 MB
  • Tags: CPython 3.13t, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.9.6

File hashes

Hashes for pytera-0.1.2-cp313-cp313t-win32.whl
Algorithm Hash digest
SHA256 55e18a318c2eed1b01ea4528b0c92f9a0beca1a9389eae1ce609736f70c00f29
MD5 3eee1b8690b39febfe91b28849d2ed39
BLAKE2b-256 214ef263e85b10bdc84fa3b671e1cd2f015af39a01149bc751a068ebea9a4492

See more details on using hashes here.

File details

Details for the file pytera-0.1.2-cp313-cp313t-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pytera-0.1.2-cp313-cp313t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 42c12d725cf3bfc3ec404ddf0f3fe81230cb6139b4ca6e86f28cf5b1b5365667
MD5 0a76cdea2f0d989013a3f3fda41d1f70
BLAKE2b-256 2cc986729a8b920e950626af1c66d658cebb60e1b020b36017718a8664b25219

See more details on using hashes here.

File details

Details for the file pytera-0.1.2-cp313-cp313t-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for pytera-0.1.2-cp313-cp313t-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 a6edfdd908affa0fac12053896199db47967b6079e682c99d3db039faaa00096
MD5 372a5142a0d2c5eccc01cd88d855a51b
BLAKE2b-256 fee2beef52396277d12ebf208231c4fab2820b6cf36fe335306a9c88bee56548

See more details on using hashes here.

File details

Details for the file pytera-0.1.2-cp313-cp313t-musllinux_1_2_armv7l.whl.

File metadata

File hashes

Hashes for pytera-0.1.2-cp313-cp313t-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 849fe7aee510587711922b7feb64f66831922dd04a58c07c639adb83a1812015
MD5 64fae97a7097890accd6d7e97565a23f
BLAKE2b-256 9bb43e0ee932bd8da51ca6d3e704315da89e8db22eca0f0e7d1d2984c3f6de38

See more details on using hashes here.

File details

Details for the file pytera-0.1.2-cp313-cp313t-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for pytera-0.1.2-cp313-cp313t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 ec20986bb050c4a356cdf73c43c421a298d4ff238fd9d7104588605531919c86
MD5 075d132718619be63ffbee023927c0f8
BLAKE2b-256 1571faa882497507e8be4cad111f76d583c4c83cc6cd18a6f55b99767ce9db23

See more details on using hashes here.

File details

Details for the file pytera-0.1.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pytera-0.1.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 70da508137919e7840dbda2a2d6bc28da96187752eff2328a587c587ed743dc1
MD5 e5eed69f727a09a639d4a23b59f9a100
BLAKE2b-256 12118069e4266c741a7f9177891865bb835c8c0a1d2ceb8208c409c86aec088a

See more details on using hashes here.

File details

Details for the file pytera-0.1.2-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for pytera-0.1.2-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 057a41e6e4197e629f75aeb75a9ba257c7d08c63e91267ebfa9eea944fd39df7
MD5 f1c61a87efb34582decc36942034dea9
BLAKE2b-256 eaab67c3bf28892cb5adda8f29f5adad789599954e4424986487c4aecbb5edd7

See more details on using hashes here.

File details

Details for the file pytera-0.1.2-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for pytera-0.1.2-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 f419d9522e5cb49f4b081e3a7b758eeac1a972914c9f061ad2ff78418af0cf1c
MD5 5dccc84fe7a8195f698799fc1691d9c7
BLAKE2b-256 6b5b0bd408635a1648802329ef3cb147cfd54735fbcfde64d12a9d1dd5743f68

See more details on using hashes here.

File details

Details for the file pytera-0.1.2-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for pytera-0.1.2-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 b685cb884540f08dde551920966fb26f7faf2b5d62b681721e9f1b16d344fb21
MD5 509919daae0818a1744a340ff84010b0
BLAKE2b-256 208340c270030f73f3f0257972de5371d8e045674ccee480cef0d2a71bbdfe6b

See more details on using hashes here.

File details

Details for the file pytera-0.1.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pytera-0.1.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 7d0618b8ae59833ab89d18ea481ef6bb93f11e5a66887e0f004b7d40fc95e010
MD5 0b9e50141b7f2051f4606412fd61c424
BLAKE2b-256 0b91d5c523e6a9c74f538eca8f25bb709a3903c1e58f2b1a25ff72ea06cecfd2

See more details on using hashes here.

File details

Details for the file pytera-0.1.2-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.whl.

File metadata

File hashes

Hashes for pytera-0.1.2-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 50dbf01a61990e4a7fc3b29b915b8066958a25af40442ca126369de3db9f339e
MD5 315b221b82690c443b9ba58f0003118b
BLAKE2b-256 0571c7f417cb227dfec70d25fc3b87dacf6ceb4eabcbbd77a1f0ad5b6de25517

See more details on using hashes here.

File details

Details for the file pytera-0.1.2-cp313-cp313t-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pytera-0.1.2-cp313-cp313t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d48645ded1176462dbe7a22a57fb50901374067205511eea5104700167c71264
MD5 c0ae1c3614593a9635bbe0e734c74b23
BLAKE2b-256 ca480aea258d148e474bf48e18e98bcd3b0f356a5e8a42eef965756ff103a019

See more details on using hashes here.

File details

Details for the file pytera-0.1.2-cp313-cp313t-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for pytera-0.1.2-cp313-cp313t-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 5ac77410ce344a86f5b5032fa8e5948a2951a4b8fa1b323c269a7a6b56c5d410
MD5 b8bab86f5d5853edf0517832432706c8
BLAKE2b-256 c88741b7ddb17b5b819e7b16ba7acf286f2a5f4b3838d22463d38ee1164b450f

See more details on using hashes here.

File details

Details for the file pytera-0.1.2-cp38-abi3-win_amd64.whl.

File metadata

  • Download URL: pytera-0.1.2-cp38-abi3-win_amd64.whl
  • Upload date:
  • Size: 1.4 MB
  • Tags: CPython 3.8+, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.9.6

File hashes

Hashes for pytera-0.1.2-cp38-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 0056c78843de6214360ee3145ef6aebec64f065db13a9f902d26e9b4c4768ade
MD5 12e7454717c7b7f6cd946aeae6dceaab
BLAKE2b-256 cad4d83a582581395119f12c2a98e0776bb79399b828dcfc029aa6e958624a69

See more details on using hashes here.

File details

Details for the file pytera-0.1.2-cp38-abi3-win32.whl.

File metadata

  • Download URL: pytera-0.1.2-cp38-abi3-win32.whl
  • Upload date:
  • Size: 1.4 MB
  • Tags: CPython 3.8+, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.9.6

File hashes

Hashes for pytera-0.1.2-cp38-abi3-win32.whl
Algorithm Hash digest
SHA256 3e3c182d6ea356fbdc9cd54c182c1278429e79f56faa5a9142843b03d41a2736
MD5 ed350ede61d42eb63af9e3aed4aace9d
BLAKE2b-256 9f91c3d84a48f880553138ae25918761bd79a64719adab811da6df0289ad2498

See more details on using hashes here.

File details

Details for the file pytera-0.1.2-cp38-abi3-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pytera-0.1.2-cp38-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 ccc16749115c9b640f780dca67023cdf9c6d175632940a70f6d9c61ca6490bf6
MD5 7a33300b8ef7ff9d39dd2aa5dbf776c9
BLAKE2b-256 bad88af1c8245b5eabd6930bd8d6657586332adbfe4378a846cb9178f9adc35e

See more details on using hashes here.

File details

Details for the file pytera-0.1.2-cp38-abi3-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for pytera-0.1.2-cp38-abi3-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 ced029df2b993ed1b62a14fff709c46c965edb626c07c66e25d3d91c44dee85e
MD5 772585df6f3fe3462dea90e5a505a9f6
BLAKE2b-256 55da17f1d506ad7768231a7031d41eebb912718c7364372aa8359fc216046227

See more details on using hashes here.

File details

Details for the file pytera-0.1.2-cp38-abi3-musllinux_1_2_armv7l.whl.

File metadata

File hashes

Hashes for pytera-0.1.2-cp38-abi3-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 c8b2d62329e4eccebe4d8f3a1d36762d3f8d46570900df3e1a8be77ae9c12f64
MD5 48742996804e48a5a4c78bb1f9a086dd
BLAKE2b-256 727a0cae45afc09765876881a216878b6d3e252851e4724a35755896a443f438

See more details on using hashes here.

File details

Details for the file pytera-0.1.2-cp38-abi3-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for pytera-0.1.2-cp38-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 8e86bddab3da4cb72e645d96b667b0d9ed98b01375d24fd5818050868c794748
MD5 40a3e6d165821d6c52ac52fb54f6366f
BLAKE2b-256 59dfbab4c7324384dc9fdea58c468a5cb2ad468bd11509a6b7dd2bc055b7cf9f

See more details on using hashes here.

File details

Details for the file pytera-0.1.2-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pytera-0.1.2-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6956681a84aa68e15638788915473e41ae2b31b79863507e7573a2e137d23b86
MD5 35e803f22a64fcb5334b0f84e5abfd71
BLAKE2b-256 b24893b85b903d18e4f3a7e7a2dd7f88f19915c7f4acf3321c421d7dd9349d01

See more details on using hashes here.

File details

Details for the file pytera-0.1.2-cp38-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for pytera-0.1.2-cp38-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 6a1d2d6e6d4f4502e2983dc5555f9d330a5ee4e9cf151f2ff6c3098d50d07f32
MD5 e601878c9bbcbe73185acc6a65583d81
BLAKE2b-256 7e0b582305db20f2e38fdcbb3bbb3b8a40c8957ece93cd0a4d085fe257265b62

See more details on using hashes here.

File details

Details for the file pytera-0.1.2-cp38-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for pytera-0.1.2-cp38-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 b8df5ec074c4d751bf8e19b04c4c1013b9122b93b56002493ed1731fbced05f3
MD5 48e9c3c5216f17c15752fb7ae0bb4d71
BLAKE2b-256 6054c1def0f561fb086416f8561c6e34ac7473b32507fa44fbf56922db1a412e

See more details on using hashes here.

File details

Details for the file pytera-0.1.2-cp38-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for pytera-0.1.2-cp38-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 9dd86beebf6d024792a8be1dc0b285b99369dbb24e30c31ee53b5f004e3d4292
MD5 b2d9274df373e2d38383b167787e21b9
BLAKE2b-256 0f47a048ef2c6ea9844843728a38881922588c18289ef480d24a11496eb48f13

See more details on using hashes here.

File details

Details for the file pytera-0.1.2-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pytera-0.1.2-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 6c46cbd5d8d17516825d1122a1b7d365e5fd838dd3f4df299a0a99784dd1f1b7
MD5 fca770ad4bd7bb19ddaf36c727932259
BLAKE2b-256 17e05f91e1e981fc8d32da0c4430f12c45bf53fa973379c6282b671e4d859598

See more details on using hashes here.

File details

Details for the file pytera-0.1.2-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.whl.

File metadata

File hashes

Hashes for pytera-0.1.2-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 1e86b6cd3c056b48101c13730c60781c77bd97d7405d2d9d14c69a0b04dce1a0
MD5 ba56c213c6e37ebd266a2d3c0fa1c392
BLAKE2b-256 ede8cbd7d33f6bb421921d6e1253780b9e98212d195f64f674947a9b6347fd24

See more details on using hashes here.

File details

Details for the file pytera-0.1.2-cp38-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pytera-0.1.2-cp38-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 fc77b080c1887eee6710ad58ad4188288e773d6f4d0a5088f0eacfc3d3bb2283
MD5 55c7b974f7e6e2c622dae8f388b909a1
BLAKE2b-256 8ebf2358ea804903a239da2f71127ee913a2b4372dbc7b84dabb968a0fc20219

See more details on using hashes here.

File details

Details for the file pytera-0.1.2-cp38-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for pytera-0.1.2-cp38-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 ef61de50f9ab508e6cae331e8de630795fbfd9a2aa31da32f5475d2e620c5901
MD5 8687ba7ce18fe7e90f5ae9c9f95dc6e5
BLAKE2b-256 fcd792d9484008c5ef00eece1dd1bd4971ff53ca0ff4ff61da63734234177591

See more details on using hashes here.

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