fiuai-sdk-python 0.6.8__tar.gz → 0.6.9__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.
- {fiuai_sdk_python-0.6.8 → fiuai_sdk_python-0.6.9}/PKG-INFO +1 -1
- {fiuai_sdk_python-0.6.8 → fiuai_sdk_python-0.6.9}/pyproject.toml +1 -1
- {fiuai_sdk_python-0.6.8 → fiuai_sdk_python-0.6.9}/src/fiuai_sdk_python/utils/logger.py +45 -26
- {fiuai_sdk_python-0.6.8 → fiuai_sdk_python-0.6.9}/.gitignore +0 -0
- {fiuai_sdk_python-0.6.8 → fiuai_sdk_python-0.6.9}/CHANGELOG.md +0 -0
- {fiuai_sdk_python-0.6.8 → fiuai_sdk_python-0.6.9}/LICENSE +0 -0
- {fiuai_sdk_python-0.6.8 → fiuai_sdk_python-0.6.9}/README.md +0 -0
- {fiuai_sdk_python-0.6.8 → fiuai_sdk_python-0.6.9}/src/fiuai_sdk_python/__init__.py +0 -0
- {fiuai_sdk_python-0.6.8 → fiuai_sdk_python-0.6.9}/src/fiuai_sdk_python/auth/__init__.py +0 -0
- {fiuai_sdk_python-0.6.8 → fiuai_sdk_python-0.6.9}/src/fiuai_sdk_python/auth/context_mgr.py +0 -0
- {fiuai_sdk_python-0.6.8 → fiuai_sdk_python-0.6.9}/src/fiuai_sdk_python/auth/header.py +0 -0
- {fiuai_sdk_python-0.6.8 → fiuai_sdk_python-0.6.9}/src/fiuai_sdk_python/auth/helper.py +0 -0
- {fiuai_sdk_python-0.6.8 → fiuai_sdk_python-0.6.9}/src/fiuai_sdk_python/auth/type.py +0 -0
- {fiuai_sdk_python-0.6.8 → fiuai_sdk_python-0.6.9}/src/fiuai_sdk_python/bank.py +0 -0
- {fiuai_sdk_python-0.6.8 → fiuai_sdk_python-0.6.9}/src/fiuai_sdk_python/client.py +0 -0
- {fiuai_sdk_python-0.6.8 → fiuai_sdk_python-0.6.9}/src/fiuai_sdk_python/company.py +0 -0
- {fiuai_sdk_python-0.6.8 → fiuai_sdk_python-0.6.9}/src/fiuai_sdk_python/config.py +0 -0
- {fiuai_sdk_python-0.6.8 → fiuai_sdk_python-0.6.9}/src/fiuai_sdk_python/const.py +0 -0
- {fiuai_sdk_python-0.6.8 → fiuai_sdk_python-0.6.9}/src/fiuai_sdk_python/context.py +0 -0
- {fiuai_sdk_python-0.6.8 → fiuai_sdk_python-0.6.9}/src/fiuai_sdk_python/datatype.py +0 -0
- {fiuai_sdk_python-0.6.8 → fiuai_sdk_python-0.6.9}/src/fiuai_sdk_python/doctype.py +0 -0
- {fiuai_sdk_python-0.6.8 → fiuai_sdk_python-0.6.9}/src/fiuai_sdk_python/error.py +0 -0
- {fiuai_sdk_python-0.6.8 → fiuai_sdk_python-0.6.9}/src/fiuai_sdk_python/examples/fastapi_integration.py +0 -0
- {fiuai_sdk_python-0.6.8 → fiuai_sdk_python-0.6.9}/src/fiuai_sdk_python/http/__init__.py +0 -0
- {fiuai_sdk_python-0.6.8 → fiuai_sdk_python-0.6.9}/src/fiuai_sdk_python/http/client.py +0 -0
- {fiuai_sdk_python-0.6.8 → fiuai_sdk_python-0.6.9}/src/fiuai_sdk_python/item.py +0 -0
- {fiuai_sdk_python-0.6.8 → fiuai_sdk_python-0.6.9}/src/fiuai_sdk_python/perm.py +0 -0
- {fiuai_sdk_python-0.6.8 → fiuai_sdk_python-0.6.9}/src/fiuai_sdk_python/pkg/cache/__init__.py +0 -0
- {fiuai_sdk_python-0.6.8 → fiuai_sdk_python-0.6.9}/src/fiuai_sdk_python/pkg/cache/redis_manager.py +0 -0
- {fiuai_sdk_python-0.6.8 → fiuai_sdk_python-0.6.9}/src/fiuai_sdk_python/pkg/db/__init__.py +0 -0
- {fiuai_sdk_python-0.6.8 → fiuai_sdk_python-0.6.9}/src/fiuai_sdk_python/pkg/db/config.py +0 -0
- {fiuai_sdk_python-0.6.8 → fiuai_sdk_python-0.6.9}/src/fiuai_sdk_python/pkg/db/errors.py +0 -0
- {fiuai_sdk_python-0.6.8 → fiuai_sdk_python-0.6.9}/src/fiuai_sdk_python/pkg/db/manager.py +0 -0
- {fiuai_sdk_python-0.6.8 → fiuai_sdk_python-0.6.9}/src/fiuai_sdk_python/pkg/db/utils.py +0 -0
- {fiuai_sdk_python-0.6.8 → fiuai_sdk_python-0.6.9}/src/fiuai_sdk_python/pkg/vector/__init__.py +0 -0
- {fiuai_sdk_python-0.6.8 → fiuai_sdk_python-0.6.9}/src/fiuai_sdk_python/pkg/vector/vector.py +0 -0
- {fiuai_sdk_python-0.6.8 → fiuai_sdk_python-0.6.9}/src/fiuai_sdk_python/profile.py +0 -0
- {fiuai_sdk_python-0.6.8 → fiuai_sdk_python-0.6.9}/src/fiuai_sdk_python/resp.py +0 -0
- {fiuai_sdk_python-0.6.8 → fiuai_sdk_python-0.6.9}/src/fiuai_sdk_python/setup.py +0 -0
- {fiuai_sdk_python-0.6.8 → fiuai_sdk_python-0.6.9}/src/fiuai_sdk_python/type.py +0 -0
- {fiuai_sdk_python-0.6.8 → fiuai_sdk_python-0.6.9}/src/fiuai_sdk_python/util.py +0 -0
- {fiuai_sdk_python-0.6.8 → fiuai_sdk_python-0.6.9}/src/fiuai_sdk_python/utils/__init__.py +0 -0
- {fiuai_sdk_python-0.6.8 → fiuai_sdk_python-0.6.9}/src/fiuai_sdk_python/utils/ids.py +0 -0
- {fiuai_sdk_python-0.6.8 → fiuai_sdk_python-0.6.9}/src/fiuai_sdk_python/utils/text.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: fiuai_sdk_python
|
|
3
|
-
Version: 0.6.
|
|
3
|
+
Version: 0.6.9
|
|
4
4
|
Summary: FiuAI Python SDK - 企业级AI服务集成开发工具包
|
|
5
5
|
Project-URL: Homepage, https://github.com/fiuai/fiuai-sdk-python
|
|
6
6
|
Project-URL: Documentation, https://github.com/fiuai/fiuai-sdk-python#readme
|
|
@@ -8,49 +8,78 @@
|
|
|
8
8
|
import logging
|
|
9
9
|
import os
|
|
10
10
|
import sys
|
|
11
|
+
from typing import Any, Callable, Dict, Optional
|
|
11
12
|
|
|
12
13
|
|
|
14
|
+
def _make_context_filter(
|
|
15
|
+
context_injector: Optional[Callable[[], Optional[Dict[str, Any]]]],
|
|
16
|
+
) -> logging.Filter:
|
|
17
|
+
"""根据 context_injector 构建过滤器:非 None 时注入返回值到 record,否则仅设置默认 trace_id。"""
|
|
18
|
+
|
|
19
|
+
class _InjectorFilter(logging.Filter):
|
|
20
|
+
def __init__(self, injector: Optional[Callable[[], Optional[Dict[str, Any]]]]) -> None:
|
|
21
|
+
super().__init__()
|
|
22
|
+
self._injector = injector
|
|
23
|
+
|
|
24
|
+
def filter(self, record: logging.LogRecord) -> bool:
|
|
25
|
+
if self._injector is not None:
|
|
26
|
+
try:
|
|
27
|
+
ctx = self._injector()
|
|
28
|
+
if ctx:
|
|
29
|
+
for k, v in ctx.items():
|
|
30
|
+
setattr(record, k, v)
|
|
31
|
+
except Exception:
|
|
32
|
+
pass
|
|
33
|
+
if not getattr(record, "trace_id", None):
|
|
34
|
+
record.trace_id = "-"
|
|
35
|
+
return True
|
|
36
|
+
|
|
37
|
+
return _InjectorFilter(context_injector)
|
|
13
38
|
|
|
14
39
|
|
|
15
40
|
def init_logger(
|
|
16
41
|
log_path: str = "logs/",
|
|
17
42
|
log_level: str = "INFO",
|
|
18
43
|
json_log: bool = False,
|
|
19
|
-
caller: bool = True
|
|
44
|
+
caller: bool = True,
|
|
45
|
+
context_injector: Optional[Callable[[], Optional[Dict[str, Any]]]] = None,
|
|
20
46
|
):
|
|
21
47
|
"""初始化日志配置
|
|
22
|
-
|
|
48
|
+
|
|
23
49
|
Args:
|
|
24
50
|
log_path: 日志文件路径
|
|
25
51
|
log_level: 日志级别
|
|
26
52
|
json_log: 是否使用JSON格式日志
|
|
27
53
|
caller: 是否显示调用者信息
|
|
54
|
+
context_injector: 可选,无参可调用对象,返回 dict(如 {"trace_id": "xxx"}),
|
|
55
|
+
非 None 时会将返回的键值注入到每条日志记录中。
|
|
28
56
|
"""
|
|
29
57
|
# 创建日志目录
|
|
30
58
|
if log_path and not os.path.exists(log_path):
|
|
31
59
|
os.makedirs(log_path)
|
|
32
|
-
|
|
60
|
+
|
|
33
61
|
# 设置日志级别
|
|
34
62
|
level = getattr(logging, log_level.upper(), logging.INFO)
|
|
35
|
-
|
|
63
|
+
|
|
36
64
|
# 获取根日志记录器
|
|
37
65
|
root_logger = logging.getLogger()
|
|
38
|
-
|
|
66
|
+
|
|
39
67
|
# 设置根日志记录器的级别
|
|
40
68
|
root_logger.setLevel(level)
|
|
41
|
-
|
|
69
|
+
|
|
42
70
|
# 清除现有的处理器(避免重复添加)
|
|
43
71
|
root_logger.handlers.clear()
|
|
44
|
-
|
|
72
|
+
|
|
73
|
+
context_filter = _make_context_filter(context_injector)
|
|
74
|
+
log_format = '%(asctime)s - %(name)s - %(levelname)s - [trace_id:%(trace_id)s] - %(message)s'
|
|
75
|
+
|
|
45
76
|
# 配置控制台处理器
|
|
46
77
|
console_handler = logging.StreamHandler(sys.stdout)
|
|
47
78
|
console_handler.setLevel(level)
|
|
48
|
-
# 添加 event_id 和 task_id 到日志格式中
|
|
49
|
-
log_format = '%(asctime)s - %(name)s - %(levelname)s - [trace_id:%(trace_id)s] - %(message)s'
|
|
50
79
|
console_handler.setFormatter(logging.Formatter(log_format))
|
|
51
|
-
|
|
80
|
+
console_handler.addFilter(context_filter)
|
|
52
81
|
root_logger.addHandler(console_handler)
|
|
53
|
-
|
|
82
|
+
|
|
54
83
|
# 如果指定了日志文件路径,添加文件处理器
|
|
55
84
|
if log_path:
|
|
56
85
|
file_handler = logging.FileHandler(
|
|
@@ -58,13 +87,11 @@ def init_logger(
|
|
|
58
87
|
encoding='utf-8'
|
|
59
88
|
)
|
|
60
89
|
file_handler.setLevel(level)
|
|
61
|
-
# 添加 event_id 和 task_id 到日志格式中
|
|
62
90
|
file_handler.setFormatter(logging.Formatter(log_format))
|
|
63
|
-
|
|
91
|
+
file_handler.addFilter(context_filter)
|
|
64
92
|
root_logger.addHandler(file_handler)
|
|
65
|
-
|
|
93
|
+
|
|
66
94
|
# 过滤第三方库的日志,只显示 ERROR 及以上级别
|
|
67
|
-
# 这样可以减少不必要的 INFO、DEBUG 和 WARNING 日志输出
|
|
68
95
|
third_party_loggers = [
|
|
69
96
|
'nebula3.logger',
|
|
70
97
|
'nebula3',
|
|
@@ -77,21 +104,13 @@ def init_logger(
|
|
|
77
104
|
third_party_logger.setLevel(logging.ERROR)
|
|
78
105
|
|
|
79
106
|
|
|
80
|
-
# 全局过滤器实例
|
|
81
|
-
|
|
82
|
-
|
|
83
107
|
def get_logger(name: str) -> logging.Logger:
|
|
84
108
|
"""获取日志记录器
|
|
85
|
-
|
|
86
|
-
自动添加 ContextFilter,从上下文中获取 event_id 和 task_id 并记录到日志中
|
|
87
|
-
|
|
109
|
+
|
|
88
110
|
Args:
|
|
89
111
|
name: 日志记录器名称
|
|
90
|
-
|
|
112
|
+
|
|
91
113
|
Returns:
|
|
92
114
|
logging.Logger: 日志记录器实例
|
|
93
115
|
"""
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
return logger
|
|
116
|
+
return logging.getLogger(name)
|
|
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
|
|
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
|
{fiuai_sdk_python-0.6.8 → fiuai_sdk_python-0.6.9}/src/fiuai_sdk_python/pkg/cache/__init__.py
RENAMED
|
File without changes
|
{fiuai_sdk_python-0.6.8 → fiuai_sdk_python-0.6.9}/src/fiuai_sdk_python/pkg/cache/redis_manager.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fiuai_sdk_python-0.6.8 → fiuai_sdk_python-0.6.9}/src/fiuai_sdk_python/pkg/vector/__init__.py
RENAMED
|
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
|