verboselib.core.drop_default_language()   A
last analyzed

Complexity

Conditions 1

Size

Total Lines 3
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 3
dl 0
loc 3
rs 10
c 0
b 0
f 0
cc 1
nop 0
1
import threading
2
3
from typing import Optional
4
5
from ._utils import export
6
7
8
_bypass_value  = "__bypass__"
9
_local_storage = threading.local()
10
11
12
@export
13
def get_default_language() -> Optional[str]:
14
  return getattr(_local_storage, "default_value", None)
15
16
17
@export
18
def set_default_language(value: Optional[str]) -> None:
19
  setattr(_local_storage, "default_value", value)
20
21
22
@export
23
def drop_default_language() -> None:
24
  set_default_language(None)
25
26
27
@export
28
def set_language(value: Optional[str]) -> None:
29
  setattr(_local_storage, "current_value", value)
30
31
32
@export
33
def set_language_bypass() -> None:
34
  set_language(_bypass_value)
35
36
37
@export
38
def drop_language() -> None:
39
  set_language(None)
40
41
42
@export
43
def get_language() -> Optional[str]:
44
  language = getattr(_local_storage, "current_value", None)
45
46
  if language is _bypass_value:
47
    return None
48
49
  return language or getattr(_local_storage, "default_value", None)
50