Installation
daolite (Durham Adaptive Optics Latency Inspection Tool Environment) provides tools to estimate computational latency in Adaptive Optics (AO) real-time control systems.
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:
pip install -r requirements.txt
python setup.py install
Development Installation
For development purposes, you can install daolite in development mode:
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:
# Install pre-commit
pip install pre-commit
# Install the git hooks
pre-commit install
Run pre-commit manually:
# 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:
Auto-fixable issues (formatting, import order) will be fixed automatically
The commit will be blocked if there are remaining issues
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:
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:
pip install daolite[extras]