Metadata-Version: 2.4
Name: pyxalign
Version: 1.1.0
Summary: Package for alignment and reconstruction of laminography and tomography datasets.
Author-email: Hanna Ruth <hruth@anl.gov>
Requires-Python: >=3.13
Description-Content-Type: text/markdown
License-File: LICENSE.txt
Requires-Dist: h5py
Requires-Dist: matplotlib
Requires-Dist: numpy
Requires-Dist: pandas
Requires-Dist: scipy
Requires-Dist: scikit-image
Requires-Dist: statsmodels
Requires-Dist: tqdm
Requires-Dist: ipywidgets
Requires-Dist: plotly
Requires-Dist: ipympl
Requires-Dist: tifffile
Requires-Dist: PyQt5
Requires-Dist: mda-xdrlib
Requires-Dist: pyqtgraph
Requires-Dist: jupyter
Requires-Dist: PyYAML
Requires-Dist: astra-toolbox
Requires-Dist: cupy
Provides-Extra: dev
Requires-Dist: pytest>=7.0; extra == "dev"
Dynamic: license-file

## Installation Instructions
### Conda Environment
1. Create a conda environment with python 3.13
```bash
conda create -n pyxalign python=3.13
```
then activate the environment
```bash
conda activate pyxalign
```
Install astra-toolbox and CuPy from conda-forge:
```bash
conda install -c conda-forge astra-toolbox
conda install -c conda-forge cupy
```
Installing these libraries from conda-forge instead of pip ensures that required CUDA toolkit is installed.

Create an editable, developer installation of pyxalign:
```bash
git clone https://github.com/AdvancedPhotonSource/pyxalign.git
cd pyxalign
pip install -e ".[dev]"
```

Install the latest version of pyxalign from PyPI:
```bash
pip install pyxalign
```

### Podman Container

1. Clone the pyxalign git repo
```bash
git clone https://github.com/AdvancedPhotonSource/pyxalign.git
cd pyxalign
```
2. Build the container image
```bash
podman build -t pyxalign:latest .
```
3. Run the container
```bash
podman run \
    -it --rm --env DISPLAY --security-opt label=type:container_runtime_t \
    --network host -v="$HOME/.Xauthority:/root/.Xauthority:rw" \
    --device nvidia.com/gpu=all \
    pyxalign:latest bash
```
Any directories you need access to inside the container must be explicitly mounted using the `-v` flag:
```bash
-v /path/on/host:/path/in/container
```
For example, to mount your data directory:
```bash
podman run \
    -it --rm --env DISPLAY --security-opt label=type:container_runtime_t \
    --network host -v="$HOME/.Xauthority:/root/.Xauthority:rw" \
    -v /data/my_experiment:/data/my_experiment \
    --device nvidia.com/gpu=all \
    pyxalign:latest bash
```
