Skip to main content

This is SRW for Python

Project description

Synchrotron Radiation Workshop (SRW)

SRW is a physical optics computer code for calculation of detailed characteristics of Synchrotron Radiation (SR) generated by relativistic electrons in magnetic fields of arbitrary configuration and for simulation of the radiation wavefront propagation through optical systems of beamlines.

Frequency-domain near-field methods are used for the SR calculation, and the Fourier-optics based approach is generally used for the wavefront propagation simulation. The code enables both fully- and partially-coherent radiation propagation simulations in steady-state and in frequency-/time-dependent regimes. With these features, the code has already proven its utility for a large number of applications in infrared, UV, soft and hard X-ray spectral range, in such important areas as analysis of spectral performances of new synchrotron radiation sources, optimization of user beamlines, development of new optical elements, source and beamline diagnostics, and even complete simulation of SR based experiments. Besides the SR applications, the code can be efficiently used for various simulations involving conventional lasers and other sources. SRW versions interfaced to Python and to IGOR Pro (WaveMetrics), as well as cross-platform library with C API, are available.

In the following writing, it is assumed that SRW_Dev is absolute path to the full SRW directory (obtained e.g. after downloading from repository).

I. Using pre-compiled SRW libraries and clients / bindings:

The last ~"clean" release of SRW for IGOR Pro and for Python can be found in SRW_Dev/env/release, in particular:

  • installers (of compressed packages) can be found in SRW_Dev/env/release/install;
  • unpacked folder of SRW for IGOR Pro (for Windows only) is: SRW_Dev/env/release/srw_igor;
    This folder contains ReadMe.txt file with general "start-up" notes; detailed documentation for IGOR Pro version can be found in: SRW_Dev/env/release/srw_igor/SRW Help/SRW Help.ifn file (in IGOR formatted notebook format);
  • unpacked folder of SRW for Python (for Windows and Linux) is: SRW_Dev/env/release/srw_python; this folder contains ReadMe.txt file with general "start-up" notes.

The most recent pre-releases and current work versions of SRW for Python and for IGOR Pro can be found in: SRW_Dev/env/work.

Testing of the pre-compiled SRW libraries and clients / bindings can be done using examples included both to Python and IGOR Pro versions of SRW (see "Checking the examples" sections below for different platforms).

II. Compiling and testing SRW Library and its Python and IGOR Pro bindings on Windows

II.1. Compiling SRW library and Python binding using MS Visual C++

II.1.1

Microsoft Visual C++ 2015 (or later version) solution file (SRW.sln), which includes 4 projects:

  • SRW Library (file SRWLIB.vcxproj),
  • SRW Python client / binding (file SRWLClientPython.vcxproj),
  • SRW IGOR Pro client / binding (file SRWLClientIgor.vcxproj),
  • SRW C demo client (file SRWLClientC.vcxproj), can be found in SRW_Dev/cpp/vc.

The SRWLClientPython project file allows for compiling srwlpy.pyd shared library, i.e. SRW for Python 2.7 or/and 3.x (64-bit or 32-bit); SRWLClientIgor allows for compiling SRW.xop shared library, i.e. SRW for IGOR Pro (32-bit only). Free Microsoft Visual Studio Community 2015 (or later versions) can be used.

To compile SRW library supporting OpenMP based parallel calculations (e.g. for XFEL applications):

  • In the Visual C++ Configuration Manager, select "Release_omp" version of the SRWLIB project, then re-compile SRWLIB and SRWLClientPython under the "x64" Solution Platform to produce a 64-bit version of SRW for Python supporting OpenMP based parallel calculations.
  • Note that the "Release_omp" version of the SRWLIB project has only a few differences with respect to the standard version: the "_WITH_OMP" preprocessor definition is added to Configuration Properties -> C/C++ -> Preprocessor -> Preprocessor Definitions, the "Open MP Support" option is set to "Yes (/openmp)" in Configuration Properties -> C/C++ -> Language -> Open MP Support, and the linking is made with older versions of the FFTW library (FFTW 2.5), whereas the "normal" compilation / linking is with the FFTW 3.8.

II.2. Checking the examples

II.2.1

The SRW for Python examples can be tested using e.g. "IDLE" (Python native GUI). To do so, start this application (e.g. from Windows Start menu), open an example file in it, e.g. SRW_Dev\env\work\srw_python\SRWLIB_Example01.py, and run it from the IDLE.

Alternatively, the example scripts can be executed from the Windows Command Prompt, e.g. from within the SRW_Dev\env\work\srw_python directory. For convenience, correct path to python.exe file may need to be specified in the Windows system PATH variable prior to these tests.

II.2.2

The SRW for IGOR Pro examples can be tested from "SRWE" and "SRWP" menus, "Help" sub-menus, of the IGOR Pro.

III. Compiling and testing SRW Library and its Python binding on Linux

III.1. Compiling SRW library and Python binding

This can be done either using Python "setuptools" module (see section III.1.1 below) or without it (see section III.1.2).

III.1.1. Compiling using Python "setuptools" module

Make sure the "setuptools" module of the Python version you would like to use is properly installed and configured. If this is done, the compilation and installation is simple:

cd SRW_Dev
make all

To compile SRW library supporting OpenMP based parallel calculations (e.g. for XFEL applications) add "MODE=omp" after "make all":

make all MODE=omp

This should compile libsrw.a and srwlpy.so, and copy srwlpy.so to SRW_Dev/env/work/srw_python/

III.1.2. Compiling without "setuptools"

III.1.2.1. Download and compile fftw-2.1.5 or/and fftw-3.3.8 library as required for SRW

Make sure files fftw-3.3.8.tar.gz and fftw-2.1.5.tar.gz are located in SRW_Dev/ext_lib directory (if necessary, download these files from FFTW site, probably http://www.fftw.org/download.html).
Do the following to compile fftw-3.3.8 for using single-precision numbers as required for most FFT-based operations in SRW:

cd SRW_Dev/ext_lib
tar -zxvf fftw-3.3.8.tar.gz
cd fftw-3.3.8
./configure --enable-float --with-pic

Manually (using editor) add -fPIC option to CFLAGS in Makefile

make -j8 && cp .libs/libfftw3f.a ../

Do the following to compile fftw-3.3.8 for using double-precision numbers required for some FFT-based operations in SRW:

cd SRW_Dev/ext_lib
tar -zxvf fftw-3.3.8.tar.gz
cd fftw-3.3.8
./configure --with-pic

Manually (using editor) add -fPIC option to CFLAGS in Makefile

make -j8 && cp .libs/libfftw3.a ../

Do the following to compile fftw-2.1.5 for using single-precision numbers required for supporting OpenMP based parallel calculations in SRW:

cd SRW_Dev/ext_lib
tar -zxvf fftw-2.1.5.tar.gz
cd fftw-2.1.5
./configure --enable-float --with-pic

Manually (using editor) add -fPIC option to CFLAGS in Makefile

make -j8 && cp fftw/.libs/libfftw.a ../

III.1.2.2. Compiling the SRW library and Python binding

cd SRW_Dev/cpp/gcc

Make sure Python 3.3 or higher (or Python 2.7) is installed.
In the SRW_Dev/cpp/gcc/Makefile, modify/correct PYPATH and PYFLAGS variables, i.e. specify path to Python header and library files. Depending on Linux environment, it may also be necessary to modify the name of compiler to be used, e.g.:

CC  = gcc
CXX = g++
#CC  = cc
#CXX = c++

After this, execute the following:

rm libsrw.a
make all

To compile SRW library in the mode supporting OpenMP based parallel calculations (e.g. for XFEL applications) add "MODE=omp" after "make all":

make all MODE=omp

Then copy srwlpy.so to SRW_Dev/env/work/srw_python/:

cp srwlpy.so ../../env/work/srw_python/

III.2. Checking the examples

Make sure the path to Python 3.x (or 2.7) is added to the PATH variable and "srw_python" to PYTHONPATH variable:

export PATH="$PATH:<absolute path to Python 3.x>" # this is not necessary if you install python using the distro's package manager
export PYTHONPAH="$PYTHONPATH:SRW_Dev/env/work/srw_python/" #temporary solution

or

echo "export PYTHONPATH=$PYTHONPATH:SRW_Dev/env/work/srw_python/" >> ~/.bashrc #permanent solution for a single user

Setting up PYTHONPATH allows to import srwlpy module from any directory. Testing of the examples would preferably done in the srw_python directory:

cd SRW_Dev/env/work/srw_python
python SRWLIB_ExampleXX.py

IV. Compiling and testing SRW Library and its Python binding on Mac OSX

Try to follow the steps described in section III (describing options for compiling and testing SRW on Linux).

We were informed that the actions described in III.1.1 lead to successful compilation on OSX 10.14.5 after the following modifications in SRW_Dev/cpp/gcc/Makefile:
Change CXX variable as follows:

#CXX = c++
CXX = g++ -stdlib=libc++ -mmacosx-version-min=10.9

Make sure to explicitly use the C++ compiler (CXX) for compiling all *.cpp files, e.g.:

%.o: $(SH_SRC_PARSE_DIR)/%.cpp
    $(CXX) $(CFLAGS) -c $<

It may be necessary also to set also the CC variable to came value as CXX (?):

#CC = cc
CC = g++ -stdlib=libc++ -mmacosx-version-min=10.9

Previously, we were informed that the actions described in III.1.2.2 lead to successful compilation with gcc/g++ provided by Xcode 10.1, after the following modifications in SRW_Dev/cpp/gcc/Makefile:

CC  = gcc
CXX = g++
#CC  = cc
#CXX = c++
...
PYPATH=/Library/Frameworks/Python.framework/Versions/3.6
PYFLAGS=-I$(PYPATH)/include/python3.6m -I$(PYPATH)/include/python3.6m -L$(PYPATH)/lib/python3.6/config-3.6m-darwin -lpython3.6m -ldl

The correct path and flags can be obtained e.g. by executing from command line:

python3-config --includes --ldflags

and removing the option "-framework"

With earlier versions of Xcode, the following manipulations, consisting in installation of "macports" and obtaining the whole gcc toolchain, were reported to be successful:

sudo port install gcc47

Modify the SRW_Dev/cpp/gcc/Makefile so that CC=<path to macports>/gcc and CXX=<path to macports>/g++, and proceed to the compilation as described in III.1.2.2.

V. Compiling and testing SRW Library and its Python binding on Windows and Linux (via CMake/Pip)

Run the following in a Visual Studio Developer Command Line/Linux Terminal:

cmake -B build
cmake --build build -j

The pip installable version of the package can be obtained by running the following in a Visual Studio Developer Command Line/Linux Terminal:

cd env/python
pip install -e .

VI. GPU Acceleration of SRW

SRW has basic support for GPU acceleration of some routines through CUDA. Compilation of SRW with GPU acceleration requires the CUDA HPC SDK or CUDA Toolkit to be installed. To compile on Linux, run the following from the SRW base directory:

MODE=cuda make

To compile on Windows, ensure that CUDA Toolkit v12.4 is installed, open the SRW solution in Visual Studio, set the target for the SRWLIB project to the _cuda variant and update the library and include paths. You may also have to copy the following DLLs from the HPC SDK or CUDA Toolkit install into the env/python/srwpy directory to resolve the DLL load failed while importing srwlpy error:

  • cufft64_11.dll

Authors and Contributors to SRW project

O. Chubar (ESRF - SOLEIL - BNL)
P. Elleaume (ESRF)
J. Chavanne (ESRF)
R. Celestre (ESRF)
P. Dumas (SOLEIL)
O. Marcouille (SOLEIL)
L. Samoylova (E-XFEL)
A. Buzmakov (E-XFEL)
G. Geloni (E-XFEL)
I. Agapov (E-XFEL)
J. Sutter (DIAMOND)
D. Laundy (DIAMOND)
A. He (BNL)
R. Coles (BNL)
R. Li (BNL)
M. Rakitin (BNL)
H. Goel (SBU - BNL)
N. Canestrari (ESRF - BNL)
A. Suvorov (BNL)
R. Reininger (ANL)
X. Shi (ANL)
R. Lindberg (ANL)
L. Rebuffi (ELETTRA - ANL)
D. Bruhwiler (RadiaSoft LLC)
R. Nagler (RadiaSoft LLC)
P. Moeller (RadiaSoft LLC)
B. Nash (RadiaSoft LLC)

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

srwpy-4.1.0-cp311-cp311-win_amd64.whl (37.1 MB view details)

Uploaded CPython 3.11 Windows x86-64

srwpy-4.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (36.8 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

srwpy-4.1.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl (36.6 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ i686

srwpy-4.1.0-cp311-cp311-macosx_10_15_x86_64.whl (36.4 MB view details)

Uploaded CPython 3.11 macOS 10.15+ x86-64

srwpy-4.1.0-cp310-cp310-win_amd64.whl (37.1 MB view details)

Uploaded CPython 3.10 Windows x86-64

srwpy-4.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (36.8 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

srwpy-4.1.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl (36.6 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ i686

srwpy-4.1.0-cp310-cp310-macosx_10_15_x86_64.whl (36.4 MB view details)

Uploaded CPython 3.10 macOS 10.15+ x86-64

srwpy-4.1.0-cp39-cp39-win_amd64.whl (37.1 MB view details)

Uploaded CPython 3.9 Windows x86-64

srwpy-4.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (36.8 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

srwpy-4.1.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl (36.6 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ i686

srwpy-4.1.0-cp39-cp39-macosx_10_15_x86_64.whl (36.4 MB view details)

Uploaded CPython 3.9 macOS 10.15+ x86-64

srwpy-4.1.0-cp38-cp38-win_amd64.whl (37.1 MB view details)

Uploaded CPython 3.8 Windows x86-64

srwpy-4.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (36.8 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

srwpy-4.1.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl (36.6 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ i686

srwpy-4.1.0-cp38-cp38-macosx_10_15_x86_64.whl (36.4 MB view details)

Uploaded CPython 3.8 macOS 10.15+ x86-64

File details

Details for the file srwpy-4.1.0-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: srwpy-4.1.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 37.1 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.0.0 CPython/3.12.2

File hashes

Hashes for srwpy-4.1.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 ce3e688b6f14b4995728cc42ebd2b6d9c93bebd83322911b50821ca13984c89c
MD5 a45a7bfcb5058eeca4848e942e8455fa
BLAKE2b-256 71c9351e37d33d85e75ff4c010a66a1d89b6d7baec9365575e5f90c67740f38a

See more details on using hashes here.

File details

Details for the file srwpy-4.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for srwpy-4.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4d4b2c582c40bf1c1bf33100df4de055d5ba5e89b1fd20963a1dbdc353a12290
MD5 7535a96e9e1f4202d3f9c35b9dd69ec1
BLAKE2b-256 503c3c8d587a58b3b305a2bcf9bd016480cc17a1eb4fd2afc058ab9d5e3754f4

See more details on using hashes here.

File details

Details for the file srwpy-4.1.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for srwpy-4.1.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 2420626539d296b9cadec95e029b1f8effcc90c4aa12520e84901e4fdda0c7ae
MD5 245bb866829e0f015bc189b2f8c7a4eb
BLAKE2b-256 43cff7920cd2e6ba89465cd43aee8a7728832faf5b3de67aa3a411f3bee69169

See more details on using hashes here.

File details

Details for the file srwpy-4.1.0-cp311-cp311-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for srwpy-4.1.0-cp311-cp311-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 c73377ef46d7e5f53cd4ff8649f2a08afe33d0eb1449f57bef43b6760fa1ccc9
MD5 5a4b1f83d381c30c4fb5c7ad93c0534b
BLAKE2b-256 9ef0e19300ac17517c44d4c3200b3ea0c0e66a59b4921e073abeec0a6cdc9e3f

See more details on using hashes here.

File details

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

File metadata

  • Download URL: srwpy-4.1.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 37.1 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.0.0 CPython/3.12.2

File hashes

Hashes for srwpy-4.1.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 48fefff9da73825e8d8e8dee691994a38a78258ce3486477a6ecf1fce01cc54b
MD5 dbcc4edabab4d5ee6b8ea5a678985158
BLAKE2b-256 e4798ef04eb9a9d272651d5378f31acb4381ca539a4b72d45579da7215dced21

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for srwpy-4.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e5ea924e0272b0e59939029d25a744151a3bf43242fde8c344647d79482bc42a
MD5 587d647fcc49de70473e98a53e87c17a
BLAKE2b-256 8a675b347bff5714659058101c11a1e4d3cda5bf192daaab071e33c53e939b38

See more details on using hashes here.

File details

Details for the file srwpy-4.1.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for srwpy-4.1.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 e7f3999d18fad49fa7050dcc86f910b1a0ecc09de92e2a36f4f20c879dc30646
MD5 e5a71db948e4e6e0e6c745995d783c21
BLAKE2b-256 b6699b0a9152086e9d4e4708a870731cfe4a8866c4aeb43eddd9c2b5c9b94b21

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for srwpy-4.1.0-cp310-cp310-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 1474f3dca3ed57e001e6323b91c5af8278a28a34cd9ce6c5a7ea4b9b14305108
MD5 fd1b351f173d69142c81f4920965c944
BLAKE2b-256 ce2104dbe11341e24eadbcee0313d1bee9fa2a13bdbc5fa6991e9a6d8748a377

See more details on using hashes here.

File details

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

File metadata

  • Download URL: srwpy-4.1.0-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 37.1 MB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.0.0 CPython/3.12.2

File hashes

Hashes for srwpy-4.1.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 5d22c29e7a47a062aeb105cdd77d769bb37be0b0f990886b9d08d23c33cbb152
MD5 0315df8ad0a75333e9b42cc09d3c08da
BLAKE2b-256 9c8550495c0f6f4b0aa7e964617a4492b3e3cf35ae101e83906926e8a527e3f0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for srwpy-4.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f35aa629b98f224ec8e3a429c5f178df63cb60e1616df6188cf98c5c6456190b
MD5 eff8242c8411a23557716d5fef67cdce
BLAKE2b-256 9b17575559d3b90ee02b29e63affdcb37862b7d5d792601d89d9a674b15a01a4

See more details on using hashes here.

File details

Details for the file srwpy-4.1.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for srwpy-4.1.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 6e653c92e85a47166ce0188cf3f898be021c3b24644c78deaaab1a1edbfb3797
MD5 84d6191e1a1bbaffacc6266f435232bc
BLAKE2b-256 ea86743dd030ba042de16db30d94923dd2945aed69195d4694c4bddc29931353

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for srwpy-4.1.0-cp39-cp39-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 2c03684d6636a6dbefd185775638e27369d84403281d5236d97833da2b61f05e
MD5 149335f1fbfc92ba70d16d5bee5098fd
BLAKE2b-256 559f56103b1c356e52876048192b9d5882ce57276f615c9934afb0c91cd8ce50

See more details on using hashes here.

File details

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

File metadata

  • Download URL: srwpy-4.1.0-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 37.1 MB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.0.0 CPython/3.12.2

File hashes

Hashes for srwpy-4.1.0-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 de4d7f31cd1a2a85c0c7ec3e937e1fa656eab71c6983c7f36242faff7280fc69
MD5 af6f457b753e0878e4ce206f4daf45db
BLAKE2b-256 3544f6ae34616b586079c08cb62d329d9de03479104ec015aa9c0b431be09180

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for srwpy-4.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 97de13573a444c070d300d8ad839aa999447deb0aa030c041b5a4b94e2a6dd8f
MD5 d880b2b65a92dc7749b424346f7a88ec
BLAKE2b-256 d1c853316404975c596a846a51cba83c0f35fc7454aeab24be2ccb1a8af1b783

See more details on using hashes here.

File details

Details for the file srwpy-4.1.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for srwpy-4.1.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 d131afb8f29a4e2f2a399e8bbf00c7a56898e05f899ab0d1cb28eb519575bd70
MD5 ddd84fe0efeb6f7662481a134ef67ba2
BLAKE2b-256 8c913776a58f66d3a6851ab80dd3ea8da91ba91d23b3a9fa908a034e2f5179d2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for srwpy-4.1.0-cp38-cp38-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 7a05cd521618bb29b7a9f7c0e270f77dc4c913c65b8735867bd8e90be2eab387
MD5 5c0ac43599835f09ce6faa291004ecce
BLAKE2b-256 0bd3955d321d663683541acccd52457f80ee129bc1b34e3f1a1fb3b4eaf0d951

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