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

from pytera import PyTera

# Initialize with template directory
tera = PyTera("templates/*.html")

# Render a template
result = tera.render_template("hello.html", {"name": "World"})
print(result)  # Hello World!

Usage Examples

Basic Variables

from pytera import PyTera

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

Conditionals

user = {"name": "Bob", "is_admin": True}
result = tera.render_template("conditionals.html", {"user": user})
# Output: Welcome, Administrator Bob!

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})

Filters

data = {
    "text": "hello world",
    "missing": None,
    "list": ["apple", "banana", "cherry", "date"],
}
result = tera.render_template("filters.html", data)

Template Inheritance

# base.html
<!DOCTYPE html>
<html>
<head>
    <title>{% block title %}Default Title{% endblock %}</title>
</head>
<body>
    <h1>My Website</h1>
    {% block content %}{% endblock %}
</body>
</html>

# child.html
{% extends "base.html" %}

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

{% block content %}
<h2>Welcome to {{ site_name }}</h2>
<p>Hello, {{ user.name }}!</p>
{% endblock %}

Flask Integration

from flask import Flask
from pytera import PyTera

app = Flask(__name__)
tera = PyTera("templates/*.html")

@app.route("/")
def index():
    return tera.render_template(
        "page.html",
        {"site_name": "My Site", "user": {"name": "David"}}
    )

if __name__ == "__main__":
    app.run()

API Reference

PyTera Class

__init__(glob: str)

Initialize PyTera with a template glob pattern.

Parameters:

  • glob (str): Glob pattern for template files (e.g., "templates/**/*.html")

Raises:

  • ValueError: Invalid glob pattern or template configuration errors
  • RuntimeError: Template parsing failures or inheritance issues
  • UnicodeDecodeError: UTF-8 decoding errors
  • OSError: File I/O errors

render_template(template: str, kwargs: Optional[Mapping[str, Any]] = None) -> str

Render a template with the given context.

Parameters:

  • template (str): Template name/key
  • kwargs (Optional[Mapping[str, Any]]): Context dictionary

Returns:

  • str: Rendered template content

Raises:

  • ValueError: Invalid context keys or configuration errors
  • RuntimeError: Template rendering errors
  • UnicodeDecodeError: Encoding errors
  • OSError: File I/O errors

templates() -> list[str]

Get list of loaded template names.

Returns:

  • list[str]: Template names

Template Syntax

PyTera supports the full Tera template syntax:

Variables

{{ variable }}
{{ user.name }}

Conditionals

{% if condition %}
Content here
{% elif other_condition %}
Other content
{% else %}
Default content
{% endif %}

Loops

{% for item in items %}
{{ item.name }}: {{ item.price }}
{% endfor %}

Filters

{{ text | upper }}
{{ number | round(precision=2) }}
{{ list | slice(start=1, end=3) | join(sep=", ") }}

Template Inheritance

<!-- base.html -->
{% block content %}{% endblock %}

<!-- child.html -->
{% extends "base.html" %}
{% block content %}Child content{% endblock %}

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

Performance

PyTera is designed for high performance:

  • Zero-copy string operations in Rust
  • Efficient template compilation and caching
  • Minimal Python overhead through PyO3

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.1.tar.gz (122.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.1-cp313-cp313t-win_amd64.whl (1.1 MB view details)

Uploaded CPython 3.13tWindows x86-64

pytera-0.1.1-cp313-cp313t-win32.whl (1.1 MB view details)

Uploaded CPython 3.13tWindows x86

pytera-0.1.1-cp313-cp313t-musllinux_1_2_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ x86-64

pytera-0.1.1-cp313-cp313t-musllinux_1_2_i686.whl (1.5 MB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ i686

pytera-0.1.1-cp313-cp313t-musllinux_1_2_armv7l.whl (1.5 MB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ ARMv7l

pytera-0.1.1-cp313-cp313t-musllinux_1_2_aarch64.whl (1.6 MB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ ARM64

pytera-0.1.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ x86-64

pytera-0.1.1-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl (1.4 MB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ s390x

pytera-0.1.1-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (1.5 MB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ ppc64le

pytera-0.1.1-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (1.3 MB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ ARMv7l

pytera-0.1.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.4 MB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ ARM64

pytera-0.1.1-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.whl (1.4 MB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.5+ i686

pytera-0.1.1-cp313-cp313t-macosx_11_0_arm64.whl (1.2 MB view details)

Uploaded CPython 3.13tmacOS 11.0+ ARM64

pytera-0.1.1-cp313-cp313t-macosx_10_12_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.13tmacOS 10.12+ x86-64

pytera-0.1.1-cp38-abi3-win_amd64.whl (1.1 MB view details)

Uploaded CPython 3.8+Windows x86-64

pytera-0.1.1-cp38-abi3-win32.whl (1.1 MB view details)

Uploaded CPython 3.8+Windows x86

pytera-0.1.1-cp38-abi3-musllinux_1_2_x86_64.whl (1.6 MB view details)

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

pytera-0.1.1-cp38-abi3-musllinux_1_2_i686.whl (1.5 MB view details)

Uploaded CPython 3.8+musllinux: musl 1.2+ i686

pytera-0.1.1-cp38-abi3-musllinux_1_2_armv7l.whl (1.5 MB view details)

Uploaded CPython 3.8+musllinux: musl 1.2+ ARMv7l

pytera-0.1.1-cp38-abi3-musllinux_1_2_aarch64.whl (1.6 MB view details)

Uploaded CPython 3.8+musllinux: musl 1.2+ ARM64

pytera-0.1.1-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.4 MB view details)

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

pytera-0.1.1-cp38-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl (1.4 MB view details)

Uploaded CPython 3.8+manylinux: glibc 2.17+ s390x

pytera-0.1.1-cp38-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (1.5 MB view details)

Uploaded CPython 3.8+manylinux: glibc 2.17+ ppc64le

pytera-0.1.1-cp38-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (1.3 MB view details)

Uploaded CPython 3.8+manylinux: glibc 2.17+ ARMv7l

pytera-0.1.1-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.4 MB view details)

Uploaded CPython 3.8+manylinux: glibc 2.17+ ARM64

pytera-0.1.1-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.whl (1.4 MB view details)

Uploaded CPython 3.8+manylinux: glibc 2.5+ i686

pytera-0.1.1-cp38-abi3-macosx_11_0_arm64.whl (1.2 MB view details)

Uploaded CPython 3.8+macOS 11.0+ ARM64

pytera-0.1.1-cp38-abi3-macosx_10_12_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.8+macOS 10.12+ x86-64

File details

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

File metadata

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

File hashes

Hashes for pytera-0.1.1.tar.gz
Algorithm Hash digest
SHA256 597904752cc736d8a62cad55fea80d746709be78ac09931666014fd813ff6a61
MD5 d3cf886025af75a68b52b30e455b4d20
BLAKE2b-256 ac21f7908b251ef69c226986419c0ed131152df816c4faf522c78bc7b20e3c5b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pytera-0.1.1-cp313-cp313t-win_amd64.whl
  • Upload date:
  • Size: 1.1 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.1-cp313-cp313t-win_amd64.whl
Algorithm Hash digest
SHA256 04e4d124fd3e8071a6b71cd4ac6b5700f7ac43f094617d61a2d593b0209a5cd4
MD5 de54d872ef4a2d48dc5c1b02dff3333b
BLAKE2b-256 f7912c92ffb4a8beb89788a6f8e0d34b3c7e3ce311f8ccb6ba6c859aeb49ebc2

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pytera-0.1.1-cp313-cp313t-win32.whl
  • Upload date:
  • Size: 1.1 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.1-cp313-cp313t-win32.whl
Algorithm Hash digest
SHA256 2f06f155c3460b97d99adb5ced70f554a288281c795ebd6bdce9f003dec52147
MD5 e75d9a2f309348a6d6a0ea699072468b
BLAKE2b-256 01c27782741806011c67b3ed57a0d0d39899e388631db5f4e3b680078497cc2b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pytera-0.1.1-cp313-cp313t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 9313df20256e91b652f93c500dc2801c3f7cb285136677e76a3ed09fa4a3d0bc
MD5 60247fe30447ed00b56853bc6d6a57fa
BLAKE2b-256 2a243c360ff3d821efda16eb6dcf0c7dee176c9f49ee485367ee436f9d28274d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pytera-0.1.1-cp313-cp313t-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 2375e983c8bfef646e021ee0e583ee9c1d2a716cb1b60dfc1dece484d7d93212
MD5 7fcd3a93207851859633a2ef0cb6518f
BLAKE2b-256 be015a1f8664ebb35472ebf67c122bb3fa6dc1f784535fc16ddc842007921e50

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pytera-0.1.1-cp313-cp313t-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 3b611ef18b732bdddc7f0df562f54ba439fc8ab3ec79de05bab433de70c5df2a
MD5 0f653fe02ba64e42a00c7425da4071c3
BLAKE2b-256 3e558f94e7777a796cdb5e5a934f61bd572c0e85aaa2db22b77f8bd1eadea214

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pytera-0.1.1-cp313-cp313t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 fd3ce6dd5e2199320eb6ed778fb79bccd378e987c8f7861c21177b407d1d2a22
MD5 be9e2ff9d7c422813d02274dcf49c046
BLAKE2b-256 2583458ee99e1ad3d415ef1f10e0cd9b69f77a5480aa1660565e7f95f7df4a81

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pytera-0.1.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7753894e11414029a86636dd06ab4c1703c4fcf9475fb949adb5482fc514b419
MD5 2b5c9ecfee5e4e7b93983e3feb6de0d9
BLAKE2b-256 ea47bee8c2a03bac43368f34e1c3a0285067ddf7a30c52005a9120e5fe597447

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pytera-0.1.1-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 fd1db45de62f9e644b22ba99b07c9f5416ca3d2f04e4f3b0cb44349b152f6751
MD5 15e52d8e11b1074b4f7e9549f54a5697
BLAKE2b-256 cdf76ff026fc3d29ea888f098a387e2bc0ef963da0024f936a3d3fc04f7953b6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pytera-0.1.1-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 5701128946877bb82776835f968eb3546f240294a4d6f2f056324d14fd10081d
MD5 93dec89b622eb81c3ce3ed9b42053e24
BLAKE2b-256 549acf238dacdcaf1c2a26643c7d2de02e7015d9f69c9db48099cb3d59ae8e13

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pytera-0.1.1-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 aa59be4b994625edb674aff1ee8cdafefaf3723b8ab83f185e7d3b4e9e2d6bf2
MD5 74acfc2aa21510337e00a0fef895d1f5
BLAKE2b-256 eaf5ece7f4f5f1558fe5ea3a01d47ea5a122f515cecc28787fbadbe3baf7a2ab

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pytera-0.1.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 166e547165d53b65954420936814d2904e54c0931df6dbd2ff1fe4762c65c7c4
MD5 7ff608369cbaa47b2168081777b4e8ae
BLAKE2b-256 dd39bf392601c148e76ad9a8eeb1fd20a7c1151dc846ea2ed572f91b9a5b36cd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pytera-0.1.1-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 eaa9fe85490513dabdd578ecfefe4c4b19bee4fa4a75c6ec757d408e57a03727
MD5 181205c45a5de51b2b60d1206462ff55
BLAKE2b-256 30a748618f04a495d4f5f94a14e90a0fc73dc0a79046da001dfc871fe6aecdf4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pytera-0.1.1-cp313-cp313t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 841b2c8748f046adc1968b42450e8c4aaab88be3701a6a1da010e7e45a91d61a
MD5 d6d1a4251cae22e7456154da19342823
BLAKE2b-256 61c8ca1d3dc663b89addcc518ccb8482e2e33dfd8bd2a4e8765120df4617448e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pytera-0.1.1-cp313-cp313t-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 feb6bc03be08df76b56f85950b283e11ac1e536226c087476c76ee1707f5b630
MD5 167e243a1709162b1b6d434c622bf3e6
BLAKE2b-256 eb6f14f068f4aa72054bb9e3826a12bb89b4deeba79b6553ffe8aff84fd08f89

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pytera-0.1.1-cp38-abi3-win_amd64.whl
  • Upload date:
  • Size: 1.1 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.1-cp38-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 9d7d92baa91494c8d98547a55afb141ec73fb5b268fe282d21cc1d08546dd1f7
MD5 ebad836af92c8bbf55e349cd53cabb52
BLAKE2b-256 84a0fdbdafc3d5f3bf37d9b535fce20309636d43fa237b75d782760855a1156a

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pytera-0.1.1-cp38-abi3-win32.whl
  • Upload date:
  • Size: 1.1 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.1-cp38-abi3-win32.whl
Algorithm Hash digest
SHA256 3c164484a0fdb395df5393f445f93dc4412ed8728b451e8d6e4b5d00a895bed1
MD5 82756190c0dd18dc161d6ca79015ea60
BLAKE2b-256 8b4858339b62df10ec01ae5b22c32bfa2da5f29d36ff97d28a4f1603e261d9e1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pytera-0.1.1-cp38-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 e94c920fef1c12c12277a2183b8797f006586867f60fa352ffb7b97699abe810
MD5 afac99215952db5358384bcca07ec75a
BLAKE2b-256 23db08afd0a2ce75a1d32cd83ff3a795227396c884d623c31caac7c728a56efc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pytera-0.1.1-cp38-abi3-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 f80d675fa2651b9173f7534e011ee2dc959fb739ab256fd0846d5792763aadd3
MD5 90dc0212d27d6550a736414f6d48f7fd
BLAKE2b-256 7302af2cd547fbcc3dfe7faa5758463f96596c9919dd5fe3ddd8ce8552177515

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pytera-0.1.1-cp38-abi3-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 977d318338a7ffba13354be3f742ba9eafc482ad1b8f6201de60fb28cf07c317
MD5 62e2cff55480fa2814592e69c7bc3f21
BLAKE2b-256 e15479199543210bad82e33977fd4a6094ec0ae56951569f82de654d4f0c77bd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pytera-0.1.1-cp38-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 8da07b62ac51dd7aaa156b3042397732ecb9f49cca5960fa806c9ef450e2ebdf
MD5 17f303f3cb7d3087fca1c149a8d29273
BLAKE2b-256 eff7adf59491920324803ed4e4c304a98f4e69bce374eff466705717bd228e3d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pytera-0.1.1-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b12358bf208b657ff52a1e50733c0750c8e2bbe69aec4ab75e9f54f25f973040
MD5 55ff30cb54b263684708d005a8b20dcd
BLAKE2b-256 6f5b000f1d476eb154e72fbe07cc70da000b5b10ebc90d407c37ec28279818a1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pytera-0.1.1-cp38-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 0e37562160fb21338cbde03a9413ec48b98153019ddb74ec32391fa3e4fd60e9
MD5 2893702e6065b8bc44857234d6289336
BLAKE2b-256 56065949a194021fdd5c6ad314483854cdba1981febfb65ca0f867140820b359

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pytera-0.1.1-cp38-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 44cdde0501d18749b70c1d89f7fc34f650da41031f5ac44957201b147396abd9
MD5 566795ff1dfd3d269249076189cb4a77
BLAKE2b-256 f5b85f427d078dec0b786613c1953aac0cd4e3ea6ce0a666bb77dbc6a5dae427

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pytera-0.1.1-cp38-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 d96cf07593c82033151b0f20c30e39f5785a993d03114fe54f76ffb6fc6e4a64
MD5 f3636065cd626a3ec24ecf6333b2eb2e
BLAKE2b-256 81be1a933fd38de9e96fc560e019f41451c65a2586b8e9549bb05bc7e898c7de

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pytera-0.1.1-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 e88784122e95cfb1beb77fea669872c81d8d3527400084aae5921c7c8541a94f
MD5 743bd5780fd8562e667c10b34a341542
BLAKE2b-256 e03494c066854ee5ac5a32b18659fb933abd212bce20fc41e1abba5238922bfc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pytera-0.1.1-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 f76306e0855d7afd8d285aa1507800cb879f551418f701c6b041840d796cfdad
MD5 55f9785deda23b2835f4482808471420
BLAKE2b-256 1f3a0c4d799ba93cbf037b95d251194e03e7d5f905b7498157525991dfe2be6d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pytera-0.1.1-cp38-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d686c12998c8891fc1918129320991bae034cce8aa5ba0c033d8b06e474f776d
MD5 c74ecba21b22b6fc9ab256d873831ed5
BLAKE2b-256 f0bd17a3e787bf112d05c9f6b1ef071a8047aeb9b2cd96822645c5c6a0d4a013

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pytera-0.1.1-cp38-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 a22ddca615c156a184a6f572541a81f5c9f64025584d447ce871d19471551448
MD5 29a8d793eaf01b6322bf1524b3c9fc58
BLAKE2b-256 a009bd81f4997b0d1068bc9fe715d86fb8b4b173923e2a3bf17071cea7ff77db

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