bella-openapi 1.0.2__py3-none-any.whl → 1.0.2.2__py3-none-any.whl

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.
@@ -1,58 +1,58 @@
1
- # -*- coding: utf-8 -*-
2
- # ======================
3
- # Date : 2024/12/30
4
- # Author : Liu Yuchen
5
- # Content :
6
- #
7
- # ======================
8
- import functools
9
- import json
10
- import logging
11
- import time
12
- import traceback
13
-
14
- from ._context import TraceContext
15
-
16
- __all__ = ["trace", "BellaTraceHandler"]
17
-
18
-
19
- def trace(logger=logging):
20
- def decorator(func):
21
- @functools.wraps(func)
22
- def wrapper(*args, **kwargs):
23
- data = {
24
- "trace_info": {
25
- "bellaTraceId": TraceContext.trace_id,
26
- "serviceId": TraceContext.service_id,
27
- "start": time.time()
28
- },
29
- "function": func.__name__,
30
- "args": args,
31
- "kwargs": kwargs
32
- }
33
- try:
34
- result = func(*args, **kwargs)
35
- data["result"] = result
36
- data["trace_info"]["end"] = time.time()
37
- logger.info(json.dumps(data, ensure_ascii=False))
38
- return result
39
- except Exception as e:
40
- try:
41
- data["error_msg"] = traceback.format_exception(e)
42
- logger.error(json.dumps(data, ensure_ascii=False))
43
- except Exception as i_e:
44
- logger.error(traceback.format_exception(i_e))
45
- raise e
46
- return wrapper
47
- return decorator
48
-
49
-
50
- class BellaTraceHandler(logging.Handler):
51
-
52
- def __init__(self, fmt: str = "{name}={value}"):
53
- super().__init__()
54
- self.format = fmt
55
-
56
- def emit(self, record):
57
- if trace_id := TraceContext.trace_id:
58
- record.msg = f"{self.format.format(name='trace_id', value=trace_id)} {record.msg}"
1
+ # -*- coding: utf-8 -*-
2
+ # ======================
3
+ # Date : 2024/12/30
4
+ # Author : Liu Yuchen
5
+ # Content :
6
+ #
7
+ # ======================
8
+ import functools
9
+ import json
10
+ import logging
11
+ import time
12
+ import traceback
13
+
14
+ from ._context import TraceContext
15
+
16
+ __all__ = ["trace", "BellaTraceHandler"]
17
+
18
+
19
+ def trace(logger=logging):
20
+ def decorator(func):
21
+ @functools.wraps(func)
22
+ def wrapper(*args, **kwargs):
23
+ data = {
24
+ "trace_info": {
25
+ "bellaTraceId": TraceContext.trace_id,
26
+ "serviceId": TraceContext.service_id,
27
+ "start": time.time()
28
+ },
29
+ "function": func.__name__,
30
+ "args": args,
31
+ "kwargs": kwargs
32
+ }
33
+ try:
34
+ result = func(*args, **kwargs)
35
+ data["result"] = result
36
+ data["trace_info"]["end"] = time.time()
37
+ logger.info(json.dumps(data, ensure_ascii=False))
38
+ return result
39
+ except Exception as e:
40
+ try:
41
+ data["error_msg"] = traceback.format_exception(e)
42
+ logger.error(json.dumps(data, ensure_ascii=False))
43
+ except Exception as i_e:
44
+ logger.error(traceback.format_exception(i_e))
45
+ raise e
46
+ return wrapper
47
+ return decorator
48
+
49
+
50
+ class BellaTraceHandler(logging.Handler):
51
+
52
+ def __init__(self, fmt: str = "{name}={value}"):
53
+ super().__init__()
54
+ self.format = fmt
55
+
56
+ def emit(self, record):
57
+ if trace_id := TraceContext.trace_id:
58
+ record.msg = f"{self.format.format(name='trace_id', value=trace_id)} {record.msg}"
@@ -1,58 +1,58 @@
1
- # -*- coding: utf-8 -*-
2
- # ======================
3
- # Date : 2024/12/30
4
- # Author : Liu Yuchen
5
- # Content :
6
- #
7
- # ======================
8
- from requests import sessions
9
- from requests.adapters import HTTPAdapter
10
-
11
- from ._context import TraceContext
12
-
13
-
14
- __all__ = ["BellaTraceAdapter"]
15
-
16
-
17
- class BellaTraceAdapter(HTTPAdapter):
18
-
19
- def send(self, request, **kwargs):
20
- request.headers.update(TraceContext.headers)
21
- return super().send(request, **kwargs)
22
-
23
-
24
- def request(method, url, **kwargs):
25
- with sessions.Session() as session:
26
- session.mount("http://", BellaTraceAdapter())
27
- session.mount("https://", BellaTraceAdapter())
28
- return session.request(method=method, url=url, **kwargs)
29
-
30
-
31
- def get(url, params=None, **kwargs):
32
- return request("get", url, params=params, **kwargs)
33
-
34
-
35
- def options(url, **kwargs):
36
- return request("options", url, **kwargs)
37
-
38
-
39
- def head(url, **kwargs):
40
- kwargs.setdefault("allow_redirects", False)
41
- return request("head", url, **kwargs)
42
-
43
-
44
- def post(url, data=None, json=None, **kwargs):
45
- return request("post", url, data=data, json=json, **kwargs)
46
-
47
-
48
- def put(url, data=None, **kwargs):
49
- return request("put", url, data=data, **kwargs)
50
-
51
-
52
- def patch(url, data=None, **kwargs):
53
- return request("patch", url, data=data, **kwargs)
54
-
55
-
56
- def delete(url, **kwargs):
57
- return request("delete", url, **kwargs)
58
-
1
+ # -*- coding: utf-8 -*-
2
+ # ======================
3
+ # Date : 2024/12/30
4
+ # Author : Liu Yuchen
5
+ # Content :
6
+ #
7
+ # ======================
8
+ from requests import sessions
9
+ from requests.adapters import HTTPAdapter
10
+
11
+ from ._context import TraceContext
12
+
13
+
14
+ __all__ = ["BellaTraceAdapter"]
15
+
16
+
17
+ class BellaTraceAdapter(HTTPAdapter):
18
+
19
+ def send(self, request, **kwargs):
20
+ request.headers.update(TraceContext.headers)
21
+ return super().send(request, **kwargs)
22
+
23
+
24
+ def request(method, url, **kwargs):
25
+ with sessions.Session() as session:
26
+ session.mount("http://", BellaTraceAdapter())
27
+ session.mount("https://", BellaTraceAdapter())
28
+ return session.request(method=method, url=url, **kwargs)
29
+
30
+
31
+ def get(url, params=None, **kwargs):
32
+ return request("get", url, params=params, **kwargs)
33
+
34
+
35
+ def options(url, **kwargs):
36
+ return request("options", url, **kwargs)
37
+
38
+
39
+ def head(url, **kwargs):
40
+ kwargs.setdefault("allow_redirects", False)
41
+ return request("head", url, **kwargs)
42
+
43
+
44
+ def post(url, data=None, json=None, **kwargs):
45
+ return request("post", url, data=data, json=json, **kwargs)
46
+
47
+
48
+ def put(url, data=None, **kwargs):
49
+ return request("put", url, data=data, **kwargs)
50
+
51
+
52
+ def patch(url, data=None, **kwargs):
53
+ return request("patch", url, data=data, **kwargs)
54
+
55
+
56
+ def delete(url, **kwargs):
57
+ return request("delete", url, **kwargs)
58
+
bella_openapi/config.py CHANGED
@@ -1,15 +1,15 @@
1
- from typing import Optional
2
- import pydantic
3
-
4
- if pydantic.version.VERSION.startswith('1.'):
5
- from pydantic import BaseSettings
6
- else:
7
- from pydantic.v1 import BaseSettings
8
-
9
-
10
- class OpenAPIConfig(BaseSettings):
11
- OPENAPI_HOST: Optional[str]
12
- OPENAPI_CONSOLE_KEY: Optional[str]
13
-
14
-
15
- openapi_config = OpenAPIConfig()
1
+ from typing import Optional
2
+ import pydantic
3
+
4
+ if pydantic.version.VERSION.startswith('1.'):
5
+ from pydantic import BaseSettings
6
+ else:
7
+ from pydantic.v1 import BaseSettings
8
+
9
+
10
+ class OpenAPIConfig(BaseSettings):
11
+ OPENAPI_HOST: Optional[str]
12
+ OPENAPI_CONSOLE_KEY: Optional[str]
13
+
14
+
15
+ openapi_config = OpenAPIConfig()
@@ -1,3 +1,3 @@
1
- from .models import get_model_list
2
-
1
+ from .models import get_model_list
2
+
3
3
  __all__ = ["get_model_list"]
@@ -1,45 +1,45 @@
1
- from typing import Optional, Dict, Any, Mapping
2
-
3
- import httpx
4
-
5
- from bella_openapi.config import openapi_config
6
-
7
-
8
- def get_model_list(
9
- token: str = openapi_config.OPENAPI_CONSOLE_KEY,
10
- extra_headers: Optional[Mapping[str, str]] = None,
11
- extra_query: Optional[Mapping[str, object]] = None,
12
- ) -> Dict[str, Any]:
13
- """
14
- 获取模型列表
15
-
16
- Args:
17
- token (str): 访问令牌
18
- extra_headers: 额外的请求头
19
- extra_query: 额外的查询参数,可以包含status、features等
20
-
21
- Returns:
22
- Dict[str, Any]: API响应的JSON数据
23
-
24
- Examples:
25
- >>> get_model_list(token='****',extra_query={"status": "active", "features": "vision"})
26
- """
27
- url = openapi_config.OPENAPI_HOST + '/console/model/list'
28
- headers = {
29
- 'Authorization': token,
30
- 'Content-Type': 'application/json',
31
- }
32
- # 添加额外的请求头
33
- if extra_headers:
34
- headers.update(extra_headers)
35
- # 构建查询参数
36
- params = {}
37
- # 添加额外的查询参数
38
- if extra_query:
39
- params.update(extra_query)
40
- # 发送请求
41
- response = httpx.get(url, headers=headers, params=params)
42
- # 检查响应状态
43
- response.raise_for_status()
44
- # 返回JSON数据
1
+ from typing import Optional, Dict, Any, Mapping
2
+
3
+ import httpx
4
+
5
+ from bella_openapi.config import openapi_config
6
+
7
+
8
+ def get_model_list(
9
+ token: str = openapi_config.OPENAPI_CONSOLE_KEY,
10
+ extra_headers: Optional[Mapping[str, str]] = None,
11
+ extra_query: Optional[Mapping[str, object]] = None,
12
+ ) -> Dict[str, Any]:
13
+ """
14
+ 获取模型列表
15
+
16
+ Args:
17
+ token (str): 访问令牌
18
+ extra_headers: 额外的请求头
19
+ extra_query: 额外的查询参数,可以包含status、features等
20
+
21
+ Returns:
22
+ Dict[str, Any]: API响应的JSON数据
23
+
24
+ Examples:
25
+ >>> get_model_list(token='****',extra_query={"status": "active", "features": "vision"})
26
+ """
27
+ url = openapi_config.OPENAPI_HOST + '/console/model/list'
28
+ headers = {
29
+ 'Authorization': token,
30
+ 'Content-Type': 'application/json',
31
+ }
32
+ # 添加额外的请求头
33
+ if extra_headers:
34
+ headers.update(extra_headers)
35
+ # 构建查询参数
36
+ params = {}
37
+ # 添加额外的查询参数
38
+ if extra_query:
39
+ params.update(extra_query)
40
+ # 发送请求
41
+ response = httpx.get(url, headers=headers, params=params)
42
+ # 检查响应状态
43
+ response.raise_for_status()
44
+ # 返回JSON数据
45
45
  return response.json()
@@ -0,0 +1,3 @@
1
+ from .standard_domtree import StandardDomTree, StandardNode
2
+
3
+ __all__ = ["StandardDomTree", "StandardNode"]