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.0.0-cp310-cp310-win_amd64.whl (2.4 MB view details)

Uploaded CPython 3.10 Windows x86-64

pvapy-5.0.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (9.3 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

pvapy-5.0.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (9.1 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ARM64

pvapy-5.0.0-cp310-cp310-macosx_10_15_x86_64.whl (9.2 MB view details)

Uploaded CPython 3.10 macOS 10.15+ x86-64

pvapy-5.0.0-cp39-cp39-win_amd64.whl (2.4 MB view details)

Uploaded CPython 3.9 Windows x86-64

pvapy-5.0.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (9.3 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

pvapy-5.0.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (9.1 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ ARM64

pvapy-5.0.0-cp39-cp39-macosx_10_15_x86_64.whl (9.2 MB view details)

Uploaded CPython 3.9 macOS 10.15+ x86-64

pvapy-5.0.0-cp38-cp38-win_amd64.whl (2.4 MB view details)

Uploaded CPython 3.8 Windows x86-64

pvapy-5.0.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (9.3 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

pvapy-5.0.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (9.1 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ ARM64

pvapy-5.0.0-cp38-cp38-macosx_10_15_x86_64.whl (9.2 MB view details)

Uploaded CPython 3.8 macOS 10.15+ x86-64

pvapy-5.0.0-cp37-cp37m-win_amd64.whl (2.4 MB view details)

Uploaded CPython 3.7m Windows x86-64

pvapy-5.0.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (9.3 MB view details)

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

pvapy-5.0.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (9.0 MB view details)

Uploaded CPython 3.7m manylinux: glibc 2.17+ ARM64

pvapy-5.0.0-cp37-cp37m-macosx_10_15_x86_64.whl (9.1 MB view details)

Uploaded CPython 3.7m macOS 10.15+ x86-64

pvapy-5.0.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (9.3 MB view details)

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

pvapy-5.0.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (9.0 MB view details)

Uploaded CPython 3.6m manylinux: glibc 2.17+ ARM64

File details

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

File metadata

  • Download URL: pvapy-5.0.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 2.4 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.0.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 0ab30fc0eabc236bc49e8fe9418ea0ccf8f7b32004c91752aa7412788d8030e1
MD5 ed83b5ac058df174870e6f8b2b47f1ab
BLAKE2b-256 84afbe7b517f837c3be7b8e1ac47994ac449d43e7a1192f221720c1a59cdf4b7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pvapy-5.0.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 04cf3c19b5083237bcdc68efab23ae297d44af7ed2db19c9b0e8d9ebf060d335
MD5 66fc307d94a623940ad9cc1ff00c447d
BLAKE2b-256 eb689fe787be2ce62d47172ab956a13fbc9dfbf84049fb806081824f15413469

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pvapy-5.0.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 403111598d90358b041eef1102f2207717bbe240b8ee9c262fc26862f81527e5
MD5 f5b3f7fdabc1519a3b710357ea9c2ff6
BLAKE2b-256 0a9a9b9b6c7f8b4b9b5beb1e46c27324536c72dd9f5f9a140b8465b493baed3b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pvapy-5.0.0-cp310-cp310-macosx_10_15_x86_64.whl
  • Upload date:
  • Size: 9.2 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.10.2

File hashes

Hashes for pvapy-5.0.0-cp310-cp310-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 acb1b0070935bcb1dc23e1612683f073eb486ab9ab3ffcaaf8208e8bcbc17a07
MD5 bcaae86ebca4cd4a4a5f6f9fa6fde669
BLAKE2b-256 cb3e5890f91b70d6b16b30946b601d1cbfb43a0c7ddef9d95000c26005e6ca6d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pvapy-5.0.0-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 2.4 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.0.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 fa529bda4824f0011e830f5567ecaffbbf631a6207fa5475419707135a204d06
MD5 0d79808bc6e15a684ad67e4b882c665c
BLAKE2b-256 5dc9e8337a6bbab9f795de78ab21e526e596a0dc02a807c25194489915e00ecf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pvapy-5.0.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6e66f9fe7e87edc3be50306cfbf0138f87f838149ff399d177c905c3fd8f852e
MD5 6c2c6096d58a6deac53f2fa4651a18a3
BLAKE2b-256 ab85f5b9e20e6a19908a77b4f0484ad5bce56572f0ea970eb8d9c34a4768d022

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pvapy-5.0.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 f30a52bc4b32f86a5437df1a063e5b57b2eb8169cb4ded8f1fc063cfcd7e4e4b
MD5 63af7e9ced70a149672be63fb6a8b63e
BLAKE2b-256 da9131c5163c611da58b32529e2bf44e24db8af332a3c5fe1be037683d64c9e6

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pvapy-5.0.0-cp39-cp39-macosx_10_15_x86_64.whl
  • Upload date:
  • Size: 9.2 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.10.2

File hashes

Hashes for pvapy-5.0.0-cp39-cp39-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 2557eda6fab5f99a6eacac32f62929482fbbbfbf12af0fafad5c9bd4d3d06892
MD5 235d90e41874a199ab55c349f668587b
BLAKE2b-256 e1aedfbcadd0c05ffe49e4ae12e9e54214c54c84d7fc86cf997969075bba90c7

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pvapy-5.0.0-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 2.4 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.0.0-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 3ce08356433334b03dbbf9eaa283dd7da1e523acf1c11f32ae18764e42059dd9
MD5 bca18ccd4d2cbbd906a46d5abeee2ce8
BLAKE2b-256 085e89183c578cf0945aacff96fe7ab819710e4ee635532d08d69bd287095d0b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pvapy-5.0.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 74f41921c288b58e7dbc0529273ef3459c19c3a9970bc21819904e75ceb26f01
MD5 b29d71fd46fc666b2ce6ed939dee91c8
BLAKE2b-256 bc500ab46daf90fd5cde1e0d16b8ba242e9ae30387269e8e2aa76383d6dde625

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pvapy-5.0.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 257a3234650c5212629ea7ad29b71ad8b9c83fa4e755438297178f0500f8e82d
MD5 6baeeb6bfab59c71afefcce3295d40d2
BLAKE2b-256 64db94337e47b174339a72b18af011823c8d7a485a966762f5d489eb7928fc97

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pvapy-5.0.0-cp38-cp38-macosx_10_15_x86_64.whl
  • Upload date:
  • Size: 9.2 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.10.2

File hashes

Hashes for pvapy-5.0.0-cp38-cp38-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 114ffa8a90097872edfc48b89d528fc7a67ae40619cd6bb6ff82b87cbde3140a
MD5 ac800add767a8ee6b80b83a7b415fd6a
BLAKE2b-256 ac8537cd3c97fcb828029916a7dc8e7683f55a95b10d9607c822e55b2ca0b246

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pvapy-5.0.0-cp37-cp37m-win_amd64.whl
  • Upload date:
  • Size: 2.4 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.0.0-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 809e539a065e9fb2956c672b68849c6bfa2ca7cabec1c1351b2dbbbbcb7f12e3
MD5 5ba0ed291b2b6fe9e4aab22bac027e97
BLAKE2b-256 faa8fad8a608d1c867905eb7ed8903401fbc773f0925b9b8d25d25d6ce78dd96

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pvapy-5.0.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 62567ddc66e94bdd0bf4646c5fac22840cf06ca9cdce61efe29855592a06771b
MD5 99484bc5e9b2229d0c1b86bbfa7c86dd
BLAKE2b-256 338e6c808c3c9d0aba0c2f6ab3755927bac26b78d93188c561e3289b9c58deb5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pvapy-5.0.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 883dac9d3d4226a67b5759257658feab39f427543e4a057ca9149edd9ebef109
MD5 9bc18649dd15513a2f05a129d8b06aa4
BLAKE2b-256 a96758ed30790e947d417f48dc6e922c5b0c376664787c0233ac55d73b53c412

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pvapy-5.0.0-cp37-cp37m-macosx_10_15_x86_64.whl
  • Upload date:
  • Size: 9.1 MB
  • Tags: CPython 3.7m, 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.10.2

File hashes

Hashes for pvapy-5.0.0-cp37-cp37m-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 44a443c5410210dd5f03ccbe8c62234422842a8a849ac9b1a53e881789f01b86
MD5 c99a9e0c215cf85757dc2ee3a626cf7e
BLAKE2b-256 3c539d7e54399c5cd02ce725ff09f6288cb43deca71ca715e68064dc626749e5

See more details on using hashes here.

File details

Details for the file pvapy-5.0.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pvapy-5.0.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 718d57d5e9af3d6cbad3d1e254ae71899051484f9115288f95fa1d6ad30fc092
MD5 a8b013cd25267151daa7f0cd828e2ef0
BLAKE2b-256 be783f452cf70aa7a78541abff20422e04108fe772bd9b3dfba2a93f4abeedc2

See more details on using hashes here.

File details

Details for the file pvapy-5.0.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pvapy-5.0.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 bd97be75a10dbe4c6ac69a2c7bc6a8c5702e62664ec6ccd30961311cfe564926
MD5 7b7d58aa7c7e80c73cde2ed70965fc23
BLAKE2b-256 7fa3533dde80b9466c5642fecc52bcb2a76925ca3f9c1ba357410390b460b8b7

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