Metadata-Version: 2.1
Name: euxfel-EXtra
Version: 2024.1.1
Summary: European XFEL toolkit for research and analysis
Author-email: European XFEL <da@xfel.eu>
License: BSD-3-Clause
Project-URL: Homepage, https://github.com/European-XFEL/EXtra
Project-URL: Documentation, https://extra.readthedocs.io/en/latest/
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: BSD License
Classifier: Operating System :: POSIX :: Linux
Classifier: Topic :: Scientific/Engineering :: Information Analysis
Classifier: Topic :: Scientific/Engineering :: Physics
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: euxfel-bunch-pattern
Requires-Dist: extra-data >=1.13
Requires-Dist: extra-geom
Requires-Dist: h5py
Requires-Dist: karabo-bridge
Requires-Dist: oauth2-xfel-client >=6.1
Requires-Dist: pasha
Requires-Dist: pint
Requires-Dist: requests
Provides-Extra: docs
Requires-Dist: black ; extra == 'docs'
Requires-Dist: mkdocs-material ; extra == 'docs'
Requires-Dist: mkdocstrings ; extra == 'docs'
Requires-Dist: mkdocstrings-python >=1.2.0 ; extra == 'docs'
Requires-Dist: pymdown-extensions ; extra == 'docs'
Provides-Extra: test
Requires-Dist: pytest ; extra == 'test'
Requires-Dist: pytest-recording ; extra == 'test'

# EXtra - European XFEL Toolkit for Research and Analysis

This repository holds various bits of code to make data analysis simpler.

## Development
During development in a custom environment it's often helpful to install the
package in editable mode:
```bash
$ pip install -e '.[tests,docs]'
```

Tests are stored under `tests/` and use pytest:
```bash
$ python -m pytest .
```

The documentation is written using [mkdocs](https://www.mkdocs.org/) with
[mkdocstrings-python](https://mkdocstrings.github.io/python/). To automatically
rebuild the docs while editing, run:
```bash
$ mkdocs serve
```

## Deployment
The package is automatically deployed from `master` every night into the current
[`exfel-python`
environment](https://european-xfel.github.io/environments/environments/) using
the [`install-extra.sh`](docs/install-extra.sh) script (see the cron job with
`crontab -e` as `xsoft` on `max-exfl-display001.desy.de`). The package is
installed with `pip install --no-deps` to avoid causing conflicts with conda, so
if any dependencies need to be installed or updated that must be done with
conda. The `install-extra.sh` script will check for new dependencies first and
return an error if dependencies need to be installed.

If you want to update it manually, you must follow these steps:
1. SSH to Maxwell as the `xsoft` user
1. Run `./install-extra.sh`

Note: make sure to update the copy in `xsoft`'s home directory if the script is
updated:
```bash
rsync -a --progress docs/install-extra.sh xsoft@max-exfl-display.desy.de:/home/xsoft
```
