Coverage report: 32%

Files Functions Classes

coverage.py v7.15.4, created at 2026-08-25 04:37 +0800

File class   statements missing excluded   coverage
src/lexigram/web/__init__.py (no class)   18 2 4   89%
src/lexigram/web/admin/__init__.py (no class)   1 0 0   100%
src/lexigram/web/admin/contributor.py WebAdminContributor   21 21 0   0%
src/lexigram/web/admin/contributor.py (no class)   31 1 3   97%
src/lexigram/web/admin/handlers/__init__.py (no class)   1 0 0   100%
src/lexigram/web/admin/handlers/active_connections.py ActiveConnectionsWidgetHandler   7 7 0   0%
src/lexigram/web/admin/handlers/active_connections.py (no class)   9 0 0   100%
src/lexigram/web/admin/handlers/request_rate.py RequestRateWidgetHandler   7 7 0   0%
src/lexigram/web/admin/handlers/request_rate.py (no class)   9 0 0   100%
src/lexigram/web/admin/handlers/server_status.py ServerStatusWidgetHandler   2 2 0   0%
src/lexigram/web/admin/handlers/server_status.py (no class)   13 0 0   100%
src/lexigram/web/admin/pages/__init__.py (no class)   5 5 0   0%
src/lexigram/web/admin/pages/middleware.py WebMiddlewarePage   15 15 0   0%
src/lexigram/web/admin/pages/middleware.py (no class)   11 11 0   0%
src/lexigram/web/admin/pages/overview.py WebOverviewPage   16 16 0   0%
src/lexigram/web/admin/pages/overview.py (no class)   11 11 0   0%
src/lexigram/web/admin/pages/routes.py WebRoutesPage   12 12 0   0%
src/lexigram/web/admin/pages/routes.py (no class)   10 10 0   0%
src/lexigram/web/admin/widgets/__init__.py (no class)   5 0 0   100%
src/lexigram/web/background/__init__.py (no class)   4 0 0   100%
src/lexigram/web/background/decorator.py (no class)   10 5 0   50%
src/lexigram/web/background/tasks.py BackgroundTasks   10 10 0   0%
src/lexigram/web/background/tasks.py StarletteBackgroundTaskRunner   13 13 0   0%
src/lexigram/web/background/tasks.py BackgroundTaskScope   3 3 0   0%
src/lexigram/web/background/tasks.py (no class)   24 1 2   96%
src/lexigram/web/cli/__init__.py (no class)   2 0 0   100%
src/lexigram/web/cli/checks.py (no class)   3 3 0   0%
src/lexigram/web/cli/contributor.py WebCliContributor   7 6 0   14%
src/lexigram/web/cli/contributor.py (no class)   14 0 0   100%
src/lexigram/web/cli/generators/__init__.py (no class)   7 0 0   100%
src/lexigram/web/cli/generators/controller.py ControllerGenerator   17 17 0   0%
src/lexigram/web/cli/generators/controller.py (no class)   11 0 0   100%
src/lexigram/web/cli/generators/graphql.py GraphQLGenerator   29 29 0   0%
src/lexigram/web/cli/generators/graphql.py (no class)   12 0 0   100%
src/lexigram/web/cli/generators/middleware.py MiddlewareGenerator   4 4 0   0%
src/lexigram/web/cli/generators/middleware.py (no class)   8 0 0   100%
src/lexigram/web/cli/generators/resource.py ResourceGenerator   10 10 0   0%
src/lexigram/web/cli/generators/resource.py (no class)   15 0 0   100%
src/lexigram/web/cli/generators/webhook.py WebhookGenerator   8 8 0   0%
src/lexigram/web/cli/generators/webhook.py (no class)   10 0 0   100%
src/lexigram/web/cli/generators/websocket.py WebSocketHandlerGenerator   5 5 0   0%
src/lexigram/web/cli/generators/websocket.py (no class)   9 0 0   100%
src/lexigram/web/config/__init__.py (no class)   21 4 0   81%
src/lexigram/web/config/api_docs.py APIDocsConfig   9 9 0   0%
src/lexigram/web/config/api_docs.py StaticFileConfig   0 0 0   100%
src/lexigram/web/config/api_docs.py (no class)   21 0 0   100%
src/lexigram/web/config/provider.py WebProviderConfig   3 3 0   0%
src/lexigram/web/config/provider.py (no class)   26 0 0   100%
src/lexigram/web/config/rate_limit.py RateLimitRuleConfig   1 1 0   0%
src/lexigram/web/config/rate_limit.py RateLimitConfig   15 15 0   0%
src/lexigram/web/config/rate_limit.py RoleGuardRuleConfig   0 0 0   100%
src/lexigram/web/config/rate_limit.py RoleGuardConfig   1 1 0   0%
src/lexigram/web/config/rate_limit.py (no class)   38 0 0   100%
src/lexigram/web/config/server.py ServerConfig   5 5 0   0%
src/lexigram/web/config/server.py (no class)   17 0 0   100%
src/lexigram/web/config/top_level.py WebConfig   16 16 0   0%
src/lexigram/web/config/top_level.py (no class)   45 0 0   100%
src/lexigram/web/constants.py (no class)   22 2 0   91%
src/lexigram/web/contributors/__init__.py (no class)   3 0 0   100%
src/lexigram/web/contributors/discovery.py (no class)   18 10 0   44%
src/lexigram/web/contributors/registry.py WebContributorRegistry   4 4 0   0%
src/lexigram/web/contributors/registry.py (no class)   8 0 0   100%
src/lexigram/web/debug/__init__.py (no class)   2 2 0   0%
src/lexigram/web/debug/routes.py (no class)   60 60 0   0%
src/lexigram/web/decorators.py (no class)   37 29 2   22%
src/lexigram/web/dependencies/__init__.py (no class)   4 0 0   100%
src/lexigram/web/dependencies/functions.py (no class)   20 10 0   50%
src/lexigram/web/dependencies/state.py RequestState   6 6 0   0%
src/lexigram/web/dependencies/state.py (no class)   15 0 0   100%
src/lexigram/web/dependencies/strategies.py WebParameterStrategy   26 26 0   0%
src/lexigram/web/dependencies/strategies.py (no class)   6 0 0   100%
src/lexigram/web/di/__init__.py (no class)   5 0 0   100%
src/lexigram/web/di/middleware_setup.py MiddlewareSetup   87 87 0   0%
src/lexigram/web/di/middleware_setup.py (no class)   23 0 4   100%
src/lexigram/web/di/provider.py WebProvider   157 157 0   0%
src/lexigram/web/di/provider.py (no class)   48 0 0   100%
src/lexigram/web/di/rate_limit.py RateLimitProvider   22 22 0   0%
src/lexigram/web/di/rate_limit.py (no class)   16 0 2   100%
src/lexigram/web/di/route_setup.py RouteSetup   56 56 0   0%
src/lexigram/web/di/route_setup.py (no class)   15 0 6   100%
src/lexigram/web/docs/__init__.py (no class)   4 0 0   100%
src/lexigram/web/docs/decorators.py (no class)   11 7 0   36%
src/lexigram/web/docs/enrichment.py OpenAPIEnricher   52 52 0   0%
src/lexigram/web/docs/enrichment.py (no class)   26 12 0   54%
src/lexigram/web/docs/generator.py OpenAPIGenerator   172 172 0   0%
src/lexigram/web/docs/generator.py (no class)   13 0 0   100%
src/lexigram/web/docs/type_registry.py TypeDocumenterProtocol   0 0 2   100%
src/lexigram/web/docs/type_registry.py IntDocumenter   2 2 0   0%
src/lexigram/web/docs/type_registry.py BoolDocumenter   2 2 0   0%
src/lexigram/web/docs/type_registry.py FloatDocumenter   2 2 0   0%
src/lexigram/web/docs/type_registry.py StringDocumenter   2 2 0   0%
src/lexigram/web/docs/type_registry.py TypeDocumenterRegistry   5 5 0   0%
src/lexigram/web/docs/type_registry.py (no class)   21 21 3   0%
src/lexigram/web/errors/__init__.py (no class)   4 0 0   100%
src/lexigram/web/errors/html_error_renderer.py DebugHtmlErrorRenderer   37 37 0   0%
src/lexigram/web/errors/html_error_renderer.py (no class)   116 94 2   19%
src/lexigram/web/errors/problem_detail.py ProblemDetail   15 15 0   0%
src/lexigram/web/errors/problem_detail.py (no class)   22 0 0   100%
src/lexigram/web/events.py (no class)   2 2 0   0%
src/lexigram/web/exceptions.py HTTPError   6 6 0   0%
src/lexigram/web/exceptions.py NotFoundError   1 1 0   0%
src/lexigram/web/exceptions.py BadRequestError   1 1 0   0%
src/lexigram/web/exceptions.py UnauthorizedError   1 1 0   0%
src/lexigram/web/exceptions.py ForbiddenError   1 1 0   0%
src/lexigram/web/exceptions.py MethodNotAllowedError   1 1 0   0%
src/lexigram/web/exceptions.py ConflictError   1 1 0   0%
src/lexigram/web/exceptions.py UnprocessableEntityError   1 1 0   0%
src/lexigram/web/exceptions.py InternalServerError   1 1 0   0%
src/lexigram/web/exceptions.py DependencyResolutionError   4 4 0   0%
src/lexigram/web/exceptions.py RateLimitError   2 2 0   0%
src/lexigram/web/exceptions.py TooManyConnectionsError   1 1 0   0%
src/lexigram/web/exceptions.py (no class)   40 0 0   100%
src/lexigram/web/filters/__init__.py (no class)   5 0 0   100%
src/lexigram/web/filters/builtin.py ValidationErrorFilter   21 21 0   0%
src/lexigram/web/filters/builtin.py DependencyResolutionFilter   4 4 0   0%
src/lexigram/web/filters/builtin.py DefaultExceptionFilter   29 29 0   0%
src/lexigram/web/filters/builtin.py (no class)   17 0 0   100%
src/lexigram/web/filters/decorators.py (no class)   19 11 1   42%
src/lexigram/web/filters/pipeline.py FilterPipeline   34 26 0   24%
src/lexigram/web/filters/pipeline.py (no class)   24 3 0   88%
src/lexigram/web/hooks.py WebRequestReceivedHook   0 0 0   100%
src/lexigram/web/hooks.py WebResponsePreparedHook   0 0 0   100%
src/lexigram/web/hooks.py WebServerStartedHook   0 0 0   100%
src/lexigram/web/hooks.py WebServerStoppedHook   0 0 0   100%
src/lexigram/web/hooks.py (no class)   15 0 0   100%
src/lexigram/web/integrations/__init__.py (no class)   10 0 0   100%
src/lexigram/web/integrations/auth.py AuthIntegration   47 47 0   0%
src/lexigram/web/integrations/auth.py (no class)   14 0 0   100%
src/lexigram/web/integrations/cache.py CacheIntegration   15 15 0   0%
src/lexigram/web/integrations/cache.py (no class)   10 0 2   100%
src/lexigram/web/integrations/debug.py DebugIntegration   6 6 0   0%
src/lexigram/web/integrations/debug.py (no class)   10 0 0   100%
src/lexigram/web/integrations/graphql.py GraphQLIntegration   33 33 0   0%
src/lexigram/web/integrations/graphql.py (no class)   9 0 2   100%
src/lexigram/web/integrations/rate_limit.py RateLimitIntegration   17 17 0   0%
src/lexigram/web/integrations/rate_limit.py (no class)   14 0 0   100%
src/lexigram/web/integrations/setup.py (no class)   44 32 2   27%
src/lexigram/web/integrations/sql.py SQLIntegration   11 11 0   0%
src/lexigram/web/integrations/sql.py (no class)   11 0 2   100%
src/lexigram/web/integrations/starlette.py (no class)   14 14 0   0%
src/lexigram/web/integrations/throttle.py RateLimitModule   13 13 0   0%
src/lexigram/web/integrations/throttle.py RateLimitModule.configure._RateLimitModuleClass   0 0 0   100%
src/lexigram/web/integrations/throttle.py (no class)   20 9 4   55%
src/lexigram/web/interceptors/__init__.py (no class)   10 0 0   100%
src/lexigram/web/interceptors/builtin/cache.py CacheInterceptor   39 39 0   0%
src/lexigram/web/interceptors/builtin/cache.py (no class)   12 0 2   100%
src/lexigram/web/interceptors/builtin/logging.py LoggingInterceptor   32 32 0   0%
src/lexigram/web/interceptors/builtin/logging.py (no class)   11 0 1   100%
src/lexigram/web/interceptors/builtin/timing.py HandlerTimingInterceptor   15 15 0   0%
src/lexigram/web/interceptors/builtin/timing.py (no class)   8 0 0   100%
src/lexigram/web/interceptors/builtin/transform.py TransformInterceptor   10 10 0   0%
src/lexigram/web/interceptors/builtin/transform.py (no class)   9 0 2   100%
src/lexigram/web/interceptors/pipeline.py DefaultCallHandler   2 2 0   0%
src/lexigram/web/interceptors/pipeline.py InterceptorChain   9 9 0   0%
src/lexigram/web/interceptors/pipeline.py InterceptorPipeline   13 13 0   0%
src/lexigram/web/interceptors/pipeline.py (no class)   20 0 2   100%
src/lexigram/web/middleware/__init__.py (no class)   16 0 0   100%
src/lexigram/web/middleware/access_log.py AccessLogMiddleware   29 29 0   0%
src/lexigram/web/middleware/access_log.py (no class)   11 0 3   100%
src/lexigram/web/middleware/adapter.py _LexigramMiddlewareAdapter   48 48 0   0%
src/lexigram/web/middleware/adapter.py _SimpleASGIMiddlewareAdapter   12 12 0   0%
src/lexigram/web/middleware/adapter.py (no class)   16 16 0   0%
src/lexigram/web/middleware/auth.py AuthenticationMiddleware   67 67 0   0%
src/lexigram/web/middleware/auth.py (no class)   14 0 0   100%
src/lexigram/web/middleware/base.py MiddlewarePriority   0 0 0   100%
src/lexigram/web/middleware/base.py MiddlewareChain   9 9 0   0%
src/lexigram/web/middleware/base.py MiddlewareRegistry   30 30 0   0%
src/lexigram/web/middleware/base.py (no class)   22 0 0   100%
src/lexigram/web/middleware/body_limit.py RequestBodySizeLimitMiddleware   31 31 0   0%
src/lexigram/web/middleware/body_limit.py (no class)   14 4 0   71%
src/lexigram/web/middleware/compression.py CompressionMiddleware   48 48 0   0%
src/lexigram/web/middleware/compression.py (no class)   10 0 0   100%
src/lexigram/web/middleware/cors.py CORSMiddleware   9 9 0   0%
src/lexigram/web/middleware/cors.py (no class)   17 3 0   82%
src/lexigram/web/middleware/di.py (no class)   3 3 0   0%
src/lexigram/web/middleware/di_scope.py DIScopeMiddleware   46 46 0   0%
src/lexigram/web/middleware/di_scope.py (no class)   10 0 3   100%
src/lexigram/web/middleware/hooks.py WebHooksMiddleware   18 18 0   0%
src/lexigram/web/middleware/hooks.py (no class)   10 0 2   100%
src/lexigram/web/middleware/host.py HostValidationMiddleware   29 29 0   0%
src/lexigram/web/middleware/host.py (no class)   10 0 2   100%
src/lexigram/web/middleware/manager.py WebMiddlewareManager   6 6 0   0%
src/lexigram/web/middleware/manager.py (no class)   5 0 3   100%
src/lexigram/web/middleware/metrics.py MetricsCollectorProtocol   0 0 3   100%
src/lexigram/web/middleware/metrics.py MetricEntry   0 0 0   100%
src/lexigram/web/middleware/metrics.py InMemoryMetricsCollector   20 20 0   0%
src/lexigram/web/middleware/metrics.py MetricsMiddleware   41 41 0   0%
src/lexigram/web/middleware/metrics.py (no class)   35 0 8   100%
src/lexigram/web/middleware/rate_limit.py MemoryLimiter   16 16 0   0%
src/lexigram/web/middleware/rate_limit.py CacheBackendLimiter   14 14 0   0%
src/lexigram/web/middleware/rate_limit.py RateLimiter   60 60 0   0%
src/lexigram/web/middleware/rate_limit.py RateLimitMiddleware   43 43 0   0%
src/lexigram/web/middleware/rate_limit.py (no class)   59 25 2   58%
src/lexigram/web/middleware/registry.py _MiddlewareAdapterProtocol   0 0 2   100%
src/lexigram/web/middleware/registry.py _StarletteMiddlewareAdapter   2 2 0   0%
src/lexigram/web/middleware/registry.py _TupleMiddlewareAdapter   4 4 0   0%
src/lexigram/web/middleware/registry.py _DIScopeMiddlewareAdapter   2 2 0   0%
src/lexigram/web/middleware/registry.py _HTTPMiddlewareAdapterBase   3 3 0   0%
src/lexigram/web/middleware/registry.py MiddlewareAdapterRegistry   12 12 0   0%
src/lexigram/web/middleware/registry.py (no class)   24 0 3   100%
src/lexigram/web/middleware/request_context.py RequestContextMiddleware   41 41 0   0%
src/lexigram/web/middleware/request_context.py (no class)   11 0 0   100%
src/lexigram/web/middleware/request_id.py RequestIDMiddleware   24 24 0   0%
src/lexigram/web/middleware/request_id.py RequestIDLogFilter   4 4 0   0%
src/lexigram/web/middleware/request_id.py (no class)   21 4 0   81%
src/lexigram/web/middleware/role_guard.py RoleGuardRule   0 0 0   100%
src/lexigram/web/middleware/role_guard.py RoleResolverProtocol   0 0 1   100%
src/lexigram/web/middleware/role_guard.py RoleGuardMiddleware   31 31 0   0%
src/lexigram/web/middleware/role_guard.py (no class)   21 0 2   100%
src/lexigram/web/middleware/sanitization.py InputSanitizationMiddleware   18 18 0   0%
src/lexigram/web/middleware/sanitization.py (no class)   19 5 0   74%
src/lexigram/web/middleware/security.py SecurityHeadersMiddleware   50 50 0   0%
src/lexigram/web/middleware/security.py (no class)   20 3 2   85%
src/lexigram/web/middleware/stack.py DefaultMiddlewareStack   14 14 0   0%
src/lexigram/web/middleware/stack.py (no class)   8 0 4   100%
src/lexigram/web/middleware/static.py StaticFilesMiddleware   26 26 0   0%
src/lexigram/web/middleware/static.py (no class)   13 0 0   100%
src/lexigram/web/middleware/timing.py TimingMiddleware   15 15 0   0%
src/lexigram/web/middleware/timing.py (no class)   7 0 0   100%
src/lexigram/web/middleware/tracing.py (no class)   25 16 2   36%
src/lexigram/web/middleware/unified.py RequestResponseMiddlewareAdapter   28 28 0   0%
src/lexigram/web/middleware/unified.py RequestResponseMiddlewareAdapter.__call__.SimpleResponse   3 3 0   0%
src/lexigram/web/middleware/unified.py ASGIMiddlewareAdapter   2 2 0   0%
src/lexigram/web/middleware/unified.py (no class)   8 0 4   100%
src/lexigram/web/module.py WebModule   20 20 0   0%
src/lexigram/web/module.py (no class)   13 0 0   100%
src/lexigram/web/pagination/__init__.py (no class)   3 0 0   100%
src/lexigram/web/pagination/models.py PageRequest   2 2 0   0%
src/lexigram/web/pagination/models.py Page   6 6 0   0%
src/lexigram/web/pagination/models.py (no class)   51 16 2   69%
src/lexigram/web/pipes/__init__.py (no class)   9 0 0   100%
src/lexigram/web/pipes/builtin/file.py FileSizeValidationPipe   10 10 0   0%
src/lexigram/web/pipes/builtin/file.py FileTypeValidationPipe   13 13 0   0%
src/lexigram/web/pipes/builtin/file.py TrimPipe   5 5 0   0%
src/lexigram/web/pipes/builtin/file.py (no class)   12 0 3   100%
src/lexigram/web/pipes/builtin/parse.py ParseIntPipe   13 13 0   0%
src/lexigram/web/pipes/builtin/parse.py ParseUUIDPipe   8 8 0   0%
src/lexigram/web/pipes/builtin/parse.py ParseBoolPipe   10 10 0   0%
src/lexigram/web/pipes/builtin/parse.py ParseDatePipe   20 20 0   0%
src/lexigram/web/pipes/builtin/parse.py DefaultValuePipe   4 4 0   0%
src/lexigram/web/pipes/builtin/parse.py (no class)   20 0 5   100%
src/lexigram/web/pipes/builtin/validation.py ValidationPipe   35 35 0   0%
src/lexigram/web/pipes/builtin/validation.py (no class)   7 0 1   100%
src/lexigram/web/pipes/decorators.py (no class)   19 11 1   42%
src/lexigram/web/pipes/pipeline.py PipePipeline   19 19 0   0%
src/lexigram/web/pipes/pipeline.py (no class)   10 0 2   100%
src/lexigram/web/protocols.py ParamMetadata   0 0 0   100%
src/lexigram/web/protocols.py PipeProtocol   0 0 1   100%
src/lexigram/web/protocols.py CallHandlerProtocol   0 0 1   100%
src/lexigram/web/protocols.py WebInterceptorProtocol   0 0 1   100%
src/lexigram/web/protocols.py WebInterceptorBase   1 1 0   0%
src/lexigram/web/protocols.py WebAppAccessorProtocol   0 0 1   100%
src/lexigram/web/protocols.py ControllerSourceProtocol   0 0 1   100%
src/lexigram/web/protocols.py ConfigAccessorProtocol   0 0 4   100%
src/lexigram/web/protocols.py ProviderResourcesProtocol   0 0 2   100%
src/lexigram/web/protocols.py WebProviderProtocol   0 0 0   100%
src/lexigram/web/protocols.py (no class)   51 1 19   98%
src/lexigram/web/quickstart/__init__.py (no class)   3 0 0   100%
src/lexigram/web/quickstart/core.py _PendingRoute   0 0 0   100%
src/lexigram/web/quickstart/core.py _QuickstartApp   62 56 0   10%
src/lexigram/web/quickstart/core.py (no class)   41 17 2   59%
src/lexigram/web/responses/__init__.py (no class)   3 3 0   0%
src/lexigram/web/responses/adapter.py StarletteResponseAdapter   4 4 0   0%
src/lexigram/web/responses/adapter.py (no class)   8 8 0   0%
src/lexigram/web/routing/__init__.py (no class)   23 5 0   78%
src/lexigram/web/routing/caching.py (no class)   80 64 3   20%
src/lexigram/web/routing/controller.py GenericController   36 36 0   0%
src/lexigram/web/routing/controller.py (no class)   31 0 0   100%
src/lexigram/web/routing/controller_registry.py ControllerRegistry   17 15 0   12%
src/lexigram/web/routing/controller_registry.py (no class)   20 6 0   70%
src/lexigram/web/routing/controllers.py Controller   15 15 0   0%
src/lexigram/web/routing/controllers.py (no class)   6 0 0   100%
src/lexigram/web/routing/cqrs.py CQRSController   9 9 0   0%
src/lexigram/web/routing/cqrs.py (no class)   10 0 0   100%
src/lexigram/web/routing/debug.py (no class)   101 101 2   0%
src/lexigram/web/routing/decorators.py (no class)   27 5 0   81%
src/lexigram/web/routing/discovery.py (no class)   49 39 0   20%
src/lexigram/web/routing/execution_context.py WebExecutionContext   14 14 0   0%
src/lexigram/web/routing/execution_context.py (no class)   20 0 2   100%
src/lexigram/web/routing/groups.py RouteGroup   19 19 0   0%
src/lexigram/web/routing/groups.py (no class)   11 3 4   73%
src/lexigram/web/routing/health.py (no class)   61 61 4   0%
src/lexigram/web/routing/health_checks.py ComponentHealth   0 0 0   100%
src/lexigram/web/routing/health_checks.py HealthCheckResponse   0 0 0   100%
src/lexigram/web/routing/health_checks.py WebHealthChecker   57 57 0   0%
src/lexigram/web/routing/health_checks.py (no class)   28 0 3   100%
src/lexigram/web/routing/manager.py WebRouterManager   104 104 0   0%
src/lexigram/web/routing/manager.py (no class)   15 0 3   100%
src/lexigram/web/routing/openapi.py (no class)   23 23 2   0%
src/lexigram/web/routing/openapi_templates.py (no class)   24 16 0   33%
src/lexigram/web/routing/parameter_binder.py ParameterBinder   70 70 0   0%
src/lexigram/web/routing/parameter_binder.py (no class)   14 0 0   100%
src/lexigram/web/routing/parameters.py (no class)   42 22 0   48%
src/lexigram/web/routing/pipeline.py RequestPipeline   42 42 0   0%
src/lexigram/web/routing/pipeline.py (no class)   7 0 7   100%
src/lexigram/web/routing/registry.py RouteRegistry   53 48 0   9%
src/lexigram/web/routing/registry.py (no class)   22 3 2   86%
src/lexigram/web/routing/result_bridge.py ResultResponseMapper   24 24 0   0%
src/lexigram/web/routing/result_bridge.py (no class)   42 25 3   40%
src/lexigram/web/routing/route_handlers.py RouteHandlerProtocol   0 0 1   100%
src/lexigram/web/routing/route_handlers.py CoreRouteHandler   29 29 0   0%
src/lexigram/web/routing/route_handlers.py ControllerRouteHandler   23 23 0   0%
src/lexigram/web/routing/route_handlers.py OpenAPIRouteHandler   5 5 0   0%
src/lexigram/web/routing/route_handlers.py HealthRouteHandler   2 2 0   0%
src/lexigram/web/routing/route_handlers.py DebugRouteHandler   3 3 0   0%
src/lexigram/web/routing/route_handlers.py RouteHandlerRegistry   3 3 0   0%
src/lexigram/web/routing/route_handlers.py (no class)   126 101 6   20%
src/lexigram/web/routing/router.py Route   0 0 0   100%
src/lexigram/web/routing/router.py Router   108 108 0   0%
src/lexigram/web/routing/router.py (no class)   42 11 0   74%
src/lexigram/web/routing/types.py RoutableProtocol   0 0 1   100%
src/lexigram/web/routing/types.py (no class)   7 0 2   100%
src/lexigram/web/routing/validation.py _create_validation_model._ValidationBase   0 0 0   100%
src/lexigram/web/routing/validation.py validate_query_params.EmptyModel   0 0 0   100%
src/lexigram/web/routing/validation.py (no class)   274 274 0   0%
src/lexigram/web/routing/versioning.py VersioningStrategy   0 0 0   100%
src/lexigram/web/routing/versioning.py VersioningConfig   0 0 0   100%
src/lexigram/web/routing/versioning.py VersionExtractor   25 25 0   0%
src/lexigram/web/routing/versioning.py VersioningMiddleware   5 5 0   0%
src/lexigram/web/routing/versioning.py ApiVersionMetadata   3 3 0   0%
src/lexigram/web/routing/versioning.py (no class)   60 16 5   73%
src/lexigram/web/security/__init__.py (no class)   9 0 0   100%
src/lexigram/web/security/config/__init__.py (no class)   8 0 0   100%
src/lexigram/web/security/config/cors.py CORSConfig   20 20 0   0%
src/lexigram/web/security/config/cors.py (no class)   26 0 0   100%
src/lexigram/web/security/config/csp.py CSPConfig   14 14 0   0%
src/lexigram/web/security/config/csp.py (no class)   13 0 0   100%
src/lexigram/web/security/config/csrf.py CSRFConfig   11 11 0   0%
src/lexigram/web/security/config/csrf.py (no class)   26 0 0   100%
src/lexigram/web/security/config/headers.py SecurityHeadersConfig   6 6 0   0%
src/lexigram/web/security/config/headers.py HSTSConfig   0 0 0   100%
src/lexigram/web/security/config/headers.py CrossOriginConfig   0 0 0   100%
src/lexigram/web/security/config/headers.py (no class)   29 0 0   100%
src/lexigram/web/security/config/top_level.py SecurityConfig   8 8 0   0%
src/lexigram/web/security/config/top_level.py (no class)   29 0 0   100%
src/lexigram/web/security/context.py SecurityContext   5 5 0   0%
src/lexigram/web/security/context.py (no class)   21 4 2   81%
src/lexigram/web/security/cors/__init__.py (no class)   4 0 0   100%
src/lexigram/web/security/cors/middleware.py CORSMiddleware   66 66 0   0%
src/lexigram/web/security/cors/middleware.py CORSMiddlewareFactory   2 2 0   0%
src/lexigram/web/security/cors/middleware.py (no class)   17 0 2   100%
src/lexigram/web/security/csp/__init__.py (no class)   4 0 0   100%
src/lexigram/web/security/csp/builder.py CSPPolicy   14 14 0   0%
src/lexigram/web/security/csp/builder.py (no class)   26 0 0   100%
src/lexigram/web/security/csrf/__init__.py (no class)   4 0 0   100%
src/lexigram/web/security/csrf/middleware.py CSRFProtectionMiddleware   157 157 0   0%
src/lexigram/web/security/csrf/middleware.py (no class)   30 1 3   97%
src/lexigram/web/security/guards.py GuardRejection   0 0 0   100%
src/lexigram/web/security/guards.py AuthGuard   3 3 0   0%
src/lexigram/web/security/guards.py RoleGuard   7 7 0   0%
src/lexigram/web/security/guards.py PermissionGuard   13 13 0   0%
src/lexigram/web/security/guards.py (no class)   70 40 4   43%
src/lexigram/web/security/sanitization/__init__.py (no class)   3 0 0   100%
src/lexigram/web/security/sanitization/header.py HeaderSanitizer   6 6 0   0%
src/lexigram/web/security/sanitization/header.py (no class)   8 0 0   100%
src/lexigram/web/security/shortcuts.py (no class)   10 10 3   0%
src/lexigram/web/serialization/__init__.py (no class)   4 0 0   100%
src/lexigram/web/serialization/negotiator.py ContentNegotiator   49 49 0   0%
src/lexigram/web/serialization/negotiator.py (no class)   18 7 3   61%
src/lexigram/web/serialization/serializers.py AbstractMediaSerializer   0 0 3   100%
src/lexigram/web/serialization/serializers.py JSONSerializer   4 4 0   0%
src/lexigram/web/serialization/serializers.py HTMLSerializer   6 6 0   0%
src/lexigram/web/serialization/serializers.py PlainTextSerializer   5 5 0   0%
src/lexigram/web/serialization/serializers.py XMLSerializer   5 5 0   0%
src/lexigram/web/serialization/serializers.py ResponseSerializer   81 81 0   0%
src/lexigram/web/serialization/serializers.py (no class)   36 0 8   100%
src/lexigram/web/server/__init__.py (no class)   5 0 0   100%
src/lexigram/web/server/lifecycle.py ServerLifecycle   5 5 0   0%
src/lexigram/web/server/lifecycle.py (no class)   7 0 0   100%
src/lexigram/web/server/reload.py HotReloadManager   36 36 0   0%
src/lexigram/web/server/reload.py create_hot_reload_middleware.HotReloadMiddleware   9 9 0   0%
src/lexigram/web/server/reload.py (no class)   19 4 2   79%
src/lexigram/web/server/runner.py (no class)   45 35 0   22%
src/lexigram/web/server/shutdown.py GracefulShutdownManager   27 27 0   0%
src/lexigram/web/server/shutdown.py ShutdownMiddleware   11 11 0   0%
src/lexigram/web/server/shutdown.py (no class)   19 0 2   100%
src/lexigram/web/sse/__init__.py (no class)   7 0 0   100%
src/lexigram/web/sse/backpressure.py SSEBackpressureHandler   29 29 0   0%
src/lexigram/web/sse/backpressure.py SSERetryTracker   19 19 0   0%
src/lexigram/web/sse/backpressure.py SSEConnectionEvents   15 15 0   0%
src/lexigram/web/sse/backpressure.py SSEResponse   42 42 0   0%
src/lexigram/web/sse/backpressure.py (no class)   28 0 2   100%
src/lexigram/web/sse/decorators.py (no class)   14 10 0   29%
src/lexigram/web/sse/handler.py AbstractSSEHandler   39 39 1   0%
src/lexigram/web/sse/handler.py (no class)   34 0 0   100%
src/lexigram/web/sse/heartbeat.py SSEHeartbeatScheduler   43 43 0   0%
src/lexigram/web/sse/heartbeat.py (no class)   24 4 0   83%
src/lexigram/web/static/__init__.py (no class)   3 0 0   100%
src/lexigram/web/static/provider.py StaticFileProvider   4 4 0   0%
src/lexigram/web/static/provider.py (no class)   4 0 0   100%
src/lexigram/web/templates/__init__.py (no class)   3 0 0   100%
src/lexigram/web/templates/core.py Jinja2Templates   43 43 0   0%
src/lexigram/web/templates/core.py TemplateResponse   2 2 0   0%
src/lexigram/web/templates/core.py (no class)   32 10 0   69%
src/lexigram/web/transport/__init__.py (no class)   15 9 6   40%
src/lexigram/web/transport/reactive.py (no class)   37 29 0   22%
src/lexigram/web/transport/responses.py Response   0 0 0   100%
src/lexigram/web/transport/responses.py FastJSONResponse   3 3 0   0%
src/lexigram/web/transport/responses.py JSONResponse   0 0 0   100%
src/lexigram/web/transport/responses.py HTMLResponse   0 0 0   100%
src/lexigram/web/transport/responses.py HTMLContent   0 0 0   100%
src/lexigram/web/transport/responses.py HTMXResponse   12 12 0   0%
src/lexigram/web/transport/responses.py FileResponse   0 0 0   100%
src/lexigram/web/transport/responses.py StreamingResponse   0 0 0   100%
src/lexigram/web/transport/responses.py RedirectResponse   0 0 0   100%
src/lexigram/web/transport/responses.py (no class)   36 5 0   86%
src/lexigram/web/transport/sse.py ServerSentEvent   22 22 0   0%
src/lexigram/web/transport/sse.py EventSourceResponse   6 6 0   0%
src/lexigram/web/transport/sse.py (no class)   12 1 0   92%
src/lexigram/web/transport/websocket_guards.py GuardedWebSocket   18 18 0   0%
src/lexigram/web/transport/websocket_guards.py (no class)   26 6 4   77%
src/lexigram/web/transport/websockets.py WebSocket   9 9 0   0%
src/lexigram/web/transport/websockets.py (no class)   14 0 0   100%
src/lexigram/web/types.py HTTPMethod   0 0 0   100%
src/lexigram/web/types.py ContentType   0 0 0   100%
src/lexigram/web/types.py StatusCode   0 0 0   100%
src/lexigram/web/types.py PipeBase   1 1 0   0%
src/lexigram/web/types.py (no class)   47 0 0   100%
src/lexigram/web/uploads/__init__.py (no class)   3 0 0   100%
src/lexigram/web/uploads/pipeline.py FileUpload   26 26 0   0%
src/lexigram/web/uploads/pipeline.py AbstractFileValidator   0 0 0   100%
src/lexigram/web/uploads/pipeline.py FileValidationError   0 0 0   100%
src/lexigram/web/uploads/pipeline.py FileSizeValidator   4 4 0   0%
src/lexigram/web/uploads/pipeline.py FileTypeValidator   4 4 0   0%
src/lexigram/web/uploads/pipeline.py FileExtensionValidator   4 4 0   0%
src/lexigram/web/uploads/pipeline.py FileUploadPipeline   12 12 0   0%
src/lexigram/web/uploads/pipeline.py (no class)   41 0 2   100%
src/lexigram/web/websocket/__init__.py (no class)   9 0 0   100%
src/lexigram/web/websocket/connection_id.py ConnectionIDManager   6 6 0   0%
src/lexigram/web/websocket/connection_id.py (no class)   10 0 2   100%
src/lexigram/web/websocket/decorators.py (no class)   16 12 0   25%
src/lexigram/web/websocket/gateway.py WebSocketGateway   51 51 0   0%
src/lexigram/web/websocket/gateway.py (no class)   53 24 4   55%
src/lexigram/web/websocket/handler.py AbstractWebSocketHandler   85 85 0   0%
src/lexigram/web/websocket/handler.py (no class)   41 0 2   100%
src/lexigram/web/websocket/rate_limiter.py _BucketState   0 0 0   100%
src/lexigram/web/websocket/rate_limiter.py WebSocketRateLimiter   20 20 0   0%
src/lexigram/web/websocket/rate_limiter.py (no class)   15 0 1   100%
src/lexigram/web/websocket/rooms.py RoomError   0 0 0   100%
src/lexigram/web/websocket/rooms.py RoomManager   52 52 0   0%
src/lexigram/web/websocket/rooms.py (no class)   31 8 2   74%
Total     8325 5626 250   32%

No items found using the specified filter.