A tiled-based data management system for the Advanced Light Source (ALS).
This project provides a specialized Tiled server configuration for managing scientific data at the Advanced Light Source. It builds on the Tiled framework to provide efficient data access and management capabilities.
- Built on the robust Tiled framework
- Docker containerization for easy deployment
- Support for Python 3.11 and 3.12
- Comprehensive CI/CD pipeline with GitHub Actions
- Pre-configured development environment
# Build the Docker image
docker build -t als_tiled -f Containerfile .
# Run the container
docker run -p 8000:8000 als_tiled# Clone the repository
git clone https://github.com/als-lbl/als_tiled.git
cd als_tiled
# Install in development mode
pip install -e .[dev]
# Run the application
als-tiled- Python 3.11 or 3.12
- Docker (for containerized deployment)
pip install -e .pip install -e .[dev]This installs additional development dependencies including:
- pytest for testing
- black for code formatting
- isort for import sorting
- flake8 for linting
- mypy for type checking
- pre-commit for git hooks
-
Clone the repository:
git clone https://github.com/als-lbl/als_tiled.git cd als_tiled -
Install development dependencies:
pip install -e .[dev]
-
Install pre-commit hooks:
pre-commit install
# Run all tests
pytest
# Run tests with coverage
pytest --cov=als_tiled
# Run specific test file
pytest tests/test_main.pyThe project uses several tools to maintain code quality:
- Black: Code formatting
- isort: Import sorting
- flake8: Linting
- mypy: Type checking
Run all quality checks:
black src tests
isort src tests
flake8 src tests
mypy srcdocker build -t als_tiled -f .Containerfile .# Basic run
docker run -p 8000:8000 als_tiled
# With environment variables
docker run -p 8000:8000 -e TILED_SERVER_ENABLE_ORIGINS=* als_tiled
# With volume mounting for data
docker run -p 8000:8000 -v /path/to/data:/data als_tiledThe project includes a comprehensive GitHub Actions workflow that:
- Linting: Runs code quality checks (black, isort, flake8, mypy)
- Testing: Executes the test suite across Python 3.11 and 3.12
- Building: Creates Docker images for multiple architectures
- Publishing: Pushes images to GitHub Container Registry
- Push to
mainordevelopbranches - Pull requests to
main - Release publications
Docker images are automatically published to:
ghcr.io/als-lbl/als_tiled
The application can be configured through environment variables:
TILED_SERVER_ENABLE_ORIGINS: Configure CORS originsPYTHONPATH: Python module search path
- Fork the repository
- Create a feature branch
- Make your changes
- Run the test suite
- Submit a pull request
This project follows:
- PEP 8 style guidelines
- Black code formatting
- Import sorting with isort
- Type hints where appropriate
This project is licensed under the MIT License. See the LICENSE file for details.
For support and questions, please open an issue on the GitHub repository or contact the ALS team at contact@als.lbl.gov.