Skip to content

ignore import errors for healthchecks missing #75

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Feb 26, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion microbootstrap/bootstrappers/fastapi.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
import fastapi
from fastapi.middleware.cors import CORSMiddleware
from fastapi_offline_docs import enable_offline_docs
from health_checks.fastapi_healthcheck import build_fastapi_health_check_router
from opentelemetry.instrumentation.fastapi import FastAPIInstrumentor
from prometheus_fastapi_instrumentator import Instrumentator

Expand All @@ -21,6 +20,10 @@
from microbootstrap.settings import FastApiSettings


with contextlib.suppress(ImportError):
from health_checks.fastapi_healthcheck import build_fastapi_health_check_router


ApplicationT = typing.TypeVar("ApplicationT", bound=fastapi.FastAPI)


Expand Down
6 changes: 5 additions & 1 deletion microbootstrap/bootstrappers/faststream.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
from __future__ import annotations
import contextlib
import dataclasses
import json
import typing
Expand All @@ -8,7 +9,6 @@
import typing_extensions
from faststream.asgi import AsgiFastStream, AsgiResponse
from faststream.asgi import get as handle_get
from health_checks.http_based import BaseHTTPHealthCheck

from microbootstrap.bootstrappers.base import ApplicationBootstrapper
from microbootstrap.config.faststream import FastStreamConfig
Expand All @@ -23,6 +23,10 @@
from microbootstrap.settings import FastStreamSettings


with contextlib.suppress(ImportError):
from health_checks.http_based import BaseHTTPHealthCheck


class KwargsAsgiFastStream(AsgiFastStream):
def __init__(self, **kwargs: typing.Any) -> None: # noqa: ANN401
# `broker` argument is positional-only
Expand Down
6 changes: 5 additions & 1 deletion microbootstrap/bootstrappers/litestar.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
from __future__ import annotations
import contextlib
import typing

import litestar
import litestar.types
import typing_extensions
from health_checks.litestar_healthcheck import build_litestar_health_check_router
from litestar import openapi
from litestar.config.cors import CORSConfig as LitestarCorsConfig
from litestar.contrib.opentelemetry.config import OpenTelemetryConfig as LitestarOpentelemetryConfig
Expand All @@ -26,6 +26,10 @@
from microbootstrap.settings import LitestarSettings


with contextlib.suppress(ImportError):
from health_checks.litestar_healthcheck import build_litestar_health_check_router


class LitestarBootstrapper(
ApplicationBootstrapper[LitestarSettings, litestar.Litestar, LitestarConfig],
):
Expand Down
7 changes: 5 additions & 2 deletions microbootstrap/instruments/health_checks_instrument.py
Original file line number Diff line number Diff line change
@@ -1,15 +1,18 @@
from __future__ import annotations
import contextlib
import typing

from health_checks.http_based import DefaultHTTPHealthCheck

from microbootstrap.instruments.base import BaseInstrumentConfig, Instrument


if typing.TYPE_CHECKING:
from health_checks.base import HealthCheck


with contextlib.suppress(ImportError):
from health_checks.http_based import DefaultHTTPHealthCheck


class HealthChecksConfig(BaseInstrumentConfig):
service_name: str = "micro-service"
service_version: str = "1.0.0"
Expand Down
Loading