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

Uploaded CPython 3.10 Windows x86-64

pvapy-4.1.0-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-4.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (8.9 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ARM64

pvapy-4.1.0-cp310-cp310-macosx_10_15_x86_64.whl (9.0 MB view details)

Uploaded CPython 3.10 macOS 10.15+ x86-64

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

Uploaded CPython 3.9 Windows x86-64

pvapy-4.1.0-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-4.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (8.9 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ ARM64

pvapy-4.1.0-cp39-cp39-macosx_10_15_x86_64.whl (9.0 MB view details)

Uploaded CPython 3.9 macOS 10.15+ x86-64

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

Uploaded CPython 3.8 Windows x86-64

pvapy-4.1.0-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-4.1.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (8.9 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ ARM64

pvapy-4.1.0-cp38-cp38-macosx_10_15_x86_64.whl (9.0 MB view details)

Uploaded CPython 3.8 macOS 10.15+ x86-64

pvapy-4.1.0-cp37-cp37m-win_amd64.whl (2.3 MB view details)

Uploaded CPython 3.7m Windows x86-64

pvapy-4.1.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (9.1 MB view details)

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

pvapy-4.1.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (8.9 MB view details)

Uploaded CPython 3.7m manylinux: glibc 2.17+ ARM64

pvapy-4.1.0-cp37-cp37m-macosx_10_15_x86_64.whl (9.0 MB view details)

Uploaded CPython 3.7m macOS 10.15+ x86-64

pvapy-4.1.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (9.1 MB view details)

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

pvapy-4.1.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (8.9 MB view details)

Uploaded CPython 3.6m manylinux: glibc 2.17+ ARM64

File details

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

File metadata

  • Download URL: pvapy-4.1.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-4.1.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 d4a653e886bce8397af2264773b87e4de1a32667a013597927a9568eea7828a8
MD5 5728e0103c1e21f6b42f48e9d81402bc
BLAKE2b-256 fa3b5f6a7bfae57f33051d5e13fb125553566da55daf3ee74737ee7fb6a49048

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pvapy-4.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8bbd81dac1c950111eea0bf26e2cbbd6bb0a7f21c417793821e9cc338408d9e3
MD5 865b9967eea27d4f2fc607b1fbfea02d
BLAKE2b-256 ba3c3e5f8f5e417407c2e87453f6eeecec11fbcecfa384ed44aa9255d67995a4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pvapy-4.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 86cb8a6e4957bd231b7ee78eedc798e7e3e17beb429f0af021ecdc6ab632e31d
MD5 a03ab01dff9afe8578195e223ae8a2f7
BLAKE2b-256 f5402f733dbcd5a8cc235c01d98d3d18b1e822f314a070d1f95fa48e36e4d44a

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pvapy-4.1.0-cp310-cp310-macosx_10_15_x86_64.whl
  • Upload date:
  • Size: 9.0 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-4.1.0-cp310-cp310-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 3024b46eaa99ad660979fc3bcf8f0cf42b70aaf5d4380ba8c978448dbc8cab28
MD5 7e6bdf5cbca8e00bff85046a5493d237
BLAKE2b-256 ef4f3dc56b4b2df006dad640ae4b48431c507ba352d454d8cabac72744d068a7

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pvapy-4.1.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-4.1.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 46d44b30a71c419bff848c43a934220afecb8ef0443bda822582d2e6ac3c9edb
MD5 7cd3e734245531f1d59767598a7ae6c2
BLAKE2b-256 b7094b03c8eec363905992e122bbefc78b8df21bf8eb25fc2b9844552d3a6fbb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pvapy-4.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b01c803dcefbfff706e210c025a264dd955c5c5a6009aaa5181c3fe753fb586a
MD5 65ac6924ba206f87392b46822245a6ba
BLAKE2b-256 62c97aec41acd70f8b744f8f3cf07bfa30a4f9f2066f62839533b18ef4e45162

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pvapy-4.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 cf8b7551db4fdb6757e5a537bcbad147d697a8cc1ca198afe2e80f13de1f782d
MD5 be08440fc26f2b9da0fa893725afd45b
BLAKE2b-256 49605900584ba39afa0c24d91c2e31c31e212fd7d7a56e1b5ca8f4320eea1784

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pvapy-4.1.0-cp39-cp39-macosx_10_15_x86_64.whl
  • Upload date:
  • Size: 9.0 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-4.1.0-cp39-cp39-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 d0af8890af236900ad39b88daef10e1bcbfd10b61a328653805f2d9a287fa511
MD5 409931294d12e56f00d0fd515547e01d
BLAKE2b-256 a4390ea9efce3096987789009207926c34b1e667c7d58e8e8758d995fcac006a

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pvapy-4.1.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-4.1.0-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 d6a7898c5f93cab04dfcdcd082790e07f447a1a7db8880c7e05a515dcb580ce0
MD5 7fb1dc61d94b81dd263d702590d78a03
BLAKE2b-256 fd1f8129a6fc6e1362185ce44ed1fe0b05aaac7d531ee52ec2a11b528756cc5f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pvapy-4.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9bcd0fc9237f95b28666f1bbc99546ea6cb16374c17752642c3f6148a560adb2
MD5 9528857c03e7554394ba01d41d945f0d
BLAKE2b-256 51906f27d2c5a189a35dda01f48091a53368c8e7f441283390acc668b30ba7c1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pvapy-4.1.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 c2ae275a6a83789764b625bffc51479e1ca86e71a653d1ecdb3c37a6a72bb9fd
MD5 b3eb957e90fe2740ab060946a70be95f
BLAKE2b-256 7815ff6c3265e6d8b98fafd5ece60b1d4b9d7729e6ac6db48fdb5bb115da363b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pvapy-4.1.0-cp38-cp38-macosx_10_15_x86_64.whl
  • Upload date:
  • Size: 9.0 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-4.1.0-cp38-cp38-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 43cdb270dadac95ade3e3b6dae57d52d4b46f148003796b9de2a547dd0bfa647
MD5 dfdc128a6b8405ba913415e58d038065
BLAKE2b-256 c0d39ac2c5e705c02e87da07e0b9330310cc6059b013f37e1dd54353a7745305

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pvapy-4.1.0-cp37-cp37m-win_amd64.whl
  • Upload date:
  • Size: 2.3 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-4.1.0-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 662d95f187604d003fbd2616e86ed31e1d6cfec4fe68458c12ec30b49d70ff30
MD5 cb6434fa142e7847db57b7a101fdd9d9
BLAKE2b-256 63ad42cae3f3b93382818bd127d3b587e7aaf7e20041e36fcea9c31e9e07e668

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pvapy-4.1.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e09784189350a43b9a8eab8dc2574514fd664e6e83edb8ea1be153a1b7b28e07
MD5 bc4f478de4fa69357bbbd66fe21a3ae4
BLAKE2b-256 ff0b9162c1dd336b66aa51e03f232fbdb2780979e52602a9a23ef1b535524cbf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pvapy-4.1.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 dfd7da62caf06d30a83bc2b7b514da8c367829d2e1a51e1028c15070a19a288f
MD5 11c0ba150461e98b77736485fb56dc73
BLAKE2b-256 06d1535d51e75c1c044efe8de18d4500e3e15a8f6d9ea33fb136bffa618fb5fd

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pvapy-4.1.0-cp37-cp37m-macosx_10_15_x86_64.whl
  • Upload date:
  • Size: 9.0 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.8.12

File hashes

Hashes for pvapy-4.1.0-cp37-cp37m-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 72fb7af193bd287854b456187191605b5ce8e6fa793eef9e150b826ea80cf7fe
MD5 8bac4fb2fd82a0e50ebd033c557b1dc4
BLAKE2b-256 76dee142a486800ca465c81c2023398121475c0ca32b4ef0b8aa94f53ffae044

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pvapy-4.1.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3ec0a7ee6038c80c54c2703770cc1a4ac94ee207d2e738efb95410ccabe3e4a2
MD5 d805c623ce12510770f16ed8a93abe80
BLAKE2b-256 016eeb44e0b8f65d78f87a209649c8ee05c096c41c656682e2cd59466e3b39f3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pvapy-4.1.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 3c8874de10f67010c933ada3b22e793227a2c399b06996d60c9fb73bbaeb2954
MD5 4c44f59548293df00698e97460ee694a
BLAKE2b-256 9652fe9ab3e9587ea20af331d310eafb4669e1beeac74750f329f50468ee2f92

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