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.5.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (14.8 MB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ x86-64

pvapy-5.5.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (14.5 MB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ ARM64

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

Uploaded CPython 3.13Windows x86-64

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

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

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

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

pvapy-5.5.0-cp313-cp313-macosx_14_0_arm64.whl (13.6 MB view details)

Uploaded CPython 3.13macOS 14.0+ ARM64

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

Uploaded CPython 3.13macOS 10.15+ x86-64

pvapy-5.5.0-cp312-cp312-win_amd64.whl (2.8 MB view details)

Uploaded CPython 3.12Windows x86-64

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

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

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

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

pvapy-5.5.0-cp312-cp312-macosx_14_0_arm64.whl (8.8 MB view details)

Uploaded CPython 3.12macOS 14.0+ ARM64

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

Uploaded CPython 3.12macOS 10.15+ x86-64

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

Uploaded CPython 3.11Windows x86-64

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

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

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

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

pvapy-5.5.0-cp311-cp311-macosx_14_0_arm64.whl (8.8 MB view details)

Uploaded CPython 3.11macOS 14.0+ ARM64

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

Uploaded CPython 3.11macOS 10.15+ x86-64

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

Uploaded CPython 3.10Windows x86-64

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

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

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

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

pvapy-5.5.0-cp310-cp310-macosx_14_0_arm64.whl (8.8 MB view details)

Uploaded CPython 3.10macOS 14.0+ ARM64

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

Uploaded CPython 3.10macOS 10.15+ x86-64

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

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

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

Uploaded CPython 3.9manylinux: glibc 2.17+ ARM64

pvapy-5.5.0-cp39-cp39-macosx_14_0_arm64.whl (8.8 MB view details)

Uploaded CPython 3.9macOS 14.0+ ARM64

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

Uploaded CPython 3.9macOS 10.15+ x86-64

pvapy-5.5.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.5.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.5.0-cp38-cp38-macosx_14_0_arm64.whl (8.8 MB view details)

Uploaded CPython 3.8macOS 14.0+ ARM64

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

Uploaded CPython 3.8macOS 10.15+ x86-64

pvapy-5.5.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.5.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.5.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pvapy-5.5.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e679d08de2c91f163b25d7aebfcbcb64bc6ca53c2386403778dc9fb1859acee7
MD5 bd9c0524c180a62b1834aa061edd462d
BLAKE2b-256 92534e4f3972ed859d4376f44d550c84954df70e6d40200de964da3476257dd3

See more details on using hashes here.

File details

Details for the file pvapy-5.5.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pvapy-5.5.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 dee0e1ab9e66e9c18b53dd45d6e588528155095c96efba8845ba5263999acc5e
MD5 ebd39cd9a1ca9b70d5edfb0d4eb7705f
BLAKE2b-256 014f62cfc4c1a7c6c10b68c06b34c875590bd2a53d5acf6f91f45d0e5cba7fec

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pvapy-5.5.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.10.2

File hashes

Hashes for pvapy-5.5.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 a03bfe892adef0727ff005a1bd07f35bbe7bb91fa5c55ecccda988e8881851ee
MD5 f74de13b3464135f3c342beeacbd83c7
BLAKE2b-256 9450824e0b902b9e46df7b2b282dbcdbf7d500ec36892fc864ab4eb6e3509490

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pvapy-5.5.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9446a41d2bd9cf72a027f3a5824a580c95f9aebf62df55386d75cf3218dede9c
MD5 9784390113077f671f4f9c2d75906c21
BLAKE2b-256 99841f0af0404ce383c149b6b08020d8c468cb47530da8629bfbe25745d9e0f6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pvapy-5.5.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 ea9de51a05b39c3339cab04fd8fbd865ddba6faf3006af9c451d5576ee89998c
MD5 ad20af36a24a3348d05c488289517a49
BLAKE2b-256 3aad6cd753a9066c72fb34b84836c8f144283b2d0a2aace7e5f9ea4b8f59905c

See more details on using hashes here.

File details

Details for the file pvapy-5.5.0-cp313-cp313-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for pvapy-5.5.0-cp313-cp313-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 8b1963b58efd3f559d44a3fa076be95c96b0ab926f5acbe906bcba6d60eb7610
MD5 3ad48225202a2f74b078d51703e840c6
BLAKE2b-256 6cdb03ba86f65a05dfd0a3b529b46bd68ab66c8533fd0f1672b6ea81b863b1c4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pvapy-5.5.0-cp313-cp313-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 354b65765af366d3cf98075d3ef219e0708d414e1f8356423f87692cef9a3653
MD5 070982423de19a07becf4a6763d21d34
BLAKE2b-256 e377407ad313c752c4dc1533c7beffac81be2672e7d170246f89f941c2679797

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for pvapy-5.5.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 e767b5bdfce49b801ece5174bc40b2bd028fcfbdd91b9ff6b201f9b3fb74fc4d
MD5 0e552d3aac13b72b3ef23b26c3fafe49
BLAKE2b-256 81290ba50c66956b36d612c62eca4a5fc8f80a81e733ba01fc0f84cb662f5359

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pvapy-5.5.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c1cc8e9454f26b460cd950a40b60750684a3d1342749f294fbe7be51c93d76eb
MD5 4c1ca605b9be05b03e1f504ff07cfdef
BLAKE2b-256 8c46bcef8bdf2f9182f9b5ae47e71905d01a42c00fc51002079dd21d37c42423

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pvapy-5.5.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 fd147909807d30607257d1cbb80049b747fa5aac9431cfd5c5609424d8796858
MD5 ac985dce86a3d71ace04bc2efe0c9427
BLAKE2b-256 367a5215d89344127510974a13bda73b1d8eeda74a480cff0ab9763a7feea938

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pvapy-5.5.0-cp312-cp312-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 39f76fe008755b35165b101b5bdc8be9dd66463f42cc4fda05528e60ce192c7a
MD5 340b6690426e03f36a940513a6d63e3a
BLAKE2b-256 5bfa6e620d032479ffe479498b1f6d65b0c019db8e09d48eb1be3817907d38f0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pvapy-5.5.0-cp312-cp312-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 81bee4bf16bfb9d764da2c036fb2ed76bcb0044c6cd6df3584f64773ed791689
MD5 4edf57192c9e5bc541cb32ccb6c089e5
BLAKE2b-256 9be35559f0d89f077dbd784603010e0592f08a5820f7efc4424f8e09c47610a1

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pvapy-5.5.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.10.2

File hashes

Hashes for pvapy-5.5.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 fd4a5b0a779176cfff22b8eb8d396dae5258a708e8ad6760499f17bf9fc53ef4
MD5 0ca5120086a252ef8c70f675c900e2e9
BLAKE2b-256 a311b15488918743bb9457fc5ee165c77818a261efe9304fabc1d962d8ebcbb2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pvapy-5.5.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0d261061610838fedbcf78f476111734a118ed77a792f9f5924b631094765908
MD5 4b17e0b926f17ea65b653ed78993e092
BLAKE2b-256 dee95e3c497d7803bc707832369676bdc30029d11e0c77211f1e462ee8115717

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pvapy-5.5.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 09a300eaa645278c92d215261b84cd38fcd115be5874134578a0c7b57dc77d64
MD5 4160566c8e8e13fbb06401602738b1f6
BLAKE2b-256 78293293e99aa63a7cf996514cf2a432931d26ed220bd086af58237af141273b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pvapy-5.5.0-cp311-cp311-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 42113a76a4a4c1b1c29dd60da25d54218271e42f9842733110b1e947dff13da1
MD5 2554159dd8dfbd859f30b3bb12866083
BLAKE2b-256 928b0854a0fd3d2cd67764f020511e6951765aa627f71a7f363abeaaa9fbddbf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pvapy-5.5.0-cp311-cp311-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 1adcbc07ddba32bc1ca1926782c73b83d9a4414659ccd0befe888b459f34c65c
MD5 5202adbe8a694282dcd297fa0b90173b
BLAKE2b-256 bcf87667f2fc6656f81590c34c30db4cfbf33e2b62fd20b17efc035cdea41087

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pvapy-5.5.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.10.2

File hashes

Hashes for pvapy-5.5.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 83a87b6d1c67294fefda3e93d7947dd2b93d9068405e2efecab03712677d06f8
MD5 eb9e8abbc715961a4db643c4a9af8573
BLAKE2b-256 f2674155ff1f99155581d1b694389c3b50e91e1637228850ceb5bd82647d2392

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pvapy-5.5.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 547b6a513f78e0df68294b077ec48c0a63e5e294caf8dd074c7b2e437c0b99a6
MD5 f5daa1dd4a58e660d542b0cf75af3fb8
BLAKE2b-256 998d916772eb4d705ca7fb3d50bf1b1b88172153703c3a5cf20133fd00c3620b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pvapy-5.5.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 e3bb996ddffb22406a36761d177e2a40ae47372d9b83b3d4b22ace0952104c1b
MD5 5276610ad7d6342ca093c72447b0d1b9
BLAKE2b-256 ae14ab01a81b0bd0ce0a9d23b252640c795bee4ca10f4edcb26b58a8042b339f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pvapy-5.5.0-cp310-cp310-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 de70160586b80444c8acfb700c8ee6d23259f0d879cd2a42fceba659b8c9d006
MD5 41bd7792f400d88b9aa630e7e5816622
BLAKE2b-256 991ebc7b075d4bd38b6ffc20b1e3e1b9a38f742283b706e2caa407ffd1a2d88b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pvapy-5.5.0-cp310-cp310-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 11ea816429b99c6a29e9b1fc17f50b28398decd0ea62d57b64b008e00e477449
MD5 7ff699854a3a010c9a51e75620713b3a
BLAKE2b-256 6ffb4ada663f74c1a74add178081b3cc78c7180d2e3f1eb37720e49989ee4d88

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pvapy-5.5.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ec2365fa82ea856898e6f7a75fe742756553cad73175038facc6ea880dd9efd1
MD5 dc060c913c98199d4f8b48d045e0af5f
BLAKE2b-256 814d34c9c3eb6a86c5912d219003b29bc9d72d322440096d46404e80bd5c1731

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pvapy-5.5.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 f2207e346a1f0db80f7b74729a66f4fd7cdd1061a3ec9a4be220b5e24533b0cc
MD5 630c90afa09ae81f1b3f62f8669d4158
BLAKE2b-256 6c280617bcc507047e6c5810c1bcfb12b1eeec836d61a992f98aa84c4de260ba

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pvapy-5.5.0-cp39-cp39-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 65498a14c0641bc745a72e62da822c7f13159b274586ab646004f342dc275a8c
MD5 4aef453c69f40d1dcd59b9c71aecde16
BLAKE2b-256 69f6e6210d63d3fc3092067a2b69b0ee3b80fb1c25d65c4f9a7a0fe1df948193

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pvapy-5.5.0-cp39-cp39-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 def9cc410c3eb4d0b573b4a77aed3eca39342db9598a785bc5aaf433652c540a
MD5 8703dfd187265772ef00fd5f88733137
BLAKE2b-256 89146613f5c341edb7a6876ebb34a35bfd2dbae5e8f387eafef6003dbb40a2bd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pvapy-5.5.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0be96b44c4fe0121432d999e016512baad4800a0e7c3238079793189d4ebbc3b
MD5 fb227b8385e5d407fcfb7636710b561d
BLAKE2b-256 2bc200f9bb7391ee76b57a3b6ace03cf04a9adc47354bc5bd6ec2fee9a463f52

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pvapy-5.5.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 a360234dd4d11dc25d62646d57e70de57acfe83b767859e7a25cc4c52a9d0bd5
MD5 953a61a0be8abba8707eaa90059e9d69
BLAKE2b-256 8bf40c110e51be90aea200314f02dd6f95c7fb7b792fe0e5c4751b2f0d6dbbf6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pvapy-5.5.0-cp38-cp38-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 802c484d008a29e1f9ec9ee0e843c1e9f970b9f6c47474d1b724796e678237f1
MD5 40a330e1ba7b15179cdcc5fe9b932692
BLAKE2b-256 22709add057d56c065319ae1e04681e84f5099be49ce9b7785160399f4cf6cf6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pvapy-5.5.0-cp38-cp38-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 bb3989239636edce4ab9b89db5fa352dcbaf14d294c0a87914cce704ee219ed2
MD5 8752ac1f81885e2eddd634db689a1068
BLAKE2b-256 11bce8241fc4eab24a8ee35a1fd7cbb2681ab16467fe3fc74148a05a40842a84

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pvapy-5.5.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7538bb9504545b80160cc644c11acbf82215d414e8620b17385694a07f6a8e39
MD5 5077294dc2d03a2d61d58e8745fe2c66
BLAKE2b-256 c04bd6b72a7935c99396102603e3b0f11db54dd31edc2ab0eb4fab389070ad3f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pvapy-5.5.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 b47ac4e69b969838edb86539c59079a9b28e81da4fb2e658a7b14bdd1abc8170
MD5 6eeeceb6b2474e244711132f17af9c35
BLAKE2b-256 d0641bbb197cdd2df9ec4fca4cc604a125a87524b86b71a5ed33367c56a7b42c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page