Skip to main content

Python templating engine - the one ton solution

Project description

Tonnikala

Join the chat at https://gitter.im/tetframework/Tonnikala https://coveralls.io/repos/github/tetframework/Tonnikala/badge.svg?branch=master

Tonnikala is the latest reincarnation among the Python templating languages that feed on Kid-inspired XML syntax. It doesn’t use the tagstreams and trees of Genshi or Kid, but follows in footsteps of Chameleon and Kajiki in making the template to compile into Python bytecode directly. The syntax is very close to that of Kajiki, but the internals are very different: Tonnikala writes code as Abstract Syntax Trees and optimizes the resulting trees extensively. In addition, there is an optional speed-up module, that provides a specialized class used for output buffering.

Examples

from tonnikala.loader import Loader

template_source = u"""
<table>
    <tr py:for="row in table">
        <py:for each="key, value in row.items()"
            ><td>$key</td><td>$literal(value)</td></py:for>
    </tr>
</table>
"""

template = Loader().load_string(template_source)

ctx = {
    'table': [dict(a=1,b=2,c=3,d=4,e=5,f=6,g=7,h=8,i=9,j=10)
        for x in range(1000)]
}

print(template.render(ctx))

Variable interpolation

Within attributes and text, all contents starting with $ followed by a {, an alphabetic character or _ is considered an interpolated expression. If the interpolated expression starts with ${, the expression continues until the matching } token. Otherwise the interpolation consists of an identifier, followed by any number of attribute accesses, indexing brackets [...], and method call operators (...), without any intervening whitespace (except within the brackets). The expression parsing stops whenever the next token cannot match this rule anymore.

While the form

HELLO, ${user.name.upper()}.

is accepted, it is also perfectly OK to write

HELLO, $user.name.upper().

In the above code, user is an object with name attribute or property, which evaluates to a string; upper() method is called on the resulting string. Suppose the user’s name is Antti Haapala, the resulting output would be HELLO, ANTTI HAAPALA..

The rules also ensure that you can do an interpolation as follows:

Your word $digit has the integer value ${{'one': 1, 'two': 2}[digit]}

Now, if digit == 'one', the output of this fragment would be

Your word one has the integer value 1.

An interpolated expression is auto-escaped appropriately for its context. If you do not want to be the expression to be escaped you can bracket it with a function call to literal(), or in markupsafe.Markup. The literal is especially efficient as it is optimized away in the compile time whenever possible.

Control tags/attributes

Most of the control tags and attributes have a reach of one element (those which do not, have an effect for the whole file). For all these you have the choice of using them as an attribute or as an element; e.g.

<py:for each="i in iterable"></py:for>

or

<div py:for="i in iterable"></div>

The latter attribute form is preferred as they are more concise, but sometimes clarity or structure necessitates the use of the element form.

py:if

<py:if test="condition"><span>the condition was true</span></py:if>

or

<span py:if="condition">the condition was true</span>

results in the output

<span>the condition was true</span>

if the condition was true

py:unless

py:unless="expression" is an alternative way to type py:if="not expression".

py:for

<py:for each="i in range(5)"><td>$i</td></py:for>

or

<td py:for="i in range(5)">$i</td>

results in the output

<td>0</td><td>1</td><td>2</td><td>3</td><td>4</td>

py:strip

Strips the tag if the expression is true; keeping the contents. Keeps the tag if the expression evaluates to false.

<div py:strip="True">content</div>

results in rendered output

content

py:strip="" is equivalen to py:strip="True".

Warning: py:strip will evaluate the expression twice: once for the opening and once for the closing tag.

py:def

Declares a callable function with optional arguments. The function, when called, will return the rendered contents of the py:def tag.

For example a function without argments (you can omit the empty parentheses ()):

<!-- define a function -->
<py:def function="copyright">(C) 2015 Tonnikala contributors</py:def>

<!-- call the function -->
$copyright()

With arguments:

<button
     py:def="button(caption, type='submit' cls='btn-default', id=None)"
     class="btn $btn_cls"
     type="$type"
     id="$id">$caption</button>

$button('Cancel', id='cancel')
$button('OK', cls='btn-primary', id='ok')
$button('Reset', type='reset')

Will render to

<button class="btn btn-default" type="submit" id="cancel">Cancel</button>
<button class="btn btn-primary" type="submit" id="ok">OK</button>
<button class="btn btn-default" type="reset">Reset</button>

The functions created by py:def form closures - that is they remember the variable values from the context where they were created.

<li py:def="li_element(content)">$content</li>

<ul py:def="make_list(elements, format_item=li_element)">
    <py:for each="item in elements">$format_item(item)</py:for>
</ul>

<py:def function="make_color_list(elements, color='#ccc')">
    <li py:def="colorized_li_element(content)" style="color: $color">$content</li>
    $make_list(elements, format_item=colorized_li_element)
</py:def>

$make_list(plain)
$make_color_list(good, color="#0F0")
$make_color_list(bad, color="#F00")

might render to

<ul>
    <li>Plain item 0</li>
    <li>Plain item 1</li>
    <li>Plain item 2</li>
</ul>
<ul>
    <li style="color: #0F0">Good item 0</li>
    <li style="color: #0F0">Good item 1</li>
    <li style="color: #0F0">Good item 2</li>
    <li style="color: #0F0">Good item 3</li>
</ul>
<ul>
    <li style="color: #F00">Bad item 0</li>
    <li style="color: #F00">Bad item 1</li>
    <li style="color: #F00">Bad item 2</li>
</ul>

py:with

py:with declares one or more lexical variable bindings to be available within the element. This is useful in eliminating repeated calculations in a declarative context

<py:with vars="a = 5; b = 6"><span>$a * $b = ${a * b}</span></py:with>

or

<span py:with="a = 5; b = 6">$a * $b = ${a * b}</span>

results in the output

<span>5 * 6 = 30</span>

Template inheritance

base.tk

<html>
<title><py:block name="title_block">I am $title</py:block></title>
<py:def function="foo()">I can be overridden too!</py:def>
<h1>${title_block()}</h1>
${foo()}
</html>

child.tk

<py:extends href="base.tk">
<py:block name="title_block">But I am $title instead</py:block>
<py:def function="foo()">I have overridden the function in parent template</py:def>
</py:extends>

Template imports

importable.tk

<html>
<py:def function="foo()">I am an importable function</py:def>
</html>

importer.tk

<html>
<py:import href="importable.tk" alias="imp" />
${imp.foo()}
</html>

FileLoader

To load templates from files, use the tonnikala.FileLoader class:

loader = FileLoader(paths=['/path/to/templates'])
template = loader.load('child.tk')

A FileLoader currently implicitly caches all loaded templates in memory.

Template

To render the template:

result = template.render(ctx)

You can specify a block, or no-argument def to render explicitly:

result = template.render(ctx, funcname='title_block')

Pyramid integration

Include ‘tonnikala.pyramid’ into your config to enable Tonnikala. When included, Tonnikala adds the following configuration directives:

add_tonnikala_extensions(*extensions)

Registers Tonnikala renderer for these template extensions. By default Tonnikala is not registered as a renderer for any extension. For example: config.add_tonnikala_extensions('.html', '.tk') would enable Tonnikala renderer for templates with either of these extensions.

add_tonnikala_search_paths(*paths)

Adds the given paths to the end of Tonnikala search paths that are searched for templates. These can be absolute paths, or package.module:directory/subdirectory-style asset specs. By default no search path is set (though of course you can use an asset spec for template).

set_tonnikala_reload(reload)

If True, makes Tonnikala not cache templates. Default is False.

set_tonnikala_l10n(reload)

If True, makes Tonnikala translate templates. Default is False.

These 4 can also be controlled by tonnikala.extensions, tonnikala.search_paths, tonnikala.reload and tonnikala.l10n respectively in the deployment settings (the .ini files). If tonnikala.reload is not set, Tonnikala shall follow the pyramid.reload_templates setting.

set_debug_templates(debug)

If True, makes Tonnikala skip some optimizations that make debugging harder.

Status

Beta, working features are

  • Structural elements py:if, py:unless, py:def, py:for, py:replace, py:content

  • Basic template inheritance: py:extends and py:block; the child template also inherits top level function declarations from the parent template, and the child can override global functions that the parent defines and uses.

  • Expression interpolation using $simple_identifier and ${complex + python + "expression"}

  • Boolean attributes: <tag attr="${False}">, <tag attr="$True">

  • Implicit escaping

  • Disabling implicit escaping (literal())

  • C speedups for both Python 2 and Python 3

  • Importing def blocks from another template: py:import

  • Basic I18N using gettext.

  • Pyramid integration

  • Javascript as the target language (using js: prefix)

  • Overriding attributes, setting attrs from dictionary: py:attrs

  • Understandable exceptions and readable tracebacks on CPython

  • Lexical variable assignments with py:with

Upcoming features:

  • Structural elements: py:switch, py:case; py:else for for, if and switch.

  • Custom tags mapping to py:def

  • I18N with optional in-parse-tree localization (partially done)

  • Pluggable frontend syntax engines (partially done)

  • METAL-like macros

  • Pluggable expression languages akin to Chameleon

  • Even better template inheritance

  • Better documentation

Contributors

  • Antti Haapala

  • Ilja Everilä

  • Pete Sevander

  • Hiếu Nguyễn

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

tonnikala-1.0.0.tar.gz (64.2 kB view details)

Uploaded Source

Built Distributions

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

tonnikala-1.0.0-py3-none-any.whl (58.2 kB view details)

Uploaded Python 3

tonnikala-1.0.0-cp314-cp314-musllinux_1_2_x86_64.whl (78.2 kB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ x86-64

tonnikala-1.0.0-cp314-cp314-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl (78.4 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64manylinux: glibc 2.5+ x86-64

tonnikala-1.0.0-cp314-cp314-macosx_11_0_arm64.whl (66.3 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

tonnikala-1.0.0-cp313-cp313-musllinux_1_2_x86_64.whl (78.4 kB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

tonnikala-1.0.0-cp313-cp313-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl (78.6 kB view details)

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

tonnikala-1.0.0-cp313-cp313-macosx_11_0_arm64.whl (66.2 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

tonnikala-1.0.0-cp312-cp312-musllinux_1_2_x86_64.whl (78.3 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

tonnikala-1.0.0-cp312-cp312-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl (78.6 kB view details)

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

tonnikala-1.0.0-cp312-cp312-macosx_11_0_arm64.whl (66.2 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

tonnikala-1.0.0-cp311-cp311-musllinux_1_2_x86_64.whl (77.2 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

tonnikala-1.0.0-cp311-cp311-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl (77.5 kB view details)

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

tonnikala-1.0.0-cp311-cp311-macosx_11_0_arm64.whl (66.1 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

tonnikala-1.0.0-cp310-cp310-musllinux_1_2_x86_64.whl (76.3 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

tonnikala-1.0.0-cp310-cp310-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl (76.6 kB view details)

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

tonnikala-1.0.0-cp310-cp310-macosx_11_0_arm64.whl (66.1 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

tonnikala-1.0.0-cp39-cp39-musllinux_1_2_x86_64.whl (76.2 kB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ x86-64

tonnikala-1.0.0-cp39-cp39-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl (76.4 kB view details)

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

tonnikala-1.0.0-cp39-cp39-macosx_11_0_arm64.whl (66.1 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

tonnikala-1.0.0-cp38-cp38-musllinux_1_2_x86_64.whl (76.3 kB view details)

Uploaded CPython 3.8musllinux: musl 1.2+ x86-64

tonnikala-1.0.0-cp38-cp38-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl (77.0 kB view details)

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

tonnikala-1.0.0-cp38-cp38-macosx_11_0_arm64.whl (65.9 kB view details)

Uploaded CPython 3.8macOS 11.0+ ARM64

File details

Details for the file tonnikala-1.0.0.tar.gz.

File metadata

  • Download URL: tonnikala-1.0.0.tar.gz
  • Upload date:
  • Size: 64.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for tonnikala-1.0.0.tar.gz
Algorithm Hash digest
SHA256 5a1c1c41d6b777a035594d64527c16fff01ec46c466d07902242f4e7bbd6b54a
MD5 169ca5695106cf392860a1fa8f769952
BLAKE2b-256 54eb7d4f8242b5e5818d26f4deb1b228bb8cc9527e025fed595ab1faf77e51a0

See more details on using hashes here.

Provenance

The following attestation bundles were made for tonnikala-1.0.0.tar.gz:

Publisher: release.yml on tetframework/Tonnikala

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

File details

Details for the file tonnikala-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: tonnikala-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 58.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for tonnikala-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 32f4a7707f0cf71d477890424bb697c985bd0c32e5dcc35adeb3216c138af8d2
MD5 ad687c19e3e02968aa4c37547ec792b3
BLAKE2b-256 8e2a828e9e95afa9e869c4def3947866ebb1aa5927e52c9898fbc18190d10a52

See more details on using hashes here.

Provenance

The following attestation bundles were made for tonnikala-1.0.0-py3-none-any.whl:

Publisher: release.yml on tetframework/Tonnikala

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

File details

Details for the file tonnikala-1.0.0-cp314-cp314-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for tonnikala-1.0.0-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 09b593454f700017c46c6bb463207527cc2309c58cd16885db6156dc5778bd5b
MD5 bb6fb4379c396c7da6f4a82cd3a7c6aa
BLAKE2b-256 c75cfd5946eb6439de4a29247a88fbe718afc9fd8ff13eb41fe83387ebd9c209

See more details on using hashes here.

Provenance

The following attestation bundles were made for tonnikala-1.0.0-cp314-cp314-musllinux_1_2_x86_64.whl:

Publisher: release.yml on tetframework/Tonnikala

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

File details

Details for the file tonnikala-1.0.0-cp314-cp314-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl.

File metadata

File hashes

Hashes for tonnikala-1.0.0-cp314-cp314-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 9f74a5dedcec8407a494a6611d783a3437eada72b5581075bd085aa36e77aa99
MD5 5acc4b7a5ca90a76eb012fcff52197f8
BLAKE2b-256 2b55b1ccdfc9da137a16615c73b54762f0534f035719aff4eddab941f83adfea

See more details on using hashes here.

Provenance

The following attestation bundles were made for tonnikala-1.0.0-cp314-cp314-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl:

Publisher: release.yml on tetframework/Tonnikala

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

File details

Details for the file tonnikala-1.0.0-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tonnikala-1.0.0-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6312741e442419d75b3580cf8024c1a57e18c3c04bff77a20a2b5e9f739b5acd
MD5 0940868085903210982b166b51328f82
BLAKE2b-256 03b7f4af88388967f1416c384ab90242bf9c90317838869ec3da47c7ff3bf6a3

See more details on using hashes here.

Provenance

The following attestation bundles were made for tonnikala-1.0.0-cp314-cp314-macosx_11_0_arm64.whl:

Publisher: release.yml on tetframework/Tonnikala

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

File details

Details for the file tonnikala-1.0.0-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for tonnikala-1.0.0-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 4971751d7996c442ba5c7e4d407a7d332a3b6a6da65c3068a5a192e5c9b2d012
MD5 84c8e312035ef16117ee87bbac3a5c0a
BLAKE2b-256 0fac65e530e63319748aa6cb75b11cdd4442bb07d8d6911ebef8e7ca76bbd5d6

See more details on using hashes here.

Provenance

The following attestation bundles were made for tonnikala-1.0.0-cp313-cp313-musllinux_1_2_x86_64.whl:

Publisher: release.yml on tetframework/Tonnikala

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

File details

Details for the file tonnikala-1.0.0-cp313-cp313-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl.

File metadata

File hashes

Hashes for tonnikala-1.0.0-cp313-cp313-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 5aefe2e7eb9b49b5f7e91a0b30e570129e17a3348391fbd0ff8ee30aecc6b319
MD5 53f1467c73fb0da698f5e557f68cd43c
BLAKE2b-256 0d8a79b2f4c1b04867ca11b113d87aeed31090ec4adc2cbf7ed5a98f5e70f622

See more details on using hashes here.

Provenance

The following attestation bundles were made for tonnikala-1.0.0-cp313-cp313-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl:

Publisher: release.yml on tetframework/Tonnikala

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

File details

Details for the file tonnikala-1.0.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tonnikala-1.0.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 53170e1b6a0e0f22e2776c9ad06352073ad1301555c0f8b1f10284840821756b
MD5 374fb75c894187dc7f08c206021e8edc
BLAKE2b-256 670dfe75e71f5215940b137fc90dc5580eb059c342b9459f18da199fb7741f52

See more details on using hashes here.

Provenance

The following attestation bundles were made for tonnikala-1.0.0-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: release.yml on tetframework/Tonnikala

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

File details

Details for the file tonnikala-1.0.0-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for tonnikala-1.0.0-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 aefe892745f5e2b46726f9817a7be4eb76e0e75d29ed0c00045f39947aad6497
MD5 eb05fea462ccd96bc5a8a200e862a555
BLAKE2b-256 7d16c10c90f0f7c719c079137998a7aa63c17f1a5e033c57e90e66fbdfe4516b

See more details on using hashes here.

Provenance

The following attestation bundles were made for tonnikala-1.0.0-cp312-cp312-musllinux_1_2_x86_64.whl:

Publisher: release.yml on tetframework/Tonnikala

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

File details

Details for the file tonnikala-1.0.0-cp312-cp312-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl.

File metadata

File hashes

Hashes for tonnikala-1.0.0-cp312-cp312-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 28f3607f7b1ff70261d5ea070eef077f3cc8e3729d9faf8cc389a6addfeb798e
MD5 2759ec9ba3ed21fc24d05a98de37bc64
BLAKE2b-256 6057fc0923f331f35f76143218e23a10575d1cd104a82d68f04fd46898d614e6

See more details on using hashes here.

Provenance

The following attestation bundles were made for tonnikala-1.0.0-cp312-cp312-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl:

Publisher: release.yml on tetframework/Tonnikala

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

File details

Details for the file tonnikala-1.0.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tonnikala-1.0.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9e785403e178b35677bfdc98b97428b7481204d3f977285b06a16410afa82264
MD5 03a07f6cb210e9a330cdf68622c68ddc
BLAKE2b-256 b7fe8ecd180b0edc7e538c3861e88c4a015db6f940c457af8eefc7e8f00ffdae

See more details on using hashes here.

Provenance

The following attestation bundles were made for tonnikala-1.0.0-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: release.yml on tetframework/Tonnikala

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

File details

Details for the file tonnikala-1.0.0-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for tonnikala-1.0.0-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 2beb3d790487da02aba726d64dcea89c112d23bbe85df4eceed8c8d9b80eaa31
MD5 fe19206f8c9506f743405208a44c8642
BLAKE2b-256 abc3597f0f017183ef2df83bd3aeb19c50cb951a2d1a42e44ed11276ae89f4f1

See more details on using hashes here.

Provenance

The following attestation bundles were made for tonnikala-1.0.0-cp311-cp311-musllinux_1_2_x86_64.whl:

Publisher: release.yml on tetframework/Tonnikala

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

File details

Details for the file tonnikala-1.0.0-cp311-cp311-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl.

File metadata

File hashes

Hashes for tonnikala-1.0.0-cp311-cp311-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 3f8f09c9da19fa77a1f72d32385fdbb4cb8db7bb1e85430037940ae4cf5fb587
MD5 d233ccffcc2988f843f3c5a07c6d55af
BLAKE2b-256 d6db5daad8c4669370bef6bc4b63e3bc209d41b3bb35ad1539983a046eff1c83

See more details on using hashes here.

Provenance

The following attestation bundles were made for tonnikala-1.0.0-cp311-cp311-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl:

Publisher: release.yml on tetframework/Tonnikala

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

File details

Details for the file tonnikala-1.0.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tonnikala-1.0.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 db3671303aed6d6c652724122730695381a8c017e9f4b19407b02cbd9c0bde02
MD5 7079935a7243e0a0771ff96ee6fd761d
BLAKE2b-256 f71db5e50151ffac109d05ade7e132750c014f3aa696a61533be1c9e1e8ba287

See more details on using hashes here.

Provenance

The following attestation bundles were made for tonnikala-1.0.0-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: release.yml on tetframework/Tonnikala

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

File details

Details for the file tonnikala-1.0.0-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for tonnikala-1.0.0-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 0d29f353bff5a1f7b1cdcc60e0318ed0daed3fbe4e1fcc74756ab49344f00b18
MD5 19c2eae98a14b12584f1714d69a17010
BLAKE2b-256 4fdab46185a133cf0dafe88ee0603be2b643db1adb9ce7702f60ed42c2a735c3

See more details on using hashes here.

Provenance

The following attestation bundles were made for tonnikala-1.0.0-cp310-cp310-musllinux_1_2_x86_64.whl:

Publisher: release.yml on tetframework/Tonnikala

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

File details

Details for the file tonnikala-1.0.0-cp310-cp310-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl.

File metadata

File hashes

Hashes for tonnikala-1.0.0-cp310-cp310-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 e2372f1b6fdfc0124e4995f1cf80633f1912cb650949ed2294d9813290ab0adc
MD5 20a09bf5ad18ffae589febf9edbd22bc
BLAKE2b-256 1ecbd4ae69c0bfe5fa1a55c4c224a0ba13242444a48c8f0afd1c34aaf0d139b9

See more details on using hashes here.

Provenance

The following attestation bundles were made for tonnikala-1.0.0-cp310-cp310-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl:

Publisher: release.yml on tetframework/Tonnikala

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

File details

Details for the file tonnikala-1.0.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tonnikala-1.0.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b3e7a265955a713167f6228070463047aae5026e5d8cbc4ad55639f58ad2aebd
MD5 bcf7fb2479f8bbe8f3a7001c9348afce
BLAKE2b-256 3c6e4515c4cdb15dfd4e97b7d59b70905c68074163612f37e3362761a1634a99

See more details on using hashes here.

Provenance

The following attestation bundles were made for tonnikala-1.0.0-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: release.yml on tetframework/Tonnikala

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

File details

Details for the file tonnikala-1.0.0-cp39-cp39-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for tonnikala-1.0.0-cp39-cp39-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 48a33f880934f0e1064e7a01f8508fa477587c2c893e74511719c6b208bbb4b6
MD5 36b91d22e1dfc4522f79b18fd5e6ec74
BLAKE2b-256 b9fb4e05204a2bdadaec759c846bf9aff3484f7f34705d5039f9f4cca7c573f3

See more details on using hashes here.

Provenance

The following attestation bundles were made for tonnikala-1.0.0-cp39-cp39-musllinux_1_2_x86_64.whl:

Publisher: release.yml on tetframework/Tonnikala

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

File details

Details for the file tonnikala-1.0.0-cp39-cp39-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl.

File metadata

File hashes

Hashes for tonnikala-1.0.0-cp39-cp39-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 71a9be354e205b5503979cb1f84a4243d48f60a4770fc68436bf35ddb7c87b44
MD5 1027366f5026984e9722e2b03a993fea
BLAKE2b-256 337db884ab203d2a7a0b316472e0c3405772108ae4e90a469dab061ea92cc368

See more details on using hashes here.

Provenance

The following attestation bundles were made for tonnikala-1.0.0-cp39-cp39-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl:

Publisher: release.yml on tetframework/Tonnikala

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

File details

Details for the file tonnikala-1.0.0-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tonnikala-1.0.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8e0a46db648283122f7ced5378bcd6a2b34c1ee10aa9371a294f1b757d43e254
MD5 b967a52f78656a45153a6e092365580f
BLAKE2b-256 f3986170ecfad57829bdef9308d21d6dcd710aebf0835f55794305769b326905

See more details on using hashes here.

Provenance

The following attestation bundles were made for tonnikala-1.0.0-cp39-cp39-macosx_11_0_arm64.whl:

Publisher: release.yml on tetframework/Tonnikala

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

File details

Details for the file tonnikala-1.0.0-cp38-cp38-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for tonnikala-1.0.0-cp38-cp38-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 41bdc6448c08559b9ca6db8eca041d55279e88734535f6f0905a20af9a067459
MD5 b283819d1f8ed1ad3d3ee12b97919080
BLAKE2b-256 a783c41d9738100d383e2ce90382327a24a13f5e699457a5694422dea1746b81

See more details on using hashes here.

Provenance

The following attestation bundles were made for tonnikala-1.0.0-cp38-cp38-musllinux_1_2_x86_64.whl:

Publisher: release.yml on tetframework/Tonnikala

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

File details

Details for the file tonnikala-1.0.0-cp38-cp38-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl.

File metadata

File hashes

Hashes for tonnikala-1.0.0-cp38-cp38-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 ae0a8ffdf5ee8272e6ce65fc307feaebc557070412f5e095d7254b845a38ff8a
MD5 04ad5bc734b8dddb2b93da5b8cf7df0c
BLAKE2b-256 8f2062091b05b082c51d0be8891c87318f9f2713811c08943ee4d4e144ac3ff7

See more details on using hashes here.

Provenance

The following attestation bundles were made for tonnikala-1.0.0-cp38-cp38-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl:

Publisher: release.yml on tetframework/Tonnikala

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

File details

Details for the file tonnikala-1.0.0-cp38-cp38-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tonnikala-1.0.0-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 592620a1272669f2814308dd852e37f6f6a387277ff99d9bf2d0b521cedcbdbf
MD5 b3500fcb510dd4d9ab221ade9a6b437a
BLAKE2b-256 de7fe4c8130d78541ad6653da03c28241a5d15c65538049be5d7297545604e48

See more details on using hashes here.

Provenance

The following attestation bundles were made for tonnikala-1.0.0-cp38-cp38-macosx_11_0_arm64.whl:

Publisher: release.yml on tetframework/Tonnikala

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