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] [BOOST_INCLUDE_DIR=/boost/include/path] [BOOST_LIB_DIR=/boot/lib/path] [PYTHON_VERSION=2]

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, BOOST_INCLUDE_DIR and BOOST_LIB_DIR arguments are typically used for custom Boost installation directories. 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 2.x requires PYTHON_VERSION=2 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

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

pvapy-5.6.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (14.7 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ x86-64

pvapy-5.6.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (14.7 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64

pvapy-5.6.0-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (7.0 MB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ x86-64

pvapy-5.6.0-cp313-cp313-win_amd64.whl (2.9 MB view details)

Uploaded CPython 3.13Windows x86-64

pvapy-5.6.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (14.7 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

pvapy-5.6.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (14.4 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

pvapy-5.6.0-cp313-cp313-macosx_15_0_arm64.whl (13.6 MB view details)

Uploaded CPython 3.13macOS 15.0+ ARM64

pvapy-5.6.0-cp313-cp313-macosx_10_15_x86_64.whl (14.3 MB view details)

Uploaded CPython 3.13macOS 10.15+ x86-64

pvapy-5.6.0-cp312-cp312-win_amd64.whl (2.9 MB view details)

Uploaded CPython 3.12Windows x86-64

pvapy-5.6.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (14.7 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

pvapy-5.6.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (14.4 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

pvapy-5.6.0-cp312-cp312-macosx_15_0_arm64.whl (8.8 MB view details)

Uploaded CPython 3.12macOS 15.0+ ARM64

pvapy-5.6.0-cp312-cp312-macosx_10_15_x86_64.whl (14.3 MB view details)

Uploaded CPython 3.12macOS 10.15+ x86-64

pvapy-5.6.0-cp311-cp311-win_amd64.whl (2.8 MB view details)

Uploaded CPython 3.11Windows x86-64

pvapy-5.6.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (14.7 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

pvapy-5.6.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (14.4 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

pvapy-5.6.0-cp311-cp311-macosx_15_0_arm64.whl (8.8 MB view details)

Uploaded CPython 3.11macOS 15.0+ ARM64

pvapy-5.6.0-cp311-cp311-macosx_10_15_x86_64.whl (14.3 MB view details)

Uploaded CPython 3.11macOS 10.15+ x86-64

pvapy-5.6.0-cp310-cp310-win_amd64.whl (2.8 MB view details)

Uploaded CPython 3.10Windows x86-64

pvapy-5.6.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (14.7 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

pvapy-5.6.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (14.4 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

pvapy-5.6.0-cp310-cp310-macosx_15_0_arm64.whl (8.8 MB view details)

Uploaded CPython 3.10macOS 15.0+ ARM64

pvapy-5.6.0-cp310-cp310-macosx_10_15_x86_64.whl (14.3 MB view details)

Uploaded CPython 3.10macOS 10.15+ x86-64

pvapy-5.6.0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (14.7 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

pvapy-5.6.0-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (14.4 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARM64

pvapy-5.6.0-cp39-cp39-macosx_15_0_arm64.whl (8.8 MB view details)

Uploaded CPython 3.9macOS 15.0+ ARM64

pvapy-5.6.0-cp39-cp39-macosx_10_15_x86_64.whl (14.3 MB view details)

Uploaded CPython 3.9macOS 10.15+ x86-64

pvapy-5.6.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (14.7 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

pvapy-5.6.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (14.4 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ ARM64

pvapy-5.6.0-cp38-cp38-macosx_15_0_arm64.whl (8.8 MB view details)

Uploaded CPython 3.8macOS 15.0+ ARM64

pvapy-5.6.0-cp38-cp38-macosx_10_15_x86_64.whl (14.3 MB view details)

Uploaded CPython 3.8macOS 10.15+ x86-64

pvapy-5.6.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (6.9 MB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.17+ x86-64

pvapy-5.6.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (6.6 MB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.17+ ARM64

File details

Details for the file pvapy-5.6.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for pvapy-5.6.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 bde2630621ab0bc202bf984014911ec0b63e0c5bfb43bba52d754aa9648e4cbc
MD5 0d3fc016e7ad22f8f73c7ab2309c42f7
BLAKE2b-256 0e6ac797695f04abde43d18cafbcc8e7a0cbfdeffbcb0e2f48e05a5e6d2aa4d5

See more details on using hashes here.

File details

Details for the file pvapy-5.6.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for pvapy-5.6.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 ec0960401c4d81d02153dea6831099bfd37b243b2a35f2c6bcccb87b359728ec
MD5 24d295dfbbd554c2be991e7948ac4ffd
BLAKE2b-256 ad00c8d4492649b5ea4ed6d3e96f02f52f8649b467f4a83a47238654560c9846

See more details on using hashes here.

File details

Details for the file pvapy-5.6.0-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for pvapy-5.6.0-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 3238a7b20a934d66ef280b80757e9ef2913d769e6d3aa92023c5e05f4c5bf02b
MD5 f55b98f69425751c8a7ac77a768d6677
BLAKE2b-256 dfa7b8b528ec70ea409b48527b4437cb9bbfc4d41f1907e9780a55b600066c94

See more details on using hashes here.

File details

Details for the file pvapy-5.6.0-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: pvapy-5.6.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 2.9 MB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.13.1

File hashes

Hashes for pvapy-5.6.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 064c140d704b7b42acc1e410e1ce2a793314d017b16ae8ee2ae10b9786851526
MD5 cd65ca443ff5608669ddb0e1ce5d5253
BLAKE2b-256 43b3e7f7460b7d617d390b318346ba413740b0c3c32fc4023e597e488e1c66ae

See more details on using hashes here.

File details

Details for the file pvapy-5.6.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for pvapy-5.6.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 b43a8178a15bc55353aac1f8d09423700759ea5adf7015252b2e9d142672bff6
MD5 0362e31fcdb92b03e2f5132a393af214
BLAKE2b-256 1ccd8fc5d43b7d452f82e9c5fcf3833ea72e7ad87a335dca78cb05b529b3f913

See more details on using hashes here.

File details

Details for the file pvapy-5.6.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl.

File metadata

File hashes

Hashes for pvapy-5.6.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 62d3ee92192ffb29963331c7bb967b4648f99b1e8b2190f39e23562b4c1d0ec2
MD5 e90e1447592d04cf50144bbc22015f33
BLAKE2b-256 a2812b7a5b972d3f5bda9d93db8466d62588c2a8bfaeed7d0f13a9ec8b6cde34

See more details on using hashes here.

File details

Details for the file pvapy-5.6.0-cp313-cp313-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for pvapy-5.6.0-cp313-cp313-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 40d4ea00278e7e40b01763e58fea637a90f2a5a43cb06d1724b66d64bb2e4dcd
MD5 aa561d132bcc1214359fffccfa4fad16
BLAKE2b-256 deb28b31b2210873c6f582f894a8d3738b95e20579b2e21a2389955184fecfbe

See more details on using hashes here.

File details

Details for the file pvapy-5.6.0-cp313-cp313-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for pvapy-5.6.0-cp313-cp313-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 59297c3716c478dd53e5be3726a3998a230d3936430e24baec87c39db650162e
MD5 d9d3a00cab18c2da7b65cc212bd74880
BLAKE2b-256 cc5f667b51a7f78291dab05516f46d0a64caaaa4d1a1d7e9376e42f0b6cd2f26

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pvapy-5.6.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 2.9 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.13.1

File hashes

Hashes for pvapy-5.6.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 1660ce1b474d0033e1d5cef9aca6abc576c4b606580f86a49ed6224c9b9c8198
MD5 1fbf3872b1d2e25d8fe68979bf70550f
BLAKE2b-256 899e02e3119f9310a1fa39f66cf5f34df4d44bfc50d546223319dce2e86c002f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pvapy-5.6.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 c99709b5cc7f3639d0e65863d2e482b447ff96c29f3ff70a05b57f9661a564f7
MD5 ce8743216bdf60f5bd70891a4a673573
BLAKE2b-256 63ffdb2ed9213538990e4743d9581f5b8e434ae3321ff027b3b7cf415bf2b116

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pvapy-5.6.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 7a9819bf7b1dc07026f53921fd99966a768de88c1ede3d1d75de8c1d1fd836e5
MD5 568f9707d6fb8d72d06cc69ee8124833
BLAKE2b-256 e91a50e8b2050059dab62a6cec49e32ef529b168ebe49b374dcb9f41c7c03398

See more details on using hashes here.

File details

Details for the file pvapy-5.6.0-cp312-cp312-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for pvapy-5.6.0-cp312-cp312-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 0464ffe8e078bea79761921c5b38bfc5bc0c1a052eedd4c8d88e6910dae9a35a
MD5 3a01a0f178e9002df3286a7cfe012841
BLAKE2b-256 de192780b292fb3b0469873344ea3f6d21914f1be52fa736dc1ec986788a37af

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pvapy-5.6.0-cp312-cp312-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 7bdbaa8f9aad06e2669d423b631cd2f1ff4970a472f91fd4f4f1f0b7916ef0fb
MD5 3cff44cdea42b3b50730138e8fc64b3d
BLAKE2b-256 80126d92b142fb9662ac1b62cb71641a0247d7e13b5df1bcf45c81a3a37e3eb1

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pvapy-5.6.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 2.8 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.13.1

File hashes

Hashes for pvapy-5.6.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 6eee3ed411cb0065526a2894a243b77ddd145e06dd1cdaefa663c0cbc819fdf9
MD5 e4d0f6be3d8ebb60c6f02b42191b5793
BLAKE2b-256 b73bc595b5d84401861ee07aac00b607581fec31e22f755b8aa148551423501b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pvapy-5.6.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 cfc63447eb961b635569c2a606ec51f5360876be8a785270223b77397874f4c5
MD5 cfd0a601da3191b0cf5a3efd3ea38422
BLAKE2b-256 7eedc17d56880e4d45faffbfa4c31e61b51ce06d4ead339330b20950ab90ad2a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pvapy-5.6.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 c390f79bff5962925ad726d63d1e814100e0f3a2583ea8f9af34f8efcf63bb69
MD5 96f471ea1681320e3344ce55f896233b
BLAKE2b-256 79560401eed2ec3abf112f026c547846fcc562782e7f5cd5e428eb0fadb70ddc

See more details on using hashes here.

File details

Details for the file pvapy-5.6.0-cp311-cp311-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for pvapy-5.6.0-cp311-cp311-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 a5da43a040938fa23b7fc015c0a79e801a9284971c799a02f8d88393bc003c61
MD5 50fd23f85fad2a39755f401fd5602103
BLAKE2b-256 29204b06d34b2a6164e4d20e7f082c6196a8cb4b6a82dd66c4bb2e095279b4ff

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pvapy-5.6.0-cp311-cp311-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 17e16942f26b82b0db177650402d834605041f6355ea25c141e0baa7ff82766a
MD5 f021e66e57f3934b771e3465e28cedd8
BLAKE2b-256 0f05bfd3146703cad7fada55912815e559639ee2a6c22e7b9d8b6abfbe14df92

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pvapy-5.6.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 2.8 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.13.1

File hashes

Hashes for pvapy-5.6.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 4e2de8a01a5dad4c0e7eaf77fc987a5023bf78617c8d5f7673809e4056811810
MD5 79aa7949e31e28656b5811999b678eae
BLAKE2b-256 fed3bac57a7d7f6d68a607c85d9a627f0713a4c6c0d9082e9c006478338b5ce9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pvapy-5.6.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 17c1624bcd0d108e64efc52ec7ae0146d6789625e261282e16c836075e7569b9
MD5 08ae5d560799326d1fe88806580c980a
BLAKE2b-256 4428ce14740bcff823e9fad78881c5e4d5bb2e9664c84da788ab337e843728de

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pvapy-5.6.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 54b111c7670be7b65323cc00dba476f1803c1822c4d8f20c23a1882146de74a1
MD5 5491fb8967434fd4f53a5464be925de3
BLAKE2b-256 2b30a18ae6f98b9b7f7d7180648b1eb1e680c93feadfd3a608c379436fffaba2

See more details on using hashes here.

File details

Details for the file pvapy-5.6.0-cp310-cp310-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for pvapy-5.6.0-cp310-cp310-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 e6c256fa115a3e6dca4fea35bfcf5a8a5c3342678c8e9be32ca2c0dc7b06f2c1
MD5 1edfa0a20106ff40a35de78eedb45a03
BLAKE2b-256 e09c517f89d1fed20b98299bbdf2bc03613c9ff043c985befa24083a71d8a2fe

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pvapy-5.6.0-cp310-cp310-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 a34baad429ffdfb8c11173f936a9380f8b52389cff959b670f7f69fe9e243f0a
MD5 53f87a3e6c0570a038c14f1002e42cfc
BLAKE2b-256 762affdd51bde386d7213eff3ce79820462b01c894664c4020651202595ecc37

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pvapy-5.6.0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 a835611ce504f6a96ac55addd6dfff2960299016de3167ffa4702ee3f0d9f7dc
MD5 638eb583f2f180f7acf1769b55b4c3e8
BLAKE2b-256 24d275fa24507be9ecf5a227f02afcc10049b852eb2a16ada21bf79a94dbc6bf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pvapy-5.6.0-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 458ac0376657cb87be58d5a415e59af045ad17afa281b9ad25c577789bed10db
MD5 cc5ba8ca96377ead852061cf7502cd73
BLAKE2b-256 2a8b44fa0c4c2f548b99f12edda0f39b2b085a86aacc532b7ecedbbb95e96402

See more details on using hashes here.

File details

Details for the file pvapy-5.6.0-cp39-cp39-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for pvapy-5.6.0-cp39-cp39-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 0de205400fefb105ed8ec76aba172646fe8d2edc09215439454d05986e820686
MD5 eaecc015ff5412fcef4d510853ab65f7
BLAKE2b-256 4e76768f50c9020244f479ba118738846d8973d981df844e6b75ac54844c627e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pvapy-5.6.0-cp39-cp39-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 b1b831cc729bac20d4c28971e21aa651891a2460e68811b7862a52b63f771d4d
MD5 b22a9ea18c847793516a42bcc55e3724
BLAKE2b-256 3b48a900dd17c083f40db66b96914606891bf59e9a05a1497e11c040856d23ed

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pvapy-5.6.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 460e4659a4587ecd8083862c96775e606a704da0d01681404c1b1a96876fc670
MD5 8a9d5e694be4d231807f6b08d183b67e
BLAKE2b-256 cd826cc83abe80cae547bdbbcda6e2b89c6dfd50f2e8b09b7706ab6caf9fe401

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pvapy-5.6.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 362ebad8fc003aadf516063ff6555a5d8449eae015e3a0b624aa178626aa3462
MD5 77f89d7aadfc1876d87b74a618517187
BLAKE2b-256 b155af576652d79ecf704b19b1b65c3b4af5003c1dd06c5ce1cac38c8c315d91

See more details on using hashes here.

File details

Details for the file pvapy-5.6.0-cp38-cp38-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for pvapy-5.6.0-cp38-cp38-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 4ee4978b4bb16b44cac815e415f23344473d55874b0e41d1ba191e7e8d9783a0
MD5 442043bd5feae17ab36b32b8aec128db
BLAKE2b-256 41cd8907f66774b1008ca7152e0c7f3807c2ffb579f5a84177c24765936c6e4d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pvapy-5.6.0-cp38-cp38-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 549a586e90494bb0d965463c697a1ef29ee614c66e34445b8d6bbd09cdeced0c
MD5 6361332c00dcfae5ce2f2e5beb67cc32
BLAKE2b-256 7e9c6189ab1bc449df62d0e7a2d2b5087c96c6c95bfaeb0d6292228f47f490d7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pvapy-5.6.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 88d5af0a03f07cd085665a806530bc8c707a1d0c407e28536c0b3786d58c2eb4
MD5 ffa2de0a457bca5b326a45a86580468e
BLAKE2b-256 833afd6ff27301f604e14019f3e02d6ff0bca0f30d4b6d8ecd65367e73de026e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pvapy-5.6.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 d65dee1ab98e323e4717c938cbcee7cf265b5b6458f8c369de1ef1dab98a977d
MD5 9babb170948c69661608500abd2a4ead
BLAKE2b-256 f21e1ea8dce79ffd48e92cc5ecf513a3197a744de74abf2b60705f1b8b855ea1

See more details on using hashes here.

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