Completed
Push — master ( 8fc5fd...8beaf7 )
by Oleksandr
01:19
created

isotopic_logging.wrap_logger()   A

Complexity

Conditions 2

Size

Total Lines 4

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 1
CRAP Score 3.1854
Metric Value
cc 2
dl 0
loc 4
ccs 1
cts 3
cp 0.3333
crap 3.1854
rs 10
1
# -*- coding: utf-8 -*-
2
3 1
from contextlib import contextmanager
4
5 1
from .context import InjectionContext
6 1
from .generators import generate_oid, default_oid_generator # NOQA
7 1
from .injectors import (
8
    DirectPrefixInjector, SimplePrefixInjector, AutoprefixInjector,
9
    HybrydPrefixInjector,
10
)
11 1
from .prefix import make_prefix, join_prefix # NOQA
12 1
from .proxy import InjectingLogger
13
14
15 1
def direct_injector(prefix, inherit=False):
16 1
    return InjectionContext(
17
        lambda: DirectPrefixInjector(prefix),
18
        inherit)
19
20
21 1
def prefix_injector(prefix, delimiter=None, inherit=False):
22 1
    return InjectionContext(
23
        lambda: SimplePrefixInjector(prefix, delimiter),
24
        inherit)
25
26
27 1
def autoprefix_injector(oid_generator=None, delimiter=None, inherit=False):
28 1
    return InjectionContext(
29
        lambda: AutoprefixInjector(oid_generator, delimiter),
30
        inherit)
31
32
33 1
def hybrid_injector(prefix, oid_generator=None, delimiter=None, inherit=False):
34 1
    return InjectionContext(
35
        lambda: HybrydPrefixInjector(prefix, oid_generator, delimiter),
36
        inherit)
37
38
39 1
@contextmanager
40
def wrap_logger(logger, injection_context):
41
    with injection_context as inj:
42
        yield InjectingLogger(logger, inj)
43