Metadata-Version: 2.4
Name: phob
Version: 0.9.0
Summary: Python package for controlling optical test bench equipment in kernel-nulling interferometry
Author-email: Vincent Foriel <vincent.foriel@gmail.com>, mmartinod <ma.martinod@free.fr>
License: MIT
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Scientific/Engineering :: Physics
Requires-Python: >=3.9
Description-Content-Type: text/markdown
Requires-Dist: numpy
Requires-Dist: pyserial
Requires-Dist: pyyaml
Requires-Dist: toml>=0.10.2
Requires-Dist: astropy
Requires-Dist: scipy
Requires-Dist: matplotlib
Requires-Dist: gitpython
Requires-Dist: scikit-image
Requires-Dist: pytest
Requires-Dist: pytest-cov
Requires-Dist: black
Requires-Dist: flake8
Requires-Dist: mypy
Requires-Dist: jupyter
Requires-Dist: ipython

# PHOBos - Photonics Bench Operating System

This repo aim to provide a full set of tools to control all the devices on the Kernel-Nuller test bench.

> **⚠️ Important:** This package is designed to run on the PHOTONICS lab PC with specific hardware (BMC deformable mirror, Thorlabs filter wheel, Newport/Zaber motors, C-RED3 camera). Outside this environment, the library will automatically enter **sandbox mode** and simulate missing components with mock interfaces. See the [installation guide](https://phob.readthedocs.io/en/latest/installation.html) for proper lab PC setup.

## 🚀 Quickstart

Requirements:
- [Python 3.12](https://www.python.org/)

### Lab PC Installation (with hardware)

For the lab PC with all hardware connected, follow the complete [installation guide](https://phob.readthedocs.io/en/latest/installation.html).

Quick version:
```bash
pip install -r requirements-lab.txt
pip install -e .
```

### Development/Sandbox Installation (without hardware)

For development or testing without hardware access:

```bash
pip install -e .
```

The package will automatically detect missing hardware and run in **sandbox mode** with mock interfaces.

## 📚 Documentation

The documentation should be available at the adress: [phob.readthedocs.io](http://phob.readthedocs.io).

If you want to build the doc locally, once the project is setup (according to the instructions above):

1. Go in the `docs` folder
    ```bash
    cd docs
    ```
2. Install the requirements (by preference, in a virtual environment)
    ```bash
    pip install -r requirements.txt
    ```
3. Build the doc
    ```bash
    make html # Linux
    .\make.bat html # Windows
    ```
Once the documentation is build, you can find it in the `docs/_build_` folder.
