.. _installation:
Installation
=============
daolite (Durham Adaptive Optics Latency Inspection Tool Environment) provides tools to estimate computational latency in Adaptive Optics (AO) real-time control systems.
.. raw:: html
Placeholder Install Hero
Edit this block in `docs/source/install.rst` to customize the installation splash.
Requirements
------------
daolite requires the following dependencies:
- Python 3.8 or higher
- NumPy
- Matplotlib
- PyYAML
- SciPy (optional, for advanced reconstruction methods)
Installation Methods
--------------------
Standard Installation
~~~~~~~~~~~~~~~~~~~~~
To install daolite, run the following commands:
.. code-block:: bash
pip install -r requirements.txt
python setup.py install
Development Installation
~~~~~~~~~~~~~~~~~~~~~~~~
For development purposes, you can install daolite in development mode:
.. code-block:: bash
pip install -e .
This will install the package in development mode, allowing you to modify the source code without reinstalling.
Setting Up Pre-commit Hooks
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
daolite uses pre-commit hooks to maintain code quality. These hooks automatically run linting, formatting, and import sorting before each commit.
**Install and setup pre-commit:**
.. code-block:: bash
# Install pre-commit
pip install pre-commit
# Install the git hooks
pre-commit install
**Run pre-commit manually:**
.. code-block:: bash
# Run all hooks on all files
pre-commit run --all-files
# Or run individual tools
ruff check --fix . # Linting with auto-fix
black . # Code formatting
isort . # Import sorting
The pre-commit hooks will automatically run when you commit changes. If any issues are found:
1. Auto-fixable issues (formatting, import order) will be fixed automatically
2. The commit will be blocked if there are remaining issues
3. Fix the issues and commit again
**Pre-commit configuration:**
The project uses the following tools (configured in ``.pre-commit-config.yaml``):
- **Ruff**: Fast Python linter (replaces flake8, pylint, etc.)
- **Black**: Code formatter for consistent style
- **isort**: Import statement organizer
Verifying Installation
----------------------
After installation, you can verify that daolite is installed correctly by running:
.. code-block:: python
import daolite
print(daolite.__version__)
Platform Support
----------------
daolite is compatible with:
- Linux (recommended for performance analysis)
- macOS
- Windows
GPU Support
-----------
While daolite itself does not require a GPU to run, it can model performance of GPU-accelerated systems. The modeling capabilities support:
- NVIDIA GPUs
- AMD GPUs
- Intel GPUs
Additional Components
---------------------
For some advanced features, you may need additional packages:
- CuPy (for CUDA integration testing)
- Bokeh (for interactive visualizations)
- sphinx (for building documentation)
These can be installed with:
.. code-block:: bash
pip install daolite[extras]