Skip to main content

Python asyncio API to the PVXS libraries

Project description

aiopvxs

Asynchronous PVAccess client/server API using Python asyncio and pybind11

Key Features

  • Uses pybind11 to generate python bindings to pvxslibs v1.5 C++ library
  • Supports getting/setting pvxs.Value fields with python data types
  • Supports PVAccess StaticSource server
  • Supports PVAccess client Context operations via python asyncio
    • Get & Put
    • RPC with arguments
    • List (see simple_discovery.py for simple pvlist implementation)
    • Discover & Monitor (can retrieve updates via async for loop)

Installation

It is recommended to install via the packages available on pypi.org. Packages are available for linux, win64, and macos intel/arm.

pip install aiopvxs

To compile this project manually, create python virtual environment from a cloned copy of this source and use pip install:

git clone https://github.com/m2es3h/aiopvxs.git
cd aiopvxs
python3 -m venv .venv
source .venv/bin/activate
pip install ".[test]"      # or pip install -e ".[test]" for editable mode
pytest -vs .

If developing in Visual Studio Code (VSCode), follow their instructions on how to automatically setup a python virtual environment (https://code.visualstudio.com/docs/python/environments).

VSCode's Python extension can be used to discover and run the pytest unit tests (http://code.visualstudio.com/docs/python/testing).

Getting Started

aiopvxs provides Python bindings to the pvxslibs C++ library (https://epics-base.github.io/pvxs/). This module enables asynchronous interaction with PVAccess servers and clients from Python. Bindings, type casting, and object lifetime management between Python <-> C++ is handled by pybind11.

To test that aiopvxs is able to find and load the pip installed pvxs library:

python3
>>> import aiopvxs
>>> aiopvxs.get_version_str()
'PVXS 1.5.1 (pip)'
>>>

Simple Server

aiopvxs shortest server example (compare to C++ example: https://epics-base.github.io/pvxs/example.html#shortest-server)

import asyncio

from aiopvxs.data import TypeCodeEnum as T
from aiopvxs.nt import NTScalar
from aiopvxs.server import Server, SharedPV

# create SharedPV with Value
pv_int32 = SharedPV(
    nt=NTScalar(T.Int32A).build(),
    initial={
        'value': [0, -1, -2, -3, -4, -5],
        'alarm.message': "ints are negative"
    }
)

async def main():
    try:
        # run PVAccess server
        with Server({"test:pv:int32": pv_int32}) as srv:
            print("Starting server", srv)
            while True:
                await asyncio.sleep(1)
    except asyncio.CancelledError:
        print("Stopping server")

asyncio.run(main())

# instead of asyncio.run(), could just call Server.run()
# srv = Server({"test:pv:int32": pv_int32})
# srv.run()

Simple Client

aiopvxs shortest client example (compare to C++ example: https://epics-base.github.io/pvxs/example.html#client-demo)

import asyncio

from aiopvxs.client import Context

# instantiate new client Context
client_ctx = Context()

async def main():
    # put new value
    new_value = {
        'value': [1, 2, 3, 4, 5],
        'alarm.message': "ints are positive",
    }
    await client_ctx.put("test:pv:int32", new_value)

    # get new value
    pv_int32 = await client_ctx.get("test:pv:int32")

    # print it
    print("----------- full pvxs.Value structure -----------")
    print(pv_int32)
    print("------ outer-most fields within pvxs.Value ------")
    # or iterate over outer-most members of received value
    for field, contents in pv_int32.as_dict().items():
        print(f"{field} is {contents}")

asyncio.run(main())

client.Context operations wrap a pvxs::client::Operation() in an asyncio.Future() and returns the Future to Python, enabling the use of all asyncio features to retrieve the result or exception.

The asyncio.Future holds a reference to the C++ Operation() instance until await completes or asyncio.Future.cancel() is called on the Future.

put_op = client_ctx.put("test:pv:int32", {'value': [1, 2, 3, 4, 5]})
assert isinstance(put_op, asyncio.Future)

try:
    # call put_op.cancel() before the await to cancel the operation
    await asyncio.wait_for(put_op, timeout=3.0)
except asyncio.TimeoutError:
    print("put operation failed: Timed out")
except asyncio.CancelledError:
    print("put operation failed: Operation cancelled")
except aiopvxs.client.RemoteError as e:
    print("put operation failed: Server returned exception:", e)
except (KeyError, TypeError, LookupError) as e:
    print("put value not compatible with pvxs.Value type:", e)
else:
    print("put operation successful")
finally:
    # asyncio.Future.done() is true in all cases
    assert put_op.done()

Calling client.Context.monitor() sets up a callback that puts new values and exceptions into an asyncio.Queue and returns a pvxs::client::Subscription() that holds a reference to that Queue. You can then use an async for loop to iterate over the Subscription object to get value updates as they arrive. Keep the reference to the Subscription object to keep the subscription alive.

import asyncio

from aiopvxs.client import Context, Disconnected, Subscription
from aiopvxs.data import Value

# instantiate new client Context
client_ctx = Context()

async def main():
    # subscribe to changes in scalar_int32 PV
    monitor_sub = client_ctx.monitor("scalar_int32")
    assert isinstance(monitor_op, Subscription)

    # print out value updates as they arrive 
    # until some condition is reached
    async for val in monitor_sub:
        if isinstance(val, Disconnected):
            break
        elif not isinstance(val, Value):
            continue
        else:
            print("Value is now", val.value.as_int())

    # unsubscribe
    monitor_sub.cancel()

asyncio.run(main())

Working with pvxs.Value object

The pvxs::Value object is the API used to exchange data of arbitrary types between PVAccess clients and servers. Using pybind11's default type casters plus custom type casters, aiopvxs enables encoding and decoding pvxs::Value data using Python data types.

python3
>>> import array
>>> from aiopvxs.data import Member as M
>>> from aiopvxs.data import TypeCodeEnum as T
>>> from aiopvxs.data import TypeDef

>>> val_container = TypeDef(T.Struct, [
...    M(T.String, "desc"),
...    M(T.Bool, "flag"),
...    M(T.Int16, "number32"),
...    M(T.Int64A, "array64"),
...    M(T.Struct, "substruct", [
...        M(T.Bool, "flag"),
...        M(T.Int16, "number32"),
...        M(T.Int64A, "array64"),
...    ])
... ]).create()

>>> print(val_container)
struct {
    string desc = ""
    bool flag = false
    int16_t number32 = 0
    int64_t[] array64 = {?}[]
    struct {
        bool flag = false
        int64_t[] array64 = {?}[]
        int16_t number32 = 0
    } substruct
}

>>> val_container.desc = "some string"
>>> val_container['flag'] = True
>>> val_container.number32 = 999
>>> val_container['substruct.flag'] = False
>>> val_container.substruct.number32 = -888
>>> val_container.substruct["array64"] = [1, 2, 3, 4, 5]
>>> print(val_container)
struct {
    string desc = "some string"
    bool flag = true
    int16_t number32 = 999
    int64_t[] array64 = {?}[]
    struct {
        int16_t number32 = -888
        int64_t[] array64 = {5}[1, 2, 3, 4, 5]
        bool flag = false
    } substruct
}

Each field in the container is also a value type. Iterating over the Value container iterates over the outer-most fields of that value. The equivalent Python value of a field can be unwrapped using Python builtins such as int(...), str(...), bool(...), float(...), or using one of the Value.as_type() methods:

>>> from aiopvxs.data import Value
>>> Value.
Value.as_array(   Value.as_float_list(   Value.as_py(            Value.cloneEmpty(   Value.id(
Value.as_bool(    Value.as_int(          Value.as_string(        Value.equalInst(    Value.mro()
Value.as_dict(    Value.as_int_list(     Value.as_string_list(   Value.equalType(    Value.storageType(
Value.as_float(   Value.as_list(         Value.assign(           Value.get(          Value.type(

Incompatible conversions will raise the underlying aiopvxs.data.NoConvert exception, or a "Cast not yet implemented" RuntimeError.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

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

aiopvxs-0.3.2-cp314-cp314t-win_amd64.whl (243.6 kB view details)

Uploaded CPython 3.14tWindows x86-64

aiopvxs-0.3.2-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (326.6 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

aiopvxs-0.3.2-cp314-cp314t-macosx_11_0_arm64.whl (299.4 kB view details)

Uploaded CPython 3.14tmacOS 11.0+ ARM64

aiopvxs-0.3.2-cp314-cp314t-macosx_10_15_x86_64.whl (289.8 kB view details)

Uploaded CPython 3.14tmacOS 10.15+ x86-64

aiopvxs-0.3.2-cp314-cp314-win_amd64.whl (233.5 kB view details)

Uploaded CPython 3.14Windows x86-64

aiopvxs-0.3.2-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (328.0 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

aiopvxs-0.3.2-cp314-cp314-macosx_11_0_arm64.whl (274.8 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

aiopvxs-0.3.2-cp314-cp314-macosx_10_15_x86_64.whl (271.8 kB view details)

Uploaded CPython 3.14macOS 10.15+ x86-64

aiopvxs-0.3.2-cp313-cp313-win_amd64.whl (227.6 kB view details)

Uploaded CPython 3.13Windows x86-64

aiopvxs-0.3.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (327.9 kB view details)

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

aiopvxs-0.3.2-cp313-cp313-macosx_11_0_arm64.whl (276.1 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

aiopvxs-0.3.2-cp313-cp313-macosx_10_13_x86_64.whl (271.2 kB view details)

Uploaded CPython 3.13macOS 10.13+ x86-64

aiopvxs-0.3.2-cp312-cp312-win_amd64.whl (227.6 kB view details)

Uploaded CPython 3.12Windows x86-64

aiopvxs-0.3.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (328.0 kB view details)

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

aiopvxs-0.3.2-cp312-cp312-macosx_11_0_arm64.whl (275.9 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

aiopvxs-0.3.2-cp312-cp312-macosx_10_13_x86_64.whl (271.1 kB view details)

Uploaded CPython 3.12macOS 10.13+ x86-64

aiopvxs-0.3.2-cp311-cp311-win_amd64.whl (222.9 kB view details)

Uploaded CPython 3.11Windows x86-64

aiopvxs-0.3.2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (322.8 kB view details)

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

aiopvxs-0.3.2-cp311-cp311-macosx_11_0_arm64.whl (268.0 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

aiopvxs-0.3.2-cp311-cp311-macosx_10_9_x86_64.whl (266.8 kB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

aiopvxs-0.3.2-cp310-cp310-win_amd64.whl (221.3 kB view details)

Uploaded CPython 3.10Windows x86-64

aiopvxs-0.3.2-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (319.6 kB view details)

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

aiopvxs-0.3.2-cp310-cp310-macosx_11_0_arm64.whl (266.5 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

aiopvxs-0.3.2-cp310-cp310-macosx_10_9_x86_64.whl (265.9 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

File details

Details for the file aiopvxs-0.3.2-cp314-cp314t-win_amd64.whl.

File metadata

  • Download URL: aiopvxs-0.3.2-cp314-cp314t-win_amd64.whl
  • Upload date:
  • Size: 243.6 kB
  • Tags: CPython 3.14t, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for aiopvxs-0.3.2-cp314-cp314t-win_amd64.whl
Algorithm Hash digest
SHA256 7606a95f345e8af45f11127e7bc4ad306c09bab52e09f82166f78d4a43af4c65
MD5 d8545964ab6d001789c637c1a1347746
BLAKE2b-256 97b00b815a4b6c9b5ac8ff4515c170a51da95ae87d3ec3215915ba5674a46fb2

See more details on using hashes here.

Provenance

The following attestation bundles were made for aiopvxs-0.3.2-cp314-cp314t-win_amd64.whl:

Publisher: publish.yml on m2es3h/aiopvxs

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

File details

Details for the file aiopvxs-0.3.2-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for aiopvxs-0.3.2-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 803c965bf1e1554691970f6388b82e2e914dc8de0f9139e800f5067e889c3734
MD5 0d9835f8a5ee11a0463454b42cde8ab0
BLAKE2b-256 54b669ab36cecccd7e0445e1e960bff6e4c9258497ccda2e22ece1b22ab0f730

See more details on using hashes here.

Provenance

The following attestation bundles were made for aiopvxs-0.3.2-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl:

Publisher: publish.yml on m2es3h/aiopvxs

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

File details

Details for the file aiopvxs-0.3.2-cp314-cp314t-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for aiopvxs-0.3.2-cp314-cp314t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 178d0d594b7badf5aa5537a9406c78a0e4b876b19794f1228e7a011e24060964
MD5 830b14b54ca4799eddb2b07981fb0c21
BLAKE2b-256 05dd49e0a60b45d8d2d7e2d0440e38bad3134ebe0d04a518ae2fd11ddd4114b0

See more details on using hashes here.

Provenance

The following attestation bundles were made for aiopvxs-0.3.2-cp314-cp314t-macosx_11_0_arm64.whl:

Publisher: publish.yml on m2es3h/aiopvxs

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

File details

Details for the file aiopvxs-0.3.2-cp314-cp314t-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for aiopvxs-0.3.2-cp314-cp314t-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 d1123d68c784ba7c837a62cab19bef9293ec5b12e274b8c804d4249d6ffe5d7d
MD5 30ac7abd63c58f275f8017de76c5d7a8
BLAKE2b-256 b120e7d8b547335367f3e606f2b02e14d009c141421d7c7e48d67877be048d0f

See more details on using hashes here.

Provenance

The following attestation bundles were made for aiopvxs-0.3.2-cp314-cp314t-macosx_10_15_x86_64.whl:

Publisher: publish.yml on m2es3h/aiopvxs

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

File details

Details for the file aiopvxs-0.3.2-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: aiopvxs-0.3.2-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 233.5 kB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for aiopvxs-0.3.2-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 0ba93c58e0c011f635c2248b271f5abf8f81879163135d8a4c3e6758a90c83c1
MD5 3942c6aa7d32f57ad1abef799796fd6f
BLAKE2b-256 b05d31d73f4b54650a8d29da9fbc4c37fd967c524079d30c07987f201a64900b

See more details on using hashes here.

Provenance

The following attestation bundles were made for aiopvxs-0.3.2-cp314-cp314-win_amd64.whl:

Publisher: publish.yml on m2es3h/aiopvxs

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

File details

Details for the file aiopvxs-0.3.2-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for aiopvxs-0.3.2-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 eaf6623639359b5e7492417c192489090cebcbbd49bfbd4ca78efc5fe4c30e4a
MD5 ee88e20628544d66104512d32cc70af4
BLAKE2b-256 84d4ca8efac75196ea70a600e5290ce973cc46ba04a72e3fe56fc6b121ce762b

See more details on using hashes here.

Provenance

The following attestation bundles were made for aiopvxs-0.3.2-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl:

Publisher: publish.yml on m2es3h/aiopvxs

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

File details

Details for the file aiopvxs-0.3.2-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for aiopvxs-0.3.2-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 dbe4581e48ccdcf953c8b370099637e0d39c964c40b28f822319bce4d5631132
MD5 f9991c8fa07b83a42fc4cc42e5f75e0a
BLAKE2b-256 22967030f8e0e4788dc55cf5498295a7f4067ce1b455677f3cba3a5f1bef4ff8

See more details on using hashes here.

Provenance

The following attestation bundles were made for aiopvxs-0.3.2-cp314-cp314-macosx_11_0_arm64.whl:

Publisher: publish.yml on m2es3h/aiopvxs

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

File details

Details for the file aiopvxs-0.3.2-cp314-cp314-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for aiopvxs-0.3.2-cp314-cp314-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 4f1058ca81110d36b0d380ec5049f9013d2bb7dab9eb1b77e13ee4fbb6749806
MD5 865cf3da62f1761a69aacd2c64db1d88
BLAKE2b-256 2fd2eae36d1f11923f415057cf561a6d4c3c2ca1133822c3f38daabadf32e09d

See more details on using hashes here.

Provenance

The following attestation bundles were made for aiopvxs-0.3.2-cp314-cp314-macosx_10_15_x86_64.whl:

Publisher: publish.yml on m2es3h/aiopvxs

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

File details

Details for the file aiopvxs-0.3.2-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: aiopvxs-0.3.2-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 227.6 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for aiopvxs-0.3.2-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 c56a7f5ace744d779ced7065a6940d9a2aec1fa2219ab0098a3e8dc916908056
MD5 17213bfce3993c1cf32480f80f2ac703
BLAKE2b-256 e4a8cabf29e2cc06ab9d6718712c011a3e3ea50e08264671da8d4eb2a257a046

See more details on using hashes here.

Provenance

The following attestation bundles were made for aiopvxs-0.3.2-cp313-cp313-win_amd64.whl:

Publisher: publish.yml on m2es3h/aiopvxs

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

File details

Details for the file aiopvxs-0.3.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for aiopvxs-0.3.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 97d4f8ac12ee2e8a634f51c66097295b0cfe96fce5a6821315ceb5bb9e89f5f6
MD5 05afe45bf2eb4d6ce6d81b1058644c93
BLAKE2b-256 57ab34200cb4362e89f0c881f073847c22d84b27d0c3c57884c3bdf6bad87c03

See more details on using hashes here.

Provenance

The following attestation bundles were made for aiopvxs-0.3.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:

Publisher: publish.yml on m2es3h/aiopvxs

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

File details

Details for the file aiopvxs-0.3.2-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for aiopvxs-0.3.2-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a0026f3d1fc3873c3cae38a7ee237539ce233804804e98f3927b31c4ffeccf9f
MD5 861d5eaea63e0238ec5a663b933c1906
BLAKE2b-256 7b7ea2bad72c047f61d1962ce7e44f0f38e2ee23c47102545c39f43c7e6b21b7

See more details on using hashes here.

Provenance

The following attestation bundles were made for aiopvxs-0.3.2-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: publish.yml on m2es3h/aiopvxs

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

File details

Details for the file aiopvxs-0.3.2-cp313-cp313-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for aiopvxs-0.3.2-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 12c4b399485e79e7f30f57597102569903b8f09a9580e9cef873edbceaed8336
MD5 1845d934f8c3339277c4fb9789aa67a5
BLAKE2b-256 25625a26e22ef8dfcb0a37b963ec30a7ad45a265d45ee2e007fea6e853f5bfe4

See more details on using hashes here.

Provenance

The following attestation bundles were made for aiopvxs-0.3.2-cp313-cp313-macosx_10_13_x86_64.whl:

Publisher: publish.yml on m2es3h/aiopvxs

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

File details

Details for the file aiopvxs-0.3.2-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: aiopvxs-0.3.2-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 227.6 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for aiopvxs-0.3.2-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 39b17f3c44bce8c08bd517a73443fa377a889ecf15a10a9ca3ba02838036dc44
MD5 c0fb7af85d1f1f670fa8be184b54d8d8
BLAKE2b-256 c6f82977a8f5673d946a878adf13c9edbeefdde1d7bb0777a711df9d7e12dc63

See more details on using hashes here.

Provenance

The following attestation bundles were made for aiopvxs-0.3.2-cp312-cp312-win_amd64.whl:

Publisher: publish.yml on m2es3h/aiopvxs

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

File details

Details for the file aiopvxs-0.3.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for aiopvxs-0.3.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2a8680f21933d41d8adb03d3b7b34343d3075f8669c3a4d3f0cd153917f63f66
MD5 982e3e2b755bb3e4a6de85a27e469346
BLAKE2b-256 c9ab9012a96730394db712ab3952cfd88c7abaea363875431ed769a5ee52e05b

See more details on using hashes here.

Provenance

The following attestation bundles were made for aiopvxs-0.3.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:

Publisher: publish.yml on m2es3h/aiopvxs

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

File details

Details for the file aiopvxs-0.3.2-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for aiopvxs-0.3.2-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d98ed62d4327a45d3ad174329b2438eab4e6495b291d6b017c5d5e65ea9e91d1
MD5 c20ec677341ee811b8fa605bb56d6acb
BLAKE2b-256 2cbb495d7c091a91d32b81d92b90fc7aea5139d27d5bcc80a1936b6581c7dd6c

See more details on using hashes here.

Provenance

The following attestation bundles were made for aiopvxs-0.3.2-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: publish.yml on m2es3h/aiopvxs

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

File details

Details for the file aiopvxs-0.3.2-cp312-cp312-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for aiopvxs-0.3.2-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 5aa88c0bf98b14f96f0c7fad2d0fd0aa56d1c51cad7f97700e5f7a147a49b655
MD5 3ed108bbe059edab4488f0a692c3ea05
BLAKE2b-256 792ff9e8f68316a6ca2a529b02c6c294d034f3edee6e72b2401ea889cb0750d0

See more details on using hashes here.

Provenance

The following attestation bundles were made for aiopvxs-0.3.2-cp312-cp312-macosx_10_13_x86_64.whl:

Publisher: publish.yml on m2es3h/aiopvxs

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

File details

Details for the file aiopvxs-0.3.2-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: aiopvxs-0.3.2-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 222.9 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for aiopvxs-0.3.2-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 b68a6f2964e4eca66e064cc515623703256d235e73d7742a66c1bc2633f2d963
MD5 40cc20ca72ca4c667d19a2d2782e67c9
BLAKE2b-256 03ab95747577417cef8cda91e723af95fddfd72225d7142a54f0b1805ab947a3

See more details on using hashes here.

Provenance

The following attestation bundles were made for aiopvxs-0.3.2-cp311-cp311-win_amd64.whl:

Publisher: publish.yml on m2es3h/aiopvxs

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

File details

Details for the file aiopvxs-0.3.2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for aiopvxs-0.3.2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 df2bb6894fb145b50828fa71d5ccef7cd085a2989895ba0a991969d96741dff8
MD5 7d51ecfbd1d40dcf403d0195ea9c58bc
BLAKE2b-256 c5a322b3ac95b9252715af6b92dc5354d2d61121dc4714a3cba1f5acfd6bfd76

See more details on using hashes here.

Provenance

The following attestation bundles were made for aiopvxs-0.3.2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:

Publisher: publish.yml on m2es3h/aiopvxs

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

File details

Details for the file aiopvxs-0.3.2-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for aiopvxs-0.3.2-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 aa1f9e1457a4b2e36245322417664958ab001df7c5ef04228150581e9f93eed3
MD5 e84b5101c7eded65583ff8588fae8a80
BLAKE2b-256 794e1f699aa15248b6453ba094dc47dde2263efa351795c47d1e0be8ed459e9c

See more details on using hashes here.

Provenance

The following attestation bundles were made for aiopvxs-0.3.2-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: publish.yml on m2es3h/aiopvxs

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

File details

Details for the file aiopvxs-0.3.2-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for aiopvxs-0.3.2-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 3855c67e7c20c353b7905a94166a39a1a4a9b456808a21f736c19d577f9b26fc
MD5 7b8d869cfa844e62b0cb03fe9b0febda
BLAKE2b-256 291b895fff2d38679e46f2c25ce3a9eaacab9073b5561f96d2a8c5f4e9b39adb

See more details on using hashes here.

Provenance

The following attestation bundles were made for aiopvxs-0.3.2-cp311-cp311-macosx_10_9_x86_64.whl:

Publisher: publish.yml on m2es3h/aiopvxs

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

File details

Details for the file aiopvxs-0.3.2-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: aiopvxs-0.3.2-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 221.3 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for aiopvxs-0.3.2-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 4f869b66beead902620f69d1e49fbe46283a18f7f28acb6a2335fe1dae01fc67
MD5 a00eee6644cdf8aad9f29f70c6286dd0
BLAKE2b-256 e7a31b0e97376bcda80a9a383728214b29fd2bc28e640b5f753a1d8ae8f9d815

See more details on using hashes here.

Provenance

The following attestation bundles were made for aiopvxs-0.3.2-cp310-cp310-win_amd64.whl:

Publisher: publish.yml on m2es3h/aiopvxs

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

File details

Details for the file aiopvxs-0.3.2-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for aiopvxs-0.3.2-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 99ff7916664f2899af171a15dd691551a1627dda20a2e7d4220c61598922dadb
MD5 9246bd53bf1c6a1b78cc091465247372
BLAKE2b-256 4cde17463fbf7169ffde0c204359858b290478287a7ce41518679af4884d34b3

See more details on using hashes here.

Provenance

The following attestation bundles were made for aiopvxs-0.3.2-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:

Publisher: publish.yml on m2es3h/aiopvxs

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

File details

Details for the file aiopvxs-0.3.2-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for aiopvxs-0.3.2-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b8cdcb1fb3adde1f62e12f78927e068c37d70482badac201a6390b4069701811
MD5 6cc4935a2f9ac364e19ee51103639668
BLAKE2b-256 c10b8230171ebc09e19bfb43c37d87fb4287b4deb554caf6ca120ef0680aeef7

See more details on using hashes here.

Provenance

The following attestation bundles were made for aiopvxs-0.3.2-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: publish.yml on m2es3h/aiopvxs

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

File details

Details for the file aiopvxs-0.3.2-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for aiopvxs-0.3.2-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 48d62fab634c55d3d6089a92b3a7bc321a09096e1c91a456666044459c3410a5
MD5 429896b1e5e4ff20cd489fe22a89b26f
BLAKE2b-256 18782eda4c4d02f37cb10ee204841cd69f27aeddeb5540839a0c73386cc063a2

See more details on using hashes here.

Provenance

The following attestation bundles were made for aiopvxs-0.3.2-cp310-cp310-macosx_10_9_x86_64.whl:

Publisher: publish.yml on m2es3h/aiopvxs

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