Skip to main content

Python library for EPICS PV Access

Project description

PvaPy - PvAccess for Python

The PvaPy package is a Python API for EPICS7. It supports both PVA and CA providers, all standard EPICS7 types (structures, scalars, unions, etc), standard set of channel operations (put/get, monitor), RPC client/server, PVA server, etc. It uses Boost/Python to wrap EPICS7 C++ libraries and APIs, and is currently supported on Linux, OSX and Windows.

Installation

At the moment prebuilt PvaPy packages exist for the Conda and PyPI package management system. If none of the prebuilt packages work for you, or if you need 32-bit Linux packages, you will have to build PvaPy from sources.

Conda

  • Supported platforms: Linux (64-bit), OSX
  • Supported Python versions: Python2, Python3

Make sure conda command is in your path, and execute the following command:

  $ conda install -c epics pvapy

This should result in installation of pvapy, pvapy-boost and epics-base Conda packages.

PyPI

  • Supported platforms: Linux (64-bit), Windows (64-bit), OSX (64-bit), ARM (64-bit)
  • Supported Python versions: Python2, Python3

Make sure pip command is in your path, and execute the following command:

  $ pip install pvapy

PvaPy pip packages contain all needed epics base and boost libraries.

Build

This section is intended for those users that would like to build PvaPy from the source code.

Prerequisites

Building PvaPy from source requires recent versions of the following software:

  1. Standard development tools (gcc, make, autoconf, etc.)
  2. Python development header files/libraries (>=v2.6.6)
  3. Sphinx/Sphinx RTD Theme (optional, for generating documentation)

There are two ways of building and installing PvaPy from sources: automated and custom. The automated local install will download and build predefined versions of EPICS Base, Boost and PvaPy. Custom local install relies on already existing EPICS Base and Boost libraries, and builds only PvaPy.

Automated Build

Automated build works under Linux and OSX. Make sure the desired version of Python is in your path, and execute the following command from the top of the PvaPy source directory:

  $ PREFIX=/local/install/path make local

This should build and install predefined versions of EPICS Base, Boost Python and PvaPy libraries under the directory specified by the PREFIX variable. If PREFIX is not specified, all software will be installed under the tools/local subdirectory of the PvaPy distribution.

Custom Build

In addition to the Python-related prerequsites, the custom build requires the following software already built:

  1. EPICS Base (>=v3.14.12.3)
  2. EPICS4 CPP release (>=v4.4.0); note that EPICS7 release includes all needed v4 modules
  3. Boost (>=v1.41.0); must have the boost_python library built
  4. Boost.NumPy (optional, for retrieving numeric scalar arrays as numpy arrays; this is not needed for Boost v1.63.0 and later)

The version numbers mentioned above are the earliest that PvaPy was tested with. Any recent version of Python and the Boost libraries (such as those that come with current linux distributions) should work. Similarly, any recent version of EPICS Base that is supported by EPICS4 CPP should be fine.

Nothing special needs to be done when building the EPICS4 CPP modules. Ensure that the EPICS Base installation you use for this module is the same one that was used to build the EPICS4 modules.

This module has not been adapted for use on Microsoft Windows. Only Unix-like operating systems (e.g. Linux, MacOS, Solaris) are currently supported.

1. Configure PvaPy

This can be done manually (all platforms), or using autoconf (on Linux and OSX).

For manual configuration: Read the comments in both the configure/RELEASE and configure/CONFIG_SITE files and follow the instructions given there.

For automatic configuration: In the top level directory run

  $ make configure EPICS_BASE=/epics/base/path [EPICS4_DIR=/epics/v4/path] [BOOST_NUMPY_DIR=/boost.numpy/path] [BOOST_ROOT=/boost/path] [PYTHON_VERSION=3]

Note that you can only use the automatic configuration if the v4 modules have not been renamed. In the above command replace /epics/base/path with the full path to your EPICS Base directory, and /epics/v4/path with the full path to your top level directory containing the v4 modules pvDataCPP, pvAccessCPP, etc. If you are using EPICS7 release, you can omit EPICS4_DIR argument, as configuration scripts will find the required v4 libraries and header files in the EPICS Base directory.

The optional BOOST_NUMPY_DIR argument enables NumPy array support for older Boost versions, as v1.63.0 and later releases already include NumPy libraries. The optional BOOST_ROOT argument is typically used for custom Boost installation directory. In case you are using custom python installation that uses shared object libraries, you may need to set PATH and LD_LIBRARY_PATH environment variables before running the above make configure command. Also, note that building with python 3.x requires PYTHON_VERSION=3 argument.

The make configure command will check for your Boost/Python libraries, and create suitable configure/RELEASE.local and configure/CONFIG_SITE.local files that are used by the build process. They should look roughly like the examples below:

  $ cat RELEASE.local
  PVACLIENT = /home/epics/v4/pvaClientCPP
  PVDATABASE = /home/epics/v4/pvDatabaseCPP
  NORMATIVETYPES = /home/epics/v4/normativeTypesCPP
  PVACCESS = /home/epics/v4/pvAccessCPP
  PVDATA = /home/epics/v4/pvDataCPP
  EPICS_BASE = /home/epics/base-3.15.5

  $ cat CONFIG_SITE.local
  PVAPY_CPPFLAGS = -I/usr/include -I/usr/include/python2.7
  PVAPY_LDFLAGS = -L/usr/lib64 -lpython2.7
  PVAPY_SYS_LIBS = boost_python  
  PVA_API_VERSION = 480
  PVA_RPC_API_VERSION = 480
  HAVE_BOOST_NUMPY = 0
  HAVE_BOOST_PYTHON_NUMPY = 0
  PYTHON_VERSION = 2.7
  PVAPY_PYTHON = /bin/python
  PVAPY_PYTHONPATH = /home/epics/v4/pvaPy/lib/python/2.7/linux-x86_64
  PVAPY_LD_LIBRARY_PATH = /usr/lib64
  PVAPY_EPICS_BASE = /home/epics/base-3.15.5
  PVAPY_EPICS4_DIR = /home/epics/v4
  PVAPY_HOST_ARCH = linux-x86_64
  PVAPY_SETUP_SH = /home/epics/pvaPy/bin/linux-x86_64/pvapy_setup_full.2.7.sh

The above files were created automatically on a 64-bit RHEL 7.4 machine, with the following boost/python packages installed:

  $ rpm -q boost-python python-devel
  boost-python-1.53.0-27.el7.x86_64
  python-devel-2.7.5-58.el7.x86_64

Note that the automatic configuration process also creates pvapy_setup_full.$PYTHON_VERSION.(c)sh and pvapy_setup_pythonpath.$PYTHON_VERSION.(c)sh files in the bin/$EPICS_HOST_ARCH directory. The full setup files modify PATH, LD_LIBRARY_PATH and PYTHONPATH environment variables, while the pythonpath setup files modify only PYTHONPATH variable. For example,

  $ cat pvapy_setup_pythonpath.2.7.sh
  #!/bin/sh
  #
  # modifies PYTHONPATH environment variable
  #
  if test -z "$PYTHONPATH" ; then
      export PYTHONPATH=/home/epics/v4/pvaPy/lib/python/2.7/linux-x86_64
  else
      export PYTHONPATH=/home/epics/v4/pvaPy/lib/python/2.7/linux-x86_64:$PYTHONPATH
  fi

After building pvaPy, the environment setup files can be sourced to use the built python module, e.g.:

  $ . /home/epics/v4/pvaPy/bin/linux-x86_64/pvapy_setup_pythonpath.2.7.sh
  $ echo $PYTHONPATH
  /home/epics/v4/pvaPy/lib/python/2.7/linux-x86_64

or for csh users:

  % source /home/epics/v4/pvaPy/bin/linux-x86_64/pvapy_setup_pythonpath.2.7.csh
  % echo $PYTHONPATH
  /home/epics/v4/pvaPy/lib/python/2.7/linux-x86_64

2. Compile PvaPy Source

In the top level package directory run:

  $ make

The above command will create and install a loadable library pvaccess.so under the lib/python directory which can be imported directly by Python.

3. Generate Documentation

This step is optional and requires Sphinx to be installed:

  $ make doc

If a sphinx-build script is present on the system, html pages will be generated in the documentation/sphinx/_build/html directory.

Basic Usage: PV put/get

For simple testing, do the following:

  1. In a separate terminal, start the testDbPv IOC:
  $ cd $EPICS4_DIR/pvaSrv/testTop/iocBoot/testDbPv
  $ ../../bin/$EPICS_HOST_ARCH/testDbPv st.cmd
  1. Source the appropriate setup file from pvaPy's bin/$EPICS_HOST_ARCH directory and start python (the Python PVA module is called pvaccess):
  $ python
  >>> import pvaccess
  >>> dir (pvaccess)
  ['BOOLEAN', 'BYTE', 'CA', 'Channel', 'DOUBLE', 'FLOAT', 'FieldNotFound',
  'INT', 'InvalidArgument', 'InvalidDataType', 'InvalidRequest', 'LONG',
  'NtTable', 'NtType', 'PVA', 'ProviderType', 'PvAlarm', 'PvBoolean', 'PvByte',
  'PvDouble', 'PvFloat', 'PvInt', 'PvLong', 'PvObject', 'PvScalar',
  'PvScalarArray', 'PvShort', 'PvString', 'PvTimeStamp', 'PvType', 'PvUByte',
  'PvUInt', 'PvULong', 'PvUShort', 'PvUnion', 'PvaException', 'RpcClient',
  'RpcServer', 'SHORT', 'STRING', 'UBYTE', 'UINT', 'ULONG', 'USHORT', '__doc__',
  '__file__', '__name__', '__package__']
  >>> c = pvaccess.Channel('int01')
  >>> print c.get()
  epics:nt/NTScalar:1.0
      int value 0
  >>> c.putInt(7)
  >>> print c.get()
  epics:nt/NTScalar:1.0
      int value 7
  >>> c.put(pvaccess.PvInt(5))
  >>> print c.get()
  epics:nt/NTScalar:1.0
      int value 5

In the above, note that in addition to PV object classes like PvInt, one can also use standard Python types as arguments for channel puts.

Basic Usage: PV monitor

  1. In a separate terminal, start the testDbPv IOC:
  $ cd $EPICS4_DIR/pvaSrv/testTop/iocBoot/testDbPv
  $ ../../bin/$EPICS_HOST_ARCH/testDbPv st.cmd
  1. PV values can be changed using the IOC shell command dbpf, e.g:
  epics> dbpr 'float01'
  ASG:                DESC:               DISA: 0             DISP: 0
  DISV: 1             NAME: float01       SEVR: MAJOR         STAT: LOLO
  TPRO: 0             VAL: 0
  epics> dbpf 'float01' 11.1
  DBR_FLOAT:          11.1
  1. Monitor a channel in Python, passing in a subscriber object (function that processes PvObject instance):
  >>> c = pvaccess.Channel('float01')
  >>> def echo(x):
  ...     print 'New PV value:', x
  ...
  >>> c.subscribe('echo', echo)
  >>> c.startMonitor()
  >>> New PV value: epics:nt/NTScalar:1.0
      float value 11.1

  New PV value: epics:nt/NTScalar:1.0
      float value 11.2

  New PV value: epics:nt/NTScalar:1.0
      float value 11.3

  >>> c.stopMonitor()

Advanced Usage: PVA Server Class

  1. In terminal 1, create a simple 'pair' channel:
  $ python 
  >>> pv = PvObject({'x': INT, 'y' : INT})
  >>> pvaServer = PvaServer('pair', pv)
  1. In terminal 2, start monitoring this channel:
  $ pvget -m pair
  1. In terminal 1, update one of the object's fields:
  >>> pv['x'] = 1

This change should appear in terminal 2.

Advanced Usage: RPC Client Class

  1. In a separate terminal, start the v4 test RPC service:
  $ cd $EPICS4_DIR/pvAccessCPP/bin/$EPICS_HOST_ARCH
  $ ./rpcServiceExample # in terminal 2
  1. RPC test channel is 'sum':
  >>> rpc = pvaccess.RpcClient('sum')
  >>> request = pvaccess.PvObject({'a': pvaccess.STRING, 'b': pvaccess.STRING})
  >>> request.set({'a': '11', 'b': '22' })
  >>> print request
  structure
      string a 11
      string b 22
  >>> response = rpc.invoke(request)
  >>> print response
  structure
      double c 33

Advanced Usage: RPC Server Class

Example 1

  1. In a separate terminal, source the environment file and start python:
  $ python # in terminal 2
  >>> import pvaccess
  >>> srv = pvaccess.RpcServer()
  >>> def echo(x):    # x is an instance of PvObject
  ...     print 'Got object: ', x
  ...     return x    # service must return an instance of PvObject
  >>> srv.registerService('echo', echo)
  >>> srv.listen()
  1. In terminal 1, reuse previous request object
  >>> rpc = pvaccess.RpcClient('echo')
  >>> response = rpc.invoke(request)
  >>> print response
  structure
      string a 11
      string b 22

Example 2

  1. In terminal 2:
  $ python
  >>> import pvaccess
  >>> srv = pvaccess.RpcServer()
  >>> def sum(x):
  ...     a = x.getInt('a')
  ...     b = x.getInt('b')
  ...     return pvaccess.PvInt(a+b)
  >>> srv.registerService('sum', sum)
  >>> srv.listen()
  1. In terminal 1:
  >>> rpc = pvaccess.RpcClient('sum')
  >>> request = pvaccess.PvObject({'a': pvaccess.INT, 'b': pvaccess.INT})
  >>> request.set({'a': 11, 'b': 22})
  >>> print request
  structure
      int a 11
      int b 22
  >>> response = rpc.invoke(request)
  >>> print response
  structure
      int value 33

Example 3

  1. In terminal 2:
  >>> import pvaccess
  >>> srv = pvaccess.RpcServer()
  >>> def hash(x):
  ...     import hashlib
  ...     md5 = hashlib.md5()
  ...     md5.update(str(x))
  ...     h = md5.hexdigest()
  ...     dict = x.getStructureDict()
  ...     dict['hash'] = pvaccess.STRING
  ...     response = pvaccess.PvObject(dict)
  ...     response.setString('hash', h)
  ...     return response
  >>> srv.registerService('hash', hash)
  >>> srv.listen()
  1. In terminal 1:
  >>> rpc = pvaccess.RpcClient('hash')
  >>> request = pvaccess.PvString('abcd')
  >>> print rpc.invoke(request)
  structure
      string hash 0a380e7375d8c3f68d1bbe068141d6ce
      string value

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

pvapy-5.4.0-cp312-cp312-win_amd64.whl (2.7 MB view details)

Uploaded CPython 3.12 Windows x86-64

pvapy-5.4.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (9.5 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

pvapy-5.4.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (9.3 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ ARM64

pvapy-5.4.0-cp312-cp312-macosx_14_0_arm64.whl (8.6 MB view details)

Uploaded CPython 3.12 macOS 14.0+ ARM64

pvapy-5.4.0-cp312-cp312-macosx_10_15_x86_64.whl (9.4 MB view details)

Uploaded CPython 3.12 macOS 10.15+ x86-64

pvapy-5.4.0-cp311-cp311-win_amd64.whl (2.7 MB view details)

Uploaded CPython 3.11 Windows x86-64

pvapy-5.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (9.5 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

pvapy-5.4.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (9.3 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARM64

pvapy-5.4.0-cp311-cp311-macosx_14_0_arm64.whl (8.6 MB view details)

Uploaded CPython 3.11 macOS 14.0+ ARM64

pvapy-5.4.0-cp311-cp311-macosx_10_15_x86_64.whl (9.5 MB view details)

Uploaded CPython 3.11 macOS 10.15+ x86-64

pvapy-5.4.0-cp310-cp310-win_amd64.whl (2.7 MB view details)

Uploaded CPython 3.10 Windows x86-64

pvapy-5.4.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (9.5 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

pvapy-5.4.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (9.3 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ARM64

pvapy-5.4.0-cp310-cp310-macosx_14_0_arm64.whl (8.6 MB view details)

Uploaded CPython 3.10 macOS 14.0+ ARM64

pvapy-5.4.0-cp310-cp310-macosx_10_15_x86_64.whl (9.5 MB view details)

Uploaded CPython 3.10 macOS 10.15+ x86-64

pvapy-5.4.0-cp39-cp39-win_amd64.whl (2.7 MB view details)

Uploaded CPython 3.9 Windows x86-64

pvapy-5.4.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (9.5 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

pvapy-5.4.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (9.3 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ ARM64

pvapy-5.4.0-cp39-cp39-macosx_14_0_arm64.whl (8.6 MB view details)

Uploaded CPython 3.9 macOS 14.0+ ARM64

pvapy-5.4.0-cp39-cp39-macosx_10_15_x86_64.whl (9.5 MB view details)

Uploaded CPython 3.9 macOS 10.15+ x86-64

pvapy-5.4.0-cp38-cp38-win_amd64.whl (2.7 MB view details)

Uploaded CPython 3.8 Windows x86-64

pvapy-5.4.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (9.5 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

pvapy-5.4.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (9.3 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ ARM64

pvapy-5.4.0-cp38-cp38-macosx_14_0_arm64.whl (8.6 MB view details)

Uploaded CPython 3.8 macOS 14.0+ ARM64

pvapy-5.4.0-cp38-cp38-macosx_10_15_x86_64.whl (9.5 MB view details)

Uploaded CPython 3.8 macOS 10.15+ x86-64

pvapy-5.4.0-cp37-cp37m-win_amd64.whl (2.6 MB view details)

Uploaded CPython 3.7m Windows x86-64

pvapy-5.4.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (6.5 MB view details)

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

pvapy-5.4.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (6.3 MB view details)

Uploaded CPython 3.7m manylinux: glibc 2.17+ ARM64

pvapy-5.4.0-cp37-cp37m-macosx_10_15_x86_64.whl (9.4 MB view details)

Uploaded CPython 3.7m macOS 10.15+ x86-64

File details

Details for the file pvapy-5.4.0-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: pvapy-5.4.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 2.7 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.12.2

File hashes

Hashes for pvapy-5.4.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 85b3dba670409ccbd2096b4e1df71debfcc3046d6e0d1948b877b97f09968e13
MD5 8a9115484f41533105f93c38f2a08b98
BLAKE2b-256 bb94a8594f323ee672935b872ec0e09357a3d03809e19ceb336f18ae287de8ee

See more details on using hashes here.

File details

Details for the file pvapy-5.4.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pvapy-5.4.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 567a725aafe3964b061ea2bb95480a818eefcdef8410c90e0595929bddb677d4
MD5 d9e18e9d1bd6af5e636c7c44b4f8e9fe
BLAKE2b-256 e9f622a20ddf289ad8a1e8d9164ba454381821a3187eb567f46224f2d0736456

See more details on using hashes here.

File details

Details for the file pvapy-5.4.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pvapy-5.4.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 f69f89038e8afaeffbd0b6cf7409a62624c467fff958a8a42dc65a6aca4ebacd
MD5 619cbf56edde02db1447ae85b853fd22
BLAKE2b-256 d4531daac2917102a0816039ad61b9bb8d8da802736c7f19e89f5b4bc7535485

See more details on using hashes here.

File details

Details for the file pvapy-5.4.0-cp312-cp312-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for pvapy-5.4.0-cp312-cp312-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 67b10fe91e3bcf27d8d840fcac36df030f911dce191f34a753d3795ff7ffbc0e
MD5 ac70bc686283050b9865db515e6b5ac7
BLAKE2b-256 a10c4b41c77694e43fd1e9b894d4960a0c07ea156323e7e7a4eebe0401748c46

See more details on using hashes here.

File details

Details for the file pvapy-5.4.0-cp312-cp312-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for pvapy-5.4.0-cp312-cp312-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 6d83159b1dda1f26bad27033bb1cf04e079d6c835c3762d4a0fe52b86f81fcf6
MD5 ef77d7309c26ef4387c5f70dbf1215c2
BLAKE2b-256 882fb4023ce647ff030aa9cae60aa77c2618169103638e36094e842036fa2c33

See more details on using hashes here.

File details

Details for the file pvapy-5.4.0-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: pvapy-5.4.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 2.7 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.12.2

File hashes

Hashes for pvapy-5.4.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 e6b1b6376d1192cfc18b562b998899ed19055fdb5615d0cc2a34e120f12436a2
MD5 c9c616a87f7a394ebb5935b7294eb53a
BLAKE2b-256 8b478f2c4c3718877c7966fa8170cc6db9e65550594ca81d79fd65f25f969084

See more details on using hashes here.

File details

Details for the file pvapy-5.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pvapy-5.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d9d66ff88d06fbeec14f2ae1895e7df84b7db7aa8775424f56271f4cf0ea5975
MD5 42dd04c627151554bfaf28285879fd39
BLAKE2b-256 cefd60a55d932990f214af2bd777790b670333021b06db5e344b1032d43186a1

See more details on using hashes here.

File details

Details for the file pvapy-5.4.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pvapy-5.4.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 9807f7d9dc03b29bd808e3716c80a35dd979c90be02b775872c7d0ef300339f0
MD5 9556fa6485d1b167c92e06e668fa85ce
BLAKE2b-256 b2e9d970648a686af0cc8e850b9edf86f83663b05fb29df39c6c1b74861ab247

See more details on using hashes here.

File details

Details for the file pvapy-5.4.0-cp311-cp311-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for pvapy-5.4.0-cp311-cp311-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 dc4e797c237a6b4b5e26d16d996a8068e5809e852b4ec54547df487b48225dcc
MD5 aacd10232a1e986d2cd1fdcfed8f62cd
BLAKE2b-256 ee943bd09b0f3db70e70390fe31770a0461cf6fdf6b89250ff3a57ee47dd897b

See more details on using hashes here.

File details

Details for the file pvapy-5.4.0-cp311-cp311-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for pvapy-5.4.0-cp311-cp311-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 b17f492bf166b5893d8ccd5c60dd7b1ff427716b10fbb1116b3f83070e6a77d9
MD5 cd8034f9757c5fc40af6ebb149ff955d
BLAKE2b-256 a58607a5832ccf9d930d93a6eb911c6dbe2e6bf615f115a23854cbaae02d6080

See more details on using hashes here.

File details

Details for the file pvapy-5.4.0-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: pvapy-5.4.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 2.7 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.12.2

File hashes

Hashes for pvapy-5.4.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 40e1ed70fdc0be9340db67fc519a0c1549c0966c29d14c61dfe2b04d6ea58f3b
MD5 26675c6f4f276eaa7538e5e3712123e0
BLAKE2b-256 9e9d0fdbde4b0950c4d7db11e8e496641ea8a1f51f55a40585157fd33f0d3500

See more details on using hashes here.

File details

Details for the file pvapy-5.4.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pvapy-5.4.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 bcca977a153fb892898e4db9ff4f80aeadc95a50b93e1d6e92be987817f5b6b2
MD5 e93db46c8d4e939e9a75d4bbbd0c10cc
BLAKE2b-256 8db9078b42661e5a6b330d74bb9a229e0fb9e1fa91126404eb64971259a90300

See more details on using hashes here.

File details

Details for the file pvapy-5.4.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pvapy-5.4.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 5091cc32a1857de759ae649b499e8bf55bc5ee3b3c9cc4ace99e6a3bacf8a1f0
MD5 2a1148162e7607d854319127ae1ac1ee
BLAKE2b-256 7c2a41ec50a6eef0bf07b55f3243191c90f7f0d0be0b7e529c227b720fd827bb

See more details on using hashes here.

File details

Details for the file pvapy-5.4.0-cp310-cp310-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for pvapy-5.4.0-cp310-cp310-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 acfb585307be831f67b198650fb32213a778acfd18b1b335c7b5d4ff298d6fc1
MD5 610248db159371c8230106e3db87a9d7
BLAKE2b-256 90860fff952051ebf4c12e5bbd394898b4693f662dc1ec91515c1474d5cb7375

See more details on using hashes here.

File details

Details for the file pvapy-5.4.0-cp310-cp310-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for pvapy-5.4.0-cp310-cp310-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 cbeeb7d1b12c56fc2d484b5ea474c08a9d7bb8a717ab6d2689a9bdc0a9f386e7
MD5 2d4e6053f75eb40c40a64ac85c9045e4
BLAKE2b-256 52cba6ad0e9f068ccefd40aa1e1f70cf776044ad00dc9fe642ce09ee4a1c52e5

See more details on using hashes here.

File details

Details for the file pvapy-5.4.0-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: pvapy-5.4.0-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 2.7 MB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.12.2

File hashes

Hashes for pvapy-5.4.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 9bc16ca305e2bc8e7355da4b9303f39f9d303719d74e616d9046b24f5fe8d801
MD5 7e3db1d00214d0468c9edf64aa9d8302
BLAKE2b-256 f895f5f9b53d4c285fad653828c5e3a53df8c2cbbcd4cd781c906e0a99054748

See more details on using hashes here.

File details

Details for the file pvapy-5.4.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pvapy-5.4.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7aee334a8bd5776696f20f9cdcdc9db818e7b9788d7aafa6cb668c7bf0476ce3
MD5 3709ca7c6640735a62d22f3836838777
BLAKE2b-256 0df03d60081762e555dad7ccc724abe36d1f6f686ecb0fb55c61f34f3534abcc

See more details on using hashes here.

File details

Details for the file pvapy-5.4.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pvapy-5.4.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 f7a1e41450b87d7f2cc236dabe3d6b58dcbbc2d96fe70b71fac72898f37f4ee3
MD5 091fac2a7e1613e13579738a8e2a5d16
BLAKE2b-256 182e588deffa8c5116765ff6bf80dc2bf203c68da0758a3af5780a14ed0a7fd6

See more details on using hashes here.

File details

Details for the file pvapy-5.4.0-cp39-cp39-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for pvapy-5.4.0-cp39-cp39-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 fe1e46491437e4d5b435c472cd5aa8b1a107c914f25d302206a08431034cb22f
MD5 e5538996b37cf46c4131eb08341b1e21
BLAKE2b-256 b6a6af3da9f29fe12efbfb50242333e836d66286d5a79444d19ad750bfe9cdb5

See more details on using hashes here.

File details

Details for the file pvapy-5.4.0-cp39-cp39-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for pvapy-5.4.0-cp39-cp39-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 cc4605eb36dbdcee402ce3a989a211cbe2a697787b89fc0ff079d6f8cb05ff08
MD5 1d025cc855758b3fb071fd3a4a4dcf89
BLAKE2b-256 e3e5ab6912cdc8fe75ac11ef617762278fa94e6d21de27be8a7b8e8b991908b7

See more details on using hashes here.

File details

Details for the file pvapy-5.4.0-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: pvapy-5.4.0-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 2.7 MB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.12.2

File hashes

Hashes for pvapy-5.4.0-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 bb6b7b5d5dda5b84fc7731378c9ea1ff2894de12c53fb637cd2b8da488ba9274
MD5 8d4cf288fa2014a3c4fc2b0fb7d04445
BLAKE2b-256 0301def95cd3d900617898987334b5b5cae3b0ec38c864101d18bf9bd58c91a5

See more details on using hashes here.

File details

Details for the file pvapy-5.4.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pvapy-5.4.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8dcacf84b0e503ad80a65742521dd0b28e73703738508dac047e9b6cdeaabcc5
MD5 7cc379cfcf8823dfb9fc98d07e6eef4f
BLAKE2b-256 7bd48b89615cca7c3df76d7de5833879f04db6d58391ba1364f898054bd86db9

See more details on using hashes here.

File details

Details for the file pvapy-5.4.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pvapy-5.4.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 b3e8837c18fd7f269c1d97617d38bb68f98cc37f1d0ffd5a38c356e5bed6520a
MD5 00f9dc7ea3d4f9b2c039562ff3a64838
BLAKE2b-256 c50f8340270cef6d0e76d5125db9eab793148b90a5ba30ee6991508af8c22478

See more details on using hashes here.

File details

Details for the file pvapy-5.4.0-cp38-cp38-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for pvapy-5.4.0-cp38-cp38-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 3a5bf94d1b3aa3823a0d9bcc493ed9a3f937f7d540d18749259de632c3d60b8d
MD5 7d4acebf6695cc95d84690b4d4c3421e
BLAKE2b-256 ed1ed3dfa5fb222cf4d73d807900ffb22cbd7421e6dea4f5e715f76ffe932d0c

See more details on using hashes here.

File details

Details for the file pvapy-5.4.0-cp38-cp38-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for pvapy-5.4.0-cp38-cp38-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 187ff8683c219d06bc66ddcb60e4f9aa489e1dbd47a2185ff9dc7414d2cf687a
MD5 61b89e30a49c4ce2bb5102a35df2dede
BLAKE2b-256 8c3ad2910e91e3a7699ee8a15aa8b64d7e17e395785260d68c9c9b0e8a311eeb

See more details on using hashes here.

File details

Details for the file pvapy-5.4.0-cp37-cp37m-win_amd64.whl.

File metadata

  • Download URL: pvapy-5.4.0-cp37-cp37m-win_amd64.whl
  • Upload date:
  • Size: 2.6 MB
  • Tags: CPython 3.7m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.12.2

File hashes

Hashes for pvapy-5.4.0-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 14961d01ef3849ab8658d121422743ac8c02c35edc3f679448c640f532356d61
MD5 17e005b22cf3ee28d3b4b904ca8e3817
BLAKE2b-256 989b85da13afec239930f1e2e33c8284004bc46af32a04745c562a7301dffedf

See more details on using hashes here.

File details

Details for the file pvapy-5.4.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pvapy-5.4.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 05d40b9a32db0e0c6f97906d7e4a1c477568cff43a0370f7af70d2b03763e0b3
MD5 251c4b17876287cf4af6047c34498873
BLAKE2b-256 605b0117f536d636f586663cca3ecb054f8109cd62bbf1347d399ec230362ee8

See more details on using hashes here.

File details

Details for the file pvapy-5.4.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pvapy-5.4.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 8dfbd4970df632354e12c42cf8d18b35848d95669d895d8d5f6f29695ac6ec0c
MD5 6f773feaf234cf5c1c1b13bce3a98bb1
BLAKE2b-256 a4c0886a6ff0728c5e2b7766db77178a88f72822339783c737cbed796ec0f490

See more details on using hashes here.

File details

Details for the file pvapy-5.4.0-cp37-cp37m-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for pvapy-5.4.0-cp37-cp37m-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 63a8ce6db7230546288e2c17f5979624960979bf9c2e42a25bf87dab8fc1a82f
MD5 1f0b60c82742b7146e265e0ffbffdd5a
BLAKE2b-256 d0f3b1e421328926f23fb79f29418f141d8ae1eb8df04f02f601197c4ac5e4a7

See more details on using hashes here.

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