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

Uploaded CPython 3.14tWindows x86-64

aiopvxs-0.3.0-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (325.2 kB view details)

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

aiopvxs-0.3.0-cp314-cp314t-macosx_11_0_arm64.whl (298.1 kB view details)

Uploaded CPython 3.14tmacOS 11.0+ ARM64

aiopvxs-0.3.0-cp314-cp314t-macosx_10_15_x86_64.whl (288.5 kB view details)

Uploaded CPython 3.14tmacOS 10.15+ x86-64

aiopvxs-0.3.0-cp314-cp314-win_amd64.whl (209.7 kB view details)

Uploaded CPython 3.14Windows x86-64

aiopvxs-0.3.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (326.7 kB view details)

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

aiopvxs-0.3.0-cp314-cp314-macosx_11_0_arm64.whl (273.4 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

aiopvxs-0.3.0-cp314-cp314-macosx_10_15_x86_64.whl (270.5 kB view details)

Uploaded CPython 3.14macOS 10.15+ x86-64

aiopvxs-0.3.0-cp313-cp313-win_amd64.whl (204.9 kB view details)

Uploaded CPython 3.13Windows x86-64

aiopvxs-0.3.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (326.6 kB view details)

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

aiopvxs-0.3.0-cp313-cp313-macosx_11_0_arm64.whl (274.6 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

aiopvxs-0.3.0-cp313-cp313-macosx_10_13_x86_64.whl (269.8 kB view details)

Uploaded CPython 3.13macOS 10.13+ x86-64

aiopvxs-0.3.0-cp312-cp312-win_amd64.whl (204.9 kB view details)

Uploaded CPython 3.12Windows x86-64

aiopvxs-0.3.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (326.6 kB view details)

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

aiopvxs-0.3.0-cp312-cp312-macosx_11_0_arm64.whl (274.6 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

aiopvxs-0.3.0-cp312-cp312-macosx_10_13_x86_64.whl (269.8 kB view details)

Uploaded CPython 3.12macOS 10.13+ x86-64

aiopvxs-0.3.0-cp311-cp311-win_amd64.whl (200.8 kB view details)

Uploaded CPython 3.11Windows x86-64

aiopvxs-0.3.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (321.5 kB view details)

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

aiopvxs-0.3.0-cp311-cp311-macosx_11_0_arm64.whl (266.7 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

aiopvxs-0.3.0-cp311-cp311-macosx_10_9_x86_64.whl (265.5 kB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

aiopvxs-0.3.0-cp310-cp310-win_amd64.whl (199.9 kB view details)

Uploaded CPython 3.10Windows x86-64

aiopvxs-0.3.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (318.2 kB view details)

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

aiopvxs-0.3.0-cp310-cp310-macosx_11_0_arm64.whl (265.2 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

aiopvxs-0.3.0-cp310-cp310-macosx_10_9_x86_64.whl (264.7 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

File details

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

File metadata

  • Download URL: aiopvxs-0.3.0-cp314-cp314t-win_amd64.whl
  • Upload date:
  • Size: 238.1 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.0-cp314-cp314t-win_amd64.whl
Algorithm Hash digest
SHA256 caff2c99e6056ada991c9b3bdfb9ff29529d1a411bd1ef7c5f2a77b5bacbd992
MD5 ee88f995667ce0e5b4466b1dfa0727ad
BLAKE2b-256 a49462771a5f41aed4f165b220cb6cf3f167c6efb5269779d3c5ff8debde3481

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for aiopvxs-0.3.0-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 01a3d3744d07bce7eee2aca3fadadab7ad83beb5f14a5c53ef9bdf7f96ad6e36
MD5 6307875e836ad00c6b2e4d44e08f8706
BLAKE2b-256 e2bc5b5a8c00ecfbd47dd313baf593629577b98fb1ecec0ac63874dfeb0950dd

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for aiopvxs-0.3.0-cp314-cp314t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3cd6588a19ec2b60217980d365a2694ab1aec4aa5acd926e7cf04a3e996191a4
MD5 168ccadc5ddb8b0230b3c100e706754f
BLAKE2b-256 9222832b2acd3d6835350505a56feccda7406bddd4c6cc4640920d6b3dc63911

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for aiopvxs-0.3.0-cp314-cp314t-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 296704015be59aeb53237aba157e96d5c223b82776517b81d7f3a9820836bece
MD5 2de73039ba98a8d194beb4f7e900af03
BLAKE2b-256 dc9c4c64be7169a34709d7c307e4a2ec67b7c3c807e054a02af5b35c45d0a330

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: aiopvxs-0.3.0-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 209.7 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.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 00a54e1a5eb27d090b9182022fd5eb0c723141916def6f39887aa58c3b6ad04f
MD5 f6af076f3f5b77564d66c689f3203ec5
BLAKE2b-256 5d9e55204d4542bc2fb3ad5328fce73f0526c6a7564e3534a075037ab7d8c869

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for aiopvxs-0.3.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e983e1357b932bbe6427e9650cef6e7028e91378ae0bf216568617f31fe45842
MD5 989577242678fe139ad5b803ff608bb7
BLAKE2b-256 1a118a8a3951c8b9cd4584bdafd396819e9489bc86f3e8afad8dd955d3dd4580

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for aiopvxs-0.3.0-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 781b08ea7fb825169edfd1027077d109cef59aaf80664e053ba3bf432635a3a7
MD5 0cd7f352c33d0ca0d29f0dfc88138dd6
BLAKE2b-256 95824d950647d74b2600d3a1f32db7cd31a883e2f238603286bd8549d10bf16b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for aiopvxs-0.3.0-cp314-cp314-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 5df19cd07226eee69ad87388b2c226ab7390c73894612c3755e1113cf6d07e4e
MD5 e05056b0100db22e98fbb5b3c1e7db8e
BLAKE2b-256 317d386345fced6fe5492fc3e4321b9e56372818d340097d1a05e2f1113d3bc6

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: aiopvxs-0.3.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 204.9 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.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 cb2a9d472d04b59f2c2dd0889f804bda9cc65b25947f3628db865fd97fd6cb0f
MD5 328edf3ffa112059523ba5dd7245ed8d
BLAKE2b-256 964f61b5775b29ecbf66ae4cb25bf8ff1b3484980928e5b422b02722b480020a

See more details on using hashes here.

Provenance

The following attestation bundles were made for aiopvxs-0.3.0-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.0-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.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 165e5da11f90b0b9c6562488e973ae8d26c6c3745fba9ee663242c19e9714f45
MD5 b5fc1e5f01a673f2ad8451939e8402e8
BLAKE2b-256 2612e1226fe1424ebb036ff5262e9f06a56a5f9ef2305c7c5830818df3705513

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for aiopvxs-0.3.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 092de8506bf7346180669724b6335cbb64588ba5df9e5dbfb6409e8693fc3c93
MD5 efd42d1d26ff015e5542e3ceca5b3d25
BLAKE2b-256 f10974353d1d47157d95ff7b8a7fe468e2c273c95f4d94a617213af492f86e0f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for aiopvxs-0.3.0-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 7bfcb4f4429e3186e86e2efabcbae2cea0230560b86580a54e7f741ca2db1f25
MD5 93a590e2a744c40f05c25c5802374704
BLAKE2b-256 e0ccd92b16eb681260a1847f8ef52abc2841cc14cf91f3942db66e26d6380030

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: aiopvxs-0.3.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 204.9 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.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 6f3a80ec82b2bc8e99c2d8e7d22b6d67fc1dffbd7c701c28fd55cc9bc0eb6ca8
MD5 7374271467c6b1f55fc2f4f7882eaad3
BLAKE2b-256 fe14a1eb31947ce4f27fe852e30219808be2d3c1aad71f80ded6a00449dea80f

See more details on using hashes here.

Provenance

The following attestation bundles were made for aiopvxs-0.3.0-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.0-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.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 316a13bf311822f494b510ff7bf0bcc553a9cd789c4633ccf4709e66671208be
MD5 f2412880a9da5351c5cef9c0a2d98dbd
BLAKE2b-256 60dc54d208ed8d8cca5e93de6a69a797b088472f87afd760c3761a09d7e84f59

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for aiopvxs-0.3.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f40cd2b7f8b9fff95e757fc76f3c369454fa4c9ec8280162ab32f38ac70101ea
MD5 d28aba65121eaf33eaccfabbf103d464
BLAKE2b-256 f0ed1da9ad7af6cc52417bba2de58194fc62ba9f9f5ce8fadd9a708156fe0d9b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for aiopvxs-0.3.0-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 96012c72642976559d2ac4aafc3ff36b399efa1bc565c6b373e4f74ee64d582d
MD5 7fc744cf44b00444541b86409f7027b1
BLAKE2b-256 f51346896def425baefabf774579595de0dc97f02b5a2abf8a4344c0f21a3bba

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: aiopvxs-0.3.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 200.8 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.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 54a997af52ec7380143d3a4ff38506e48af4c542c4faf2261b5c4ef46fc41a24
MD5 1357f6200d37009b008f953fc17a004d
BLAKE2b-256 d1b5a5bff02031fdc02141a5119b1b11118599a962dbd3e112d04198e07bb720

See more details on using hashes here.

Provenance

The following attestation bundles were made for aiopvxs-0.3.0-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.0-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.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 0ff369254a56fd79ce73d1d498b0e421060dd8f3a04ce0bef054464fa849fc06
MD5 141d9c7cc4f43f49d9a482c9ff1d1053
BLAKE2b-256 22eb222638a65d5833e8742a49fcbe2dcc685752ff6557c226b0241a9a77a4cd

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for aiopvxs-0.3.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1cc1127410a74a406f8fdf46924d4a414d1301960d122a0ac87fd10607fbb6b2
MD5 2ae2105383621066420a99785cde63e8
BLAKE2b-256 4f7add78ea3eecf0e1b459848e68bff0e09c86b6d460357638b58eb0497bd074

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for aiopvxs-0.3.0-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 8b647f0378cce9279b7b8062b3c634722155d7b0a2f762b92b0d10bbdbce202f
MD5 d74e3c7e31c946863a69e2ef42d6baae
BLAKE2b-256 1261f7cff8c31ea92e62f4c7e3047ecb933a220f7216ec46d46144c52263eef7

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: aiopvxs-0.3.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 199.9 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.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 9e42ca8fa64562657c4d0386d78e4087dfdc80658a333626f2be5c81bba80570
MD5 be60ceddd36f419f2aeef4fe76014941
BLAKE2b-256 034b0be9660bec40d47ff464953ed22ecb14305b0cc92171eb5070e7a6bc7a99

See more details on using hashes here.

Provenance

The following attestation bundles were made for aiopvxs-0.3.0-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.0-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.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d1e09eb8b65cd5d12e6cc6bd7ea0289a898eb742ce77a6fb65cffafb554609eb
MD5 d76b718fe7da1a418814182a9449c20d
BLAKE2b-256 fbfb58666fc8c3b74397911c915f87c6090a882d17a201e33c8effccb5e3fb08

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for aiopvxs-0.3.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 71c170ac195acd5d99a08d192b268c22ab129fe4b488f6d3c828787bcbee106a
MD5 a2b095846526ab95fa7126ff4a51e840
BLAKE2b-256 d639493b352f8c8029904259e9fd1f33ce7e4afa4131914a2ed79d269bd92e23

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for aiopvxs-0.3.0-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 23ab3007c9b8699868b769a5760e72ca03d5d69e5fc00a34f41ea2ad1e2bfc20
MD5 6241b2b30287796a2c2e3f813e505bee
BLAKE2b-256 37c8c7be0e2c2f4e5b9bc8da54534307958812503529a2e0af93ba1e6c6899b5

See more details on using hashes here.

Provenance

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