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.1-cp312-cp312-win_amd64.whl (2.7 MB view details)

Uploaded CPython 3.12 Windows x86-64

pvapy-5.4.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (9.2 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

pvapy-5.4.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (8.9 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ ARM64

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

Uploaded CPython 3.12 macOS 14.0+ ARM64

pvapy-5.4.1-cp312-cp312-macosx_10_15_x86_64.whl (9.2 MB view details)

Uploaded CPython 3.12 macOS 10.15+ x86-64

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

Uploaded CPython 3.11 Windows x86-64

pvapy-5.4.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (9.2 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

pvapy-5.4.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (8.9 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARM64

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

Uploaded CPython 3.11 macOS 14.0+ ARM64

pvapy-5.4.1-cp311-cp311-macosx_10_15_x86_64.whl (9.3 MB view details)

Uploaded CPython 3.11 macOS 10.15+ x86-64

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

Uploaded CPython 3.10 Windows x86-64

pvapy-5.4.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (9.1 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

pvapy-5.4.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (8.9 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ARM64

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

Uploaded CPython 3.10 macOS 14.0+ ARM64

pvapy-5.4.1-cp310-cp310-macosx_10_15_x86_64.whl (9.3 MB view details)

Uploaded CPython 3.10 macOS 10.15+ x86-64

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

Uploaded CPython 3.9 Windows x86-64

pvapy-5.4.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (9.1 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

pvapy-5.4.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (8.9 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ ARM64

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

Uploaded CPython 3.9 macOS 14.0+ ARM64

pvapy-5.4.1-cp39-cp39-macosx_10_15_x86_64.whl (9.3 MB view details)

Uploaded CPython 3.9 macOS 10.15+ x86-64

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

Uploaded CPython 3.8 Windows x86-64

pvapy-5.4.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (9.1 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

pvapy-5.4.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (8.9 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ ARM64

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

Uploaded CPython 3.8 macOS 14.0+ ARM64

pvapy-5.4.1-cp38-cp38-macosx_10_15_x86_64.whl (9.3 MB view details)

Uploaded CPython 3.8 macOS 10.15+ x86-64

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

Uploaded CPython 3.7m Windows x86-64

pvapy-5.4.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (6.2 MB view details)

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

pvapy-5.4.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (6.0 MB view details)

Uploaded CPython 3.7m manylinux: glibc 2.17+ ARM64

File details

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

File metadata

  • Download URL: pvapy-5.4.1-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/3.3.0 pkginfo/1.7.1 requests/2.25.1 setuptools/52.0.0.post20210125 requests-toolbelt/0.9.1 tqdm/4.62.0 CPython/3.7.9

File hashes

Hashes for pvapy-5.4.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 3a7ffb7883d70a2ef8c640e925eee6dc438ba618380a2ebf557bb0ceac113071
MD5 01aec22eaadfbcd395f4f3bd1c5bf5fb
BLAKE2b-256 b58c2c82288832e875edc540a2bae9040af6a63c178fa5d30209c2512435cdfa

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pvapy-5.4.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e6c8e1eac6531ca09abc06402668cb00bd27219f62b961ae663b785c52086d7d
MD5 6955787940ff3fc557075afc84ef14fe
BLAKE2b-256 249864850c4ca122c888d3bf49e27ac5666f3d615e048055a56e324ebc246186

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pvapy-5.4.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 dd02e8741ff91f3320fcab8e5b1ee08dc1e76b7a47ad2f505e3ad7b3ad61e969
MD5 9f630506a38eacb5ce46ac3c5748539f
BLAKE2b-256 26f6a4ef26b975415992848af607063eabc4cf06e45cc6f86705df48fb448acc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pvapy-5.4.1-cp312-cp312-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 c19dd1d621825b67862893f62c0cbf7c7fe83e559062831e39d5c161c0e5d4ee
MD5 fa01baf5c14291453fde357d50e73918
BLAKE2b-256 2aead093576174efad283d6e9dccb9e5f6f93efa68d0d5fc8dbf4441e9049cf5

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pvapy-5.4.1-cp312-cp312-macosx_10_15_x86_64.whl
  • Upload date:
  • Size: 9.2 MB
  • Tags: CPython 3.12, macOS 10.15+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.10.1 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.12

File hashes

Hashes for pvapy-5.4.1-cp312-cp312-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 60216b0702139805552d23090329953dafb2faa7cd2613bc4bb7a6e450602476
MD5 aed44cbcdd25e2b110c639e2701cc726
BLAKE2b-256 8138c166a854b61bc7ebf705824e4eb4a6eb889096cc3985f6c498e1ac8bcc47

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pvapy-5.4.1-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/3.3.0 pkginfo/1.7.1 requests/2.25.1 setuptools/52.0.0.post20210125 requests-toolbelt/0.9.1 tqdm/4.62.0 CPython/3.7.9

File hashes

Hashes for pvapy-5.4.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 faa122692423325524553151488dd236bbee7dc7a3661358b156cf291e304bc3
MD5 2c336ffb2d3e693cce005acfd76a70f7
BLAKE2b-256 372570d5b88767006b3ca975bcfc3876a15cb260a5034c929190748761fd76d5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pvapy-5.4.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 26bcb6649882699420853f58fbc65de8a4280a6881cd28b049d3fb55822e4b6a
MD5 e3d5d4ca5b0947d287388ec5c9e9b1f9
BLAKE2b-256 8681ad79b3ff1f4ef2f560c230234e2cd50672fafb7dbadccb3c933cbe74e6ed

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pvapy-5.4.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 6f93a806b3cae587114933b2a745c7cc86f794ceb4b8f639d4c195686d07c903
MD5 015eb06d947af72a2454c4bd70e09b7e
BLAKE2b-256 9b8c6945fceddfb0a4ce8c4305bc40b83b120c544722299554b20192ae0c766f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pvapy-5.4.1-cp311-cp311-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 db8606de1b94c9517b389ca60eaa5307601c84680342f99b802b05757c4e3b6f
MD5 ce6fe5421256ca1441e6aab20945ed7d
BLAKE2b-256 1186d6c0bf7d9f8c48e764412edfda4d10267d1ad30920859fee22ebfa5357ee

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pvapy-5.4.1-cp311-cp311-macosx_10_15_x86_64.whl
  • Upload date:
  • Size: 9.3 MB
  • Tags: CPython 3.11, macOS 10.15+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.10.1 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.12

File hashes

Hashes for pvapy-5.4.1-cp311-cp311-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 66cb49027616e6d0bd432d28170852c7bbf1b11cbfb9c6edd7b2b716edc38e02
MD5 ee30b5d1fbaac81cc604d00af98de3a4
BLAKE2b-256 42449e4146fa8a23b0da32731259111773837f011a84a38b0e1b698c61ce643e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pvapy-5.4.1-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/3.3.0 pkginfo/1.7.1 requests/2.25.1 setuptools/52.0.0.post20210125 requests-toolbelt/0.9.1 tqdm/4.62.0 CPython/3.7.9

File hashes

Hashes for pvapy-5.4.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 dec4404f95f976d05a357540ca80f9cd1af5dad44605211312d9c0a94ba3e23b
MD5 db74e45231c15f21dc6cc316399f4a21
BLAKE2b-256 bacd0f8981c446f6e1d62e031b4f93160faf60edce1448b023074f4ad2f321e8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pvapy-5.4.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d3255defc1e4952437ae0f8b0717098ec1e2b10130854b7974befe543863dc7b
MD5 15b0b2ece6482c39c65896a9fb642c30
BLAKE2b-256 13d08816908d1c6e1e62c648f0d144eea80dd0000d5efbab3a7e470449e297a7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pvapy-5.4.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 4387c71bdc6f13d055376059aed2a4cc860f4e2604af8cd50e2dc3a68ee0518e
MD5 faf07c9b433544a573bdbc950907551f
BLAKE2b-256 3c1827463a19d1072cf9158f80b85bd66a5d3d004e0568b5a2cb40d1b29991e8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pvapy-5.4.1-cp310-cp310-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 b473a57e371dac6b4947f755e337890a5eae17facb75770731ad42d6b1331ec4
MD5 b2fb59d2b6a6f739c02cbc6a62552ebb
BLAKE2b-256 9466ccd429559cfdf109ee0a92ba09fe4ee86af6556799d557fd7cc987941905

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pvapy-5.4.1-cp310-cp310-macosx_10_15_x86_64.whl
  • Upload date:
  • Size: 9.3 MB
  • Tags: CPython 3.10, macOS 10.15+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.10.1 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.12

File hashes

Hashes for pvapy-5.4.1-cp310-cp310-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 4e6627662294d6fd662752a24cc530f658b93593abb8d790a7f01a23e36e44cc
MD5 3bb86f548eb43cfa67f6b640747a8292
BLAKE2b-256 1341cde25f27b95371ceee992aae5d86d1e3d024a4d1b4c2993bff7eba3aed95

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pvapy-5.4.1-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/3.3.0 pkginfo/1.7.1 requests/2.25.1 setuptools/52.0.0.post20210125 requests-toolbelt/0.9.1 tqdm/4.62.0 CPython/3.7.9

File hashes

Hashes for pvapy-5.4.1-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 90dd03b28132be662d43c4fb5cdf2091e903e4b085cac0621109a4a1675572cd
MD5 5de52156e4aa03ade145de32f9312906
BLAKE2b-256 31fac98d622586500e11a5e6b91656be190f506e66440e3a3c14aaef05b957fd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pvapy-5.4.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 746bca701f3260ad5a98e3062fefa16f92569fcc7efbc2aaac7727d89b21ea39
MD5 f8a7e552bfcce00d8527413902ff3d86
BLAKE2b-256 630efb3205847730277a05ec47194e77ceddd839c8f9e1c35fe0a056b4c6786b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pvapy-5.4.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 356692fb50836ccbc956c0e735107c2688ccfa84ed87a7372305fb5405a65354
MD5 e7c4131f48992be69d8567b306456250
BLAKE2b-256 ad9942c2bdab506cdc394fadea25eeeb24a73e41d2cdc01eb5bc42f7f69f997e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pvapy-5.4.1-cp39-cp39-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 4b0a53d787c43649f7a787348039197ce775a7566406d5cdfa3e8cf3fcca74c6
MD5 4f565105bee060dfd2e79ec489b51706
BLAKE2b-256 4e3c5139db8ce22fd62678c85b30ca334c1f1614826065416a843931913f613d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pvapy-5.4.1-cp39-cp39-macosx_10_15_x86_64.whl
  • Upload date:
  • Size: 9.3 MB
  • Tags: CPython 3.9, macOS 10.15+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.10.1 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.12

File hashes

Hashes for pvapy-5.4.1-cp39-cp39-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 01af67d973ea394ccbf1bb8f3a2abc7eb568049a65321fa6728987186b0a31b9
MD5 31a81802197a7f62b14194cfc5500de2
BLAKE2b-256 27f826f003415dfba29fd15773053c9a329f58b0f683877dc047e5843ff5019c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pvapy-5.4.1-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/3.3.0 pkginfo/1.7.1 requests/2.25.1 setuptools/52.0.0.post20210125 requests-toolbelt/0.9.1 tqdm/4.62.0 CPython/3.7.9

File hashes

Hashes for pvapy-5.4.1-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 30645adf0d459d5b0448939157ccb6187d71d025dd5c82b50f58e48293f52211
MD5 972c7665e09ca02da6df9d7649a7185f
BLAKE2b-256 d3b6719deadddb6ffcc4be15e9e7cdf8814e4ba575d83fa5a2bca7e13787d682

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pvapy-5.4.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e1fcf5762f5310bd89dae9bfac6be0fb1360f9b47d760e2776579c371c8ed2b0
MD5 216bb11bde896475bd280a02b4e5164a
BLAKE2b-256 7031312704c96dd7ebaa173c8c57533bec5d28b7ec8c5b4d3e3e5a660b6a8c38

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pvapy-5.4.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 e62e1acb3da5cf4cd27ebdd522261f579f7654ad903451752a2e3540bd0d0577
MD5 1d43c9dd6c3f552e6d70a3a32d6c8177
BLAKE2b-256 989e6fb6d8528a4189a41ba37cd7d1b973248370f211dafe1bd25d60240d0d6c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pvapy-5.4.1-cp38-cp38-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 67c08f51417bec970f1f1bcb9d046dc241d367276bc18752cedb260fdb9a2afa
MD5 999c5b013d8eb0f7ecb0f759a4e11028
BLAKE2b-256 3dc883bf4dd3c892585fe635a1aa44f10f1f04dff39379b0701c9bfb5bdd3d41

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pvapy-5.4.1-cp38-cp38-macosx_10_15_x86_64.whl
  • Upload date:
  • Size: 9.3 MB
  • Tags: CPython 3.8, macOS 10.15+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.10.1 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.12

File hashes

Hashes for pvapy-5.4.1-cp38-cp38-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 6bc56e6e1c7138c4eb3133b7cc441c1b5acdfcf93b39f606d145f4c4f4519873
MD5 3a393f49646e5420b82cf79e0aa55067
BLAKE2b-256 317a1bf830188aa29e1d54b89e2836223b022faf56d2f745523c2ea93765278a

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pvapy-5.4.1-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/3.3.0 pkginfo/1.7.1 requests/2.25.1 setuptools/52.0.0.post20210125 requests-toolbelt/0.9.1 tqdm/4.62.0 CPython/3.7.9

File hashes

Hashes for pvapy-5.4.1-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 a98fa8e9f728e9be4efae45b5853e00e78fcb1e8c418501a060695b5a7ab7e5f
MD5 907fbe6d42012e89b871774c653ebc77
BLAKE2b-256 3cc3c0ee62aae081b44ad410b970e454312092d1a1009197ba00f06d946d2baf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pvapy-5.4.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c55718c34c93586177984359ac9c070ebec434b09a8d63a498d0178cff210c12
MD5 b88c0c1197bb23f2e5e9c83ecbcfaf0e
BLAKE2b-256 6837d00f5c56d5cf94bde59fce2051c9142af27aad710e42290b4e7a1d4e9ebb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pvapy-5.4.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 210621ab2ec20b343704583d932864322c8ae7c945d750b20e570143626f17b7
MD5 698cba60aa48a5738e67742ff15b6902
BLAKE2b-256 10d3045fbb6e85789bd9d965bb12905014d918ed8682bb5ce53a1f7194e9a675

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