Coverage report: 76%

Files Functions Classes

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

File function   statements missing excluded   coverage
src/lexigram/graphql/__init__.py __getattr__   8 1 0   88%
src/lexigram/graphql/__init__.py __dir__   1 1 0   0%
src/lexigram/graphql/__init__.py (no function)   9 0 24   100%
src/lexigram/graphql/cli/__init__.py (no function)   4 0 0   100%
src/lexigram/graphql/cli/contributor.py GraphQLCliContributor.contributor_id   1 0 0   100%
src/lexigram/graphql/cli/contributor.py GraphQLCliContributor.get_generators   1 0 0   100%
src/lexigram/graphql/cli/contributor.py (no function)   7 0 0   100%
src/lexigram/graphql/cli/generators/__init__.py (no function)   3 0 0   100%
src/lexigram/graphql/cli/generators/dataloader.py DataLoaderGenerator.__init__   3 0 0   100%
src/lexigram/graphql/cli/generators/dataloader.py DataLoaderGenerator.get_name   1 0 0   100%
src/lexigram/graphql/cli/generators/dataloader.py DataLoaderGenerator.get_description   1 0 0   100%
src/lexigram/graphql/cli/generators/dataloader.py DataLoaderGenerator.generate   7 7 0   0%
src/lexigram/graphql/cli/generators/dataloader.py (no function)   13 0 0   100%
src/lexigram/graphql/config.py GraphQLConfig._sync_debug_to_errors   3 0 0   100%
src/lexigram/graphql/config.py GraphQLConfig._auto_disable_playground_in_production   4 0 0   100%
src/lexigram/graphql/config.py GraphQLConfig._auto_disable_introspection_in_production   4 0 0   100%
src/lexigram/graphql/config.py GraphQLConfig.is_production   2 2 0   0%
src/lexigram/graphql/config.py GraphQLConfig.is_development   2 2 0   0%
src/lexigram/graphql/config.py GraphQLConfig.is_test   2 2 0   0%
src/lexigram/graphql/config.py GraphQLConfig.development   1 1 0   0%
src/lexigram/graphql/config.py GraphQLConfig.production   1 0 0   100%
src/lexigram/graphql/config.py (no function)   123 0 2   100%
src/lexigram/graphql/constants.py (no function)   20 2 0   90%
src/lexigram/graphql/controllers/__init__.py (no function)   3 0 0   100%
src/lexigram/graphql/controllers/graphql.py GraphQLController.__init__   1 0 0   100%
src/lexigram/graphql/controllers/graphql.py GraphQLController.collect_routes   14 0 0   100%
src/lexigram/graphql/controllers/graphql.py GraphQLController.execute   32 2 0   94%
src/lexigram/graphql/controllers/graphql.py GraphQLController._get_provider   8 0 0   100%
src/lexigram/graphql/controllers/graphql.py GraphQLSubscriptionController.__init__   1 1 0   0%
src/lexigram/graphql/controllers/graphql.py GraphQLSubscriptionController.collect_routes   1 0 0   100%
src/lexigram/graphql/controllers/graphql.py (no function)   22 0 4   100%
src/lexigram/graphql/core/__init__.py (no function)   9 0 0   100%
src/lexigram/graphql/core/batching.py BatchExecutor.__init__   2 0 0   100%
src/lexigram/graphql/core/batching.py BatchExecutor.max_batch_size   1 0 0   100%
src/lexigram/graphql/core/batching.py BatchExecutor.execute_batch   13 0 0   100%
src/lexigram/graphql/core/batching.py BatchExecutor._execute_single   7 3 0   57%
src/lexigram/graphql/core/batching.py is_batch_request   1 0 0   100%
src/lexigram/graphql/core/batching.py parse_batch_request   5 0 0   100%
src/lexigram/graphql/core/batching.py (no function)   23 0 0   100%
src/lexigram/graphql/core/caching.py _MemoryCacheShim.__init__   3 0 0   100%
src/lexigram/graphql/core/caching.py _MemoryCacheShim._now   1 1 0   0%
src/lexigram/graphql/core/caching.py _MemoryCacheShim.get   7 2 0   71%
src/lexigram/graphql/core/caching.py _MemoryCacheShim.set   4 0 0   100%
src/lexigram/graphql/core/caching.py _MemoryCacheShim.delete   3 0 0   100%
src/lexigram/graphql/core/caching.py _MemoryCacheShim.delete_many   3 0 0   100%
src/lexigram/graphql/core/caching.py _MemoryCacheShim.exists   7 2 0   71%
src/lexigram/graphql/core/caching.py _MemoryCacheShim.clear   2 0 0   100%
src/lexigram/graphql/core/caching.py _MemoryCacheShim.get_many   6 0 0   100%
src/lexigram/graphql/core/caching.py _MemoryCacheShim.set_many   3 0 0   100%
src/lexigram/graphql/core/caching.py _MemoryCacheShim.acquire_lock   4 0 0   100%
src/lexigram/graphql/core/caching.py _MemoryCacheShim.release_lock   2 0 0   100%
src/lexigram/graphql/core/caching.py compute_cache_key   14 0 0   100%
src/lexigram/graphql/core/caching.py ResponseCache.__init__   3 0 0   100%
src/lexigram/graphql/core/caching.py ResponseCache.enabled   1 0 0   100%
src/lexigram/graphql/core/caching.py ResponseCache.get   7 0 0   100%
src/lexigram/graphql/core/caching.py ResponseCache.set   7 0 0   100%
src/lexigram/graphql/core/caching.py ResponseCache.invalidate   4 0 0   100%
src/lexigram/graphql/core/caching.py ResponseCache.clear   4 0 0   100%
src/lexigram/graphql/core/caching.py create_response_cache   4 0 0   100%
src/lexigram/graphql/core/caching.py (no function)   39 0 2   100%
src/lexigram/graphql/core/context/__init__.py (no function)   5 0 0   100%
src/lexigram/graphql/core/context/_context.py GraphQLContext.get_dataloader   1 1 0   0%
src/lexigram/graphql/core/context/_context.py GraphQLContext.set_dataloader   1 1 0   0%
src/lexigram/graphql/core/context/_context.py GraphQLContext.get_metadata   1 1 0   0%
src/lexigram/graphql/core/context/_context.py GraphQLContext.set_metadata   1 1 0   0%
src/lexigram/graphql/core/context/_context.py GraphQLContext.operation_name   3 3 0   0%
src/lexigram/graphql/core/context/_context.py GraphQLContext.variables   3 3 0   0%
src/lexigram/graphql/core/context/_context.py GraphQLContext.elapsed_ms   2 2 0   0%
src/lexigram/graphql/core/context/_context.py GraphQLContext.dispose_scope   6 5 0   17%
src/lexigram/graphql/core/context/_context.py (no function)   38 0 2   100%
src/lexigram/graphql/core/context/_factory.py ContextFactory.__init__   9 1 0   89%
src/lexigram/graphql/core/context/_factory.py ContextFactory._generate_request_id   3 1 0   67%
src/lexigram/graphql/core/context/_factory.py ContextFactory._get_current_time   1 0 0   100%
src/lexigram/graphql/core/context/_factory.py ContextFactory.create_context   11 1 0   91%
src/lexigram/graphql/core/context/_factory.py ContextFactory.create_context_sync   12 12 0   0%
src/lexigram/graphql/core/context/_factory.py ContextFactory._resolve_user_identity   34 18 0   47%
src/lexigram/graphql/core/context/_factory.py ContextFactory._optional_authenticate   11 5 0   55%
src/lexigram/graphql/core/context/_factory.py ContextFactory._resolve_principal   10 2 0   80%
src/lexigram/graphql/core/context/_factory.py ContextFactory.register_dataloader   1 1 0   0%
src/lexigram/graphql/core/context/_factory.py ContextFactory.from_dict   2 2 0   0%
src/lexigram/graphql/core/context/_factory.py (no function)   28 0 2   100%
src/lexigram/graphql/core/context/_models.py GraphQLResponse.has_errors   1 0 0   100%
src/lexigram/graphql/core/context/_models.py GraphQLResponse.is_successful   1 1 0   0%
src/lexigram/graphql/core/context/_models.py GraphQLResponse.add_error   3 0 0   100%
src/lexigram/graphql/core/context/_models.py (no function)   38 0 2   100%
src/lexigram/graphql/core/error_formatter.py _is_safe_error   3 1 0   67%
src/lexigram/graphql/core/error_formatter.py ErrorFormatter.__init__   1 0 0   100%
src/lexigram/graphql/core/error_formatter.py ErrorFormatter.format_error   27 1 0   96%
src/lexigram/graphql/core/error_formatter.py ErrorFormatter.format_errors   1 0 0   100%
src/lexigram/graphql/core/error_formatter.py create_error_formatter   1 0 0   100%
src/lexigram/graphql/core/error_formatter.py (no function)   12 0 0   100%
src/lexigram/graphql/core/error_logging.py ErrorLogEntry.to_dict   1 0 0   100%
src/lexigram/graphql/core/error_logging.py ErrorLogger.__init__   4 0 0   100%
src/lexigram/graphql/core/error_logging.py ErrorLogger.log_error   11 0 0   100%
src/lexigram/graphql/core/error_logging.py ErrorLogger._mask_variables   7 0 0   100%
src/lexigram/graphql/core/error_logging.py QueryLogger.__init__   1 0 0   100%
src/lexigram/graphql/core/error_logging.py QueryLogger.log_query   7 1 0   86%
src/lexigram/graphql/core/error_logging.py QueryLogger._extract_operation_type   6 0 0   100%
src/lexigram/graphql/core/error_logging.py (no function)   30 0 0   100%
src/lexigram/graphql/core/execution.py ExecutionContextProtocol.mark_complete   1 0 0   100%
src/lexigram/graphql/core/execution.py ExecutionContextProtocol.duration_ms   2 0 0   100%
src/lexigram/graphql/core/execution.py ExecutionContextProtocol.add_error   1 0 0   100%
src/lexigram/graphql/core/execution.py ExecutionContextProtocol.has_errors   1 1 0   0%
src/lexigram/graphql/core/execution.py GraphQLExecutorProtocol.__init__   5 0 0   100%
src/lexigram/graphql/core/execution.py GraphQLExecutorProtocol.schema   1 1 0   0%
src/lexigram/graphql/core/execution.py GraphQLExecutorProtocol.execute   31 8 0   74%
src/lexigram/graphql/core/execution.py GraphQLExecutorProtocol._execute_internal   41 11 0   73%
src/lexigram/graphql/core/execution.py GraphQLExecutorProtocol.get_metrics   3 3 0   0%
src/lexigram/graphql/core/execution.py execute_query   5 1 0   80%
src/lexigram/graphql/core/execution.py (no function)   37 0 5   100%
src/lexigram/graphql/core/introspection.py get_introspection_query   3 0 0   100%
src/lexigram/graphql/core/introspection.py IntrospectionHandler.__init__   3 0 0   100%
src/lexigram/graphql/core/introspection.py IntrospectionHandler.enabled   1 0 0   100%
src/lexigram/graphql/core/introspection.py IntrospectionHandler.enable   1 0 0   100%
src/lexigram/graphql/core/introspection.py IntrospectionHandler.disable   1 0 0   100%
src/lexigram/graphql/core/introspection.py IntrospectionHandler.introspect   11 1 0   91%
src/lexigram/graphql/core/introspection.py IntrospectionHandler.get_types   3 0 0   100%
src/lexigram/graphql/core/introspection.py IntrospectionHandler.get_type_fields   6 0 0   100%
src/lexigram/graphql/core/introspection.py IntrospectionHandler.get_query_type   3 0 0   100%
src/lexigram/graphql/core/introspection.py IntrospectionHandler.get_mutation_type   3 0 0   100%
src/lexigram/graphql/core/introspection.py IntrospectionHandler.get_subscription_type   3 0 0   100%
src/lexigram/graphql/core/introspection.py IntrospectionHandler.clear_cache   1 0 0   100%
src/lexigram/graphql/core/introspection.py IntrospectionHandler.generate_sdl   3 0 0   100%
src/lexigram/graphql/core/introspection.py _document_has_introspection   14 4 0   71%
src/lexigram/graphql/core/introspection.py IntrospectionGuardExtension.on_validate   7 1 0   86%
src/lexigram/graphql/core/introspection.py (no function)   28 0 3   100%
src/lexigram/graphql/core/middleware.py GraphQLMiddleware.process   0 0 1   100%
src/lexigram/graphql/core/middleware.py AbstractMiddleware.__init__   1 0 0   100%
src/lexigram/graphql/core/middleware.py AbstractMiddleware.enabled   1 0 0   100%
src/lexigram/graphql/core/middleware.py AbstractMiddleware.process   1 0 0   100%
src/lexigram/graphql/core/middleware.py LoggingMiddleware.__init__   2 0 0   100%
src/lexigram/graphql/core/middleware.py LoggingMiddleware.process   12 0 0   100%
src/lexigram/graphql/core/middleware.py AuthMiddleware.__init__   2 0 0   100%
src/lexigram/graphql/core/middleware.py AuthMiddleware.process   7 0 0   100%
src/lexigram/graphql/core/middleware.py MetricsMiddleware.__init__   2 0 0   100%
src/lexigram/graphql/core/middleware.py MetricsMiddleware.process   13 0 0   100%
src/lexigram/graphql/core/middleware.py MetricsMiddleware.get_metrics   1 0 0   100%
src/lexigram/graphql/core/middleware.py MiddlewarePipeline.__init__   1 0 0   100%
src/lexigram/graphql/core/middleware.py MiddlewarePipeline.add   2 0 0   100%
src/lexigram/graphql/core/middleware.py MiddlewarePipeline.execute   7 0 0   100%
src/lexigram/graphql/core/middleware.py create_middleware_pipeline   9 0 0   100%
src/lexigram/graphql/core/middleware.py (no function)   35 0 4   100%
src/lexigram/graphql/core/persisted_queries.py PersistedQueryStore.get   0 0 1   100%
src/lexigram/graphql/core/persisted_queries.py PersistedQueryStore.put   0 0 1   100%
src/lexigram/graphql/core/persisted_queries.py InMemoryPersistedQueryStore.__init__   2 0 0   100%
src/lexigram/graphql/core/persisted_queries.py InMemoryPersistedQueryStore._now   1 1 0   0%
src/lexigram/graphql/core/persisted_queries.py InMemoryPersistedQueryStore.get   7 2 0   71%
src/lexigram/graphql/core/persisted_queries.py InMemoryPersistedQueryStore.put   2 0 0   100%
src/lexigram/graphql/core/persisted_queries.py InMemoryPersistedQueryStore.clear   1 0 0   100%
src/lexigram/graphql/core/persisted_queries.py RedisPersistedQueryStore.__init__   3 0 0   100%
src/lexigram/graphql/core/persisted_queries.py RedisPersistedQueryStore.get   7 0 0   100%
src/lexigram/graphql/core/persisted_queries.py RedisPersistedQueryStore.put   5 0 0   100%
src/lexigram/graphql/core/persisted_queries.py CacheBackendPersistedQueryStore.__init__   3 0 0   100%
src/lexigram/graphql/core/persisted_queries.py CacheBackendPersistedQueryStore.get   7 0 0   100%
src/lexigram/graphql/core/persisted_queries.py CacheBackendPersistedQueryStore.put   5 0 0   100%
src/lexigram/graphql/core/persisted_queries.py compute_query_hash   1 0 0   100%
src/lexigram/graphql/core/persisted_queries.py APQHandler.__init__   2 0 0   100%
src/lexigram/graphql/core/persisted_queries.py APQHandler.enabled   1 0 0   100%
src/lexigram/graphql/core/persisted_queries.py APQHandler.resolve_query   23 2 0   91%
src/lexigram/graphql/core/persisted_queries.py APQHandler.create_extension_response   1 0 0   100%
src/lexigram/graphql/core/persisted_queries.py create_apq_handler   6 0 0   100%
src/lexigram/graphql/core/persisted_queries.py (no function)   40 0 3   100%
src/lexigram/graphql/core/validation.py ValidationResult.add_error   2 0 0   100%
src/lexigram/graphql/core/validation.py ValidationResult.add_warning   1 1 0   0%
src/lexigram/graphql/core/validation.py SchemaValidator.__init__   7 0 0   100%
src/lexigram/graphql/core/validation.py SchemaValidator.validate_query   32 4 0   88%
src/lexigram/graphql/core/validation.py SchemaValidator._count_fields   6 0 0   100%
src/lexigram/graphql/core/validation.py SchemaValidator._count_fields._recurse   7 0 0   100%
src/lexigram/graphql/core/validation.py validate_query   2 0 0   100%
src/lexigram/graphql/core/validation.py (no function)   21 0 2   100%
src/lexigram/graphql/dataloader/__init__.py (no function)   5 0 0   100%
src/lexigram/graphql/dataloader/batch.py batch_load   2 0 0   100%
src/lexigram/graphql/dataloader/batch.py batch_load.wrapper   13 0 0   100%
src/lexigram/graphql/dataloader/batch.py BatchScheduler.__init__   6 0 0   100%
src/lexigram/graphql/dataloader/batch.py BatchScheduler.schedule   12 1 0   92%
src/lexigram/graphql/dataloader/batch.py BatchScheduler._execute   16 5 0   69%
src/lexigram/graphql/dataloader/batch.py (no function)   16 0 0   100%
src/lexigram/graphql/dataloader/cache.py LoaderCache.get   0 0 1   100%
src/lexigram/graphql/dataloader/cache.py LoaderCache.set   0 0 1   100%
src/lexigram/graphql/dataloader/cache.py LoaderCache.has   0 0 1   100%
src/lexigram/graphql/dataloader/cache.py LoaderCache.delete   0 0 1   100%
src/lexigram/graphql/dataloader/cache.py LoaderCache.clear   0 0 1   100%
src/lexigram/graphql/dataloader/cache.py LoaderCacheEntry.is_expired   3 1 0   67%
src/lexigram/graphql/dataloader/cache.py InMemoryCache.__init__   3 0 0   100%
src/lexigram/graphql/dataloader/cache.py InMemoryCache.size   1 1 0   0%
src/lexigram/graphql/dataloader/cache.py InMemoryCache.get   7 3 0   57%
src/lexigram/graphql/dataloader/cache.py InMemoryCache.set   7 3 0   57%
src/lexigram/graphql/dataloader/cache.py InMemoryCache.has   7 2 0   71%
src/lexigram/graphql/dataloader/cache.py InMemoryCache.delete   1 0 0   100%
src/lexigram/graphql/dataloader/cache.py InMemoryCache.clear   1 1 0   0%
src/lexigram/graphql/dataloader/cache.py InMemoryCache.cleanup_expired   4 4 0   0%
src/lexigram/graphql/dataloader/cache.py NoOpCache.get   1 1 0   0%
src/lexigram/graphql/dataloader/cache.py NoOpCache.set   0 0 0   100%
src/lexigram/graphql/dataloader/cache.py NoOpCache.has   1 1 0   0%
src/lexigram/graphql/dataloader/cache.py NoOpCache.delete   0 0 0   100%
src/lexigram/graphql/dataloader/cache.py NoOpCache.clear   0 0 0   100%
src/lexigram/graphql/dataloader/cache.py (no function)   43 0 6   100%
src/lexigram/graphql/dataloader/loader.py DataLoaderProtocol.__init__   6 0 0   100%
src/lexigram/graphql/dataloader/loader.py DataLoaderProtocol.config   1 0 0   100%
src/lexigram/graphql/dataloader/loader.py DataLoaderProtocol.load   11 1 0   91%
src/lexigram/graphql/dataloader/loader.py DataLoaderProtocol.load_many   1 1 0   0%
src/lexigram/graphql/dataloader/loader.py DataLoaderProtocol._dispatch_batch   13 2 0   85%
src/lexigram/graphql/dataloader/loader.py DataLoaderProtocol._execute_batch   16 0 0   100%
src/lexigram/graphql/dataloader/loader.py DataLoaderProtocol.prime   2 0 0   100%
src/lexigram/graphql/dataloader/loader.py DataLoaderProtocol.clear   1 0 0   100%
src/lexigram/graphql/dataloader/loader.py DataLoaderProtocol.clear_all   1 1 0   0%
src/lexigram/graphql/dataloader/loader.py create_loader   2 0 0   100%
src/lexigram/graphql/dataloader/loader.py (no function)   23 0 0   100%
src/lexigram/graphql/dataloader/registry.py DataLoaderRegistry.__init__   1 0 0   100%
src/lexigram/graphql/dataloader/registry.py DataLoaderRegistry.create_loaders   1 0 0   100%
src/lexigram/graphql/dataloader/registry.py DataLoaderRegistry.get_names   1 0 0   100%
src/lexigram/graphql/dataloader/registry.py dataloader   2 0 0   100%
src/lexigram/graphql/dataloader/registry.py dataloader.decorator   2 0 0   100%
src/lexigram/graphql/dataloader/registry.py (no function)   10 0 0   100%
src/lexigram/graphql/decorators.py retry_resolver   3 0 0   100%
src/lexigram/graphql/decorators.py retry_resolver.decorator   2 0 0   100%
src/lexigram/graphql/decorators.py retry_resolver.decorator.wrapper   10 0 0   100%
src/lexigram/graphql/decorators.py log_resolver   3 0 0   100%
src/lexigram/graphql/decorators.py log_resolver.wrapper   8 0 0   100%
src/lexigram/graphql/decorators.py (no function)   11 0 0   100%
src/lexigram/graphql/di/__init__.py (no function)   3 0 0   100%
src/lexigram/graphql/di/_discovery.py _require   3 3 0   0%
src/lexigram/graphql/di/_discovery.py _GraphQLDiscoveryMixin.__init__   0 0 1   100%
src/lexigram/graphql/di/_discovery.py _GraphQLDiscoveryMixin.auto_discover   11 11 0   0%
src/lexigram/graphql/di/_discovery.py _GraphQLDiscoveryMixin.auto_discover._is_strawberry_type   1 1 0   0%
src/lexigram/graphql/di/_discovery.py _GraphQLDiscoveryMixin.auto_discover._scan   31 31 0   0%
src/lexigram/graphql/di/_discovery.py (no function)   16 0 16   100%
src/lexigram/graphql/di/provider.py _require   3 3 0   0%
src/lexigram/graphql/di/provider.py GraphQLProvider.__init__   15 0 0   100%
src/lexigram/graphql/di/provider.py GraphQLProvider.from_config   1 1 0   0%
src/lexigram/graphql/di/provider.py GraphQLProvider.register   20 0 0   100%
src/lexigram/graphql/di/provider.py GraphQLProvider.boot   62 5 0   92%
src/lexigram/graphql/di/provider.py GraphQLProvider._run_schema_diff   25 23 0   8%
src/lexigram/graphql/di/provider.py GraphQLProvider.executor   1 1 0   0%
src/lexigram/graphql/di/provider.py GraphQLProvider.context_factory   1 1 0   0%
src/lexigram/graphql/di/provider.py GraphQLProvider.shutdown   10 10 0   0%
src/lexigram/graphql/di/provider.py GraphQLProvider.health_check   2 2 0   0%
src/lexigram/graphql/di/provider.py (no function)   31 0 8   100%
src/lexigram/graphql/directives/__init__.py (no function)   4 0 0   100%
src/lexigram/graphql/directives/builtin.py DeprecationDirectiveHandler.apply_directive   6 0 0   100%
src/lexigram/graphql/directives/builtin.py (no function)   4 0 0   100%
src/lexigram/graphql/directives/registry.py DirectiveRegistry.__init__   2 0 0   100%
src/lexigram/graphql/directives/registry.py DirectiveRegistry.register   1 0 0   100%
src/lexigram/graphql/directives/registry.py DirectiveRegistry.on   2 0 0   100%
src/lexigram/graphql/directives/registry.py DirectiveRegistry.on.decorator   2 0 0   100%
src/lexigram/graphql/directives/registry.py DirectiveRegistry.apply_directive   4 0 0   100%
src/lexigram/graphql/directives/registry.py DirectiveRegistry.__contains__   1 0 0   100%
src/lexigram/graphql/directives/registry.py DirectiveRegistry.__repr__   2 0 0   100%
src/lexigram/graphql/directives/registry.py (no function)   9 0 0   100%
src/lexigram/graphql/events.py (no function)   23 0 2   100%
src/lexigram/graphql/exceptions.py GraphQLError.__init__   4 0 0   100%
src/lexigram/graphql/exceptions.py (no function)   57 0 0   100%
src/lexigram/graphql/hooks.py (no function)   13 0 0   100%
src/lexigram/graphql/module.py GraphQLModule.configure   2 0 0   100%
src/lexigram/graphql/module.py GraphQLModule.stub   2 2 0   0%
src/lexigram/graphql/module.py (no function)   11 0 0   100%
src/lexigram/graphql/monitoring/__init__.py (no function)   4 0 0   100%
src/lexigram/graphql/monitoring/metrics.py GraphQLMetrics.record_request   11 0 0   100%
src/lexigram/graphql/monitoring/metrics.py GraphQLMetrics.record_error   1 0 0   100%
src/lexigram/graphql/monitoring/metrics.py GraphQLMetrics.to_dict   1 0 0   100%
src/lexigram/graphql/monitoring/metrics.py MetricsCollectorProtocol.__init__   4 0 0   100%
src/lexigram/graphql/monitoring/metrics.py MetricsCollectorProtocol.record   10 0 0   100%
src/lexigram/graphql/monitoring/metrics.py MetricsCollectorProtocol.record_error   2 0 0   100%
src/lexigram/graphql/monitoring/metrics.py MetricsCollectorProtocol.get_metrics   1 0 0   100%
src/lexigram/graphql/monitoring/metrics.py MetricsCollectorProtocol.get_recent_stats   1 0 0   100%
src/lexigram/graphql/monitoring/metrics.py MetricsCollectorProtocol.reset   2 0 0   100%
src/lexigram/graphql/monitoring/metrics.py MetricsCollectorProtocol.close   1 0 0   100%
src/lexigram/graphql/monitoring/metrics.py get_metrics_collector   5 5 0   0%
src/lexigram/graphql/monitoring/metrics.py MetricsExtension.__init__   2 0 0   100%
src/lexigram/graphql/monitoring/metrics.py MetricsExtension.on_operation   23 9 0   61%
src/lexigram/graphql/monitoring/metrics.py (no function)   44 0 3   100%
src/lexigram/graphql/monitoring/tracing.py TraceSpan.end   2 2 0   0%
src/lexigram/graphql/monitoring/tracing.py TraceSpan.add_child   1 1 0   0%
src/lexigram/graphql/monitoring/tracing.py TraceSpan.to_dict   1 1 0   0%
src/lexigram/graphql/monitoring/tracing.py ExecutionTrace.end   2 2 0   0%
src/lexigram/graphql/monitoring/tracing.py ExecutionTrace.to_dict   1 1 0   0%
src/lexigram/graphql/monitoring/tracing.py TracingExtension.__init__   5 5 0   0%
src/lexigram/graphql/monitoring/tracing.py TracingExtension.on_operation   18 18 0   0%
src/lexigram/graphql/monitoring/tracing.py TracingExtension.resolve   20 20 0   0%
src/lexigram/graphql/monitoring/tracing.py trace_resolver   2 2 0   0%
src/lexigram/graphql/monitoring/tracing.py trace_resolver.decorator   9 9 0   0%
src/lexigram/graphql/monitoring/tracing.py trace_resolver.decorator.async_wrapper   8 8 0   0%
src/lexigram/graphql/monitoring/tracing.py trace_resolver.decorator.sync_wrapper   5 5 0   0%
src/lexigram/graphql/monitoring/tracing.py (no function)   39 0 2   100%
src/lexigram/graphql/pagination/__init__.py (no function)   4 0 0   100%
src/lexigram/graphql/pagination/helpers.py encode_cursor   2 2 0   0%
src/lexigram/graphql/pagination/helpers.py decode_cursor   7 7 0   0%
src/lexigram/graphql/pagination/helpers.py encode_cursor_from_id   2 2 0   0%
src/lexigram/graphql/pagination/helpers.py decode_cursor_to_id   7 7 0   0%
src/lexigram/graphql/pagination/helpers.py paginate_connection   31 31 0   0%
src/lexigram/graphql/pagination/helpers.py paginate_offset   11 11 0   0%
src/lexigram/graphql/pagination/helpers.py calculate_offset   18 18 0   0%
src/lexigram/graphql/pagination/helpers.py (no function)   13 0 2   100%
src/lexigram/graphql/pagination/types.py CursorPaginationInput.validate   8 0 0   100%
src/lexigram/graphql/pagination/types.py OffsetPaginationInput.validate   4 0 0   100%
src/lexigram/graphql/pagination/types.py (no function)   36 0 0   100%
src/lexigram/graphql/protocols.py (no function)   10 10 0   0%
src/lexigram/graphql/resolvers/__init__.py (no function)   3 3 0   0%
src/lexigram/graphql/resolvers/adapter.py ResolverAdapter.__init__   6 6 0   0%
src/lexigram/graphql/resolvers/adapter.py ResolverAdapter.resolve   6 6 0   0%
src/lexigram/graphql/resolvers/adapter.py ResolverAdapter.__repr__   2 2 0   0%
src/lexigram/graphql/resolvers/adapter.py resolver   1 1 0   0%
src/lexigram/graphql/resolvers/adapter.py (no function)   11 11 2   0%
src/lexigram/graphql/scalars/__init__.py (no function)   8 0 0   100%
src/lexigram/graphql/scalars/date.py Date.serialize   5 0 0   100%
src/lexigram/graphql/scalars/date.py Date.parse_value   3 0 0   100%
src/lexigram/graphql/scalars/date.py (no function)   8 0 0   100%
src/lexigram/graphql/scalars/datetime.py DateTime.serialize   5 1 0   80%
src/lexigram/graphql/scalars/datetime.py DateTime.parse_value   3 3 0   0%
src/lexigram/graphql/scalars/datetime.py (no function)   8 0 0   100%
src/lexigram/graphql/scalars/json.py JSON.serialize   3 3 0   0%
src/lexigram/graphql/scalars/json.py JSON.parse_value   3 3 0   0%
src/lexigram/graphql/scalars/json.py (no function)   9 0 0   100%
src/lexigram/graphql/scalars/misc.py UUID.serialize   5 5 0   0%
src/lexigram/graphql/scalars/misc.py UUID.parse_value   3 3 0   0%
src/lexigram/graphql/scalars/misc.py Email.serialize   5 5 0   0%
src/lexigram/graphql/scalars/misc.py Email.parse_value   3 3 0   0%
src/lexigram/graphql/scalars/misc.py URL.serialize   5 5 0   0%
src/lexigram/graphql/scalars/misc.py URL.parse_value   3 3 0   0%
src/lexigram/graphql/scalars/misc.py BigInt.serialize   3 3 0   0%
src/lexigram/graphql/scalars/misc.py BigInt.parse_value   3 3 0   0%
src/lexigram/graphql/scalars/misc.py Void.serialize   1 1 0   0%
src/lexigram/graphql/scalars/misc.py Void.parse_value   1 1 0   0%
src/lexigram/graphql/scalars/misc.py (no function)   29 0 0   100%
src/lexigram/graphql/scalars/time.py Time.serialize   5 1 0   80%
src/lexigram/graphql/scalars/time.py Time.parse_value   3 3 0   0%
src/lexigram/graphql/scalars/time.py (no function)   8 0 0   100%
src/lexigram/graphql/scalars/timestamp.py Timestamp.serialize   5 1 0   80%
src/lexigram/graphql/scalars/timestamp.py Timestamp.parse_value   3 3 0   0%
src/lexigram/graphql/scalars/timestamp.py (no function)   8 0 0   100%
src/lexigram/graphql/schema/__init__.py (no function)   6 0 0   100%
src/lexigram/graphql/schema/builder.py SchemaBuilderProtocol.__init__   9 0 0   100%
src/lexigram/graphql/schema/builder.py SchemaBuilderProtocol.query   2 0 0   100%
src/lexigram/graphql/schema/builder.py SchemaBuilderProtocol.mutation   2 0 0   100%
src/lexigram/graphql/schema/builder.py SchemaBuilderProtocol.subscription   2 0 0   100%
src/lexigram/graphql/schema/builder.py SchemaBuilderProtocol.add_type   2 2 0   0%
src/lexigram/graphql/schema/builder.py SchemaBuilderProtocol.add_types   2 0 0   100%
src/lexigram/graphql/schema/builder.py SchemaBuilderProtocol.add_extension   2 0 0   100%
src/lexigram/graphql/schema/builder.py SchemaBuilderProtocol.add_dataloader   2 0 0   100%
src/lexigram/graphql/schema/builder.py SchemaBuilderProtocol.add_directive   2 2 0   0%
src/lexigram/graphql/schema/builder.py SchemaBuilderProtocol.scalar_override   2 2 0   0%
src/lexigram/graphql/schema/builder.py SchemaBuilderProtocol.build   42 2 0   95%
src/lexigram/graphql/schema/builder.py SchemaBuilderProtocol.build.EmptyQuery.health   1 1 0   0%
src/lexigram/graphql/schema/builder.py SchemaBuilderProtocol.config   1 1 0   0%
src/lexigram/graphql/schema/builder.py create_schema   12 5 0   58%
src/lexigram/graphql/schema/builder.py (no function)   23 0 0   100%
src/lexigram/graphql/schema/decorators.py query   2 2 0   0%
src/lexigram/graphql/schema/decorators.py query.decorator   10 10 0   0%
src/lexigram/graphql/schema/decorators.py mutation   2 2 0   0%
src/lexigram/graphql/schema/decorators.py mutation.decorator   10 10 0   0%
src/lexigram/graphql/schema/decorators.py subscription   2 2 0   0%
src/lexigram/graphql/schema/decorators.py subscription.decorator   10 10 0   0%
src/lexigram/graphql/schema/decorators.py field   14 14 0   0%
src/lexigram/graphql/schema/decorators.py resolver   3 3 0   0%
src/lexigram/graphql/schema/decorators.py resolver.decorator   4 4 0   0%
src/lexigram/graphql/schema/decorators.py resolver.decorator.wrapper   4 4 0   0%
src/lexigram/graphql/schema/decorators.py get_context   1 1 0   0%
src/lexigram/graphql/schema/decorators.py (no function)   18 0 2   100%
src/lexigram/graphql/schema/diff.py SchemaDiff.has_changes   1 1 0   0%
src/lexigram/graphql/schema/diff.py SchemaDiffer.diff   8 8 0   0%
src/lexigram/graphql/schema/diff.py SchemaDiffer._get_types   6 6 0   0%
src/lexigram/graphql/schema/diff.py (no function)   14 14 0   0%
src/lexigram/graphql/schema/documentation.py SchemaDoc.to_markdown   20 20 0   0%
src/lexigram/graphql/schema/documentation.py SchemaDocumentationGenerator.generate   13 13 0   0%
src/lexigram/graphql/schema/documentation.py SchemaDocumentationGenerator._document_type   11 11 0   0%
src/lexigram/graphql/schema/documentation.py generate_schema_docs   3 3 0   0%
src/lexigram/graphql/schema/documentation.py (no function)   26 0 0   100%
src/lexigram/graphql/schema/types.py union_type   1 1 1   0%
src/lexigram/graphql/schema/types.py PagedResult.total_pages   3 3 0   0%
src/lexigram/graphql/schema/types.py create_connection_type   11 11 0   0%
src/lexigram/graphql/schema/types.py (no function)   64 0 0   100%
src/lexigram/graphql/security/__init__.py (no function)   13 4 0   69%
src/lexigram/graphql/security/alias.py AliasLimitValidator.__init__   1 0 0   100%
src/lexigram/graphql/security/alias.py AliasLimitValidator.max_aliases   1 0 0   100%
src/lexigram/graphql/security/alias.py AliasLimitValidator.count_aliases   5 0 0   100%
src/lexigram/graphql/security/alias.py AliasLimitValidator._count_in_selection_set   9 0 0   100%
src/lexigram/graphql/security/alias.py AliasLimitValidator.validate   6 0 0   100%
src/lexigram/graphql/security/alias.py AliasLimitExtension.__init__   1 0 0   100%
src/lexigram/graphql/security/alias.py AliasLimitExtension.on_validate   4 0 0   100%
src/lexigram/graphql/security/alias.py (no function)   17 0 3   100%
src/lexigram/graphql/security/complexity.py cost   2 2 0   0%
src/lexigram/graphql/security/complexity.py cost.decorator   3 3 0   0%
src/lexigram/graphql/security/complexity.py list_cost   2 2 0   0%
src/lexigram/graphql/security/complexity.py list_cost.decorator   3 3 0   0%
src/lexigram/graphql/security/complexity.py ComplexityAnalyzer.__init__   3 0 0   100%
src/lexigram/graphql/security/complexity.py ComplexityAnalyzer.max_complexity   1 1 0   0%
src/lexigram/graphql/security/complexity.py ComplexityAnalyzer.analyze   8 0 0   100%
src/lexigram/graphql/security/complexity.py ComplexityAnalyzer._analyze_selection_set   20 1 0   95%
src/lexigram/graphql/security/complexity.py ComplexityAnalyzer._is_list_field   6 0 0   100%
src/lexigram/graphql/security/complexity.py ComplexityAnalyzer._get_field_cost   5 1 0   80%
src/lexigram/graphql/security/complexity.py ComplexityAnalyzer._get_list_multiplier   18 6 0   67%
src/lexigram/graphql/security/complexity.py ComplexityAnalyzer.check   5 0 0   100%
src/lexigram/graphql/security/complexity.py ComplexityAnalyzer.validate   5 0 0   100%
src/lexigram/graphql/security/complexity.py ComplexityLimitExtension.__init__   1 0 0   100%
src/lexigram/graphql/security/complexity.py ComplexityLimitExtension.on_validate   4 0 0   100%
src/lexigram/graphql/security/complexity.py analyze_complexity   4 4 0   0%
src/lexigram/graphql/security/complexity.py (no function)   34 0 4   100%
src/lexigram/graphql/security/depth.py DepthLimitValidator.__init__   2 0 0   100%
src/lexigram/graphql/security/depth.py DepthLimitValidator.max_depth   1 0 0   100%
src/lexigram/graphql/security/depth.py DepthLimitValidator.get_depth   6 0 0   100%
src/lexigram/graphql/security/depth.py DepthLimitValidator._calculate_depth   28 2 0   93%
src/lexigram/graphql/security/depth.py DepthLimitValidator.validate   4 0 0   100%
src/lexigram/graphql/security/depth.py DepthLimitExtension.__init__   1 0 0   100%
src/lexigram/graphql/security/depth.py DepthLimitExtension.on_validate   8 0 0   100%
src/lexigram/graphql/security/depth.py create_depth_limit   1 0 0   100%
src/lexigram/graphql/security/depth.py (no function)   18 0 3   100%
src/lexigram/graphql/security/extensions.py RateLimitExtension.__init__   3 0 0   100%
src/lexigram/graphql/security/extensions.py RateLimitExtension.on_operation   12 12 0   0%
src/lexigram/graphql/security/extensions.py (no function)   9 0 3   100%
src/lexigram/graphql/security/permissions.py AbstractPermission.has_permission   0 0 1   100%
src/lexigram/graphql/security/permissions.py IsAuthenticated.has_permission   2 0 0   100%
src/lexigram/graphql/security/permissions.py IsAdmin.has_permission   5 0 0   100%
src/lexigram/graphql/security/permissions.py IsOwner.has_permission   22 0 0   100%
src/lexigram/graphql/security/permissions.py IsOwnerOrAdmin.has_permission   5 0 0   100%
src/lexigram/graphql/security/permissions.py AllowAny.has_permission   1 0 0   100%
src/lexigram/graphql/security/permissions.py DenyAll.has_permission   1 0 0   100%
src/lexigram/graphql/security/permissions.py (no function)   39 0 5   100%
src/lexigram/graphql/security/query_whitelist.py QueryWhitelist.__init__   2 0 0   100%
src/lexigram/graphql/security/query_whitelist.py QueryWhitelist.enabled   1 0 0   100%
src/lexigram/graphql/security/query_whitelist.py QueryWhitelist.add   4 0 0   100%
src/lexigram/graphql/security/query_whitelist.py QueryWhitelist.remove   5 0 0   100%
src/lexigram/graphql/security/query_whitelist.py QueryWhitelist.is_allowed   4 0 0   100%
src/lexigram/graphql/security/query_whitelist.py QueryWhitelist.get_entry   2 0 0   100%
src/lexigram/graphql/security/query_whitelist.py QueryWhitelist.get_all_hashes   1 0 0   100%
src/lexigram/graphql/security/query_whitelist.py QueryWhitelist.clear   1 0 0   100%
src/lexigram/graphql/security/query_whitelist.py QueryWhitelist._compute_hash   2 0 0   100%
src/lexigram/graphql/security/query_whitelist.py (no function)   22 0 0   100%
src/lexigram/graphql/security/rate_limit.py RateLimiter.is_allowed   1 1 0   0%
src/lexigram/graphql/security/rate_limit.py UnifiedRateLimiter.__init__   1 0 0   100%
src/lexigram/graphql/security/rate_limit.py UnifiedRateLimiter.is_allowed   15 7 0   53%
src/lexigram/graphql/security/rate_limit.py (no function)   19 0 0   100%
src/lexigram/graphql/subscriptions/__init__.py (no function)   6 0 0   100%
src/lexigram/graphql/subscriptions/auth.py SubscriptionAuth.__init__   1 0 0   100%
src/lexigram/graphql/subscriptions/auth.py SubscriptionAuth.authenticate   11 11 0   0%
src/lexigram/graphql/subscriptions/auth.py SubscriptionAuth.set_auth_hook   1 1 0   0%
src/lexigram/graphql/subscriptions/auth.py (no function)   11 0 0   100%
src/lexigram/graphql/subscriptions/manager.py SubscriptionManager.__init__   4 0 0   100%
src/lexigram/graphql/subscriptions/manager.py SubscriptionManager.subscribe   8 8 0   0%
src/lexigram/graphql/subscriptions/manager.py SubscriptionManager.subscribe.run_stream   9 9 0   0%
src/lexigram/graphql/subscriptions/manager.py SubscriptionManager.unsubscribe   15 15 0   0%
src/lexigram/graphql/subscriptions/manager.py SubscriptionManager.disconnect   6 3 0   50%
src/lexigram/graphql/subscriptions/manager.py SubscriptionManager.start_keepalive   6 0 0   100%
src/lexigram/graphql/subscriptions/manager.py SubscriptionManager.stop_keepalive   6 0 0   100%
src/lexigram/graphql/subscriptions/manager.py SubscriptionManager._keepalive_loop   10 5 0   50%
src/lexigram/graphql/subscriptions/manager.py SubscriptionManager.get_active_subscriptions   3 3 0   0%
src/lexigram/graphql/subscriptions/manager.py SubscriptionManager.active_count   1 1 0   0%
src/lexigram/graphql/subscriptions/manager.py SubscriptionManager.connection_count   1 1 0   0%
src/lexigram/graphql/subscriptions/manager.py (no function)   20 0 2   100%
src/lexigram/graphql/subscriptions/protocol.py (no function)   23 0 0   100%
src/lexigram/graphql/subscriptions/transport/__init__.py (no function)   5 0 0   100%
src/lexigram/graphql/subscriptions/transport/_connection.py SubscriptionConnection.add   1 0 0   100%
src/lexigram/graphql/subscriptions/transport/_connection.py SubscriptionConnection.remove   1 1 0   0%
src/lexigram/graphql/subscriptions/transport/_connection.py SubscriptionConnection.get   1 0 0   100%
src/lexigram/graphql/subscriptions/transport/_connection.py (no function)   15 0 4   100%
src/lexigram/graphql/subscriptions/transport/_messaging.py _WSMessagingMixin._send_message   8 8 0   0%
src/lexigram/graphql/subscriptions/transport/_messaging.py _WSMessagingMixin._send_next   8 5 0   38%
src/lexigram/graphql/subscriptions/transport/_messaging.py _WSMessagingMixin._send_error   1 1 0   0%
src/lexigram/graphql/subscriptions/transport/_messaging.py _WSMessagingMixin._send_complete   1 0 0   100%
src/lexigram/graphql/subscriptions/transport/_messaging.py _WSMessagingMixin._keepalive   7 7 0   0%
src/lexigram/graphql/subscriptions/transport/_messaging.py _WSMessagingMixin._cleanup   5 5 0   0%
src/lexigram/graphql/subscriptions/transport/_messaging.py (no function)   22 0 4   100%
src/lexigram/graphql/subscriptions/transport/_transport.py GraphQLWSTransport.__init__   13 0 0   100%
src/lexigram/graphql/subscriptions/transport/_transport.py GraphQLWSTransport.handle   17 17 0   0%
src/lexigram/graphql/subscriptions/transport/_transport.py GraphQLWSTransport._receive_loop   22 22 0   0%
src/lexigram/graphql/subscriptions/transport/_transport.py GraphQLWSTransport._handle_message   16 16 0   0%
src/lexigram/graphql/subscriptions/transport/_transport.py GraphQLWSTransport._handle_connection_init   19 19 0   0%
src/lexigram/graphql/subscriptions/transport/_transport.py GraphQLWSTransport._handle_subscribe   57 22 0   61%
src/lexigram/graphql/subscriptions/transport/_transport.py GraphQLWSTransport._stream_subscription   15 15 0   0%
src/lexigram/graphql/subscriptions/transport/_transport.py GraphQLWSTransport._handle_complete   2 2 0   0%
src/lexigram/graphql/subscriptions/transport/_transport.py GraphQLWSTransport.subscribe   12 12 0   0%
src/lexigram/graphql/subscriptions/transport/_transport.py GraphQLWSTransport.subscribe._single_event   1 1 0   0%
src/lexigram/graphql/subscriptions/transport/_transport.py (no function)   22 0 4   100%
src/lexigram/graphql/subscriptions/transport/handler.py graphql_ws_endpoint   2 2 0   0%
src/lexigram/graphql/subscriptions/transport/handler.py create_ws_route   2 2 0   0%
src/lexigram/graphql/subscriptions/transport/handler.py GraphQLWSHandler.__init__   1 1 0   0%
src/lexigram/graphql/subscriptions/transport/handler.py GraphQLWSHandler.__call__   3 3 0   0%
src/lexigram/graphql/subscriptions/transport/handler.py GraphQLWSHandler.create_from_schema   6 6 0   0%
src/lexigram/graphql/subscriptions/transport/handler.py (no function)   17 0 4   100%
src/lexigram/graphql/types.py _now   3 1 0   67%
src/lexigram/graphql/types.py _uuid   3 1 0   67%
src/lexigram/graphql/types.py GraphQLErrorExtensions.to_dict   12 0 0   100%
src/lexigram/graphql/types.py GraphQLErrorData.to_dict   8 0 0   100%
src/lexigram/graphql/types.py CacheControl.to_header   6 0 0   100%
src/lexigram/graphql/types.py QueryMetrics.complete   2 0 0   100%
src/lexigram/graphql/types.py DataLoaderStats.cache_hit_ratio   2 0 0   100%
src/lexigram/graphql/types.py (no function)   151 0 0   100%
src/lexigram/graphql/web/__init__.py (no function)   3 0 0   100%
src/lexigram/graphql/web/contributor.py GraphQLWebContributor.contributor_id   1 1 0   0%
src/lexigram/graphql/web/contributor.py GraphQLWebContributor.get_controllers   2 0 0   100%
src/lexigram/graphql/web/contributor.py GraphQLWebContributor.get_middleware   1 0 0   100%
src/lexigram/graphql/web/contributor.py GraphQLWebContributor.mount_to_app   0 0 0   100%
src/lexigram/graphql/web/contributor.py (no function)   8 0 0   100%
Total     4008 955 145   76%

No items found using the specified filter.