feat: add proper optional-dependencies for each modules (#75)

This commit is contained in:
d3vyce
2026-02-19 11:08:18 +01:00
committed by GitHub
parent 48567310bc
commit 32ed36e102
8 changed files with 346 additions and 29 deletions

View File

@@ -0,0 +1,9 @@
"""Optional dependency helpers."""
def require_extra(package: str, extra: str) -> None:
"""Raise *ImportError* with an actionable install instruction."""
raise ImportError(
f"'{package}' is required to use this module. "
f"Install it with: pip install fastapi-toolsets[{extra}]"
)

View File

@@ -1,6 +1,11 @@
"""Main CLI application."""
import typer
try:
import typer
except ImportError:
from .._imports import require_extra
require_extra(package="typer", extra="cli")
from ..logger import configure_logging
from .config import get_custom_cli

View File

@@ -1,8 +1,19 @@
"""Prometheus metrics integration for FastAPI applications."""
from .handler import init_metrics
from typing import Any
from .registry import Metric, MetricsRegistry
try:
from .handler import init_metrics
except ImportError:
def init_metrics(*_args: Any, **_kwargs: Any) -> None:
from .._imports import require_extra
require_extra(package="prometheus_client", extra="metrics")
__all__ = [
"Metric",
"MetricsRegistry",

View File

@@ -1,13 +1,24 @@
"""Pytest helpers for FastAPI testing: sessions, clients, and fixtures."""
from .plugin import register_fixtures
from .utils import (
cleanup_tables,
create_async_client,
create_db_session,
create_worker_database,
worker_database_url,
)
try:
from .plugin import register_fixtures
except ImportError:
from .._imports import require_extra
require_extra(package="pytest", extra="pytest")
try:
from .utils import (
cleanup_tables,
create_async_client,
create_db_session,
create_worker_database,
worker_database_url,
)
except ImportError:
from .._imports import require_extra
require_extra(package="httpx", extra="pytest")
__all__ = [
"cleanup_tables",