Metadata-Version: 2.1
Name: haven-spc
Version: 2024.10.2
Summary: Tools and GUI for running the spectroscopy group beamlines at the Advanced Photon Source.
Author-email: Mark Wolfman <wolfman@anl.gov>
Project-URL: Homepage, https://haven-spc.readthedocs.io/en/latest/
Project-URL: Bug Tracker, https://github.com/spc-group/haven/issues
Keywords: synchrotron,xray,bluesky
Classifier: Programming Language :: Python :: 3
Classifier: Operating System :: OS Independent
Classifier: Development Status :: 3 - Alpha
Classifier: License :: OSI Approved :: BSD License
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: System :: Hardware
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: aioca
Requires-Dist: bluesky
Requires-Dist: ophyd
Requires-Dist: ophyd-async>=0.5.1
Requires-Dist: databroker
Requires-Dist: apsbss
Requires-Dist: xraydb
Requires-Dist: mergedeep
Requires-Dist: xrayutilities
Requires-Dist: bluesky-queueserver-api
Requires-Dist: apstools
Requires-Dist: databroker
Requires-Dist: ophyd-registry
Requires-Dist: caproto
Requires-Dist: pcdsdevices
Requires-Dist: strenum
Requires-Dist: bluesky-adaptive
Requires-Dist: tiled[client]
Provides-Extra: dev
Requires-Dist: black; extra == "dev"
Requires-Dist: pytest; extra == "dev"
Requires-Dist: pytest-mongodb; extra == "dev"
Requires-Dist: build; extra == "dev"
Requires-Dist: twine; extra == "dev"
Requires-Dist: time-machine; extra == "dev"
Requires-Dist: pytest-mock; extra == "dev"
Requires-Dist: pytest-qt; extra == "dev"
Requires-Dist: flake8; extra == "dev"
Requires-Dist: pytest-asyncio; extra == "dev"
Requires-Dist: tiled[all]; extra == "dev"
Provides-Extra: gui
Requires-Dist: qtawesome; extra == "gui"
Requires-Dist: pydm<=1.24.1; extra == "gui"
Requires-Dist: pyqtgraph; extra == "gui"
Requires-Dist: qasync; extra == "gui"
Requires-Dist: tiled[all]; extra == "gui"

# Haven

![Build Status](https://github.com/spc-group/haven/actions/workflows/ci.yml/badge.svg)
[![Documentation Status](https://readthedocs.org/projects/haven-spc/badge/?version=latest)](https://haven-spc.readthedocs.io/en/latest/?badge=latest)
[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
[![License](https://img.shields.io/badge/License-BSD_3--Clause-blue.svg)](https://opensource.org/licenses/BSD-3-Clause)

Bluesky tools for beamlines managed by the spectroscopy group.

"Don't fly in anything with a Capissen 38 engine, they fall right out
of the sky."


## Installation

### Python Packing Index

Easiest way to install haven is using pip.

```
$ python -m pip install 'haven-spc'
```

### Development (Conda)

*haven* can also use *mamba* for dependency management, and
*setuptools* for installation and development.

First, download the package from github:

```bash
$ git clone https://github.com/spc-group/haven.git
$ cd haven
```

Then create the conda environment with mamba:

```bash
$ mamba env create -f environment.yml -n haven
```

lastly install the package, in developer mode:

```bash
$ conda activate haven
$ pip install -e ".[dev]"
```

## Usage

The easiest way to start **haven** is to use IPython's magic run command.

```
$ ipython
In [1]: %run -m haven.ipython_startup
```

This will load some common tools, and print some useful information
about how to use Haven.

## Running Tests

To run tests, run

```
$ pytest
```

# firefly

User-facing applications for controlling the beamlines managed by the
spectroscopy group. Be sure to include the [gui] extras if you plan
to use the GUI.

```
$ python -m pip install 'haven-spc[gui]'
$ firefly
```

# Versioning

Haven/Firefly uses calendar versioning, with short year and short
month for the MAJOR and MINOR versions, then a incremental MICRO
version. For example, version *2024.7.2* is the 3rd (*2*) release in
July (*7*) 2023 (*23*).

# Packaging

## Python Package Index (PyPI)

To deploy to PyPI:

```
$ python -m build
$ python -m twine check dist/*
$ python -m twine upload dist/*
