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.4-cp314-cp314t-win_amd64.whl (243.6 kB view details)

Uploaded CPython 3.14tWindows x86-64

aiopvxs-0.3.4-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.4-cp314-cp314t-macosx_11_0_arm64.whl (299.4 kB view details)

Uploaded CPython 3.14tmacOS 11.0+ ARM64

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

Uploaded CPython 3.14tmacOS 10.15+ x86-64

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

Uploaded CPython 3.14Windows x86-64

aiopvxs-0.3.4-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.4-cp314-cp314-macosx_11_0_arm64.whl (274.8 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

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

Uploaded CPython 3.14macOS 10.15+ x86-64

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

Uploaded CPython 3.13Windows x86-64

aiopvxs-0.3.4-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.4-cp313-cp313-macosx_11_0_arm64.whl (276.1 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

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

Uploaded CPython 3.13macOS 10.13+ x86-64

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

Uploaded CPython 3.12Windows x86-64

aiopvxs-0.3.4-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.4-cp312-cp312-macosx_11_0_arm64.whl (275.9 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.12macOS 10.13+ x86-64

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

Uploaded CPython 3.11Windows x86-64

aiopvxs-0.3.4-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.4-cp311-cp311-macosx_11_0_arm64.whl (268.0 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.11macOS 10.9+ x86-64

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

Uploaded CPython 3.10Windows x86-64

aiopvxs-0.3.4-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.4-cp310-cp310-macosx_11_0_arm64.whl (266.5 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

aiopvxs-0.3.4-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.4-cp314-cp314t-win_amd64.whl.

File metadata

  • Download URL: aiopvxs-0.3.4-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.4-cp314-cp314t-win_amd64.whl
Algorithm Hash digest
SHA256 16fd0f0c7ff946d8ce94a6906b446e6aae8344f000c2ee34ca9c86186b76e36d
MD5 27f706ff244602ce6269ce5a207cf3be
BLAKE2b-256 a6019afd86ebd02d1a9bd17eb2ad39c3f5b939a785c5f48425c6d777106a80f2

See more details on using hashes here.

Provenance

The following attestation bundles were made for aiopvxs-0.3.4-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.4-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for aiopvxs-0.3.4-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 485b3bf582bddf94ef6117ea0bca858223b9a9002c9c7e733f578736727d315c
MD5 95300a474a3d872f2cc98a47ce5e2a0e
BLAKE2b-256 64c3476696f5415fd07a9ea29e0c0e8512a205cd9bc90d05537a13b627c6c9af

See more details on using hashes here.

Provenance

The following attestation bundles were made for aiopvxs-0.3.4-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.4-cp314-cp314t-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for aiopvxs-0.3.4-cp314-cp314t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 dc012fa57b8ebb1009803b11cb38a3644bb4dd81e5dedb49152e616687d05f16
MD5 965883bdf03e26075d172cf99291e57c
BLAKE2b-256 86cd6eebda8817269447e6f90e0d9f1bc3800fce6105afc36a0e268224baa8b0

See more details on using hashes here.

Provenance

The following attestation bundles were made for aiopvxs-0.3.4-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.4-cp314-cp314t-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for aiopvxs-0.3.4-cp314-cp314t-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 c7f0dd375ea10e7706d6fcb47f676803d9e62b4343879eac8143de37e0eaf4c8
MD5 aec5435ee4cbb614c5d094b2762a5b81
BLAKE2b-256 0f26ae2a2864655f8a4ab19023e39e6fc4fb7f3b98a29aa332ed3c5fa10c1c1b

See more details on using hashes here.

Provenance

The following attestation bundles were made for aiopvxs-0.3.4-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.4-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: aiopvxs-0.3.4-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.4-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 733fd185b582795b526bf1fc5e17b4ac5ee2bb8c5b44043a821cd5ed78542352
MD5 d7f1e9cafdede72e2f7fa55753c0a676
BLAKE2b-256 95386fae2c42f79da6856939f444e360309c44155d5d67a6566a893962b30c26

See more details on using hashes here.

Provenance

The following attestation bundles were made for aiopvxs-0.3.4-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.4-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for aiopvxs-0.3.4-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 fec1cf7c86f0a194576b2cdea8aa0673f0bcbc9a6eb4a31c7c52fd5e11f2f3ec
MD5 86f7ba2504620ed51e58990fecc08a80
BLAKE2b-256 e2ba6b7c466db43d7b1912103a879523ac8a599697af125db2705414c89bf2cf

See more details on using hashes here.

Provenance

The following attestation bundles were made for aiopvxs-0.3.4-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.4-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for aiopvxs-0.3.4-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2a4fb79e5c3d61375623b32ab2df6fd39a302e3b3dab4891c067bc871e48355a
MD5 05a81bf56159cbeb8b49083e9b1ecfd7
BLAKE2b-256 d523e1980e1081df7086ae3a522d1757fdb6783e641f5e12204295b2c51cd747

See more details on using hashes here.

Provenance

The following attestation bundles were made for aiopvxs-0.3.4-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.4-cp314-cp314-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for aiopvxs-0.3.4-cp314-cp314-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 5ddedbd688b73e008f82d2b8f6d7b33e3125aaf6463893ab6323840fa61db3ea
MD5 ab4e464fee5364c35acda6eb948f1891
BLAKE2b-256 0beeec12a6b204c42851ee190cce7bcdc460b599a096454f0399b6028883b19b

See more details on using hashes here.

Provenance

The following attestation bundles were made for aiopvxs-0.3.4-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.4-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: aiopvxs-0.3.4-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.4-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 28c092d3d48670e82e10d6707501bdd634c9a79e5c7c3af99843a599b78f523f
MD5 90902034ab22662cb9b94e1b0f151cc4
BLAKE2b-256 8e393c25519718031b013d569039e2885a680a26a52a5bdd38d8c76a27668883

See more details on using hashes here.

Provenance

The following attestation bundles were made for aiopvxs-0.3.4-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.4-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.4-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 93d0e1fb675f01951be1217a9efa3bdbe214b98c58f217b97df254ab02867511
MD5 08c120c34f091df15bbd0961b1d1320c
BLAKE2b-256 5b698e7204a79e4304a77d378219872c41da3900f0fbd1487a19388be8c6e486

See more details on using hashes here.

Provenance

The following attestation bundles were made for aiopvxs-0.3.4-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.4-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for aiopvxs-0.3.4-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 050febd4238e6ad2de7d321969d9517f9508c1725f9134ac7969b184eead488e
MD5 40c271f5b6561521584be15a0fa230bf
BLAKE2b-256 4e087656aa5e9a9662a3e1276d5a19b9c33780f50898781f4778c35af1809d19

See more details on using hashes here.

Provenance

The following attestation bundles were made for aiopvxs-0.3.4-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.4-cp313-cp313-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for aiopvxs-0.3.4-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 526aecdc70658f43f930b6a1e0566437e83813e2ef4c378bde5faeacc43e62e2
MD5 d3239d7e668d9d5c24cf1f2ed649f2af
BLAKE2b-256 2aa795a2137e67e3b829ce4635aa3b4db01fc3c3ba4387f9ce256b137d1c34c9

See more details on using hashes here.

Provenance

The following attestation bundles were made for aiopvxs-0.3.4-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.4-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: aiopvxs-0.3.4-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.4-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 506bda42875cd7ce76ad0d516d356b9568f83141722eaa6d51a73ec8f4dc162d
MD5 c3bcdb925b10db4d2acd4b3ea2b36186
BLAKE2b-256 638abe02b49fb7f60d1d8a7c8fa83e979116196b939878115d8e9a5fe44f53c1

See more details on using hashes here.

Provenance

The following attestation bundles were made for aiopvxs-0.3.4-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.4-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.4-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e2703c874d7507000501cd5f2e3273e75162d98fdb88bb356ad9a6ce2900b805
MD5 99a015202ebf49e46e94856c02a0991e
BLAKE2b-256 47d4d8d601380bba86b360c2a311bc498bea9564b7216c76a4d48cd81785a7d7

See more details on using hashes here.

Provenance

The following attestation bundles were made for aiopvxs-0.3.4-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.4-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for aiopvxs-0.3.4-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 633e74093e13727521c081be23d9c6b36a47e610a4d9cdc8dba5b0623d3f7b4f
MD5 d9ab3a00462f2b2a3beb3a4060846ce0
BLAKE2b-256 194c3c1b91c00989b301d91d24fc0fcceacb6c68e5c72ca4b46884c1ac582908

See more details on using hashes here.

Provenance

The following attestation bundles were made for aiopvxs-0.3.4-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.4-cp312-cp312-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for aiopvxs-0.3.4-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 23f5ff0ab14061056215bc2f623970f552a29d8245d2379cd57218fd238ab899
MD5 5395968d4c257616de11c23218233429
BLAKE2b-256 69bf0152546a361d57897d1d17c52a4ae973613c9bc8464f7f23ecfa9b33f0ce

See more details on using hashes here.

Provenance

The following attestation bundles were made for aiopvxs-0.3.4-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.4-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: aiopvxs-0.3.4-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.4-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 7dbcd660698bf79534a16416c49d31d9f7e66fee197bc7d320165f2532f96d87
MD5 e747a1f9b66ce57ac8ae0de70ea48ab6
BLAKE2b-256 486320755342372a2062c0fb9ae80f23db703007929e51b4c1ec933d01541c4f

See more details on using hashes here.

Provenance

The following attestation bundles were made for aiopvxs-0.3.4-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.4-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.4-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f2325244af83faff3870dc59bf3ce817a04b184cb16fa00b6a14ffa43fcf6ce3
MD5 657bc129ed1425d444416f1c6f8c6e6c
BLAKE2b-256 f51d84c8fd3ed5875b664ce96bf244d1c6b44045b91341d3ae9b7b95dabf8620

See more details on using hashes here.

Provenance

The following attestation bundles were made for aiopvxs-0.3.4-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.4-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for aiopvxs-0.3.4-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 45d9e1d5c51f558e38235253e68cba78bb1b1260fe962756148e7ed9c7c9108d
MD5 271ae76b2e079f6ccd4cb5b3b350f40b
BLAKE2b-256 f95ada17725d0044e285ee8004043a673ed0a913f19acfa53e24866125de87f3

See more details on using hashes here.

Provenance

The following attestation bundles were made for aiopvxs-0.3.4-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.4-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for aiopvxs-0.3.4-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 2221c0816be5f139f144904470d3b1eadc612e64b0fb2814010b7e9f882d39af
MD5 f86c05a0802a8abd95afde3eb2605a12
BLAKE2b-256 b7c8a170c6d3aa5a992fb334624b0fd8c7c4376728468a3f61ceec0b2165d348

See more details on using hashes here.

Provenance

The following attestation bundles were made for aiopvxs-0.3.4-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.4-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: aiopvxs-0.3.4-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.4-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 ada040a85651e61ea3101ba601951c40b85486e83a059031949fc42f49f523b9
MD5 b1a908e7fa097ef2c6e8a559fdf5ef8a
BLAKE2b-256 8195b9c3350957952958412fd8f20db055a176c301e03e7b0136d1065dacdb20

See more details on using hashes here.

Provenance

The following attestation bundles were made for aiopvxs-0.3.4-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.4-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.4-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 59378571ed26a6db2b0121993e2e8a5ef6529a0ada735e30306e5cd995f8abbd
MD5 144b8afcf729f0112a9da40d5ccd2302
BLAKE2b-256 ba14f291aca36e988db98ce9cf79712dca15622789b07b70bd82dbdc9dfe4b17

See more details on using hashes here.

Provenance

The following attestation bundles were made for aiopvxs-0.3.4-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.4-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for aiopvxs-0.3.4-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e859d8fe2805402a8c44cc7c6e47f06cb3d9f112230135986aca6da0a7933576
MD5 b07956b27da81eb06816257dc15edc02
BLAKE2b-256 68f68404d24eccf4727e69f68463b4efb113edb87a00dcdb5364750bf02ae4ab

See more details on using hashes here.

Provenance

The following attestation bundles were made for aiopvxs-0.3.4-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.4-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for aiopvxs-0.3.4-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 d48fae905da6df9b253eb4c9712bdcafd88471f3dd4a24bd45a36415ab8e6bc7
MD5 fc0cc1ccac34f93c43d027c5a6702353
BLAKE2b-256 318b7cfc2a390caa87cbde1e0300655547e0b6737f2605b82ab2723b3d32a0c8

See more details on using hashes here.

Provenance

The following attestation bundles were made for aiopvxs-0.3.4-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