API reference

safir Package

Safir is the SQuaRE framework for Roundtable bots.

Variables

__version__

The version string of Safir (PEP 440 / SemVer compatible).

version_info

The decomposed version, split across “..”

safir.dependencies.http_client Module

HTTP client dependency for FastAPI.

Classes

HTTPClientDependency()

Provides an httpx.AsyncClient as a dependency.

Variables

DEFAULT_HTTP_TIMEOUT

Default timeout (in seconds) for outbound HTTP requests.

http_client_dependency

The dependency that will return the HTTP client.

Class Inheritance Diagram

Inheritance diagram of safir.dependencies.http_client.HTTPClientDependency

safir.dependencies.logger Module

Logger dependency for FastAPI.

Provides a structlog logger as a FastAPI dependency. The logger will incorporate information from the request in its bound context.

Classes

LoggerDependency()

Provides a structlog logger configured with request information.

Variables

logger_dependency

The dependency that will return the logger for the current request.

Class Inheritance Diagram

Inheritance diagram of safir.dependencies.logger.LoggerDependency

safir.logging Module

Utilities for configuring structlog-based logging.

Functions

configure_logging(*, name[, profile, …])

Configure logging and structlog.

Variables

logger_name

Name of the configured global logger.

safir.metadata Module

Standardized metadata for Roundtable HTTP services.

Functions

get_metadata(*, package_name, application_name)

Retrieve metadata for the application.

get_project_url(meta, label)

Get a specific URL from a package’s project_urls metadata.

Classes

Metadata(*, name, version, description, …)

Metadata about a package.

Class Inheritance Diagram

Inheritance diagram of safir.metadata.Metadata

safir.middleware.x_forwarded Module

Update the request based on X-Forwarded-For headers.

Classes

XForwardedMiddleware(app, *, proxies)

Middleware to update the request based on X-Forwarded-For.

Class Inheritance Diagram

Inheritance diagram of safir.middleware.x_forwarded.XForwardedMiddleware