Development
This section provides information for developers who want to contribute to the Remote OpenFAST Plotter project.
Development:
Development Environment Setup
To set up a development environment for Remote OpenFAST Plotter:
Clone the repository:
git clone https://github.com/mayankchetan/remoteOpenFASTplotter.git cd remoteOpenFASTplotter
Create a conda environment (recommended):
conda env create -f environment.yaml conda activate remoteopenfast
Install development dependencies:
pip install pytest pytest-cov flake8
Code Organization
The application follows a modular architecture:
app.py: Main entry pointdata_manager.py: Data loading and managementcomponents.py: UI layout and componentsutils.py: Utility functionscallbacks/: Organized callback modulestools/: Specialized analysis modulestests/: Test suite
Testing
The project includes a comprehensive test suite:
# Run all tests
python -m pytest
# Run with coverage report
python -m pytest --cov=. --cov-report=term
# Run specific test
python -m pytest tests/test_utils.py -v
Recommended development workflow:
Write tests for your changes first
Implement your changes
Run tests to verify functionality
Submit a pull request
Adding New Features
When adding new features:
New UI Component: Add to
components.pyand integrate into the layoutNew Analysis Feature: Add core logic to
utils.pyor create a new module intools/New Interactive Feature: Create callback functions in appropriate modules within
callbacks/Documentation: Update relevant documentation and add examples
Building Documentation
To build this documentation locally:
cd docs
sphinx-build -b html . _build/html
View the generated documentation in _build/html/index.html.