Skip to content

MichaelAnckaert/extral

Repository files navigation

Extral

PyPI version Code Quality Checks Documenation

Extral is a versatile ETL (Extract, Transform, Load) application designed to move data from a source database to a destination database.

All information including a Getting Started Guide can be found in the User Documentation.

License

This project is licensed under the Apache License 2.0 - see the LICENSE file for details.

Contributing

See CONTRIBUTING.md for all information on how to contribute to Extral.

Testing

Extral uses pytest for testing with both unit and integration tests.

Running Tests

# Run all tests
uv run pytest

# Run only unit tests (fast, no external dependencies)
uv run pytest -m unit

# Run only integration tests (requires external services)
uv run pytest -m integration

# Run tests with coverage report
uv run pytest --cov=src/extral --cov-report=html

# Run tests in verbose mode
uv run pytest -v

# Run specific test file
uv run pytest tests/unit/test_config.py

Test Categories

Tests are organized using markers:

  • unit: Fast tests that don't require external dependencies
  • integration: Tests requiring external services (databases, files)
  • database: Tests requiring database connections
  • file: Tests requiring file system access
  • slow: Tests that take longer to run
  • network: Tests requiring network access

Documentation

Extral includes comprehensive Sphinx documentation covering installation, configuration, and API reference.

User documentation can be found here: https://extral.readthedocs.io/en/latest/. Instructions below focus on developers to add and build documentation.

Building Documentation

To build the documentation locally:

# Install development dependencies (includes Sphinx)
uv sync --group dev

# Build HTML documentation
cd docs && make html

# Or use the convenience script
./docs/build_docs.sh

The built documentation will be available at docs/_build/html/index.html.

Documentation Structure

  • Getting Started - Installation and basic usage guide
  • Configuration - Complete YAML configuration syntax reference
  • API Reference - Auto-generated API documentation for all modules

Updating Documentation

  • Content: Edit the .rst files in the docs/ directory
  • API docs: Automatically generated from docstrings in the source code
  • Version: Automatically synced from src/extral/__init__.py

After making changes, rebuild the documentation using the commands above.

About

Extract, Transform, Load

Resources

License

Contributing

Stars

Watchers

Forks

Packages

No packages published

Languages