File size: 1,683 Bytes
bfe80c5 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 |
# Contributing to stroke-deepisles-demo
Thank you for your interest in contributing!
## Development Setup
1. **Clone the repository**
```bash
git clone https://github.com/The-Obstacle-Is-The-Way/stroke-deepisles-demo.git
cd stroke-deepisles-demo
```
2. **Install uv** (if not already installed)
```bash
curl -LsSf https://astral.sh/uv/install.sh | sh
```
3. **Install dependencies**
```bash
uv sync
```
4. **Install pre-commit hooks**
```bash
uv run pre-commit install
```
## Running Tests
```bash
# All tests (excluding integration)
uv run pytest
# With coverage
uv run pytest --cov
# Integration tests (requires Docker)
uv run pytest -m integration
# Slow tests (requires Docker + DeepISLES image)
uv run pytest -m "integration and slow"
```
## Code Quality
```bash
# Lint
uv run ruff check .
# Format
uv run ruff format .
# Type check
uv run mypy src/
```
## Project Structure
```
src/stroke_deepisles_demo/
βββ core/ # Shared utilities (config, types, exceptions)
βββ data/ # HF dataset loading and case management
βββ inference/ # DeepISLES Docker integration
βββ ui/ # Gradio application
βββ pipeline.py # End-to-end orchestration
βββ metrics.py # Evaluation metrics
```
## Pull Request Process
1. Create a feature branch from `main`
2. Write tests for new functionality
3. Ensure all tests pass and code quality checks pass
4. Update documentation if needed
5. Submit PR with clear description
## Code Style
- Type hints on all functions
- Docstrings in Google style
- Keep functions focused and small
- Prefer explicit over implicit
|