fluidattacks_utils_logger 2.1.0__tar.gz → 3.0.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {fluidattacks_utils_logger-2.1.0 → fluidattacks_utils_logger-3.0.0}/PKG-INFO +1 -2
- {fluidattacks_utils_logger-2.1.0 → fluidattacks_utils_logger-3.0.0}/fluidattacks_utils_logger/__init__.py +3 -12
- {fluidattacks_utils_logger-2.1.0 → fluidattacks_utils_logger-3.0.0}/fluidattacks_utils_logger/env.py +0 -7
- fluidattacks_utils_logger-3.0.0/fluidattacks_utils_logger/handlers.py +57 -0
- {fluidattacks_utils_logger-2.1.0 → fluidattacks_utils_logger-3.0.0}/pyproject.toml +0 -1
- {fluidattacks_utils_logger-2.1.0 → fluidattacks_utils_logger-3.0.0}/tests/test_logger.py +13 -0
- {fluidattacks_utils_logger-2.1.0 → fluidattacks_utils_logger-3.0.0}/uv.lock +96 -130
- fluidattacks_utils_logger-2.1.0/fluidattacks_utils_logger/handlers.py +0 -75
- {fluidattacks_utils_logger-2.1.0 → fluidattacks_utils_logger-3.0.0}/.envrc +0 -0
- {fluidattacks_utils_logger-2.1.0 → fluidattacks_utils_logger-3.0.0}/build/default.nix +0 -0
- {fluidattacks_utils_logger-2.1.0 → fluidattacks_utils_logger-3.0.0}/build/filter.nix +0 -0
- {fluidattacks_utils_logger-2.1.0 → fluidattacks_utils_logger-3.0.0}/flake.lock +0 -0
- {fluidattacks_utils_logger-2.1.0 → fluidattacks_utils_logger-3.0.0}/flake.nix +0 -0
- {fluidattacks_utils_logger-2.1.0 → fluidattacks_utils_logger-3.0.0}/fluidattacks_utils_logger/levels.py +0 -0
- {fluidattacks_utils_logger-2.1.0 → fluidattacks_utils_logger-3.0.0}/fluidattacks_utils_logger/logger.py +0 -0
- {fluidattacks_utils_logger-2.1.0 → fluidattacks_utils_logger-3.0.0}/fluidattacks_utils_logger/py.typed +0 -0
- {fluidattacks_utils_logger-2.1.0 → fluidattacks_utils_logger-3.0.0}/mypy.ini +0 -0
- {fluidattacks_utils_logger-2.1.0 → fluidattacks_utils_logger-3.0.0}/ruff.toml +0 -0
- {fluidattacks_utils_logger-2.1.0 → fluidattacks_utils_logger-3.0.0}/tests/__init__.py +0 -0
- {fluidattacks_utils_logger-2.1.0 → fluidattacks_utils_logger-3.0.0}/tests/arch/__init__.py +0 -0
- {fluidattacks_utils_logger-2.1.0 → fluidattacks_utils_logger-3.0.0}/tests/arch/arch.py +0 -0
- {fluidattacks_utils_logger-2.1.0 → fluidattacks_utils_logger-3.0.0}/tests/arch/test_arch.py +0 -0
- {fluidattacks_utils_logger-2.1.0 → fluidattacks_utils_logger-3.0.0}/tests/py.typed +0 -0
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: fluidattacks_utils_logger
|
|
3
|
-
Version:
|
|
3
|
+
Version: 3.0.0
|
|
4
4
|
Summary: Common logger handlers
|
|
5
5
|
Author-email: Product Team <development@fluidattacks.com>
|
|
6
6
|
Requires-Python: >=3.11
|
|
7
7
|
Classifier: License :: OSI Approved :: MIT License
|
|
8
|
-
Requires-Dist: bugsnag >=4.7.0, <5.0.0
|
|
9
8
|
Requires-Dist: fluidattacks-core >=4.0.0, <5.0.0
|
|
10
9
|
Requires-Dist: fa-purity >=2.5.2, <3.0.0
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import sys
|
|
2
2
|
|
|
3
|
-
import bugsnag
|
|
4
3
|
from fa_purity import (
|
|
5
4
|
Cmd,
|
|
6
5
|
)
|
|
@@ -16,7 +15,7 @@ from .levels import (
|
|
|
16
15
|
LoggingLvl,
|
|
17
16
|
)
|
|
18
17
|
|
|
19
|
-
__version__ = "
|
|
18
|
+
__version__ = "3.0.0"
|
|
20
19
|
|
|
21
20
|
|
|
22
21
|
def set_main_log(
|
|
@@ -24,9 +23,8 @@ def set_main_log(
|
|
|
24
23
|
conf: handlers.LoggingConf,
|
|
25
24
|
debug: bool,
|
|
26
25
|
) -> Cmd[None]:
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
_handlers = (_log_handler, _bug_handler)
|
|
26
|
+
_log_handler = handlers.logger_handler(conf, sys.stderr)
|
|
27
|
+
_handlers = (_log_handler,)
|
|
30
28
|
env = current_app_env()
|
|
31
29
|
display_env = logger.get_logger(name).bind(
|
|
32
30
|
lambda log: env.bind(lambda e: log.info("%s@%s", (name, e.value))), # noqa: PLE1206
|
|
@@ -35,10 +33,3 @@ def set_main_log(
|
|
|
35
33
|
logger.set_logger(name, LoggingLvl.DEBUG if debug else LoggingLvl.INFO, _handlers)
|
|
36
34
|
+ display_env
|
|
37
35
|
)
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
def start_session() -> Cmd[None]:
|
|
41
|
-
def _action() -> None:
|
|
42
|
-
bugsnag.start_session() # type: ignore[no-untyped-call]
|
|
43
|
-
|
|
44
|
-
return Cmd.wrap_impure(_action)
|
{fluidattacks_utils_logger-2.1.0 → fluidattacks_utils_logger-3.0.0}/fluidattacks_utils_logger/env.py
RENAMED
|
@@ -28,10 +28,3 @@ def observes_debug() -> Cmd[bool]:
|
|
|
28
28
|
return _debug.lower() == "true"
|
|
29
29
|
|
|
30
30
|
return Cmd.wrap_impure(_action)
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
def notifier_key() -> Cmd[str]:
|
|
34
|
-
def _action() -> str:
|
|
35
|
-
return environ.get("bugsnag_notifier_key", "") # noqa: SIM112
|
|
36
|
-
|
|
37
|
-
return Cmd.wrap_impure(_action)
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import logging
|
|
2
|
+
from dataclasses import (
|
|
3
|
+
dataclass,
|
|
4
|
+
)
|
|
5
|
+
from logging import (
|
|
6
|
+
Handler,
|
|
7
|
+
)
|
|
8
|
+
from typing import (
|
|
9
|
+
IO,
|
|
10
|
+
)
|
|
11
|
+
|
|
12
|
+
from fa_purity import (
|
|
13
|
+
Cmd,
|
|
14
|
+
)
|
|
15
|
+
from fluidattacks_core.logging import (
|
|
16
|
+
set_product_environment,
|
|
17
|
+
set_product_id,
|
|
18
|
+
set_product_version,
|
|
19
|
+
)
|
|
20
|
+
from fluidattacks_core.logging.formatters import (
|
|
21
|
+
ColorfulFormatter,
|
|
22
|
+
CustomJsonFormatter,
|
|
23
|
+
)
|
|
24
|
+
|
|
25
|
+
from fluidattacks_utils_logger.env import (
|
|
26
|
+
Envs,
|
|
27
|
+
current_app_env,
|
|
28
|
+
)
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
@dataclass(frozen=True)
|
|
32
|
+
class LoggingConf:
|
|
33
|
+
app_name: str
|
|
34
|
+
app_type: str
|
|
35
|
+
app_version: str
|
|
36
|
+
release_stage: Envs
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
def logger_handler_with_env(
|
|
40
|
+
conf: LoggingConf,
|
|
41
|
+
target: IO[str],
|
|
42
|
+
env: Envs,
|
|
43
|
+
) -> Cmd[Handler]:
|
|
44
|
+
def _action() -> Handler:
|
|
45
|
+
set_product_id(conf.app_name)
|
|
46
|
+
set_product_environment(conf.release_stage.value)
|
|
47
|
+
set_product_version(conf.app_version)
|
|
48
|
+
formatter = CustomJsonFormatter() if env == Envs.PROD else ColorfulFormatter()
|
|
49
|
+
handler = logging.StreamHandler(target)
|
|
50
|
+
handler.setFormatter(formatter)
|
|
51
|
+
return handler
|
|
52
|
+
|
|
53
|
+
return Cmd.wrap_impure(_action)
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
def logger_handler(conf: LoggingConf, target: IO[str]) -> Cmd[Handler]:
|
|
57
|
+
return current_app_env().bind(lambda env: logger_handler_with_env(conf, target, env))
|
|
@@ -4,7 +4,6 @@ authors = [{ name = "Product Team", email = "development@fluidattacks.com" }]
|
|
|
4
4
|
classifiers = ["License :: OSI Approved :: MIT License"]
|
|
5
5
|
requires-python = ">=3.11"
|
|
6
6
|
dependencies = [
|
|
7
|
-
"bugsnag >=4.7.0, <5.0.0",
|
|
8
7
|
"fluidattacks-core >=4.0.0, <5.0.0",
|
|
9
8
|
"fa-purity >=2.5.2, <3.0.0",
|
|
10
9
|
]
|
|
@@ -13,6 +13,7 @@ from fluidattacks_utils_logger.env import (
|
|
|
13
13
|
Envs,
|
|
14
14
|
)
|
|
15
15
|
from fluidattacks_utils_logger.handlers import (
|
|
16
|
+
LoggingConf,
|
|
16
17
|
logger_handler_with_env,
|
|
17
18
|
)
|
|
18
19
|
from fluidattacks_utils_logger.levels import (
|
|
@@ -52,6 +53,12 @@ def test_json_formatter_in_production() -> None:
|
|
|
52
53
|
lvl=LoggingLvl.INFO,
|
|
53
54
|
handlers=(
|
|
54
55
|
logger_handler_with_env(
|
|
56
|
+
conf=LoggingConf(
|
|
57
|
+
app_name="observes",
|
|
58
|
+
app_type="etl",
|
|
59
|
+
app_version="1.0.0",
|
|
60
|
+
release_stage=Envs.PROD,
|
|
61
|
+
),
|
|
55
62
|
target=output_stream,
|
|
56
63
|
env=Envs.PROD,
|
|
57
64
|
),
|
|
@@ -84,6 +91,12 @@ def test_colorful_formatter_in_development() -> None:
|
|
|
84
91
|
lvl=LoggingLvl.INFO,
|
|
85
92
|
handlers=(
|
|
86
93
|
logger_handler_with_env(
|
|
94
|
+
conf=LoggingConf(
|
|
95
|
+
app_name="observes",
|
|
96
|
+
app_type="etl",
|
|
97
|
+
app_version="1.0.0",
|
|
98
|
+
release_stage=Envs.DEV,
|
|
99
|
+
),
|
|
87
100
|
target=output_stream,
|
|
88
101
|
env=Envs.DEV,
|
|
89
102
|
),
|
|
@@ -17,7 +17,7 @@ wheels = [
|
|
|
17
17
|
|
|
18
18
|
[[package]]
|
|
19
19
|
name = "aiohttp"
|
|
20
|
-
version = "3.13.
|
|
20
|
+
version = "3.13.3"
|
|
21
21
|
source = { registry = "https://pypi.org/simple" }
|
|
22
22
|
dependencies = [
|
|
23
23
|
{ name = "aiohappyeyeballs" },
|
|
@@ -28,93 +28,93 @@ dependencies = [
|
|
|
28
28
|
{ name = "propcache" },
|
|
29
29
|
{ name = "yarl" },
|
|
30
30
|
]
|
|
31
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
31
|
+
sdist = { url = "https://files.pythonhosted.org/packages/50/42/32cf8e7704ceb4481406eb87161349abb46a57fee3f008ba9cb610968646/aiohttp-3.13.3.tar.gz", hash = "sha256:a949eee43d3782f2daae4f4a2819b2cb9b0c5d3b7f7a927067cc84dafdbb9f88", size = 7844556, upload-time = "2026-01-03T17:33:05.204Z" }
|
|
32
32
|
wheels = [
|
|
33
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
34
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
35
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
36
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
37
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
38
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
39
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
40
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
41
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
42
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
43
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
44
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
45
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
46
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
47
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
48
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
49
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
50
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
51
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
52
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
53
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
54
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
55
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
56
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
57
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
58
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
59
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
60
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
61
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
62
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
63
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
64
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
65
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
66
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
67
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
68
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
69
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
70
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
71
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
72
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
73
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
74
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
75
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
76
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
77
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
78
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
79
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
80
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
81
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
82
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
83
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
84
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
85
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
86
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
87
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
88
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
89
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
90
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
91
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
92
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
93
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
94
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
95
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
96
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
97
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
98
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
99
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
100
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
101
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
102
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
103
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
104
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
105
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
106
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
107
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
108
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
109
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
110
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
111
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
112
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
113
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
114
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
115
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
116
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
117
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
33
|
+
{ url = "https://files.pythonhosted.org/packages/f1/4c/a164164834f03924d9a29dc3acd9e7ee58f95857e0b467f6d04298594ebb/aiohttp-3.13.3-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:5b6073099fb654e0a068ae678b10feff95c5cae95bbfcbfa7af669d361a8aa6b", size = 746051, upload-time = "2026-01-03T17:29:43.287Z" },
|
|
34
|
+
{ url = "https://files.pythonhosted.org/packages/82/71/d5c31390d18d4f58115037c432b7e0348c60f6f53b727cad33172144a112/aiohttp-3.13.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:1cb93e166e6c28716c8c6aeb5f99dfb6d5ccf482d29fe9bf9a794110e6d0ab64", size = 499234, upload-time = "2026-01-03T17:29:44.822Z" },
|
|
35
|
+
{ url = "https://files.pythonhosted.org/packages/0e/c9/741f8ac91e14b1d2e7100690425a5b2b919a87a5075406582991fb7de920/aiohttp-3.13.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:28e027cf2f6b641693a09f631759b4d9ce9165099d2b5d92af9bd4e197690eea", size = 494979, upload-time = "2026-01-03T17:29:46.405Z" },
|
|
36
|
+
{ url = "https://files.pythonhosted.org/packages/75/b5/31d4d2e802dfd59f74ed47eba48869c1c21552c586d5e81a9d0d5c2ad640/aiohttp-3.13.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3b61b7169ababd7802f9568ed96142616a9118dd2be0d1866e920e77ec8fa92a", size = 1748297, upload-time = "2026-01-03T17:29:48.083Z" },
|
|
37
|
+
{ url = "https://files.pythonhosted.org/packages/1a/3e/eefad0ad42959f226bb79664826883f2687d602a9ae2941a18e0484a74d3/aiohttp-3.13.3-cp311-cp311-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:80dd4c21b0f6237676449c6baaa1039abae86b91636b6c91a7f8e61c87f89540", size = 1707172, upload-time = "2026-01-03T17:29:49.648Z" },
|
|
38
|
+
{ url = "https://files.pythonhosted.org/packages/c5/3a/54a64299fac2891c346cdcf2aa6803f994a2e4beeaf2e5a09dcc54acc842/aiohttp-3.13.3-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:65d2ccb7eabee90ce0503c17716fc77226be026dcc3e65cce859a30db715025b", size = 1805405, upload-time = "2026-01-03T17:29:51.244Z" },
|
|
39
|
+
{ url = "https://files.pythonhosted.org/packages/6c/70/ddc1b7169cf64075e864f64595a14b147a895a868394a48f6a8031979038/aiohttp-3.13.3-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:5b179331a481cb5529fca8b432d8d3c7001cb217513c94cd72d668d1248688a3", size = 1899449, upload-time = "2026-01-03T17:29:53.938Z" },
|
|
40
|
+
{ url = "https://files.pythonhosted.org/packages/a1/7e/6815aab7d3a56610891c76ef79095677b8b5be6646aaf00f69b221765021/aiohttp-3.13.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9d4c940f02f49483b18b079d1c27ab948721852b281f8b015c058100e9421dd1", size = 1748444, upload-time = "2026-01-03T17:29:55.484Z" },
|
|
41
|
+
{ url = "https://files.pythonhosted.org/packages/6b/f2/073b145c4100da5511f457dc0f7558e99b2987cf72600d42b559db856fbc/aiohttp-3.13.3-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:f9444f105664c4ce47a2a7171a2418bce5b7bae45fb610f4e2c36045d85911d3", size = 1606038, upload-time = "2026-01-03T17:29:57.179Z" },
|
|
42
|
+
{ url = "https://files.pythonhosted.org/packages/0a/c1/778d011920cae03ae01424ec202c513dc69243cf2db303965615b81deeea/aiohttp-3.13.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:694976222c711d1d00ba131904beb60534f93966562f64440d0c9d41b8cdb440", size = 1724156, upload-time = "2026-01-03T17:29:58.914Z" },
|
|
43
|
+
{ url = "https://files.pythonhosted.org/packages/0e/cb/3419eabf4ec1e9ec6f242c32b689248365a1cf621891f6f0386632525494/aiohttp-3.13.3-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:f33ed1a2bf1997a36661874b017f5c4b760f41266341af36febaf271d179f6d7", size = 1722340, upload-time = "2026-01-03T17:30:01.962Z" },
|
|
44
|
+
{ url = "https://files.pythonhosted.org/packages/7a/e5/76cf77bdbc435bf233c1f114edad39ed4177ccbfab7c329482b179cff4f4/aiohttp-3.13.3-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:e636b3c5f61da31a92bf0d91da83e58fdfa96f178ba682f11d24f31944cdd28c", size = 1783041, upload-time = "2026-01-03T17:30:03.609Z" },
|
|
45
|
+
{ url = "https://files.pythonhosted.org/packages/9d/d4/dd1ca234c794fd29c057ce8c0566b8ef7fd6a51069de5f06fa84b9a1971c/aiohttp-3.13.3-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:5d2d94f1f5fcbe40838ac51a6ab5704a6f9ea42e72ceda48de5e6b898521da51", size = 1596024, upload-time = "2026-01-03T17:30:05.132Z" },
|
|
46
|
+
{ url = "https://files.pythonhosted.org/packages/55/58/4345b5f26661a6180afa686c473620c30a66afdf120ed3dd545bbc809e85/aiohttp-3.13.3-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:2be0e9ccf23e8a94f6f0650ce06042cefc6ac703d0d7ab6c7a917289f2539ad4", size = 1804590, upload-time = "2026-01-03T17:30:07.135Z" },
|
|
47
|
+
{ url = "https://files.pythonhosted.org/packages/7b/06/05950619af6c2df7e0a431d889ba2813c9f0129cec76f663e547a5ad56f2/aiohttp-3.13.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:9af5e68ee47d6534d36791bbe9b646d2a7c7deb6fc24d7943628edfbb3581f29", size = 1740355, upload-time = "2026-01-03T17:30:09.083Z" },
|
|
48
|
+
{ url = "https://files.pythonhosted.org/packages/3e/80/958f16de79ba0422d7c1e284b2abd0c84bc03394fbe631d0a39ffa10e1eb/aiohttp-3.13.3-cp311-cp311-win32.whl", hash = "sha256:a2212ad43c0833a873d0fb3c63fa1bacedd4cf6af2fee62bf4b739ceec3ab239", size = 433701, upload-time = "2026-01-03T17:30:10.869Z" },
|
|
49
|
+
{ url = "https://files.pythonhosted.org/packages/dc/f2/27cdf04c9851712d6c1b99df6821a6623c3c9e55956d4b1e318c337b5a48/aiohttp-3.13.3-cp311-cp311-win_amd64.whl", hash = "sha256:642f752c3eb117b105acbd87e2c143de710987e09860d674e068c4c2c441034f", size = 457678, upload-time = "2026-01-03T17:30:12.719Z" },
|
|
50
|
+
{ url = "https://files.pythonhosted.org/packages/a0/be/4fc11f202955a69e0db803a12a062b8379c970c7c84f4882b6da17337cc1/aiohttp-3.13.3-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:b903a4dfee7d347e2d87697d0713be59e0b87925be030c9178c5faa58ea58d5c", size = 739732, upload-time = "2026-01-03T17:30:14.23Z" },
|
|
51
|
+
{ url = "https://files.pythonhosted.org/packages/97/2c/621d5b851f94fa0bb7430d6089b3aa970a9d9b75196bc93bb624b0db237a/aiohttp-3.13.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:a45530014d7a1e09f4a55f4f43097ba0fd155089372e105e4bff4ca76cb1b168", size = 494293, upload-time = "2026-01-03T17:30:15.96Z" },
|
|
52
|
+
{ url = "https://files.pythonhosted.org/packages/5d/43/4be01406b78e1be8320bb8316dc9c42dbab553d281c40364e0f862d5661c/aiohttp-3.13.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:27234ef6d85c914f9efeb77ff616dbf4ad2380be0cda40b4db086ffc7ddd1b7d", size = 493533, upload-time = "2026-01-03T17:30:17.431Z" },
|
|
53
|
+
{ url = "https://files.pythonhosted.org/packages/8d/a8/5a35dc56a06a2c90d4742cbf35294396907027f80eea696637945a106f25/aiohttp-3.13.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d32764c6c9aafb7fb55366a224756387cd50bfa720f32b88e0e6fa45b27dcf29", size = 1737839, upload-time = "2026-01-03T17:30:19.422Z" },
|
|
54
|
+
{ url = "https://files.pythonhosted.org/packages/bf/62/4b9eeb331da56530bf2e198a297e5303e1c1ebdceeb00fe9b568a65c5a0c/aiohttp-3.13.3-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:b1a6102b4d3ebc07dad44fbf07b45bb600300f15b552ddf1851b5390202ea2e3", size = 1703932, upload-time = "2026-01-03T17:30:21.756Z" },
|
|
55
|
+
{ url = "https://files.pythonhosted.org/packages/7c/f6/af16887b5d419e6a367095994c0b1332d154f647e7dc2bd50e61876e8e3d/aiohttp-3.13.3-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:c014c7ea7fb775dd015b2d3137378b7be0249a448a1612268b5a90c2d81de04d", size = 1771906, upload-time = "2026-01-03T17:30:23.932Z" },
|
|
56
|
+
{ url = "https://files.pythonhosted.org/packages/ce/83/397c634b1bcc24292fa1e0c7822800f9f6569e32934bdeef09dae7992dfb/aiohttp-3.13.3-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:2b8d8ddba8f95ba17582226f80e2de99c7a7948e66490ef8d947e272a93e9463", size = 1871020, upload-time = "2026-01-03T17:30:26Z" },
|
|
57
|
+
{ url = "https://files.pythonhosted.org/packages/86/f6/a62cbbf13f0ac80a70f71b1672feba90fdb21fd7abd8dbf25c0105fb6fa3/aiohttp-3.13.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9ae8dd55c8e6c4257eae3a20fd2c8f41edaea5992ed67156642493b8daf3cecc", size = 1755181, upload-time = "2026-01-03T17:30:27.554Z" },
|
|
58
|
+
{ url = "https://files.pythonhosted.org/packages/0a/87/20a35ad487efdd3fba93d5843efdfaa62d2f1479eaafa7453398a44faf13/aiohttp-3.13.3-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:01ad2529d4b5035578f5081606a465f3b814c542882804e2e8cda61adf5c71bf", size = 1561794, upload-time = "2026-01-03T17:30:29.254Z" },
|
|
59
|
+
{ url = "https://files.pythonhosted.org/packages/de/95/8fd69a66682012f6716e1bc09ef8a1a2a91922c5725cb904689f112309c4/aiohttp-3.13.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:bb4f7475e359992b580559e008c598091c45b5088f28614e855e42d39c2f1033", size = 1697900, upload-time = "2026-01-03T17:30:31.033Z" },
|
|
60
|
+
{ url = "https://files.pythonhosted.org/packages/e5/66/7b94b3b5ba70e955ff597672dad1691333080e37f50280178967aff68657/aiohttp-3.13.3-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:c19b90316ad3b24c69cd78d5c9b4f3aa4497643685901185b65166293d36a00f", size = 1728239, upload-time = "2026-01-03T17:30:32.703Z" },
|
|
61
|
+
{ url = "https://files.pythonhosted.org/packages/47/71/6f72f77f9f7d74719692ab65a2a0252584bf8d5f301e2ecb4c0da734530a/aiohttp-3.13.3-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:96d604498a7c782cb15a51c406acaea70d8c027ee6b90c569baa6e7b93073679", size = 1740527, upload-time = "2026-01-03T17:30:34.695Z" },
|
|
62
|
+
{ url = "https://files.pythonhosted.org/packages/fa/b4/75ec16cbbd5c01bdaf4a05b19e103e78d7ce1ef7c80867eb0ace42ff4488/aiohttp-3.13.3-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:084911a532763e9d3dd95adf78a78f4096cd5f58cdc18e6fdbc1b58417a45423", size = 1554489, upload-time = "2026-01-03T17:30:36.864Z" },
|
|
63
|
+
{ url = "https://files.pythonhosted.org/packages/52/8f/bc518c0eea29f8406dcf7ed1f96c9b48e3bc3995a96159b3fc11f9e08321/aiohttp-3.13.3-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:7a4a94eb787e606d0a09404b9c38c113d3b099d508021faa615d70a0131907ce", size = 1767852, upload-time = "2026-01-03T17:30:39.433Z" },
|
|
64
|
+
{ url = "https://files.pythonhosted.org/packages/9d/f2/a07a75173124f31f11ea6f863dc44e6f09afe2bca45dd4e64979490deab1/aiohttp-3.13.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:87797e645d9d8e222e04160ee32aa06bc5c163e8499f24db719e7852ec23093a", size = 1722379, upload-time = "2026-01-03T17:30:41.081Z" },
|
|
65
|
+
{ url = "https://files.pythonhosted.org/packages/3c/4a/1a3fee7c21350cac78e5c5cef711bac1b94feca07399f3d406972e2d8fcd/aiohttp-3.13.3-cp312-cp312-win32.whl", hash = "sha256:b04be762396457bef43f3597c991e192ee7da460a4953d7e647ee4b1c28e7046", size = 428253, upload-time = "2026-01-03T17:30:42.644Z" },
|
|
66
|
+
{ url = "https://files.pythonhosted.org/packages/d9/b7/76175c7cb4eb73d91ad63c34e29fc4f77c9386bba4a65b53ba8e05ee3c39/aiohttp-3.13.3-cp312-cp312-win_amd64.whl", hash = "sha256:e3531d63d3bdfa7e3ac5e9b27b2dd7ec9df3206a98e0b3445fa906f233264c57", size = 455407, upload-time = "2026-01-03T17:30:44.195Z" },
|
|
67
|
+
{ url = "https://files.pythonhosted.org/packages/97/8a/12ca489246ca1faaf5432844adbfce7ff2cc4997733e0af120869345643a/aiohttp-3.13.3-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:5dff64413671b0d3e7d5918ea490bdccb97a4ad29b3f311ed423200b2203e01c", size = 734190, upload-time = "2026-01-03T17:30:45.832Z" },
|
|
68
|
+
{ url = "https://files.pythonhosted.org/packages/32/08/de43984c74ed1fca5c014808963cc83cb00d7bb06af228f132d33862ca76/aiohttp-3.13.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:87b9aab6d6ed88235aa2970294f496ff1a1f9adcd724d800e9b952395a80ffd9", size = 491783, upload-time = "2026-01-03T17:30:47.466Z" },
|
|
69
|
+
{ url = "https://files.pythonhosted.org/packages/17/f8/8dd2cf6112a5a76f81f81a5130c57ca829d101ad583ce57f889179accdda/aiohttp-3.13.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:425c126c0dc43861e22cb1c14ba4c8e45d09516d0a3ae0a3f7494b79f5f233a3", size = 490704, upload-time = "2026-01-03T17:30:49.373Z" },
|
|
70
|
+
{ url = "https://files.pythonhosted.org/packages/6d/40/a46b03ca03936f832bc7eaa47cfbb1ad012ba1be4790122ee4f4f8cba074/aiohttp-3.13.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7f9120f7093c2a32d9647abcaf21e6ad275b4fbec5b55969f978b1a97c7c86bf", size = 1720652, upload-time = "2026-01-03T17:30:50.974Z" },
|
|
71
|
+
{ url = "https://files.pythonhosted.org/packages/f7/7e/917fe18e3607af92657e4285498f500dca797ff8c918bd7d90b05abf6c2a/aiohttp-3.13.3-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:697753042d57f4bf7122cab985bf15d0cef23c770864580f5af4f52023a56bd6", size = 1692014, upload-time = "2026-01-03T17:30:52.729Z" },
|
|
72
|
+
{ url = "https://files.pythonhosted.org/packages/71/b6/cefa4cbc00d315d68973b671cf105b21a609c12b82d52e5d0c9ae61d2a09/aiohttp-3.13.3-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:6de499a1a44e7de70735d0b39f67c8f25eb3d91eb3103be99ca0fa882cdd987d", size = 1759777, upload-time = "2026-01-03T17:30:54.537Z" },
|
|
73
|
+
{ url = "https://files.pythonhosted.org/packages/fb/e3/e06ee07b45e59e6d81498b591fc589629be1553abb2a82ce33efe2a7b068/aiohttp-3.13.3-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:37239e9f9a7ea9ac5bf6b92b0260b01f8a22281996da609206a84df860bc1261", size = 1861276, upload-time = "2026-01-03T17:30:56.512Z" },
|
|
74
|
+
{ url = "https://files.pythonhosted.org/packages/7c/24/75d274228acf35ceeb2850b8ce04de9dd7355ff7a0b49d607ee60c29c518/aiohttp-3.13.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f76c1e3fe7d7c8afad7ed193f89a292e1999608170dcc9751a7462a87dfd5bc0", size = 1743131, upload-time = "2026-01-03T17:30:58.256Z" },
|
|
75
|
+
{ url = "https://files.pythonhosted.org/packages/04/98/3d21dde21889b17ca2eea54fdcff21b27b93f45b7bb94ca029c31ab59dc3/aiohttp-3.13.3-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:fc290605db2a917f6e81b0e1e0796469871f5af381ce15c604a3c5c7e51cb730", size = 1556863, upload-time = "2026-01-03T17:31:00.445Z" },
|
|
76
|
+
{ url = "https://files.pythonhosted.org/packages/9e/84/da0c3ab1192eaf64782b03971ab4055b475d0db07b17eff925e8c93b3aa5/aiohttp-3.13.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:4021b51936308aeea0367b8f006dc999ca02bc118a0cc78c303f50a2ff6afb91", size = 1682793, upload-time = "2026-01-03T17:31:03.024Z" },
|
|
77
|
+
{ url = "https://files.pythonhosted.org/packages/ff/0f/5802ada182f575afa02cbd0ec5180d7e13a402afb7c2c03a9aa5e5d49060/aiohttp-3.13.3-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:49a03727c1bba9a97d3e93c9f93ca03a57300f484b6e935463099841261195d3", size = 1716676, upload-time = "2026-01-03T17:31:04.842Z" },
|
|
78
|
+
{ url = "https://files.pythonhosted.org/packages/3f/8c/714d53bd8b5a4560667f7bbbb06b20c2382f9c7847d198370ec6526af39c/aiohttp-3.13.3-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:3d9908a48eb7416dc1f4524e69f1d32e5d90e3981e4e37eb0aa1cd18f9cfa2a4", size = 1733217, upload-time = "2026-01-03T17:31:06.868Z" },
|
|
79
|
+
{ url = "https://files.pythonhosted.org/packages/7d/79/e2176f46d2e963facea939f5be2d26368ce543622be6f00a12844d3c991f/aiohttp-3.13.3-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:2712039939ec963c237286113c68dbad80a82a4281543f3abf766d9d73228998", size = 1552303, upload-time = "2026-01-03T17:31:08.958Z" },
|
|
80
|
+
{ url = "https://files.pythonhosted.org/packages/ab/6a/28ed4dea1759916090587d1fe57087b03e6c784a642b85ef48217b0277ae/aiohttp-3.13.3-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:7bfdc049127717581866fa4708791220970ce291c23e28ccf3922c700740fdc0", size = 1763673, upload-time = "2026-01-03T17:31:10.676Z" },
|
|
81
|
+
{ url = "https://files.pythonhosted.org/packages/e8/35/4a3daeb8b9fab49240d21c04d50732313295e4bd813a465d840236dd0ce1/aiohttp-3.13.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:8057c98e0c8472d8846b9c79f56766bcc57e3e8ac7bfd510482332366c56c591", size = 1721120, upload-time = "2026-01-03T17:31:12.575Z" },
|
|
82
|
+
{ url = "https://files.pythonhosted.org/packages/bc/9f/d643bb3c5fb99547323e635e251c609fbbc660d983144cfebec529e09264/aiohttp-3.13.3-cp313-cp313-win32.whl", hash = "sha256:1449ceddcdbcf2e0446957863af03ebaaa03f94c090f945411b61269e2cb5daf", size = 427383, upload-time = "2026-01-03T17:31:14.382Z" },
|
|
83
|
+
{ url = "https://files.pythonhosted.org/packages/4e/f1/ab0395f8a79933577cdd996dd2f9aa6014af9535f65dddcf88204682fe62/aiohttp-3.13.3-cp313-cp313-win_amd64.whl", hash = "sha256:693781c45a4033d31d4187d2436f5ac701e7bbfe5df40d917736108c1cc7436e", size = 453899, upload-time = "2026-01-03T17:31:15.958Z" },
|
|
84
|
+
{ url = "https://files.pythonhosted.org/packages/99/36/5b6514a9f5d66f4e2597e40dea2e3db271e023eb7a5d22defe96ba560996/aiohttp-3.13.3-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:ea37047c6b367fd4bd632bff8077449b8fa034b69e812a18e0132a00fae6e808", size = 737238, upload-time = "2026-01-03T17:31:17.909Z" },
|
|
85
|
+
{ url = "https://files.pythonhosted.org/packages/f7/49/459327f0d5bcd8c6c9ca69e60fdeebc3622861e696490d8674a6d0cb90a6/aiohttp-3.13.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:6fc0e2337d1a4c3e6acafda6a78a39d4c14caea625124817420abceed36e2415", size = 492292, upload-time = "2026-01-03T17:31:19.919Z" },
|
|
86
|
+
{ url = "https://files.pythonhosted.org/packages/e8/0b/b97660c5fd05d3495b4eb27f2d0ef18dc1dc4eff7511a9bf371397ff0264/aiohttp-3.13.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:c685f2d80bb67ca8c3837823ad76196b3694b0159d232206d1e461d3d434666f", size = 493021, upload-time = "2026-01-03T17:31:21.636Z" },
|
|
87
|
+
{ url = "https://files.pythonhosted.org/packages/54/d4/438efabdf74e30aeceb890c3290bbaa449780583b1270b00661126b8aae4/aiohttp-3.13.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:48e377758516d262bde50c2584fc6c578af272559c409eecbdd2bae1601184d6", size = 1717263, upload-time = "2026-01-03T17:31:23.296Z" },
|
|
88
|
+
{ url = "https://files.pythonhosted.org/packages/71/f2/7bddc7fd612367d1459c5bcf598a9e8f7092d6580d98de0e057eb42697ad/aiohttp-3.13.3-cp314-cp314-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:34749271508078b261c4abb1767d42b8d0c0cc9449c73a4df494777dc55f0687", size = 1669107, upload-time = "2026-01-03T17:31:25.334Z" },
|
|
89
|
+
{ url = "https://files.pythonhosted.org/packages/00/5a/1aeaecca40e22560f97610a329e0e5efef5e0b5afdf9f857f0d93839ab2e/aiohttp-3.13.3-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:82611aeec80eb144416956ec85b6ca45a64d76429c1ed46ae1b5f86c6e0c9a26", size = 1760196, upload-time = "2026-01-03T17:31:27.394Z" },
|
|
90
|
+
{ url = "https://files.pythonhosted.org/packages/f8/f8/0ff6992bea7bd560fc510ea1c815f87eedd745fe035589c71ce05612a19a/aiohttp-3.13.3-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:2fff83cfc93f18f215896e3a190e8e5cb413ce01553901aca925176e7568963a", size = 1843591, upload-time = "2026-01-03T17:31:29.238Z" },
|
|
91
|
+
{ url = "https://files.pythonhosted.org/packages/e3/d1/e30e537a15f53485b61f5be525f2157da719819e8377298502aebac45536/aiohttp-3.13.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bbe7d4cecacb439e2e2a8a1a7b935c25b812af7a5fd26503a66dadf428e79ec1", size = 1720277, upload-time = "2026-01-03T17:31:31.053Z" },
|
|
92
|
+
{ url = "https://files.pythonhosted.org/packages/84/45/23f4c451d8192f553d38d838831ebbc156907ea6e05557f39563101b7717/aiohttp-3.13.3-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:b928f30fe49574253644b1ca44b1b8adbd903aa0da4b9054a6c20fc7f4092a25", size = 1548575, upload-time = "2026-01-03T17:31:32.87Z" },
|
|
93
|
+
{ url = "https://files.pythonhosted.org/packages/6a/ed/0a42b127a43712eda7807e7892c083eadfaf8429ca8fb619662a530a3aab/aiohttp-3.13.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:7b5e8fe4de30df199155baaf64f2fcd604f4c678ed20910db8e2c66dc4b11603", size = 1679455, upload-time = "2026-01-03T17:31:34.76Z" },
|
|
94
|
+
{ url = "https://files.pythonhosted.org/packages/2e/b5/c05f0c2b4b4fe2c9d55e73b6d3ed4fd6c9dc2684b1d81cbdf77e7fad9adb/aiohttp-3.13.3-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:8542f41a62bcc58fc7f11cf7c90e0ec324ce44950003feb70640fc2a9092c32a", size = 1687417, upload-time = "2026-01-03T17:31:36.699Z" },
|
|
95
|
+
{ url = "https://files.pythonhosted.org/packages/c9/6b/915bc5dad66aef602b9e459b5a973529304d4e89ca86999d9d75d80cbd0b/aiohttp-3.13.3-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:5e1d8c8b8f1d91cd08d8f4a3c2b067bfca6ec043d3ff36de0f3a715feeedf926", size = 1729968, upload-time = "2026-01-03T17:31:38.622Z" },
|
|
96
|
+
{ url = "https://files.pythonhosted.org/packages/11/3b/e84581290a9520024a08640b63d07673057aec5ca548177a82026187ba73/aiohttp-3.13.3-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:90455115e5da1c3c51ab619ac57f877da8fd6d73c05aacd125c5ae9819582aba", size = 1545690, upload-time = "2026-01-03T17:31:40.57Z" },
|
|
97
|
+
{ url = "https://files.pythonhosted.org/packages/f5/04/0c3655a566c43fd647c81b895dfe361b9f9ad6d58c19309d45cff52d6c3b/aiohttp-3.13.3-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:042e9e0bcb5fba81886c8b4fbb9a09d6b8a00245fd8d88e4d989c1f96c74164c", size = 1746390, upload-time = "2026-01-03T17:31:42.857Z" },
|
|
98
|
+
{ url = "https://files.pythonhosted.org/packages/1f/53/71165b26978f719c3419381514c9690bd5980e764a09440a10bb816ea4ab/aiohttp-3.13.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:2eb752b102b12a76ca02dff751a801f028b4ffbbc478840b473597fc91a9ed43", size = 1702188, upload-time = "2026-01-03T17:31:44.984Z" },
|
|
99
|
+
{ url = "https://files.pythonhosted.org/packages/29/a7/cbe6c9e8e136314fa1980da388a59d2f35f35395948a08b6747baebb6aa6/aiohttp-3.13.3-cp314-cp314-win32.whl", hash = "sha256:b556c85915d8efaed322bf1bdae9486aa0f3f764195a0fb6ee962e5c71ef5ce1", size = 433126, upload-time = "2026-01-03T17:31:47.463Z" },
|
|
100
|
+
{ url = "https://files.pythonhosted.org/packages/de/56/982704adea7d3b16614fc5936014e9af85c0e34b58f9046655817f04306e/aiohttp-3.13.3-cp314-cp314-win_amd64.whl", hash = "sha256:9bf9f7a65e7aa20dd764151fb3d616c81088f91f8df39c3893a536e279b4b984", size = 459128, upload-time = "2026-01-03T17:31:49.2Z" },
|
|
101
|
+
{ url = "https://files.pythonhosted.org/packages/6c/2a/3c79b638a9c3d4658d345339d22070241ea341ed4e07b5ac60fb0f418003/aiohttp-3.13.3-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:05861afbbec40650d8a07ea324367cb93e9e8cc7762e04dd4405df99fa65159c", size = 769512, upload-time = "2026-01-03T17:31:51.134Z" },
|
|
102
|
+
{ url = "https://files.pythonhosted.org/packages/29/b9/3e5014d46c0ab0db8707e0ac2711ed28c4da0218c358a4e7c17bae0d8722/aiohttp-3.13.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:2fc82186fadc4a8316768d61f3722c230e2c1dcab4200d52d2ebdf2482e47592", size = 506444, upload-time = "2026-01-03T17:31:52.85Z" },
|
|
103
|
+
{ url = "https://files.pythonhosted.org/packages/90/03/c1d4ef9a054e151cd7839cdc497f2638f00b93cbe8043983986630d7a80c/aiohttp-3.13.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:0add0900ff220d1d5c5ebbf99ed88b0c1bbf87aa7e4262300ed1376a6b13414f", size = 510798, upload-time = "2026-01-03T17:31:54.91Z" },
|
|
104
|
+
{ url = "https://files.pythonhosted.org/packages/ea/76/8c1e5abbfe8e127c893fe7ead569148a4d5a799f7cf958d8c09f3eedf097/aiohttp-3.13.3-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:568f416a4072fbfae453dcf9a99194bbb8bdeab718e08ee13dfa2ba0e4bebf29", size = 1868835, upload-time = "2026-01-03T17:31:56.733Z" },
|
|
105
|
+
{ url = "https://files.pythonhosted.org/packages/8e/ac/984c5a6f74c363b01ff97adc96a3976d9c98940b8969a1881575b279ac5d/aiohttp-3.13.3-cp314-cp314t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:add1da70de90a2569c5e15249ff76a631ccacfe198375eead4aadf3b8dc849dc", size = 1720486, upload-time = "2026-01-03T17:31:58.65Z" },
|
|
106
|
+
{ url = "https://files.pythonhosted.org/packages/b2/9a/b7039c5f099c4eb632138728828b33428585031a1e658d693d41d07d89d1/aiohttp-3.13.3-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:10b47b7ba335d2e9b1239fa571131a87e2d8ec96b333e68b2a305e7a98b0bae2", size = 1847951, upload-time = "2026-01-03T17:32:00.989Z" },
|
|
107
|
+
{ url = "https://files.pythonhosted.org/packages/3c/02/3bec2b9a1ba3c19ff89a43a19324202b8eb187ca1e928d8bdac9bbdddebd/aiohttp-3.13.3-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:3dd4dce1c718e38081c8f35f323209d4c1df7d4db4bab1b5c88a6b4d12b74587", size = 1941001, upload-time = "2026-01-03T17:32:03.122Z" },
|
|
108
|
+
{ url = "https://files.pythonhosted.org/packages/37/df/d879401cedeef27ac4717f6426c8c36c3091c6e9f08a9178cc87549c537f/aiohttp-3.13.3-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:34bac00a67a812570d4a460447e1e9e06fae622946955f939051e7cc895cfab8", size = 1797246, upload-time = "2026-01-03T17:32:05.255Z" },
|
|
109
|
+
{ url = "https://files.pythonhosted.org/packages/8d/15/be122de1f67e6953add23335c8ece6d314ab67c8bebb3f181063010795a7/aiohttp-3.13.3-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:a19884d2ee70b06d9204b2727a7b9f983d0c684c650254679e716b0b77920632", size = 1627131, upload-time = "2026-01-03T17:32:07.607Z" },
|
|
110
|
+
{ url = "https://files.pythonhosted.org/packages/12/12/70eedcac9134cfa3219ab7af31ea56bc877395b1ac30d65b1bc4b27d0438/aiohttp-3.13.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:5f8ca7f2bb6ba8348a3614c7918cc4bb73268c5ac2a207576b7afea19d3d9f64", size = 1795196, upload-time = "2026-01-03T17:32:09.59Z" },
|
|
111
|
+
{ url = "https://files.pythonhosted.org/packages/32/11/b30e1b1cd1f3054af86ebe60df96989c6a414dd87e27ad16950eee420bea/aiohttp-3.13.3-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:b0d95340658b9d2f11d9697f59b3814a9d3bb4b7a7c20b131df4bcef464037c0", size = 1782841, upload-time = "2026-01-03T17:32:11.445Z" },
|
|
112
|
+
{ url = "https://files.pythonhosted.org/packages/88/0d/d98a9367b38912384a17e287850f5695c528cff0f14f791ce8ee2e4f7796/aiohttp-3.13.3-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:a1e53262fd202e4b40b70c3aff944a8155059beedc8a89bba9dc1f9ef06a1b56", size = 1795193, upload-time = "2026-01-03T17:32:13.705Z" },
|
|
113
|
+
{ url = "https://files.pythonhosted.org/packages/43/a5/a2dfd1f5ff5581632c7f6a30e1744deda03808974f94f6534241ef60c751/aiohttp-3.13.3-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:d60ac9663f44168038586cab2157e122e46bdef09e9368b37f2d82d354c23f72", size = 1621979, upload-time = "2026-01-03T17:32:15.965Z" },
|
|
114
|
+
{ url = "https://files.pythonhosted.org/packages/fa/f0/12973c382ae7c1cccbc4417e129c5bf54c374dfb85af70893646e1f0e749/aiohttp-3.13.3-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:90751b8eed69435bac9ff4e3d2f6b3af1f57e37ecb0fbeee59c0174c9e2d41df", size = 1822193, upload-time = "2026-01-03T17:32:18.219Z" },
|
|
115
|
+
{ url = "https://files.pythonhosted.org/packages/3c/5f/24155e30ba7f8c96918af1350eb0663e2430aad9e001c0489d89cd708ab1/aiohttp-3.13.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:fc353029f176fd2b3ec6cfc71be166aba1936fe5d73dd1992ce289ca6647a9aa", size = 1769801, upload-time = "2026-01-03T17:32:20.25Z" },
|
|
116
|
+
{ url = "https://files.pythonhosted.org/packages/eb/f8/7314031ff5c10e6ece114da79b338ec17eeff3a079e53151f7e9f43c4723/aiohttp-3.13.3-cp314-cp314t-win32.whl", hash = "sha256:2e41b18a58da1e474a057b3d35248d8320029f61d70a37629535b16a0c8f3767", size = 466523, upload-time = "2026-01-03T17:32:22.215Z" },
|
|
117
|
+
{ url = "https://files.pythonhosted.org/packages/b4/63/278a98c715ae467624eafe375542d8ba9b4383a016df8fdefe0ae28382a7/aiohttp-3.13.3-cp314-cp314t-win_amd64.whl", hash = "sha256:44531a36aa2264a1860089ffd4dce7baf875ee5a6079d5fb42e261c704ef7344", size = 499694, upload-time = "2026-01-03T17:32:24.546Z" },
|
|
118
118
|
]
|
|
119
119
|
|
|
120
120
|
[[package]]
|
|
@@ -152,18 +152,6 @@ wheels = [
|
|
|
152
152
|
{ url = "https://files.pythonhosted.org/packages/3a/2a/7cc015f5b9f5db42b7d48157e23356022889fc354a2813c15934b7cb5c0e/attrs-25.4.0-py3-none-any.whl", hash = "sha256:adcf7e2a1fb3b36ac48d97835bb6d8ade15b8dcce26aba8bf1d14847b57a3373", size = 67615, upload-time = "2025-10-06T13:54:43.17Z" },
|
|
153
153
|
]
|
|
154
154
|
|
|
155
|
-
[[package]]
|
|
156
|
-
name = "bugsnag"
|
|
157
|
-
version = "4.8.0"
|
|
158
|
-
source = { registry = "https://pypi.org/simple" }
|
|
159
|
-
dependencies = [
|
|
160
|
-
{ name = "webob" },
|
|
161
|
-
]
|
|
162
|
-
sdist = { url = "https://files.pythonhosted.org/packages/7b/44/60c8f39657208ab54862bd0aee2130c1769b3a8deed3bc683ad01a89d935/bugsnag-4.8.0.tar.gz", hash = "sha256:9bd600fcf6ae8567b6d116522649ea173517aa98b3739e9ba73b1fea2bc82444", size = 73566, upload-time = "2025-07-08T18:18:40.743Z" }
|
|
163
|
-
wheels = [
|
|
164
|
-
{ url = "https://files.pythonhosted.org/packages/36/bf/10a168070cfc14438b27a62b66abc65c2ca6dfa7f0f5a9e3ab6577aac1e9/bugsnag-4.8.0-py3-none-any.whl", hash = "sha256:47358a290bd0dc8a6718db259d80023b6ce867ac678137f67e782b78c14b4723", size = 46197, upload-time = "2025-07-08T18:18:39.307Z" },
|
|
165
|
-
]
|
|
166
|
-
|
|
167
155
|
[[package]]
|
|
168
156
|
name = "certifi"
|
|
169
157
|
version = "2025.11.12"
|
|
@@ -276,13 +264,14 @@ toml = [
|
|
|
276
264
|
|
|
277
265
|
[[package]]
|
|
278
266
|
name = "deprecated"
|
|
279
|
-
version = "1.3.
|
|
267
|
+
version = "1.3.1"
|
|
280
268
|
source = { registry = "https://pypi.org/simple" }
|
|
281
269
|
dependencies = [
|
|
282
270
|
{ name = "wrapt" },
|
|
283
271
|
]
|
|
272
|
+
sdist = { url = "https://files.pythonhosted.org/packages/49/85/12f0a49a7c4ffb70572b6c2ef13c90c88fd190debda93b23f026b25f9634/deprecated-1.3.1.tar.gz", hash = "sha256:b1b50e0ff0c1fddaa5708a2c6b0a6588bb09b892825ab2b214ac9ea9d92a5223", size = 2932523, upload-time = "2025-10-30T08:19:02.757Z" }
|
|
284
273
|
wheels = [
|
|
285
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
274
|
+
{ url = "https://files.pythonhosted.org/packages/84/d0/205d54408c08b13550c733c4b85429e7ead111c7f0014309637425520a9a/deprecated-1.3.1-py2.py3-none-any.whl", hash = "sha256:597bfef186b6f60181535a29fbe44865ce137a5079f295b479886c82729d5f3f", size = 11298, upload-time = "2025-10-30T08:19:00.758Z" },
|
|
286
275
|
]
|
|
287
276
|
|
|
288
277
|
[[package]]
|
|
@@ -301,7 +290,7 @@ wheels = [
|
|
|
301
290
|
|
|
302
291
|
[[package]]
|
|
303
292
|
name = "fluidattacks-core"
|
|
304
|
-
version = "4.
|
|
293
|
+
version = "4.3.2"
|
|
305
294
|
source = { registry = "https://pypi.org/simple" }
|
|
306
295
|
dependencies = [
|
|
307
296
|
{ name = "aiohttp" },
|
|
@@ -310,16 +299,15 @@ dependencies = [
|
|
|
310
299
|
{ name = "simplejson" },
|
|
311
300
|
{ name = "urllib3" },
|
|
312
301
|
]
|
|
313
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
302
|
+
sdist = { url = "https://files.pythonhosted.org/packages/06/87/7b8098b593b972aba1f7499f26910004bc9fa1403544ec32a6a9d5f02e26/fluidattacks_core-4.3.2.tar.gz", hash = "sha256:31367fb7e30f8bdbbf61f0b3c9b3e5feea6d89ff21b4f4acb635587b8b4bd4f4", size = 66143, upload-time = "2026-01-07T21:03:15.611Z" }
|
|
314
303
|
wheels = [
|
|
315
|
-
{ url = "https://files.pythonhosted.org/packages/c5/
|
|
304
|
+
{ url = "https://files.pythonhosted.org/packages/c5/22/1bbd4bec9928a61aa4abd7a73ff604b586d951c230574a4ac033778a4c97/fluidattacks_core-4.3.2-py3-none-any.whl", hash = "sha256:695f2d48e53d1b6c534730062bce8f5602f5adb3be9a3b05466ad1f872b7df8d", size = 68258, upload-time = "2026-01-07T21:03:13.561Z" },
|
|
316
305
|
]
|
|
317
306
|
|
|
318
307
|
[[package]]
|
|
319
308
|
name = "fluidattacks-utils-logger"
|
|
320
309
|
source = { editable = "." }
|
|
321
310
|
dependencies = [
|
|
322
|
-
{ name = "bugsnag" },
|
|
323
311
|
{ name = "fa-purity" },
|
|
324
312
|
{ name = "fluidattacks-core" },
|
|
325
313
|
]
|
|
@@ -335,7 +323,6 @@ dev = [
|
|
|
335
323
|
|
|
336
324
|
[package.metadata]
|
|
337
325
|
requires-dist = [
|
|
338
|
-
{ name = "bugsnag", specifier = ">=4.7.0,<5.0.0" },
|
|
339
326
|
{ name = "fa-purity", specifier = ">=2.5.2,<3.0.0" },
|
|
340
327
|
{ name = "fluidattacks-core", specifier = ">=4.0.0,<5.0.0" },
|
|
341
328
|
]
|
|
@@ -484,15 +471,6 @@ wheels = [
|
|
|
484
471
|
{ url = "https://files.pythonhosted.org/packages/cb/b1/3846dd7f199d53cb17f49cba7e651e9ce294d8497c8c150530ed11865bb8/iniconfig-2.3.0-py3-none-any.whl", hash = "sha256:f631c04d2c48c52b84d0d0549c99ff3859c98df65b3101406327ecc7d53fbf12", size = 7484, upload-time = "2025-10-18T21:55:41.639Z" },
|
|
485
472
|
]
|
|
486
473
|
|
|
487
|
-
[[package]]
|
|
488
|
-
name = "legacy-cgi"
|
|
489
|
-
version = "2.6.4"
|
|
490
|
-
source = { registry = "https://pypi.org/simple" }
|
|
491
|
-
sdist = { url = "https://files.pythonhosted.org/packages/f4/9c/91c7d2c5ebbdf0a1a510bfa0ddeaa2fbb5b78677df5ac0a0aa51cf7125b0/legacy_cgi-2.6.4.tar.gz", hash = "sha256:abb9dfc7835772f7c9317977c63253fd22a7484b5c9bbcdca60a29dcce97c577", size = 24603, upload-time = "2025-10-27T05:20:05.395Z" }
|
|
492
|
-
wheels = [
|
|
493
|
-
{ url = "https://files.pythonhosted.org/packages/8c/7e/e7394eeb49a41cc514b3eb49020223666cbf40d86f5721c2f07871e6d84a/legacy_cgi-2.6.4-py3-none-any.whl", hash = "sha256:7e235ce58bf1e25d1fc9b2d299015e4e2cd37305eccafec1e6bac3fc04b878cd", size = 20035, upload-time = "2025-10-27T05:20:04.289Z" },
|
|
494
|
-
]
|
|
495
|
-
|
|
496
474
|
[[package]]
|
|
497
475
|
name = "more-itertools"
|
|
498
476
|
version = "10.8.0"
|
|
@@ -974,23 +952,11 @@ wheels = [
|
|
|
974
952
|
|
|
975
953
|
[[package]]
|
|
976
954
|
name = "urllib3"
|
|
977
|
-
version = "2.
|
|
978
|
-
source = { registry = "https://pypi.org/simple" }
|
|
979
|
-
sdist = { url = "https://files.pythonhosted.org/packages/15/22/9ee70a2574a4f4599c47dd506532914ce044817c7752a79b6a51286319bc/urllib3-2.5.0.tar.gz", hash = "sha256:3fc47733c7e419d4bc3f6b3dc2b4f890bb743906a30d56ba4a5bfa4bbff92760", size = 393185, upload-time = "2025-06-18T14:07:41.644Z" }
|
|
980
|
-
wheels = [
|
|
981
|
-
{ url = "https://files.pythonhosted.org/packages/a7/c2/fe1e52489ae3122415c51f387e221dd0773709bad6c6cdaa599e8a2c5185/urllib3-2.5.0-py3-none-any.whl", hash = "sha256:e6b01673c0fa6a13e374b50871808eb3bf7046c4b125b216f6bf1cc604cff0dc", size = 129795, upload-time = "2025-06-18T14:07:40.39Z" },
|
|
982
|
-
]
|
|
983
|
-
|
|
984
|
-
[[package]]
|
|
985
|
-
name = "webob"
|
|
986
|
-
version = "1.8.9"
|
|
955
|
+
version = "2.6.3"
|
|
987
956
|
source = { registry = "https://pypi.org/simple" }
|
|
988
|
-
|
|
989
|
-
{ name = "legacy-cgi", marker = "python_full_version >= '3.13'" },
|
|
990
|
-
]
|
|
991
|
-
sdist = { url = "https://files.pythonhosted.org/packages/85/0b/1732085540b01f65e4e7999e15864fe14cd18b12a95731a43fd6fd11b26a/webob-1.8.9.tar.gz", hash = "sha256:ad6078e2edb6766d1334ec3dee072ac6a7f95b1e32ce10def8ff7f0f02d56589", size = 279775, upload-time = "2024-10-24T03:19:20.651Z" }
|
|
957
|
+
sdist = { url = "https://files.pythonhosted.org/packages/c7/24/5f1b3bdffd70275f6661c76461e25f024d5a38a46f04aaca912426a2b1d3/urllib3-2.6.3.tar.gz", hash = "sha256:1b62b6884944a57dbe321509ab94fd4d3b307075e0c2eae991ac71ee15ad38ed", size = 435556, upload-time = "2026-01-07T16:24:43.925Z" }
|
|
992
958
|
wheels = [
|
|
993
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
959
|
+
{ url = "https://files.pythonhosted.org/packages/39/08/aaaad47bc4e9dc8c725e68f9d04865dbcb2052843ff09c97b08904852d84/urllib3-2.6.3-py3-none-any.whl", hash = "sha256:bf272323e553dfb2e87d9bfd225ca7b0f467b919d7bbd355436d3fd37cb0acd4", size = 131584, upload-time = "2026-01-07T16:24:42.685Z" },
|
|
994
960
|
]
|
|
995
961
|
|
|
996
962
|
[[package]]
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
import logging
|
|
2
|
-
from dataclasses import (
|
|
3
|
-
dataclass,
|
|
4
|
-
)
|
|
5
|
-
from logging import (
|
|
6
|
-
Handler,
|
|
7
|
-
)
|
|
8
|
-
from typing import (
|
|
9
|
-
IO,
|
|
10
|
-
)
|
|
11
|
-
|
|
12
|
-
import bugsnag
|
|
13
|
-
from bugsnag.handlers import (
|
|
14
|
-
BugsnagHandler,
|
|
15
|
-
)
|
|
16
|
-
from fa_purity import (
|
|
17
|
-
Cmd,
|
|
18
|
-
)
|
|
19
|
-
from fluidattacks_core.logging.formatters import (
|
|
20
|
-
ColorfulFormatter,
|
|
21
|
-
CustomJsonFormatter,
|
|
22
|
-
)
|
|
23
|
-
|
|
24
|
-
from fluidattacks_utils_logger.env import (
|
|
25
|
-
Envs,
|
|
26
|
-
current_app_env,
|
|
27
|
-
)
|
|
28
|
-
from fluidattacks_utils_logger.levels import (
|
|
29
|
-
LoggingLvl,
|
|
30
|
-
)
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
@dataclass(frozen=True)
|
|
34
|
-
class LoggingConf:
|
|
35
|
-
app_type: str
|
|
36
|
-
app_version: str
|
|
37
|
-
project_root: str
|
|
38
|
-
auto_capture_sessions: bool
|
|
39
|
-
api_key: str
|
|
40
|
-
release_stage: Envs
|
|
41
|
-
app_name: str
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
def bug_handler(conf: LoggingConf, min_lvl: LoggingLvl) -> Cmd[Handler]:
|
|
45
|
-
def _action() -> Handler:
|
|
46
|
-
bugsnag.configure( # type: ignore[no-untyped-call]
|
|
47
|
-
app_type=conf.app_type,
|
|
48
|
-
app_version=conf.app_version,
|
|
49
|
-
project_root=conf.project_root,
|
|
50
|
-
auto_capture_sessions=conf.auto_capture_sessions,
|
|
51
|
-
api_key=conf.api_key,
|
|
52
|
-
release_stage=conf.release_stage.value,
|
|
53
|
-
)
|
|
54
|
-
handler = BugsnagHandler() # type: ignore[no-untyped-call]
|
|
55
|
-
handler.setLevel(min_lvl.value)
|
|
56
|
-
return handler
|
|
57
|
-
|
|
58
|
-
return Cmd.wrap_impure(_action)
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
def logger_handler_with_env(
|
|
62
|
-
target: IO[str],
|
|
63
|
-
env: Envs,
|
|
64
|
-
) -> Cmd[Handler]:
|
|
65
|
-
def _action() -> Handler:
|
|
66
|
-
formatter = CustomJsonFormatter() if env == Envs.PROD else ColorfulFormatter()
|
|
67
|
-
handler = logging.StreamHandler(target)
|
|
68
|
-
handler.setFormatter(formatter)
|
|
69
|
-
return handler
|
|
70
|
-
|
|
71
|
-
return Cmd.wrap_impure(_action)
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
def logger_handler(target: IO[str]) -> Cmd[Handler]:
|
|
75
|
-
return current_app_env().bind(lambda env: logger_handler_with_env(target, env))
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|