Coverage for src\zapy\requests\context.py: 100%
23 statements
« prev ^ index » next coverage.py v7.3.4, created at 2023-12-20 14:17 -0500
« prev ^ index » next coverage.py v7.3.4, created at 2023-12-20 14:17 -0500
1from dataclasses import dataclass, field
2from typing import Callable
3from types import ModuleType
5from zapy.base import ZapyAuto
6from zapy.store import Store, use_store
8from .file_loader import load_file
9from .hooks import RequestHookBlueprint
12@dataclass
13class ZapyRequestContext:
15 store: Store = field(default_factory=use_store)
16 hooks: RequestHookBlueprint = field(default_factory=RequestHookBlueprint)
17 logger: Callable = print
19 def load_file(self, path, mime=ZapyAuto):
20 return load_file(path, mime)
22 def auto(self):
23 return ZapyAuto
26def build_context_module(ctx: ZapyRequestContext) -> ModuleType:
27 module_ctx = ModuleType('zapy.context')
28 ctx_attrs = (name for name in dir(ctx) if not name.startswith('_'))
29 for name in ctx_attrs:
30 value = getattr(ctx, name)
31 setattr(module_ctx, name, value)
33 return module_ctx