Hollowfoot
A work-flow engine for performing analysis of experimental X-ray data using xraylarch and other domain-specific frameworks.
A hollowfoot analysis is:
Declarative: A typical analysis workflow in hollowfoot is best thought of as a series of steps to be performed on some underlying data. The analysis engine is responsible for executing the steps for you when needed.
Jupyter-first: Many analysis frameworks, like xraylarch, provide tools that are used as part of some larger analysis application. Hollowfoot aims to extend these tools so that they can be used as first-class objects in a jupyter notebook environment.
Documentation
Sphinx-generated documentation for this project can be found here: https://spc-group.github.io/hollowfoot/
Usage
An example workflow for XAFS analysis might look like:
import hollowfoot as hf
analysis = (
XAFSAnalysis # What kind of analysis are we doing?
.from_aps_20bmb("my_data_folder/") # Load data from disk
.to_mu("mono-energy", "It", "I0", is_transmission=True) # Apply reference correction
.plot_mu() # Plot all data sets together
.merge() # Merge data sets into a single group
.fit_edge_jump() # Do some normalization, etc
.subtract_background() # Convert from µ(E) to χ(E)
.plot_mu() # Plot the single, corrected dataset
.summarize() # Print out a summary of the steps that have been taken
)
Notice how each line of the previous code snippet describes a concise step of analysis. These steps can be re-ordered or commented out, making for easy comparisons between analysis strategies.
Installation
The following will download the package and load it into the python environment.
$ pip install hollowfoot
Running the Tests
$ uv run --dev pytest
File Format Support
XAS Data Interchange Format (XDI)
Hollowfoot includes an Xarray backend for loading .xdi files.
The easiest way to import XDI files is with xarray.open_dataset():
import xarray as xr
dataset = xr.open_dataset("example.xdi")
It is also possible to load XDI data from a string using hollowfoot.xdi.load():
import hollowfoot as hf
with open("tests/example.xdi") as fp:
dataset = hf.xdi.load(fp.read())
It is also possible to convert a dataset back to XDI:
# This example overwrites existing files, be careful!
with open("new_file.xdi", mode='w') as fp:
fp.write(hf.xdi.dump(dataset))
Metadata
Release files for hollowfoot 0.5.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| hollowfoot-0.5.1.tar.gz | 534.7 kB | Without provenance | Details for hollowfoot-0.5.1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| hollowfoot-0.5.1-py3-none-any.whl | Python 3 | none | any | Details for hollowfoot-0.5.1-py3-none-any.whl |
Total release size: 546.6 kB
Release files / hollowfoot-0.5.1.tar.gz
| Download URL | hollowfoot-0.5.1.tar.gz |
|---|---|
| Size | 534.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1c1681d2211a6cfb87b9120c4df2de1fcf9455d14a5ba68586e55bf54bee0326
|
|
BLAKE2b-256 checksum How to use checksums |
c8bf8916b478c5950e92bb2cec57362a59d99646ce7af93cfcabf4a65e8280bf
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.8.13
|
Release files / hollowfoot-0.5.1-py3-none-any.whl
| Download URL | hollowfoot-0.5.1-py3-none-any.whl |
|---|---|
| Size | 11.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
8b07e243ffdf5acaf26d6d2943b64ae6cb0bd09e079f4a8ed5e07969c75233d8
|
|
BLAKE2b-256 checksum How to use checksums |
6e26b3e04f65f8759ca27737168feaa2ea653e0a9bd03fc2ea3259ce2a0527c6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.8.13
|
Security for hollowfoot 0.5.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.