Skip to main content

OpenGL Pipelines for Python

Project description

ZenGL

pip install zengl

ZenGL

ZenGL is a low level graphics library. Works on all platforms including the browser.

Description

  • Context is the root object to access OpenGL
  • Image is an OpenGL Texture or Renderbuffer
  • Buffer is an OpenGL Buffer
  • Pipeline is an OpenGL Program + Vertex Array + Framebuffer + complete state for rendering
ctx = zengl.context()
texture = ctx.image(size, 'rgba8unorm', pixels)
renderbuffer = ctx.image(size, 'rgba8unorm', samples=4)
vertex_buffer = ctx.buffer(vertices)
pipeline = ctx.pipeline(...)

The complete OpenGL state is encapsulated by the Pipeline.

Rendering with multiple pipelines guarantees proper state with minimal changes and api calls.

background.render()
scene.render()
particles.render()
bloom.render()

Pipelines render to framebuffers, Images can be blit to the screen.

# init time
pipeline = ctx.pipeline(
    framebuffer=[image, depth],
)
# per frame
image.clear()
depth.clear()
pipeline.render()
image.blit()

Programs are simple, easy, and cached. Unique shader sources are only compiled once.

pipeline = ctx.pipeline(
    vertex_shader='''
        #version 330 core

        void main() {
            gl_Position = ...
        }
    ''',
    fragment_shader='''
        #version 330 core

        out vec4 frag_color;

        void main() {
            frag_color = ...
        }
    ''',
)

Vertex Arrays are simple.

# simple
pipeline = ctx.pipeline(
    vertex_buffers=zengl.bind(vertex_buffer, '3f 3f 2f', 0, 1, 2),
    vertex_count=vertex_buffer.size // zengl.calcsize('3f 3f 2f'),
)
# indexed
pipeline = ctx.pipeline(
    vertex_buffers=zengl.bind(vertex_buffer, '3f 3f 2f', 0, 1, 2),
    index_buffer=index_buffer,
    vertex_count=index_buffer.size // 4,
)
# instanced
pipeline = ctx.pipeline(
    vertex_buffers=[
        *zengl.bind(vertex_buffer, '3f 3f 2f', 0, 1, 2),
        *zengl.bind(instance_buffer, '3f 4f /i', 3, 4),
    ],
    vertex_count=vertex_buffer.size // zengl.calcsize('3f 3f 2f'),
    instance_count=1000,
)

Uniform Buffer, Texture, and Sampler binding is easy.

# uniform buffers
pipeline = ctx.pipeline(
    layout=[
        {
            'name': 'Common',
            'binding': 0,
        },
    ],
    resources=[
        {
            'type': 'uniform_buffer',
            'binding': 0,
            'buffer': uniform_buffer,
        },
    ],
)
# textures
pipeline = ctx.pipeline(
    layout=[
        {
            'name': 'Texture',
            'binding': 0,
        },
    ],
    resources=[
        {
            'type': 'sampler',
            'binding': 0,
            'image': texture,
            'wrap_x': 'clamp_to_edge',
            'wrap_y': 'clamp_to_edge',
            'min_filter': 'nearest',
            'mag_filter': 'nearest',
        },
    ],
)

Postprocessing and Compute can be implemented as rendering a fullscreen quad.

pipeline = ctx.pipeline(
    vertex_shader='''
        #version 330 core

        vec2 vertices[3] = vec2[](
            vec2(-1.0, -1.0),
            vec2(3.0, -1.0),
            vec2(-1.0, 3.0)
        );

        void main() {
            gl_Position = vec4(vertices[gl_VertexID], 0.0, 1.0);
        }
    ''',
    fragment_shader='''
        #version 330 core

        out vec4 frag_color;

        void main() {
            frag_color = ...
        }
    ''',
    topology='triangles',
    vertex_count=3,
)
particle_system = ctx.pipeline(
    fragment_shader='''
        #version 330 core

        uniform sampler2D Position;
        uniform sampler2D Velocity;
        uniform vec3 Acceleration;

        layout (location = 0) out vec3 OutputPosition;
        layout (location = 1) out vec3 OutputVelocity;

        void main() {
            OutputPosition = Position + Velocity;
            OutputVelocity = Velocity + Acceleration;
        }
    ''',
)

ZenGL intentionally does not support:

  • Transform Feedback
  • Geometry Shaders
  • Tesselation
  • Compute Shaders
  • 3D Textures
  • Storage Buffers

Most of the above can be implemented in a more hardware friendly way using the existing ZenGL API. Interoperability with other modules is also possible. Using such may reduce the application's portablity. It is even possible to use direct OpenGL calls together with ZenGL, however this is likely not necessary.

It is common to render directly to the screen with OpenGL. With ZenGL, the right way is to render to a framebuffer and blit the final image to the screen. This allows fine-grained control of the framebuffer format, guaranteed multisampling settings, correct depth/stencil precison. It is also possible to render directly to the screen, however this feature is designed to be used for the postprocessing step.

This design allows ZenGL to support:

  • Rendering without a window
  • Rendering to multiple windows
  • Rendering to HDR monitors
  • Refreshing the screen without re-rendering the scene
  • Apply post-processing without changing how the scene is rendered
  • Making reusable shaders and components
  • Taking screenshots or exporting a video

The default framebuffer in OpenGL is highly dependent on how the Window is created. It is often necessary to configure the Window to provide the proper depth precision, stencil buffer, multisampling and double buffering. Often the "best pixel format" lacks all of these features on purpose. ZenGL aims to allow choosing these pixel formats and ensures the user specifies the rendering requirements. It is even possible to render low-resolution images and upscale them for high-resolution monitors. Tearing can be easily prevented by decoupling the scene rendering from the screen updates.

ZenGL was designed for Prototyping

It is tempting to start a project with Vulkan, however even getting a simple scene rendered requires tremendous work and advanced tooling to compile shaders ahead of time. ZenGL provides self-contained Pipelines which can be easily ported to Vulkan. ZenGL code is verbose and easy to read.

ZenGL support multiple design patters

Many libraries enfore certain design patterns. ZenGL avoids this by providing cached pipeline creation, pipeline templating and lean resourece and framebuffer definition. It is supported to create pipelines on the fly or template them for certain use-cases.

TODO: examples for such patters

ZenGL emerged from an experimental version of ModernGL. To keep ModernGL backward compatible, ZenGL was re-designed from the ground-up to support a strict subset of OpenGL. On the other hand, ModernGL supports a wide variety of OpenGL versions and extensions.

Disambiguation

  • ZenGL is a drop-in replacement for pure OpenGL code
  • Using ZenGL requires some OpenGL knowledge
  • ZenGL Images are OpenGL Texture Objects or Renderbuffer Objects
  • ZenGL Buffers are OpenGL Buffer Objects
  • ZenGL Pipelines contain an OpenGL Vertex Array Object, a Program Object, and a Framebuffer Object
  • ZenGL Pielines may also contain OpenGL Sampler Objects
  • Creating ZenGL Pipelines does not necessarily compile the shader from source
  • The ZenGL Shader Cache exists independently from the Pipeline objects
  • A Framebuffer is always represented by a Python list of ZenGL Images
  • There is no Pipeline.clear() method, individual images must be cleared independently
  • GLSL Uniform Blocks and sampler2D objects are bound in the Pipeline layout
  • Textures and Uniform Buffers are bound in the Pipeline resources

Examples

bezier_curves deferred_rendering envmap fractal grass normal_mapping rigged_objects wireframe

Simple Pipeline Definition

pipeline = ctx.pipeline(
    # program definition
    vertex_shader='...',
    fragment_shader='...',
    layout=[
        {
            'name': 'Uniforms',
            'binding': 0,
        },
        {
            'name': 'Texture',
            'binding': 0,
        },
    ],

    # descriptor sets
    resources=[
        {
            'type': 'uniform_buffer',
            'binding': 0,
            'buffer': uniform_buffer,
        },
        {
            'type': 'sampler',
            'binding': 0,
            'image': texture,
        },
    ],

    # uniforms
    uniforms={
        'color': [0.0, 0.5, 1.0],
        'iterations': 10,
    },

    # program definition global state
    depth={
        'func': 'less',
        'write': False,
    },
    stencil={
        'front': {
            'fail_op': 'replace',
            'pass_op': 'replace',
            'depth_fail_op': 'replace',
            'compare_op': 'always',
            'compare_mask': 1,
            'write_mask': 1,
            'reference': 1,
        },
        'back': ...,
        # or
        'both': ...,
    },
    blend={
        'enable': True,
        'src_color': 'src_alpha',
        'dst_color': 'one_minus_src_alpha',
    },
    cull_face='back',
    topology='triangles',

    # framebuffer
    framebuffer=[color1, color2, ..., depth],
    viewport=(x, y, width, height),

    # vertex array
    vertex_buffers=[
        *zengl.bind(vertex_buffer, '3f 3f', 0, 1), # bound vertex attributes
        *zengl.bind(None, '2f', 2), # unused vertex attribute
    ],
    index_buffer=index_buffer, # or None
    short_index=False, # 2 or 4 byte intex
    vertex_count=...,
    instance_count=1,
    first_vertex=0,

    # override includes
    includes={
        'common': '...',
    },
)

# some members are actually mutable and calls no OpenGL functions
pipeline.viewport = ...
pipeline.vertex_count = ...
pipeline.uniforms['iterations'][:] = struct.pack('i', 50) # writable memoryview

# rendering
pipeline.render() # no parameters for hot code

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

zengl-2.5.2.tar.gz (54.7 kB view details)

Uploaded Source

Built Distributions

zengl-2.5.2-cp312-cp312-win_amd64.whl (48.3 kB view details)

Uploaded CPython 3.12 Windows x86-64

zengl-2.5.2-cp312-cp312-win32.whl (41.4 kB view details)

Uploaded CPython 3.12 Windows x86

zengl-2.5.2-cp312-cp312-musllinux_1_2_x86_64.whl (133.0 kB view details)

Uploaded CPython 3.12 musllinux: musl 1.2+ x86-64

zengl-2.5.2-cp312-cp312-musllinux_1_2_i686.whl (124.5 kB view details)

Uploaded CPython 3.12 musllinux: musl 1.2+ i686

zengl-2.5.2-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (136.2 kB view details)

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

zengl-2.5.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (125.4 kB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

zengl-2.5.2-cp312-cp312-macosx_11_0_arm64.whl (44.8 kB view details)

Uploaded CPython 3.12 macOS 11.0+ ARM64

zengl-2.5.2-cp312-cp312-macosx_10_9_x86_64.whl (46.8 kB view details)

Uploaded CPython 3.12 macOS 10.9+ x86-64

zengl-2.5.2-cp311-cp311-win_amd64.whl (47.9 kB view details)

Uploaded CPython 3.11 Windows x86-64

zengl-2.5.2-cp311-cp311-win32.whl (41.1 kB view details)

Uploaded CPython 3.11 Windows x86

zengl-2.5.2-cp311-cp311-musllinux_1_2_x86_64.whl (129.9 kB view details)

Uploaded CPython 3.11 musllinux: musl 1.2+ x86-64

zengl-2.5.2-cp311-cp311-musllinux_1_2_i686.whl (122.1 kB view details)

Uploaded CPython 3.11 musllinux: musl 1.2+ i686

zengl-2.5.2-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (132.6 kB view details)

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

zengl-2.5.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (123.0 kB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

zengl-2.5.2-cp311-cp311-macosx_11_0_arm64.whl (44.9 kB view details)

Uploaded CPython 3.11 macOS 11.0+ ARM64

zengl-2.5.2-cp311-cp311-macosx_10_9_x86_64.whl (46.7 kB view details)

Uploaded CPython 3.11 macOS 10.9+ x86-64

zengl-2.5.2-cp310-cp310-win_amd64.whl (47.9 kB view details)

Uploaded CPython 3.10 Windows x86-64

zengl-2.5.2-cp310-cp310-win32.whl (41.1 kB view details)

Uploaded CPython 3.10 Windows x86

zengl-2.5.2-cp310-cp310-musllinux_1_2_x86_64.whl (129.0 kB view details)

Uploaded CPython 3.10 musllinux: musl 1.2+ x86-64

zengl-2.5.2-cp310-cp310-musllinux_1_2_i686.whl (121.3 kB view details)

Uploaded CPython 3.10 musllinux: musl 1.2+ i686

zengl-2.5.2-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (131.6 kB view details)

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

zengl-2.5.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (122.1 kB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

zengl-2.5.2-cp310-cp310-macosx_11_0_arm64.whl (44.9 kB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

zengl-2.5.2-cp310-cp310-macosx_10_9_x86_64.whl (46.7 kB view details)

Uploaded CPython 3.10 macOS 10.9+ x86-64

zengl-2.5.2-cp39-cp39-win_amd64.whl (48.0 kB view details)

Uploaded CPython 3.9 Windows x86-64

zengl-2.5.2-cp39-cp39-win32.whl (41.1 kB view details)

Uploaded CPython 3.9 Windows x86

zengl-2.5.2-cp39-cp39-musllinux_1_2_x86_64.whl (128.6 kB view details)

Uploaded CPython 3.9 musllinux: musl 1.2+ x86-64

zengl-2.5.2-cp39-cp39-musllinux_1_2_i686.whl (120.9 kB view details)

Uploaded CPython 3.9 musllinux: musl 1.2+ i686

zengl-2.5.2-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (131.1 kB view details)

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

zengl-2.5.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (121.7 kB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

zengl-2.5.2-cp39-cp39-macosx_11_0_arm64.whl (44.9 kB view details)

Uploaded CPython 3.9 macOS 11.0+ ARM64

zengl-2.5.2-cp39-cp39-macosx_10_9_x86_64.whl (46.7 kB view details)

Uploaded CPython 3.9 macOS 10.9+ x86-64

zengl-2.5.2-cp38-cp38-win_amd64.whl (48.0 kB view details)

Uploaded CPython 3.8 Windows x86-64

zengl-2.5.2-cp38-cp38-win32.whl (41.1 kB view details)

Uploaded CPython 3.8 Windows x86

zengl-2.5.2-cp38-cp38-musllinux_1_2_x86_64.whl (131.2 kB view details)

Uploaded CPython 3.8 musllinux: musl 1.2+ x86-64

zengl-2.5.2-cp38-cp38-musllinux_1_2_i686.whl (123.4 kB view details)

Uploaded CPython 3.8 musllinux: musl 1.2+ i686

zengl-2.5.2-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (134.2 kB view details)

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

zengl-2.5.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (124.8 kB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

zengl-2.5.2-cp38-cp38-macosx_11_0_arm64.whl (44.9 kB view details)

Uploaded CPython 3.8 macOS 11.0+ ARM64

zengl-2.5.2-cp38-cp38-macosx_10_9_x86_64.whl (46.6 kB view details)

Uploaded CPython 3.8 macOS 10.9+ x86-64

zengl-2.5.2-cp37-cp37m-win_amd64.whl (47.9 kB view details)

Uploaded CPython 3.7m Windows x86-64

zengl-2.5.2-cp37-cp37m-win32.whl (41.1 kB view details)

Uploaded CPython 3.7m Windows x86

zengl-2.5.2-cp37-cp37m-musllinux_1_2_x86_64.whl (124.1 kB view details)

Uploaded CPython 3.7m musllinux: musl 1.2+ x86-64

zengl-2.5.2-cp37-cp37m-musllinux_1_2_i686.whl (116.3 kB view details)

Uploaded CPython 3.7m musllinux: musl 1.2+ i686

zengl-2.5.2-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (127.1 kB view details)

Uploaded CPython 3.7m manylinux: glibc 2.17+ x86-64 manylinux: glibc 2.5+ x86-64

zengl-2.5.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (117.4 kB view details)

Uploaded CPython 3.7m manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

zengl-2.5.2-cp37-cp37m-macosx_10_9_x86_64.whl (46.5 kB view details)

Uploaded CPython 3.7m macOS 10.9+ x86-64

zengl-2.5.2-cp36-cp36m-win_amd64.whl (50.4 kB view details)

Uploaded CPython 3.6m Windows x86-64

zengl-2.5.2-cp36-cp36m-win32.whl (43.2 kB view details)

Uploaded CPython 3.6m Windows x86

zengl-2.5.2-cp36-cp36m-musllinux_1_2_x86_64.whl (124.1 kB view details)

Uploaded CPython 3.6m musllinux: musl 1.2+ x86-64

zengl-2.5.2-cp36-cp36m-musllinux_1_2_i686.whl (116.3 kB view details)

Uploaded CPython 3.6m musllinux: musl 1.2+ i686

zengl-2.5.2-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (127.2 kB view details)

Uploaded CPython 3.6m manylinux: glibc 2.17+ x86-64 manylinux: glibc 2.5+ x86-64

zengl-2.5.2-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (117.4 kB view details)

Uploaded CPython 3.6m manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

zengl-2.5.2-cp36-cp36m-macosx_10_9_x86_64.whl (46.3 kB view details)

Uploaded CPython 3.6m macOS 10.9+ x86-64

File details

Details for the file zengl-2.5.2.tar.gz.

File metadata

  • Download URL: zengl-2.5.2.tar.gz
  • Upload date:
  • Size: 54.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.12.3

File hashes

Hashes for zengl-2.5.2.tar.gz
Algorithm Hash digest
SHA256 7785edd96e1fbbcfb0617080a8a0d6ec51a24275175fa7d44af417037ef4072e
MD5 0c46cd0a35607655cb0415cb57ff1eed
BLAKE2b-256 27704dda596108d8d76c93d14d188a55afb34ad63c6b280bdac6756b3a6df45e

See more details on using hashes here.

Provenance

File details

Details for the file zengl-2.5.2-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: zengl-2.5.2-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 48.3 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.12.3

File hashes

Hashes for zengl-2.5.2-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 90d540abec3f16cfdc722836c975cf12cdef2bf4a9087ac69db33bf755a5a914
MD5 7928958dae912817b5d0ef471192e9d7
BLAKE2b-256 595a737c03c960aada2374e2646451e4912658f8116106752e6a5468ffa2a530

See more details on using hashes here.

Provenance

File details

Details for the file zengl-2.5.2-cp312-cp312-win32.whl.

File metadata

  • Download URL: zengl-2.5.2-cp312-cp312-win32.whl
  • Upload date:
  • Size: 41.4 kB
  • Tags: CPython 3.12, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.12.3

File hashes

Hashes for zengl-2.5.2-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 6fe17d5a94be528b9abf373d689a7be24eda92d9a5ce41fa23d1f5be64684bde
MD5 28a7891549c2b54cdc120f17e9830440
BLAKE2b-256 53fe8f02f0cefd77f635e97e6ac223d601faac0ef343611afb2633982bf11321

See more details on using hashes here.

Provenance

File details

Details for the file zengl-2.5.2-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for zengl-2.5.2-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 e765d67a7654426cc192e9e035af8147795d3badb275804ef6a573f61cbb5baa
MD5 4c1077b5ad992bd14bd4ca3cad087b52
BLAKE2b-256 770a7526835d4563873abbd7045a955b6bce3fc3e7f352918fdb754d42868be5

See more details on using hashes here.

Provenance

File details

Details for the file zengl-2.5.2-cp312-cp312-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for zengl-2.5.2-cp312-cp312-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 d250b86e2318139d64f56ac431bdfd2651c818d3d76ee291411d793cc025bee4
MD5 28e619f2220c004384805eec96655f2f
BLAKE2b-256 da71b8e5aa77fe8a45158bf1dbad68197dc8bc5fc35362896ccd30de82d8853c

See more details on using hashes here.

Provenance

File details

Details for the file zengl-2.5.2-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for zengl-2.5.2-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 55b5dec64d4c06382c88fc483922fe72e8734d543733cab92f84da6b9976c3aa
MD5 efbbb6cbbd6165e3ce4e938da7adcc6f
BLAKE2b-256 d646af2123e8e619155ea604311fed4e8031db003d2bcb48f0711a7682837c69

See more details on using hashes here.

Provenance

File details

Details for the file zengl-2.5.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for zengl-2.5.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 783788cc432e65007f91ad881a02851f8dbe828db53e46ca0f00e6b6723a03cb
MD5 d7ab5bb3fece2cc15ece52738f2a23ad
BLAKE2b-256 dd2a1df0af3c2eff04fcee095bcd773fa1f98509ff16b618e09ff3bcd1e67c5d

See more details on using hashes here.

Provenance

File details

Details for the file zengl-2.5.2-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for zengl-2.5.2-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c1dd8af97aa69ea0f238e9395fa8eede1aade448d1025e63888ca668349c6ac6
MD5 02d37570c7d31a8f04381d9b3b2732fc
BLAKE2b-256 6ffda1c1896e04ed27d3b032dd28e42e102e9163f1a31e20f85ef2766cfe36fa

See more details on using hashes here.

Provenance

File details

Details for the file zengl-2.5.2-cp312-cp312-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for zengl-2.5.2-cp312-cp312-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 78dc4f0fd37ee67fc205135ceff430164a96f711de13838a4aa3491ce23a6e0f
MD5 d82c2dd30e77db5871056958dd1eaa81
BLAKE2b-256 9bab59358f92a27bfa3fbd6a5e2ec858044792e28b7afdd1bab808751d4d408c

See more details on using hashes here.

Provenance

File details

Details for the file zengl-2.5.2-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: zengl-2.5.2-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 47.9 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.12.3

File hashes

Hashes for zengl-2.5.2-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 f0e582d9c3a10d3f28145fa9d37ff98f18fe4b22e0a974fd1ea5bee29d1287aa
MD5 7d2f6b509566687df541254d316df492
BLAKE2b-256 5c6a7098cf6c59a0fe7eb3acb26ddb1f9594c41e0dca0936b03f94d7b4beb328

See more details on using hashes here.

Provenance

File details

Details for the file zengl-2.5.2-cp311-cp311-win32.whl.

File metadata

  • Download URL: zengl-2.5.2-cp311-cp311-win32.whl
  • Upload date:
  • Size: 41.1 kB
  • Tags: CPython 3.11, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.12.3

File hashes

Hashes for zengl-2.5.2-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 3c6a794f991c8acea8c74ae6a52e70870ef37e7887d4374bf09a220313349e81
MD5 f15099ece10d920f72b7160f72e913a5
BLAKE2b-256 ca47750bae0424345f8bdd3c90f26b961cbe9368ccaa3438d9afb884bee56bcd

See more details on using hashes here.

Provenance

File details

Details for the file zengl-2.5.2-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for zengl-2.5.2-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 e5663ddd0bc036c3a172713ff6c1dd6359571cb203c9d20351dcca0fc3e510be
MD5 805ea18e87cf1fbcd5fcfe4b7dacbdb8
BLAKE2b-256 e86ec4ec4093877c40970aa6e0bdd44ee5eda98dc3104fa69bfea6965f7d48b3

See more details on using hashes here.

Provenance

File details

Details for the file zengl-2.5.2-cp311-cp311-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for zengl-2.5.2-cp311-cp311-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 9eca23ca0cf3a115c41b391dfb83951b421314c9abb0932bc2f485a5be273124
MD5 be9b66ebd0cce4545d8f505ed80a956c
BLAKE2b-256 a38392253895789ba602eac410c33a14eaaab12a536226a5a7c7f73086632f98

See more details on using hashes here.

Provenance

File details

Details for the file zengl-2.5.2-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for zengl-2.5.2-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c52aba70dae89e2b71806128ac1a0c75d82b8f9b3e4de63d703644649729ba21
MD5 c6e9e47c53f9c928cef81407847d5308
BLAKE2b-256 a6007529699979ac06a30cf39584a6b7ddcedeae1867d516914ae222df4a5b43

See more details on using hashes here.

Provenance

File details

Details for the file zengl-2.5.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for zengl-2.5.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 201852662dd9e052e5d46942776d8f5a86b724f98546b95d8583c3ef1e1caaab
MD5 4d6304c528e6353581b643c4f8fbcd37
BLAKE2b-256 06292d8df4a960a8a1d30d500af346094ccaf540ecbfc8f4952e232e157f0867

See more details on using hashes here.

Provenance

File details

Details for the file zengl-2.5.2-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for zengl-2.5.2-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8507b42b3645fd0d8c9e705aee7b68b1cd0cf98a0a069ce04c38b02bb45a4c10
MD5 ded1df7ae5c6e990b55f936cdad53ad0
BLAKE2b-256 05bdee898dfaa8f35d65b0131b542128d8e920b470437cf83d16ddc7def497ed

See more details on using hashes here.

Provenance

File details

Details for the file zengl-2.5.2-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for zengl-2.5.2-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 c132b8178c5ad2ef49ac50753ab323a26641fa0958987af1cae4af74f3a41832
MD5 2ca2aefea116b4738fb7384dd32ddc24
BLAKE2b-256 f2ec18911d18719788af1f093f3b7b6dd1e07276cb61cff9531adebacb4d8c16

See more details on using hashes here.

Provenance

File details

Details for the file zengl-2.5.2-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: zengl-2.5.2-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 47.9 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.12.3

File hashes

Hashes for zengl-2.5.2-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 bc196bb03a1d9752c2b2b3db6264cdf0b4243207e209a85a232b1154f079f8c1
MD5 c9e1e5ee941067b1479e3ccb5aec50e4
BLAKE2b-256 9286e57b2279fe329987f3d5e9c9679105a583320cbff281c8710bf84d877a80

See more details on using hashes here.

Provenance

File details

Details for the file zengl-2.5.2-cp310-cp310-win32.whl.

File metadata

  • Download URL: zengl-2.5.2-cp310-cp310-win32.whl
  • Upload date:
  • Size: 41.1 kB
  • Tags: CPython 3.10, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.12.3

File hashes

Hashes for zengl-2.5.2-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 8b2e1c66dfeaea550d1ef69f7ff30498af1af3323d5545306b8fe77522c31231
MD5 025f1509a9da882e3e7dd9b0c5dda5d2
BLAKE2b-256 c0fb21b6cf555f901ee63066815429391679e5353ef8692c54cc0f898c398742

See more details on using hashes here.

Provenance

File details

Details for the file zengl-2.5.2-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for zengl-2.5.2-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 a36017adba36cd56bc01182d53ca47eed92065fd28cd7083c96fc085893f6b7b
MD5 9312e4ded8d99e93f307042c3cbb591a
BLAKE2b-256 c84774de0c7e4b53fddf62fb48af1f202dd044e7e883c51cbf7e2ea90c6a892f

See more details on using hashes here.

Provenance

File details

Details for the file zengl-2.5.2-cp310-cp310-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for zengl-2.5.2-cp310-cp310-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 29d6a21ff76d7696313689e6da4a0f65af095bf2bb48fb0e22cb207a70172711
MD5 373e5761b026712fd928a2edd5fb5b28
BLAKE2b-256 00c2c5a2bfabd9284e9cf42bcb9aae404673d99e5c896599d7c560a673c72b9c

See more details on using hashes here.

Provenance

File details

Details for the file zengl-2.5.2-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for zengl-2.5.2-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8fd1e91b3e747566be03b66d20cd6cae6bdf643aa863227d947504043da6576e
MD5 a2fddf4f2912ea2ad3c281a1402550aa
BLAKE2b-256 b9f91eea8470e96f0e0690c439d0209ed21e13c9395f145b356cfa2ad735665a

See more details on using hashes here.

Provenance

File details

Details for the file zengl-2.5.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for zengl-2.5.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 102f5311f6d201ede01d64e4942367124974255fe48a129810a118feaea925eb
MD5 6e7f500fb6fe0496dbb71b7f9af35925
BLAKE2b-256 be36fd6a4f15f38223f6d75e0bfd710da9c0d4d734c7d42e4a99ece2a1e3ded0

See more details on using hashes here.

Provenance

File details

Details for the file zengl-2.5.2-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for zengl-2.5.2-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5aef62a20fef492478ab400c604021be130b59dbc8926687968c979f58dfba0d
MD5 456ca0a73e83ab75f298c28e4dff5158
BLAKE2b-256 2ee85ea2ea7226706bb1a657f243e5a664dc7a0b35fc0438b5c9cd17a83938d5

See more details on using hashes here.

Provenance

File details

Details for the file zengl-2.5.2-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for zengl-2.5.2-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 8735498d3df665d124a5d332bd98390ee740aa7d43fa4679d9210a3dedcb2418
MD5 db947581a5ca1caa633e7ce7353218d1
BLAKE2b-256 5c4b49ac64643ffbfe981fdf90f163960900c4b899efecf6ca80b38236b5c921

See more details on using hashes here.

Provenance

File details

Details for the file zengl-2.5.2-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: zengl-2.5.2-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 48.0 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.12.3

File hashes

Hashes for zengl-2.5.2-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 d59f9ed1528283b439eba7cc25e496ae46a6455c7a115cc0a6d144ded5e3dc49
MD5 074514a83f3bab7b85783f06bcd1133d
BLAKE2b-256 5c4276106840544e82a16ce97f64688acd33c298a8a59f8873ebaeec10357f19

See more details on using hashes here.

Provenance

File details

Details for the file zengl-2.5.2-cp39-cp39-win32.whl.

File metadata

  • Download URL: zengl-2.5.2-cp39-cp39-win32.whl
  • Upload date:
  • Size: 41.1 kB
  • Tags: CPython 3.9, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.12.3

File hashes

Hashes for zengl-2.5.2-cp39-cp39-win32.whl
Algorithm Hash digest
SHA256 487f43cc2bb2d612a9536fe171da964068b7971533e2fd2c52c8c44f6b9c5181
MD5 fefb5ad6c85675f16a7a98b46fe430ff
BLAKE2b-256 1c90f06cd8183fa4776d2d2f43780efb198cdcf8f915042b8cd6f30e03383fef

See more details on using hashes here.

Provenance

File details

Details for the file zengl-2.5.2-cp39-cp39-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for zengl-2.5.2-cp39-cp39-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 5df7888a61521945c3e64eadf5e9893ac2d5eea445ef44886a98e2df68188029
MD5 7a395d1bdb4a6bfa3fec26cf3ace63ed
BLAKE2b-256 a53c9b0b51ce1d2fc443febfce90c4ff9d9026a7f48804c2471bf7abdda5a45a

See more details on using hashes here.

Provenance

File details

Details for the file zengl-2.5.2-cp39-cp39-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for zengl-2.5.2-cp39-cp39-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 f1ef9803aba83eebb7f66caee309117f9506415fde1e971e5a1cb57229391b15
MD5 1e2e7777fe8f899fd1466f05cbf589f6
BLAKE2b-256 1f14e197ae0f9b94a9841b037f73bd771341e6e0acda8ba62515a9ca765aec85

See more details on using hashes here.

Provenance

File details

Details for the file zengl-2.5.2-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for zengl-2.5.2-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0744d47e7931542f781b7046ae92571c63d26529ead930e25e0e84c552cc8eed
MD5 d0747a951282bc2576595b91782a12c8
BLAKE2b-256 e1eb68306e4bdf0b8a0aa1a2d9edb228d7e2e770e8207c644089fb37af9fe57a

See more details on using hashes here.

Provenance

File details

Details for the file zengl-2.5.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for zengl-2.5.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 2eda3bb6ad4e9509d6d9ab8f7bca230e78161f8415b0cd811fc5f1f01b2549b7
MD5 94f52f7dfa48f385bf839ceb9301acc7
BLAKE2b-256 68f866722025df1b21b95b5f170d61ace0e1f0dddac5e0637d7beb2886b9eb17

See more details on using hashes here.

Provenance

File details

Details for the file zengl-2.5.2-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for zengl-2.5.2-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1829e7771ea35d6d882a10cddf4129e21925d85531b467ae789c829640c91300
MD5 d440ef1b0c74af3621ae4a6ea9453403
BLAKE2b-256 bca2407b94c88f348bb4c8bb2ef9332a4b61cde2e2b1206868ef5f2baea1c00c

See more details on using hashes here.

Provenance

File details

Details for the file zengl-2.5.2-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for zengl-2.5.2-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 e295ec582cd9419a14225f3ecd958208517c52187357a4a845e5483186840a17
MD5 ecbb67460a0fc102a7f46314784aa457
BLAKE2b-256 6982e50d01843a509a2ba3727128a0eb0f41cc1c5c4756e428490a16d2e1370e

See more details on using hashes here.

Provenance

File details

Details for the file zengl-2.5.2-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: zengl-2.5.2-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 48.0 kB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.12.3

File hashes

Hashes for zengl-2.5.2-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 b7c0b2e894b2044d398247623e48aa4fa9e9b596733cae2003d97cea9de535f7
MD5 6bb62959c4ab1ea209e4568e45e7f995
BLAKE2b-256 9640660376e9442e8f64b4f2dbcc8129ce34c930e0ebce190aead1285d406ef0

See more details on using hashes here.

Provenance

File details

Details for the file zengl-2.5.2-cp38-cp38-win32.whl.

File metadata

  • Download URL: zengl-2.5.2-cp38-cp38-win32.whl
  • Upload date:
  • Size: 41.1 kB
  • Tags: CPython 3.8, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.12.3

File hashes

Hashes for zengl-2.5.2-cp38-cp38-win32.whl
Algorithm Hash digest
SHA256 e1a95ff642ed3197e42dceb71c559d1d56484ea46b822a71ec97cf8574365c68
MD5 32e118aa44f9d940b5e6be5b241ea67e
BLAKE2b-256 4e7b12598c398f8c03e8be40f967e7c4245ac9bf582c069df97390fee8af325c

See more details on using hashes here.

Provenance

File details

Details for the file zengl-2.5.2-cp38-cp38-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for zengl-2.5.2-cp38-cp38-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 b2c571a4b033629b3e40d0644ad6b79338366043e8dbf8cadd793447a2350ad0
MD5 db06c610ef37aa2ef320362edaf05372
BLAKE2b-256 f5a6a13fdec51662ce95ac0f23803efb6557240ce1b62710003e4fe8210329cd

See more details on using hashes here.

Provenance

File details

Details for the file zengl-2.5.2-cp38-cp38-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for zengl-2.5.2-cp38-cp38-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 6059c901a4cfcb40cfb96a977a347721bd96465f0d7f63af928f96505aeca1c9
MD5 e21c0114d034e2e720bbf5a5c4ef6f07
BLAKE2b-256 b86fa9a2beccd44a48e6e511e1bae7ac051b42269a3ddeb2ef0bf3c2f040ca81

See more details on using hashes here.

Provenance

File details

Details for the file zengl-2.5.2-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for zengl-2.5.2-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3cc5d5410f768ad8ea638ce9a27f1ed3e4a27fb03c0cfeecbf3cad0b4efa4fa9
MD5 9f2c04f8dd10f132780660adb895ae2b
BLAKE2b-256 5df11d2aaaff485a5d4753ee7f82b2ba40c45c7f9a3f59272e112da1f1113d9a

See more details on using hashes here.

Provenance

File details

Details for the file zengl-2.5.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for zengl-2.5.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 b96fe6cf62df9846fac091fa69c7ee2ca1ffc16c86fc3e518189da9dd662eb32
MD5 e8106e91c33bd407742796d7c38c11dd
BLAKE2b-256 5058ecccd55719df5cce36cd49ff58f0ba40246a7fbec35ce9816ee3b4c6e290

See more details on using hashes here.

Provenance

File details

Details for the file zengl-2.5.2-cp38-cp38-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for zengl-2.5.2-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e96785c6dbd041fde4058da8f57b7288d34edcfda570c03f4b0925d3738b12e5
MD5 11e6ce7610cbe38e9fae2def80f1a019
BLAKE2b-256 01f85115e1f0821dcbb6e193f4efc9a291abdbbf4042f9cdc08df00bc611de95

See more details on using hashes here.

Provenance

File details

Details for the file zengl-2.5.2-cp38-cp38-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for zengl-2.5.2-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 a4ffc3541b232bb7ba3c0891b504cad4c3de63b5d282368fff190b99204aa292
MD5 0c1f828a50e9e6104b59e0d3ea89bf85
BLAKE2b-256 e7fd7623680ff95ae7f930d0baba0836a23967970824e9240e08efd51e055e42

See more details on using hashes here.

Provenance

File details

Details for the file zengl-2.5.2-cp37-cp37m-win_amd64.whl.

File metadata

  • Download URL: zengl-2.5.2-cp37-cp37m-win_amd64.whl
  • Upload date:
  • Size: 47.9 kB
  • Tags: CPython 3.7m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.12.3

File hashes

Hashes for zengl-2.5.2-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 05eccf472604a7a1532b3bce951f7e3f22a2c39a65c2c24373b469ce5cd8b5e0
MD5 ab474285af7b4e264ff8b156356773a2
BLAKE2b-256 2ee55a31f8273430d69b4fe85b531b1d50253c432295069a40156d9d98934d5b

See more details on using hashes here.

Provenance

File details

Details for the file zengl-2.5.2-cp37-cp37m-win32.whl.

File metadata

  • Download URL: zengl-2.5.2-cp37-cp37m-win32.whl
  • Upload date:
  • Size: 41.1 kB
  • Tags: CPython 3.7m, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.12.3

File hashes

Hashes for zengl-2.5.2-cp37-cp37m-win32.whl
Algorithm Hash digest
SHA256 343327b659a1a5b113ceeb69fb9b23f1bb4bdbb6c7ba21894e17919c4426cca9
MD5 ab003bf40c36ce9be746d91234359a60
BLAKE2b-256 6380696eab3c0243a66bf351606c70583a757650c7c0f43feb86651741d09764

See more details on using hashes here.

Provenance

File details

Details for the file zengl-2.5.2-cp37-cp37m-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for zengl-2.5.2-cp37-cp37m-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 066edeb73c29f08c5cf714f969b88ef3e4c9222979fc490c535d54b50df96d5b
MD5 0b8b6a203b59960e5945c5b34dbc6d9d
BLAKE2b-256 0afab495de56a1dd0976cb2db7e1717c3324100041659e5dba9f96d519639f2c

See more details on using hashes here.

Provenance

File details

Details for the file zengl-2.5.2-cp37-cp37m-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for zengl-2.5.2-cp37-cp37m-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 838e4592fd18366a91a9ac13c260728d975abbccc5c851f531761c9ae584d00a
MD5 f318d00e7a985731c1eef363ae5d7dd2
BLAKE2b-256 8dfd27d6cc1b6c41aec9cb644dce2f332699da257acafee01c030fc22e6fa015

See more details on using hashes here.

Provenance

File details

Details for the file zengl-2.5.2-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for zengl-2.5.2-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 644df339616572daa10699f192939ca749f35d749c661821b65a930f76e26d05
MD5 7fecb9e1da86331a070c1e9f982f7272
BLAKE2b-256 c9d625fe170c42180e18d9372a3e19f91d7548889eedff485f57bba6de9cefe5

See more details on using hashes here.

Provenance

File details

Details for the file zengl-2.5.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for zengl-2.5.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 f28924de86c13c66006bc160444884dce9cd9e77e3ada2c523aea519914d04c1
MD5 1faab7586945a6415311676a36af7483
BLAKE2b-256 ba57d73710b740d106f9273552735dfb4ed66b26cdde800d15c63663cb9685ac

See more details on using hashes here.

Provenance

File details

Details for the file zengl-2.5.2-cp37-cp37m-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for zengl-2.5.2-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 5c0b2f7a0c2df3c003fd86326ef82296ace6f8ad16e50a45896f370c66f1bafa
MD5 18380b11df9f0288b587fa95a5495281
BLAKE2b-256 9504f58689dc5dc5960f51a33991ace4a5e532febb79667c039c5ac3fe1667f5

See more details on using hashes here.

Provenance

File details

Details for the file zengl-2.5.2-cp36-cp36m-win_amd64.whl.

File metadata

  • Download URL: zengl-2.5.2-cp36-cp36m-win_amd64.whl
  • Upload date:
  • Size: 50.4 kB
  • Tags: CPython 3.6m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.12.3

File hashes

Hashes for zengl-2.5.2-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 69d153115d757ff08af7d74519f0355db56ff7d70b97bbe2776660dac3772b7d
MD5 234846a0ef266727aa23f4ab18718ea9
BLAKE2b-256 f2a2f9bc2aa02047de9a7ae3a24fe0a3266205d80a43cc0a60b2448e032af5cf

See more details on using hashes here.

Provenance

File details

Details for the file zengl-2.5.2-cp36-cp36m-win32.whl.

File metadata

  • Download URL: zengl-2.5.2-cp36-cp36m-win32.whl
  • Upload date:
  • Size: 43.2 kB
  • Tags: CPython 3.6m, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.12.3

File hashes

Hashes for zengl-2.5.2-cp36-cp36m-win32.whl
Algorithm Hash digest
SHA256 cf6d251cb576923c8a8350ebc65bcfc2904b779f81657cf03a74ef66c0d57e9f
MD5 33136a4505d3c0d1d8fa54d8583f8abf
BLAKE2b-256 abef60f632840b92b9190ce287c344e4ba06c33698e2a748d862d2f1c427c351

See more details on using hashes here.

Provenance

File details

Details for the file zengl-2.5.2-cp36-cp36m-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for zengl-2.5.2-cp36-cp36m-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 50cda0febf564439a61308c5a58f530ed373584fd87782c0d39b184ae342a4da
MD5 b4f3d5403d29a65508c31988b038f69b
BLAKE2b-256 24ceb8d1b6ad0ce777bcf952dbb8b66588342b28afc959d6d03b79b7f527fa07

See more details on using hashes here.

Provenance

File details

Details for the file zengl-2.5.2-cp36-cp36m-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for zengl-2.5.2-cp36-cp36m-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 de8453643d10217bae647fcbaca5a1cc5439f826d72656072cdf3ab366d0bfe8
MD5 f49af1eb8444df0a75455a43194607d8
BLAKE2b-256 50afad19cfe0d59e8387c42ea963b64b8cb4aa0ae5787d10bb26cb8a06e93def

See more details on using hashes here.

Provenance

File details

Details for the file zengl-2.5.2-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for zengl-2.5.2-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 fb47cf441340080c615a29ce1c54b90d0c03dbb6868eb2b557a910ce1d472a8b
MD5 8d782594eb6596d56760e3224d390d73
BLAKE2b-256 28dbcb6df998ec70a0cdd851448a3dc0f2b84cb81ef0117a7e3943f872ee4cd3

See more details on using hashes here.

Provenance

File details

Details for the file zengl-2.5.2-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for zengl-2.5.2-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 81cc562e6dd7dd640a59b2e8ab1d0e36e7991f8445f6f3d9444832c04aa8a6f3
MD5 29c84f4ba973db55c6cbc32c019c3d6c
BLAKE2b-256 13b5c69ef19b409ee81968e2a92b9fa433d944d9fc440aea849218b746cbc027

See more details on using hashes here.

Provenance

File details

Details for the file zengl-2.5.2-cp36-cp36m-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for zengl-2.5.2-cp36-cp36m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 5d7bb3c83b0f8ade125de9ba9d06c1903d7f7717a64a040df19a1ec8bf9f69ae
MD5 581774dd512a61d585358bca93b9b5b5
BLAKE2b-256 e8f871521f7bffd5e453d677dba2c08ca61d1cb824dd86232d38c6bd280ee066

See more details on using hashes here.

Provenance

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page