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

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, please don’t hesitate to reach out to us at jmfranck [at] syr.edu; 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:

  • 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 (the libpython and m2w64-toolchain are for building compiled extensions such as the ILT).

    • 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)

  • 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

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, pySpecData also offers a (we think superior) method that downloads local copies of files on-demand using rclone. 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.)

Inside the RcloneRemote section, 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

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.

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.7.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.7-cp314-cp314-win_amd64.whl (1.9 MB view details)

Uploaded CPython 3.14Windows x86-64

pyspecdata-0.9.7-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.7-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.7-cp314-cp314-macosx_15_0_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.14macOS 15.0+ x86-64

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

Uploaded CPython 3.14macOS 15.0+ ARM64

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

Uploaded CPython 3.13Windows x86-64

pyspecdata-0.9.7-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.7-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.7-cp313-cp313-macosx_15_0_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.13macOS 15.0+ x86-64

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

Uploaded CPython 3.13macOS 15.0+ ARM64

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

Uploaded CPython 3.12Windows x86-64

pyspecdata-0.9.7-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.7-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.7-cp312-cp312-macosx_15_0_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.12macOS 15.0+ x86-64

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

Uploaded CPython 3.12macOS 15.0+ ARM64

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

Uploaded CPython 3.11Windows x86-64

pyspecdata-0.9.7-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.7-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.7-cp311-cp311-macosx_15_0_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.11macOS 15.0+ x86-64

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

Uploaded CPython 3.11macOS 15.0+ ARM64

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

Uploaded CPython 3.10Windows x86-64

pyspecdata-0.9.7-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.7-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.7-cp310-cp310-macosx_15_0_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.10macOS 15.0+ x86-64

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

Uploaded CPython 3.10macOS 15.0+ ARM64

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

Uploaded CPython 3.9Windows x86-64

pyspecdata-0.9.7-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.7-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.7-cp39-cp39-macosx_15_0_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.9macOS 15.0+ x86-64

pyspecdata-0.9.7-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.7.tar.gz.

File metadata

  • Download URL: pyspecdata-0.9.7.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.7.tar.gz
Algorithm Hash digest
SHA256 e22ea94fdf8efed1bad873124193cd331b0b10e330968ed15039281231f1684e
MD5 a2c34e135a2e600437f6eaf873d6ca0e
BLAKE2b-256 102fc4d9ca0432659b91fc448454718d8d7549554f72fa6d9801d97a603b1974

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pyspecdata-0.9.7-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 1.9 MB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pyspecdata-0.9.7-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 893e4ec804fbc014a265f54c76881066fcf65d1fc3fee9912554d52698e742f6
MD5 00412cf4831203f389337da133626e57
BLAKE2b-256 8fdcd9076b94b7a696742bdcd04013defc205c037ce5dbc261aaa7457eae7619

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyspecdata-0.9.7-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 857dc82b672a69e3286205fa64c273a65ec24baac4f60ee12ce67557e1d92978
MD5 1b4a3e108701855d11305ab6bb5ca00a
BLAKE2b-256 59127ae7502fdc73be09f9b97d4435afd7436543a0ea083e06b537d60bcf5a85

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyspecdata-0.9.7-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 1063089194b554f8a69d146109983565407a3d48487c1201e28f89daa10d5e9f
MD5 02c4af207edb666b3e56cd696cae2ec4
BLAKE2b-256 6a6fde75ef7a29a72f1558ab60599012150b96dd369a68c08b2296e8474edca8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyspecdata-0.9.7-cp314-cp314-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 84bff51d40fb0312d103e952824270aa50ac6e32dfd7873ad9de51036eeec837
MD5 b1e9e391cec0a21d44faa3f7aafe0d74
BLAKE2b-256 976fa5d3b347f84966d1595debe6718d00dbf91689982acc0f00ec55795c5c12

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyspecdata-0.9.7-cp314-cp314-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 27aef86dbcc3a18ecd48da327f965564760e1e7bce993f455451297d96c65861
MD5 3954aa363ffae3ad5845ab62e38c7f38
BLAKE2b-256 43318995e0ecc85b9ecd137e4a8d3e7d432e3521341a3541c6a6869c020869fa

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pyspecdata-0.9.7-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 1.8 MB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pyspecdata-0.9.7-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 c0f670e1d656d7af9327677f679cfab84b6ab1cbbe012c7741b7ad8c46fd6035
MD5 0aeab46467ab5e353b4dfe20c0680564
BLAKE2b-256 216154eedc6f034091d90257f213b2b1128d24440dfdc645769586985531778c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyspecdata-0.9.7-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 d953b8a38f026af61b2333fb41168ba1ddf4a5e38fd4f1ff96f2b6c083e869d0
MD5 e2509adf3c9ae3709f1f0b970e301a95
BLAKE2b-256 384c894ab29d0e8d2adab0a16de3f670104f09caac6df2af38ac41895ffe4e43

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyspecdata-0.9.7-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 44e3f06fb4428472ac093a8cea74272dd901b7a218f48a6f3203506151103546
MD5 379278de934fcaed931e475be4d091a9
BLAKE2b-256 3f4f58cb24bd1a698bebf6fada4151a59560aa780c0af963c9466f7d4c7aa825

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyspecdata-0.9.7-cp313-cp313-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 1ef2d362bde3f285d1fe943aa8c8244b03870c14ce8f75f64eeb0caf642e6749
MD5 6e334a505a1e8f3755591a2da34ca7ed
BLAKE2b-256 f142b3186e52aa7dad5cda88e7a8c3f092d07c97065e335c80fdc57af0df092c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyspecdata-0.9.7-cp313-cp313-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 8393043ec4e2e1bc9cc259c8d86d74639290c0680727658ed42a81cc2690089a
MD5 22df9475ae3f87c3a032885d4fd63e3b
BLAKE2b-256 0f35dfa9f62e31e338cb876394c3526982120e8efae4ee905ebcb212304ad55a

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pyspecdata-0.9.7-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 1.8 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pyspecdata-0.9.7-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 e8a5cfb4355bd544eacb443177126ed1720c736d6bfa944de4b3644bea9195ea
MD5 70c8e7eab9dde5a16231f753e9560a77
BLAKE2b-256 913ffaf8a568253bb73928a41e43e214d011ef0dd72e2733fd054dbb412f395e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyspecdata-0.9.7-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 eec6b23a5e4cdfe2b032624a8304eb64b3451cbd2bd6abb0e14568a5166462e5
MD5 40e8bcfdf6c55aee2f33fd1693016e5e
BLAKE2b-256 38ffa7dbdc85f228d65772d79a664783b2903cc8828a6852140b920231e79dcc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyspecdata-0.9.7-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d98864a0bf7e07641c6bbfad96494fe116187c912c597cacb4a66a77b41375b6
MD5 989edcaeb7c586a22c6073b43d57414c
BLAKE2b-256 2ec0e2dcb2a1608384e5abccdddc87d5243afe857e41d09a8e7ed7afb40009e4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyspecdata-0.9.7-cp312-cp312-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 0248f80dc3921542bbc144dbfe9d3af7790da64d9599f2cd7329d44de1cd80b7
MD5 0e17995561518505ede744e073f32730
BLAKE2b-256 33c71ece1d3cb54ef863cad981e48de6eb324b39885df877e0ca27aaa52d8932

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyspecdata-0.9.7-cp312-cp312-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 407175504bf8d19dc571cf098cdd58dc713338f56e80f827de4ad55b7eb0a5ea
MD5 38533bfe40f24144571d129406bff4cf
BLAKE2b-256 7dc561f1e656358f9b252429e692538937a255bd11d2dca7a677aaadcb978b8d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pyspecdata-0.9.7-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 1.8 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pyspecdata-0.9.7-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 5d51e788f4c4ffdd8b657abbe2135c3aabc6d969d48880efeca685b200d0ed10
MD5 53ac25b767936a747f6a2b1084832abb
BLAKE2b-256 d62f02b5b883610e006eff65b58ff12eeb610d7335d9433ba9b7c70aec02519d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyspecdata-0.9.7-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 a10b3c095c25610cf3087ddeefa425a8ac86cad09282ee962d7348780a358c4e
MD5 8e8dd737afafcb8bdf8eb0a9e904bf81
BLAKE2b-256 4dfb5c306193219545060e589878b193827e3f48d3837e057dfecc78262cee12

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyspecdata-0.9.7-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 5b1990adb416623725f1d21455a6f19d5e980db594d5d48875c07678666b0a01
MD5 c95ae698c14697c3b2396ae949e3ba7a
BLAKE2b-256 f181b438194b74ad944ccad7537359359063317184d29c4b8122103b8abe8194

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyspecdata-0.9.7-cp311-cp311-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 1d06efa4e106d6c39ea20d29b807fc3e230d305ae5b9b9f8cb9f389b326bcdcb
MD5 971abcab9cd7469c8a2a3f7e130994c4
BLAKE2b-256 3eabdb2eccd8e798a6aa24524f19a0d71a99693e051cc8a01cc85230096057a9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyspecdata-0.9.7-cp311-cp311-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 34c94ef635cadc295870eee7845ff3902499ef2dc8330e85a20484d5f51dcc86
MD5 f27d7923f1de6d9de5a5f90468b20242
BLAKE2b-256 a5bd8dc314765a0d50fa338719e4c02a0875686b907887535e7109e4d1cdd8dd

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pyspecdata-0.9.7-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 1.8 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pyspecdata-0.9.7-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 90728bb18229d881500ba791fbaedd989544288b041d9c6a2228f07952468e4d
MD5 8eb118b73572f33874da4dba6de1916e
BLAKE2b-256 d0578b718d1556989591b1189898369f9f36da078ca52dec492d9093bcf6915c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyspecdata-0.9.7-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 e88901af61684cc3522924ba45ad08c77e200ed6892877b44bf1055a10b4cf82
MD5 3194b1ae09c24b13d6a44d15ad3b53dd
BLAKE2b-256 b8f1c837868a722f45bb1fccfab73a69c1390158aa5cf3799e724b46406a0810

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyspecdata-0.9.7-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 4661bdd1a5b31a520f2be4b2985a534e5b47fc288a5b5b11f52bbb600ed3795b
MD5 44e7ffefdfdec788a9f7fbb98ac545ab
BLAKE2b-256 7083420872136d1cb0eef00a388351157ea2c620ffcadb1327f6e16eeac3c6f7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyspecdata-0.9.7-cp310-cp310-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 7e2cff230b338d0b4cc2f810d25ca268e8969c5d5f206a9a03077d3b22648b7a
MD5 cbd64e48a71d654bcbf6ada65d5b35f4
BLAKE2b-256 b5ec6fdbcabd9f4413880bd60c465f5082138d34184dca3581ed390e74d38add

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyspecdata-0.9.7-cp310-cp310-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 cf9f12933668adae53862f092312d954dcb975427e7d8f542bfa1d77c7f1c1ef
MD5 cd7e146e2b583202c6788ef766bf7831
BLAKE2b-256 c94703461c734cc78d151fe754b4a0869efc999085f3aa6929ee5125a392d447

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pyspecdata-0.9.7-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 1.8 MB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pyspecdata-0.9.7-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 eb2bb4026d7d8334f0cd9aabb918a1741755dda8c65a2ebd296617b1d8aa8168
MD5 dd9980f49c739c2cea1c7b0594236498
BLAKE2b-256 49d427b854c292f6c4d72167a72119f61c07a412aa0f894991a0a773e64d0968

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyspecdata-0.9.7-cp39-cp39-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 1bbf3fb7642fe5889ac3d87f44219f5813d2947a7c4e60a04ccd777033a8ea49
MD5 b3a7d449830d50e1f9047d9317e1ea66
BLAKE2b-256 941bbb50d5b722eaa49e38397609ed128d59c0afc2c15cac7e989d8879661195

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyspecdata-0.9.7-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f5f1e9f8426a82354f092128a9045fab17a66ef376831b71db0a2546519d9162
MD5 1c217cbf9d5cad36f16772007bd6dc29
BLAKE2b-256 23f26516988d7b5c9ab27fbfd129b7be25b626e1f1a6bcc1a887c2f958087013

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyspecdata-0.9.7-cp39-cp39-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 ce72952a297fb2eb0c781d6c5b4694dff07a5e426a02b92aa138c7335d5ac36e
MD5 3293ee1ace6add88e38f9b278f8b6dea
BLAKE2b-256 a08f4196ed243454b3c7ec5856b2f26a5d34c2515a1b7383dc60d18f3c819293

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyspecdata-0.9.7-cp39-cp39-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 f6193f715075052232db38eae10ea4fd0a36d6681c2edd8c2f3ec1591ea62a4d
MD5 0ad6c15b92ffaf57d2d63774fb21e582
BLAKE2b-256 3c53e21dff8890a2374608bffa97b70972bf8c4fcee357180e2f13d9cea6b0ba

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