Skip to main content

Object-Oriented, Multi-dimensional Spectroscopic Data Processing

Project description

https://zenodo.org/badge/24356894.svg

To learn more about pyspecdata, you can head over to the documentation.

If you already know that you want to install, see Installation

Please note this package is heavily utilized by three other packages that our lab manages on github:

We have somewhat recently added fast compiled Fortran functions for things like 2D ILT (Tikhonov regularization with basis set compression) for NMR (Nuclear Magnetic Resonance), so please read the install instructions carefully!

pySpecData

Object-oriented Python package for processing spectral data – or in general, n-dimensional data with labeled axes (i.e. N-dimensional gridded data or “nddata”). It depends on numpy, which provides very fast manipulations of N-dimensional gridded arrays (“ndarray”). This package has some overlap with xarray, but it doesn’t attempt to mimic pandas notation, shooting instead for very compact notation for natural slicing, etc. It mainly focuses on making it easier to quickly write good code for processing spectroscopy data. In particular, it takes care of various features related to fourier transformation, error propagation, and direct products in multidimensional data with little to no interaction from the user.

If you are working in a lab developing new spectroscopic methodologies, then this package is definitely for you. If you deal with multi-dimensional data of some other form, then it’s likely for you. Features include:

Features

  • Labeled axes allow one to manipulate datasets (potentially with different dimensions) without having to explicitly keep track of what the different dimensions correspond to. Code becomes more legible. Also, tiling, direct product, and gridding functions become obsolete.

  • Fourier transformation with automatic manipulation of axes.

  • Automatic error propagation.

  • Commands like plot(data) will generate a plot with automatically labeled axes, errors, and units. All of this information is also written to HDF5 when the data is saved.

  • Simplified curve fitting that takes advantage of labeled axes and Python’s symbolic algebra package (sympy).

  • The code is written so that it can be integrated into a nicely formatted PDF lab notebook.

    • The same code can be run on the command line (to generate pop-up plot windows) and embedded into a LaTeX document.

    • Extension to other output formats, such as HTML or markdown, should be relatively straightforward.

  • In a multimedia environment like jupyter, you don’t need a separate plot command. The code can automatically choose a plotting style appropriate to the code (eventually, the general preferences for this can just be configured at the beginning of the jupyter notebook).

More detailed web documentation will be coming soon.

NMR/ESR specific

Because it was written primarily for NMR and ESR data, it also includes:

  • Routines for reading commercial raw data (e.g. Bruker, Kea) into nddata objects with all relevant information.

  • The object-oriented features make it much easier to process raw phase-cycled data and to simultaneously view multiple (potentially interfering) coherence pathways.

  • Contains functions for baseline correction, peak integration, etc.

  • (Not yet in packaged version) A basic compiled routine for propagating density matrices that can be used to predict the response to shaped pulses.

Version Notes

Note that the current version is intended just for collaborators, etc. (Though, if you do really want to use it for interesting science, we are happy to work with you to make it work for your purposes.) A public-use version 1.0.0, to be accompanied by useful demonstrations, is planned within a year. (Note that the email currently linked to the PyPI account is infrequently checked –if you have interest in this software, please find J. Franck’s website and contact by that email.)

Roadmap.

Installation

We have worked out deployment using github actions. This means that you can now just do pip install pyspecdata!

Some notes:

  • Most likely, you will want to make sure you have pyqt installed so you can run pyspecdata_dataconfig (a GUI as of Nov 25). This controls the file-finding mechanism in pyspecdata, which allows you to run the same code on different computers, where you’ve put the data in different locations.

  • We require numpy 2.0. This might mean you will need to upgrade ALL packages that depend on numpy, so that they can support numpy 2.0. Or, if you enjoy putting off the inevitable, make a separate environment.

Notes for Development install

Important note: the package ships Fortran-based extensions that are used to provide fast ILT methods. We believe this is a useful feature. Unfortunately, while the instructions below work for most cases, not everyone’s system is set up equally well for Fortran compilation. If you experience difficulties, and are interested in messing with the code, please don’t hesitate to reach out to us at jmf356 [at] cornell.edu. We’re always happy to test the code for new applications! Fortunately if you just want to use the library, not develop/tweak it, pip install pyspecdata should now satisfy your needs (i.e. you don’t need the development install).

we would be happy for the opportunity to test distribution on new platforms! In all situations, note that this is a development library that works very well in our hands – we are happy to hear from you and work with you to try to broaden its applicability!

On Windows with Anaconda 3.X, just run:

  • Remember that for new installs of anaconda, you need to turn off the python “execution alias” in windows to prevent windows from overriding all the importnat commands! Also, all of below are tested in the “anaconda prompt” in admin mode.

  • conda install -y -c anaconda numpy scipy sympy pyqt pytables matplotlib h5py libpython

  • conda install -y -c conda-forge gcc_win-64 gfortran_win-64 binutils_win-64

    • If you’ve installed before, you might need to first do conda remove -y m2w64-toolchain (this is an older toolchain that breaks with numpy 2.0)

    • (the libpython and all the packages on this line are for building compiled extensions such as the ILT).

    • On an ASUS Vivobook, conda looks like it’s completely dead, but it’s not → just be patient and give it an hour. (If you look online, you’ll find plenty of info about how sloooooow conda is now, especially for conda forge, and can find some advice on using the mamba drivers to speed it up, though on a cheap new computer with windows 11 JMF has had very little luck.)

  • conda install -y meson meson-python ninja (the new build system to replace distutils)

  • Note: pip --version must be greater than 21.3 (this is what you need for an editable install using meson).

    • If it’s not, run conda update pip

Then follow the installation for developers below. We have a package on pip, but it currently lags behind the github repo.

On CentOS7, we’ve tested yum install python-matplotlib python-matplotlib-qt4 python-devel sympy h5py python-tables scipy (after running yum install epel-release to install the EPEL distribution). Then follow the installation for developers below.

On Debian, we’ve tested sudo apt-get install -y python3 python3-matplotlib libpython3.7 python3-dev python3-sympy python3-h5py python3-tables python3-scipy python3-setuptools gfortran pip. Then follow the installation for developers below.

On Ubuntu, we’ve tested: sudo apt update

  • If you are not using miniconda or something like that, then do: sudo apt install -y python3 python3-venv python3-dev gfortran libhdf5-dev meson ninja-build - This allows you to: python3 -m venv ~/.venv to create and environment and then switch to it with source ~/.venv/bin/activate (b/c more recent versions of python really don’t like to distribute packages over apt, and prefer to distribute them over pip)

  • If you are using miniconda, etc, we’ll rely on that, but you still need the modern build tools: sudo apt install -y gfortran libhdf5-dev meson ninja-build

  • Finally, in either case, make sure you have recent versions of all the packages we need: pip install 'numpy>=2.0' matplotlib sympy h5py tables scipy pint meson-python

On MacOS, if you want to install as a developer your python distribution needs to have a working Fortran compiler, since some of the modules use Fortran. We have tested conda install -c conda-forge fortran-compiler, followed by conda install -y -c anaconda numpy scipy sympy pyqt pytables matplotlib h5py. However due to a problem with more recent versions of MacOS/xcode, you need to modify setup.py to tell it where to find the system libraries. At about line 27, you need to add something like following as a keyword arg for the Extension function: library_dirs = ["/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/lib"], (we recommmend just using keyword completion to find a similar directory that exists). (Feel free to contact us if you have issues with this or would like to test deployment on pip for a Mac).

More generally, these instructions are based on the fact that it’s Highly Recommended that you install the following packages using a good package-management system (conda or linux package manager), rather than relying on pip or setuptools to install them:

  • numpy

  • scipy

  • sympy

  • pyqt

  • pytables (in future work, we hope to eliminate dependence on this package)

  • matplotlib

  • h5py

  • lmfit

  • The python libraries, and a Fortran compiler. Under anaconda, these are supplied by libpython and mingw, respectively.

  • If you plan on building the documentation, you also want sphinx_rtd_theme sphinx-gallery

(If you don’t install these packages with your system pip will try to install them, and there is a good chance it will fail – it’s known not to work great with several of these; setuptools should error out and tell you to install the packages.)

mayavi: Mayavi can be used (and gives very nice graphics), but frequently lags behind common Python distros. Therefore, this package was written so that it doesn’t depend on mayavi. Rather, you can just import mayavi.mlab and pass it to any figure list that you initialize: figlist_var(mlab = mayavi.mlab)

Installation for developers

To install pySpecData from github, just git clone https://github.com/jmfranck/pyspecdata.git.

Then switch over to the anaconda prompt (as administrator, if you are installing system-wide), move to the directory where pyproject.toml lives (root directory of repository), and type pip install --editable . --no-build-isolation. Make sure that this terminates with a successful message, and without any compilation errors. In particular:

  • If it gives an error about permissions (will happen for a system-wide anaconda install), you need to load the anaconda prompt as admin (right click and run as administrator).

  • Near the end (above EXT compiler optimization) it should tell you that you can run pyspecdata_dataconfig. You should do this, unless you’ve installed pyspecdata before on the computer you are working at.

Important notes for conda on Windows:

  • Warning Before running the installation for developers, you must first check that the output of conda info on your git bash terminal matches the output of your anaconda prompt.

  • For reasons that we don’t understand, the Fortran compiler can give odd errors, depending on which terminal you are using to install. This appears to be Windows’ fault, rather than conda’s (?). We highly recommend trying both the Anaconda prompt, as well as the standard dos prompt (press start: type cmd) if you experience errors related to compilation.

  • If you want to build the documentation, run: conda install -y -c conda-forge sphinx sphinx-gallery

Data File Management

pySpecData is designed to run the same script on different computers, where the required data files might be stored in different paths on the different computers.

The basic strategy is that you enter information on how to find your files in the _pyspecdata config file (typically this is only required once, at setup), then the find_file and search_filename functions can use this info to find your files.

Setting up your _pyspecdata configuration file

New 0.9.45 (Nov ‘25): as long as you have pyqt installed, pyspecdata_dataconfig will now open a GUI that helps manage all the following.

Part of the pySpecData package is the datadir module, allowing the user to run the same code on different machines - even thought the location of the raw spectral data might change. This is controlled by the ~/.pyspecdata (unix-like) or ~/_pyspecdata (windows) config file, which looks like the following.

[General]
data_directory = /home/jmfranck/exp_data
qesr conversion = 162.66
qesr diameter = 0.704
qesr q = 4700

[ExpTypes]
odnp_nmr_comp/odnp = /home/jmfranck/exp_data/NMR_comp/ODNP

[mode]
figures = standard

[RcloneRemotes]
nmr_comp/odnp = jmf_teams:General/exp_data/NMR_comp/ODNP/

The General section points to the directory with the datasets of interest whether that is the direct path to the drive with the datasets or if you prefer Rclone, this data_directory points to your local folder of datasets. (This is also a good spot to include, e.g. proportionality constants for QESR, which we have done here, and which are utilized in the proc_scripts repo.)

The ExpTypes section gives the various locations to folders containing the appropriate data sets - either pointing to the cloud storage or pointing to the local directory your rclone adds files to. So when you call odnp_nmr_comp/odnp this will point to the actual location, /home/jmfranck/exp_data/NMR_comp/ODNP

Note that it’s possible to point the different exp_type directly to shared drives or to synced folders (google drive, onedrive, etc.), pySpecData also offers a (we think superior) method that downloads local copies of files on-demand using rclone. The new GUI makes it easier to set up different rclone remotes (e.g. different cloud resources at different schools or shared by different people) for different experiment times.

Obviously, you need to install rclone and add it to your path to do this (see next subsection). Rclone is an amazing tool that can be configured to talk to virtually any type of cloud storage (Google Drive accounts, OneDrive and SharePoint accounts, etc.)

Setting up Rclone

To get set up with Rclone, download Rclone and follow the documentation which should include running the command rclone config enabling you to set up the location and name of the cloud drive you wish to pull from. The documentation of rclone is pretty straightforward and can walk you through this. If you are at an academic institution, we highly recommend asking your IT department for a protocol for connecting rclone to your cloud storage of choice.

As of Nov 0.9.45 (Nov 2025), the GUI presents all the rclone remotes in columns right next to your experiment types. Just pick an rclone remote from the drop-down and then give the directory on the remote in the text entry box to the right.

But, to explain how this works in the config file: Inside the RcloneRemote section of your config, each key/variable points to a properly configured remote that was set up with rclone– e.g., jmf_teams here is a properly configured remote that shows up in response to the shell command rclone config. Note: as you require datasets from other folders you will need to make new folders locally to match for Rclone. You will receive error messages that guide you to do this, and you should follow them. For example, if you required a dataset from exp_data/francklab_esr/alex you will need to go into your local exp_data folder and add a new folder called francklab_esr/alex

Notes on compilation of compiled extensions

We recently added a compiled extension that performs non-negative least-squares for regularization (DOSY/Relaxometry/etc.)

Under linux or mac, you should have a gcc and gfortran compiler installed, and should make sure you have libpython for this to work.

Under anaconda on windows, we have run into some trouble sometimes where it gives you an error 127. We recommend using the normal dos command prompt (cmd) to install pyspecdata, and make sure that your path is set such that where gcc yields a gcc.exe (NOT .bat) file and where python yields the anaconda python executable. (Recent versions of mingw appear to put .bat files in a preferential location in the path, and these .bat files seem to mess everything up, including compatibility with the git bash prompt.)

Further installation notes

Upon upgrading from Python 2.X to 3.X, we made some notes in conda_upgrade.md; this includes some useful (but possibly dated) instructions on how to implement different environments in anaconda, how to deal with AppLocker permissions, and Windows permissions generally, if you run into any of these issues.

Open an issue!

If you have issues with installing or using pyspecdata, don’t hesitate to open an issue on this page!

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyspecdata-0.9.45.5.tar.gz (49.4 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

pyspecdata-0.9.45.5-cp314-cp314-win_amd64.whl (1.9 MB view details)

Uploaded CPython 3.14Windows x86-64

pyspecdata-0.9.45.5-cp314-cp314-musllinux_1_2_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ x86-64

pyspecdata-0.9.45.5-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

pyspecdata-0.9.45.5-cp314-cp314-macosx_15_0_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.14macOS 15.0+ x86-64

pyspecdata-0.9.45.5-cp314-cp314-macosx_15_0_arm64.whl (1.1 MB view details)

Uploaded CPython 3.14macOS 15.0+ ARM64

pyspecdata-0.9.45.5-cp313-cp313-win_amd64.whl (1.8 MB view details)

Uploaded CPython 3.13Windows x86-64

pyspecdata-0.9.45.5-cp313-cp313-musllinux_1_2_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

pyspecdata-0.9.45.5-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

pyspecdata-0.9.45.5-cp313-cp313-macosx_15_0_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.13macOS 15.0+ x86-64

pyspecdata-0.9.45.5-cp313-cp313-macosx_15_0_arm64.whl (1.1 MB view details)

Uploaded CPython 3.13macOS 15.0+ ARM64

pyspecdata-0.9.45.5-cp312-cp312-win_amd64.whl (1.8 MB view details)

Uploaded CPython 3.12Windows x86-64

pyspecdata-0.9.45.5-cp312-cp312-musllinux_1_2_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

pyspecdata-0.9.45.5-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

pyspecdata-0.9.45.5-cp312-cp312-macosx_15_0_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.12macOS 15.0+ x86-64

pyspecdata-0.9.45.5-cp312-cp312-macosx_15_0_arm64.whl (1.1 MB view details)

Uploaded CPython 3.12macOS 15.0+ ARM64

pyspecdata-0.9.45.5-cp311-cp311-win_amd64.whl (1.8 MB view details)

Uploaded CPython 3.11Windows x86-64

pyspecdata-0.9.45.5-cp311-cp311-musllinux_1_2_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

pyspecdata-0.9.45.5-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

pyspecdata-0.9.45.5-cp311-cp311-macosx_15_0_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.11macOS 15.0+ x86-64

pyspecdata-0.9.45.5-cp311-cp311-macosx_15_0_arm64.whl (1.1 MB view details)

Uploaded CPython 3.11macOS 15.0+ ARM64

pyspecdata-0.9.45.5-cp310-cp310-win_amd64.whl (1.8 MB view details)

Uploaded CPython 3.10Windows x86-64

pyspecdata-0.9.45.5-cp310-cp310-musllinux_1_2_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

pyspecdata-0.9.45.5-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

pyspecdata-0.9.45.5-cp310-cp310-macosx_15_0_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.10macOS 15.0+ x86-64

pyspecdata-0.9.45.5-cp310-cp310-macosx_15_0_arm64.whl (1.1 MB view details)

Uploaded CPython 3.10macOS 15.0+ ARM64

pyspecdata-0.9.45.5-cp39-cp39-win_amd64.whl (1.8 MB view details)

Uploaded CPython 3.9Windows x86-64

pyspecdata-0.9.45.5-cp39-cp39-musllinux_1_2_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ x86-64

pyspecdata-0.9.45.5-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

pyspecdata-0.9.45.5-cp39-cp39-macosx_15_0_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.9macOS 15.0+ x86-64

pyspecdata-0.9.45.5-cp39-cp39-macosx_15_0_arm64.whl (1.1 MB view details)

Uploaded CPython 3.9macOS 15.0+ ARM64

File details

Details for the file pyspecdata-0.9.45.5.tar.gz.

File metadata

  • Download URL: pyspecdata-0.9.45.5.tar.gz
  • Upload date:
  • Size: 49.4 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pyspecdata-0.9.45.5.tar.gz
Algorithm Hash digest
SHA256 ccd229e8d4eaf090f9d9ec1aadfcd10182efc64a2ffbb20f974143093c300203
MD5 c17c13fe8f17608973757fb5b5333622
BLAKE2b-256 734436f82bf87324412447190aa276bebeb586253547bb4e49f0c96d244a42df

See more details on using hashes here.

File details

Details for the file pyspecdata-0.9.45.5-cp314-cp314-win_amd64.whl.

File metadata

File hashes

Hashes for pyspecdata-0.9.45.5-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 9834a8828dd2850968e86f15740fad596378b1944549f9dff7f3f0750ffd5498
MD5 b5fda21e5e9ecde28ccdb51a2efd6ba7
BLAKE2b-256 f84e3df87d7f2565844725238b3ee447a809ebc65bbbaec6bcb63e9b29593245

See more details on using hashes here.

File details

Details for the file pyspecdata-0.9.45.5-cp314-cp314-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pyspecdata-0.9.45.5-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 745cb6ee53e0ecc32011dc50fdd2cf1441b722fbcc96879f854670fe4048dd94
MD5 ad952f75f1d15b9e90180006487c022c
BLAKE2b-256 64e776b5f10c033841d45155900c649e126f01b466365fa50ec9ebe9f66dbdfc

See more details on using hashes here.

File details

Details for the file pyspecdata-0.9.45.5-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyspecdata-0.9.45.5-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2951e8c268a89158d79b3457af6ebb84add453ac840d11aab4635b247927d9eb
MD5 879a21491b5ce0ecf2865e520394b742
BLAKE2b-256 cc867acb7754765aa74e4734fd64f6270756601267394e7278b2291f9394a879

See more details on using hashes here.

File details

Details for the file pyspecdata-0.9.45.5-cp314-cp314-macosx_15_0_x86_64.whl.

File metadata

File hashes

Hashes for pyspecdata-0.9.45.5-cp314-cp314-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 694269c9a8ac2261ebb7abc57297cf2e0b3dcf3cab8e3accf78105280289e179
MD5 ab2aaa2f0625c14f396ee4e805aa5282
BLAKE2b-256 3cc5170f01683fdf77afd8fd3a6b1f12b4709b4e4238382faced886f7eeee1d2

See more details on using hashes here.

File details

Details for the file pyspecdata-0.9.45.5-cp314-cp314-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for pyspecdata-0.9.45.5-cp314-cp314-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 be405d3e5ea13b2633a27f13da5e3f961f24e6b478429d8a1bca5c0667ea1d7c
MD5 2816eefa555bbb7bd8f8b80bea2e2711
BLAKE2b-256 671dfc5a83d5477f75477a202d1e9e8a843fcfc1f6ef6af834dccd669651ae6c

See more details on using hashes here.

File details

Details for the file pyspecdata-0.9.45.5-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for pyspecdata-0.9.45.5-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 cbcbaa60b8e725f5e0a949c9cdc337962a0ba4a7caa36a9d83344fac39840319
MD5 5d013020579953cb6a436353eeed9f46
BLAKE2b-256 e526cc48a27899a558154cb2bfb46150087dc1cfa5fbb0fb516a1c2d196a7b7e

See more details on using hashes here.

File details

Details for the file pyspecdata-0.9.45.5-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pyspecdata-0.9.45.5-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 eda9eee2665bf128c3514473d04ff1693d34412849a9bfec8e837a6d2d1168b8
MD5 327238949a16e7f14af01fd0d4a665a4
BLAKE2b-256 b48fc8e3fbf56b223b04f8faa02312f76fc1b21e2cc423fb842f9da8a17666bf

See more details on using hashes here.

File details

Details for the file pyspecdata-0.9.45.5-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyspecdata-0.9.45.5-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 899a018efb8070527fb73f19c8e0854cb2b73deb2c0bb55bc395fa0f809fabbf
MD5 b41ee2434c6f411416bb0b3865f0de21
BLAKE2b-256 2192b00d8c7dd084861bb3dd456b233fa884b6b91d86a3defb30161b9406f890

See more details on using hashes here.

File details

Details for the file pyspecdata-0.9.45.5-cp313-cp313-macosx_15_0_x86_64.whl.

File metadata

File hashes

Hashes for pyspecdata-0.9.45.5-cp313-cp313-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 d998895a4df9111f3443f458e9527e320effd885d312119dee1dd0681e99fd9c
MD5 1f7404dc799321e19578a9709abc9c76
BLAKE2b-256 2896fa8c8992de96e340104715914edc6be141d534f9fb7a9cf62737fa881deb

See more details on using hashes here.

File details

Details for the file pyspecdata-0.9.45.5-cp313-cp313-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for pyspecdata-0.9.45.5-cp313-cp313-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 32fd2589d234e8f99c25d4ce67c9d5c51a845e03aeed3411c7be129969dd60b6
MD5 44944fe2e52f5fda767855ce1c8c509a
BLAKE2b-256 a8c17dc2352aabaf0ee9ab73e06de724611c58bc4aa10949a343f76c5c7b277f

See more details on using hashes here.

File details

Details for the file pyspecdata-0.9.45.5-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for pyspecdata-0.9.45.5-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 9fa8476a6935f66ae37fb4145272a9b0d581f23d8288daeb8195e3ee03659fda
MD5 bc43b90510eda35bf36aa103714669d3
BLAKE2b-256 ab108bcaee7ab8a0fe0dcdea5b10cd195a1580d951498fb4b171a38684a6af05

See more details on using hashes here.

File details

Details for the file pyspecdata-0.9.45.5-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pyspecdata-0.9.45.5-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 95bf41e75a497e01ff5ee00773fbd5d75cf3f18146b72438846a82297b56a9e0
MD5 1099a9e3f9052f87b9883f6ab081c04f
BLAKE2b-256 91ed6eac0299b1379251e9fa06a04073b266f930f8a385b7259124ef9dd3446b

See more details on using hashes here.

File details

Details for the file pyspecdata-0.9.45.5-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyspecdata-0.9.45.5-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 71953312462f20cdbc3070d57de14bd154db08c25f1d672b063e6cfde590b71f
MD5 e854e01626f26da885a9e4152923a73e
BLAKE2b-256 8fad43634f0acb806cfeebeb85100046cc68edb602516bfd8c8076a0e3ed3f88

See more details on using hashes here.

File details

Details for the file pyspecdata-0.9.45.5-cp312-cp312-macosx_15_0_x86_64.whl.

File metadata

File hashes

Hashes for pyspecdata-0.9.45.5-cp312-cp312-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 8a6f18f7438b0918ff75cb507fe9db861d87b3dc9c545832bc22554dfb7c2fcf
MD5 5484e1d3e78dfa706d49716db094f20f
BLAKE2b-256 47199a6343c8889b06afcd62fc954839e5855dc22b2f6193f031968011d96eca

See more details on using hashes here.

File details

Details for the file pyspecdata-0.9.45.5-cp312-cp312-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for pyspecdata-0.9.45.5-cp312-cp312-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 7abb998c126d956d436230a2e7361246bf1ca228a6015ae93da188b7db36f006
MD5 45245ab3e29f39d7644511dbfb18b1d8
BLAKE2b-256 1a9468240451d9eae0a967b18bf3fd54f999edf6d35680849de98442ef36482b

See more details on using hashes here.

File details

Details for the file pyspecdata-0.9.45.5-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for pyspecdata-0.9.45.5-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 d69e9c2aa706931bc8251e30fb6ea4379f96fdeaf2491dedeec23b1f9efa3405
MD5 39a8f77f5cbfc7a416281ebfc5987351
BLAKE2b-256 abbac2af46ebea0062179ae8c3273f8d2eb4420437fee80de8b05d81f2f5e3fa

See more details on using hashes here.

File details

Details for the file pyspecdata-0.9.45.5-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pyspecdata-0.9.45.5-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 90c845f1c000fa100d9f351e9c57bc084fbaf908105136cd3318b297ebd524df
MD5 4cb25dd0159063acdca61947f13e8aa4
BLAKE2b-256 d13efc9727a7ff19d082d1a82ef84de7352c6aacc6ecb2c3f531ab236bdd87f9

See more details on using hashes here.

File details

Details for the file pyspecdata-0.9.45.5-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyspecdata-0.9.45.5-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 23507b7da77abeabc7a6c82e6d9e7669fdd31af898a612e26b38b2f966bec53e
MD5 af612030e2ddff49fd552e3aa03a1871
BLAKE2b-256 2650c3ceecb3743feb40368a83d9262e70301d6fe0cac6b3e520d5ba2c47ef8a

See more details on using hashes here.

File details

Details for the file pyspecdata-0.9.45.5-cp311-cp311-macosx_15_0_x86_64.whl.

File metadata

File hashes

Hashes for pyspecdata-0.9.45.5-cp311-cp311-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 831ae1eb54a06cb421647d5545b2f647f93c5dbeaa3060e9b42e4fa03a1b7253
MD5 58bbd70edee0bd2ca2aa1057909cc670
BLAKE2b-256 0a3bc7b5784c94f9b9601d2c7016d298071a7da8e1eb9fd4108ec8109b01b3ce

See more details on using hashes here.

File details

Details for the file pyspecdata-0.9.45.5-cp311-cp311-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for pyspecdata-0.9.45.5-cp311-cp311-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 0d8283c03b561e4e2e9489303557a05bb6e21af5eb60ff65ae744d4b019afb8a
MD5 13a9d700c7a64ed33ecd2d14e5df1060
BLAKE2b-256 e4e478fc2c6bd85e8cbd6180b1be4124fbf05b9d8e90ff30d811a592d63eec48

See more details on using hashes here.

File details

Details for the file pyspecdata-0.9.45.5-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for pyspecdata-0.9.45.5-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 f1306fae32c5f63971babbc7814d4285556bb66229337e1246af779c351ac801
MD5 7dab04d7e4de7348225956ba426ed669
BLAKE2b-256 6b18065e8fbcd65461911153a3120fdf35e44630cc8936a45e8f783e27c6c225

See more details on using hashes here.

File details

Details for the file pyspecdata-0.9.45.5-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pyspecdata-0.9.45.5-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 134ce1ddb15796fe9fc7c7248426021ac116ede01a057a376cdb715933c599c4
MD5 9de0e23828c1d8231f25a83f59e11ec3
BLAKE2b-256 ffc1219d62ecb315ce33625fab6a88093691c5901bc03d44bbcd0d723ead8737

See more details on using hashes here.

File details

Details for the file pyspecdata-0.9.45.5-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyspecdata-0.9.45.5-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a36fd92218a3a3b466ed6bd6c17168126da042739ef4448da27b8f394307ae24
MD5 77415e052ff268af89be3cf42db3a248
BLAKE2b-256 40cd8ee4551532161663d5adb7a5b2afe142d723352ae89420a3710599b0fba1

See more details on using hashes here.

File details

Details for the file pyspecdata-0.9.45.5-cp310-cp310-macosx_15_0_x86_64.whl.

File metadata

File hashes

Hashes for pyspecdata-0.9.45.5-cp310-cp310-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 adb429d4bb07fc4bfd4b3f15a1040c9a876b6af8dce4ab4dd336d89c5d082f34
MD5 04d588be87d10ffe9de7513b3703b3f7
BLAKE2b-256 7298f55c33bcb54c3b583708c8882a30e5e8baba492fd4b425596783cded30a8

See more details on using hashes here.

File details

Details for the file pyspecdata-0.9.45.5-cp310-cp310-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for pyspecdata-0.9.45.5-cp310-cp310-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 3043da9115b25c0e3c3d634682fd9ab6e4a3a96110c5e2b06eb16d64dd3ade2a
MD5 f17116bf4de1287d7a3111902eea151d
BLAKE2b-256 a344bc4665698e44cda6b7b4c76fe233e6790cbe49d34369ecc1dc2f67a5479f

See more details on using hashes here.

File details

Details for the file pyspecdata-0.9.45.5-cp39-cp39-win_amd64.whl.

File metadata

File hashes

Hashes for pyspecdata-0.9.45.5-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 cd2e03c074dc949f1106f99ff2891849d768b85b3b3f055411192acbd50912fb
MD5 9bf91d3970a1bc1d6c1b9040f3c48243
BLAKE2b-256 558111bfe721c7be24d3117e061c86f624489221a8ad8952ca77065a684c8c09

See more details on using hashes here.

File details

Details for the file pyspecdata-0.9.45.5-cp39-cp39-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pyspecdata-0.9.45.5-cp39-cp39-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 cb0a18968d3c4bfe2753e9666a0450cd107ac6bd4e097074cfad22c6522b5587
MD5 ad36534562ff2aa4a9a020246a9836e1
BLAKE2b-256 692282bf0f335fa0d16562291759246b238655004af8fdbcff1355f613fe246f

See more details on using hashes here.

File details

Details for the file pyspecdata-0.9.45.5-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyspecdata-0.9.45.5-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c080e1ccb4c2abfdc6a33b987126b0c0c18044d84d9dcf7c33226e96ea83612a
MD5 b00b5d2589194bbdb881c608fb3a4cd0
BLAKE2b-256 4c3695ba3b8e32082d91b1aacbc0a4c43ed7d6e871083808fef420853653ee6e

See more details on using hashes here.

File details

Details for the file pyspecdata-0.9.45.5-cp39-cp39-macosx_15_0_x86_64.whl.

File metadata

File hashes

Hashes for pyspecdata-0.9.45.5-cp39-cp39-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 a32da7ade7ab1c0d14a7b843e02da215bcb535bfaf210da777b32d74d6760f02
MD5 aaf2652fb5d11eed1cb65a0441bd73f1
BLAKE2b-256 1c43f727702411cf11ca58a375eecad3fc67ca3d1140503a61ae5aaa9be8abfb

See more details on using hashes here.

File details

Details for the file pyspecdata-0.9.45.5-cp39-cp39-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for pyspecdata-0.9.45.5-cp39-cp39-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 cb3726bf016aa45e2728da055749336ededf9988824bed061bfd7a31715ed55d
MD5 2d89dac39a58cf9068fb3ba5c71da26a
BLAKE2b-256 bdfff419a69ea42944296847452847097e6c20d7ea84d424832cf97b1788e208

See more details on using hashes here.

Supported by

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