MeUtils 2024.11.29.21.20.15__py3-none-any.whl → 2024.12.2.8.52.40__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.
- {MeUtils-2024.11.29.21.20.15.dist-info → MeUtils-2024.12.2.8.52.40.dist-info}/METADATA +30 -30
- {MeUtils-2024.11.29.21.20.15.dist-info → MeUtils-2024.12.2.8.52.40.dist-info}/RECORD +11 -11
- meutils/apis/kling/kolors_virtual_try_on.py +5 -1
- meutils/async_task/demo_create_tasks.py +6 -1
- meutils/async_task/utils.py +28 -8
- meutils/data/VERSION +1 -1
- meutils/schemas/task_types.py +7 -3
- {MeUtils-2024.11.29.21.20.15.dist-info → MeUtils-2024.12.2.8.52.40.dist-info}/LICENSE +0 -0
- {MeUtils-2024.11.29.21.20.15.dist-info → MeUtils-2024.12.2.8.52.40.dist-info}/WHEEL +0 -0
- {MeUtils-2024.11.29.21.20.15.dist-info → MeUtils-2024.12.2.8.52.40.dist-info}/entry_points.txt +0 -0
- {MeUtils-2024.11.29.21.20.15.dist-info → MeUtils-2024.12.2.8.52.40.dist-info}/top_level.txt +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: MeUtils
|
3
|
-
Version: 2024.
|
3
|
+
Version: 2024.12.2.8.52.40
|
4
4
|
Summary: description
|
5
5
|
Home-page: https://github.com/yuanjie-ai/MeUtils
|
6
6
|
Author: yuanjie
|
@@ -61,42 +61,42 @@ Requires-Dist: sse-starlette ; extra == 'ai'
|
|
61
61
|
Requires-Dist: openai ; extra == 'ai'
|
62
62
|
Requires-Dist: langchain ; extra == 'ai'
|
63
63
|
Provides-Extra: all
|
64
|
-
Requires-Dist:
|
65
|
-
Requires-Dist:
|
66
|
-
Requires-Dist:
|
67
|
-
Requires-Dist: schedule ; extra == 'all'
|
68
|
-
Requires-Dist: langchain ; extra == 'all'
|
69
|
-
Requires-Dist: pretty-errors ; extra == 'all'
|
70
|
-
Requires-Dist: pymilvus ; extra == 'all'
|
71
|
-
Requires-Dist: redis-py-cluster ; extra == 'all'
|
72
|
-
Requires-Dist: pymongo ; extra == 'all'
|
73
|
-
Requires-Dist: jinja2 ; extra == 'all'
|
74
|
-
Requires-Dist: missingno ; extra == 'all'
|
75
|
-
Requires-Dist: seaborn ; extra == 'all'
|
64
|
+
Requires-Dist: geopy ; extra == 'all'
|
65
|
+
Requires-Dist: thriftpy2 ; extra == 'all'
|
66
|
+
Requires-Dist: filetype ; extra == 'all'
|
76
67
|
Requires-Dist: iteration-utilities ; extra == 'all'
|
77
|
-
Requires-Dist:
|
78
|
-
Requires-Dist:
|
79
|
-
Requires-Dist:
|
68
|
+
Requires-Dist: jinja2 ; extra == 'all'
|
69
|
+
Requires-Dist: pymongo ; extra == 'all'
|
70
|
+
Requires-Dist: gunicorn ; extra == 'all'
|
80
71
|
Requires-Dist: asyncmy ; extra == 'all'
|
72
|
+
Requires-Dist: jieba ; extra == 'all'
|
73
|
+
Requires-Dist: pymupd ; extra == 'all'
|
74
|
+
Requires-Dist: faiss-cpu ; extra == 'all'
|
75
|
+
Requires-Dist: sse-starlette ; extra == 'all'
|
81
76
|
Requires-Dist: pymysql ; extra == 'all'
|
82
|
-
Requires-Dist:
|
83
|
-
Requires-Dist:
|
84
|
-
Requires-Dist:
|
77
|
+
Requires-Dist: dataframe-image ; extra == 'all'
|
78
|
+
Requires-Dist: redis-py-cluster ; extra == 'all'
|
79
|
+
Requires-Dist: sqlalchemy ; extra == 'all'
|
85
80
|
Requires-Dist: openai ; extra == 'all'
|
81
|
+
Requires-Dist: langchain ; extra == 'all'
|
86
82
|
Requires-Dist: cachetools ; extra == 'all'
|
87
|
-
Requires-Dist:
|
88
|
-
Requires-Dist: thriftpy2 ; extra == 'all'
|
89
|
-
Requires-Dist: jieba ; extra == 'all'
|
90
|
-
Requires-Dist: filetype ; extra == 'all'
|
91
|
-
Requires-Dist: streamlit ; extra == 'all'
|
92
|
-
Requires-Dist: sqlalchemy ; extra == 'all'
|
93
|
-
Requires-Dist: sse-starlette ; extra == 'all'
|
94
|
-
Requires-Dist: pandas-profiling[notebook] ; extra == 'all'
|
95
|
-
Requires-Dist: faiss-cpu ; extra == 'all'
|
83
|
+
Requires-Dist: reportlab ; extra == 'all'
|
96
84
|
Requires-Dist: pyarrow ; extra == 'all'
|
97
|
-
Requires-Dist:
|
98
|
-
Requires-Dist:
|
85
|
+
Requires-Dist: pymilvus ; extra == 'all'
|
86
|
+
Requires-Dist: pandas-summary ; extra == 'all'
|
87
|
+
Requires-Dist: seaborn ; extra == 'all'
|
88
|
+
Requires-Dist: fastapi[all] ; extra == 'all'
|
89
|
+
Requires-Dist: pandas-profiling[notebook] ; extra == 'all'
|
90
|
+
Requires-Dist: streamlit ; extra == 'all'
|
91
|
+
Requires-Dist: uvicorn ; extra == 'all'
|
92
|
+
Requires-Dist: pretty-errors ; extra == 'all'
|
93
|
+
Requires-Dist: thefuck ; extra == 'all'
|
94
|
+
Requires-Dist: polars ; extra == 'all'
|
95
|
+
Requires-Dist: simplejson ; extra == 'all'
|
96
|
+
Requires-Dist: fastapi ; extra == 'all'
|
97
|
+
Requires-Dist: missingno ; extra == 'all'
|
99
98
|
Requires-Dist: jmespath ; extra == 'all'
|
99
|
+
Requires-Dist: schedule ; extra == 'all'
|
100
100
|
Provides-Extra: ann
|
101
101
|
Requires-Dist: pymilvus ; extra == 'ann'
|
102
102
|
Requires-Dist: faiss-cpu ; extra == 'ann'
|
@@ -350,7 +350,7 @@ meutils/apis/jiema/yezi.py,sha256=26vhnA3lC5049Rqx-CHO-wyGKbdZAfvjEOG90W38cr0,36
|
|
350
350
|
meutils/apis/kling/__init__.py,sha256=pKz40SEjui1dhHBD-icyNTJOYhzLvxLxJCwszuH4vio,271
|
351
351
|
meutils/apis/kling/api.py,sha256=AuVQ9URmrbTlz7dEv_kIyhA9fMTZPL9rF3Td6KxTIMA,2183
|
352
352
|
meutils/apis/kling/images.py,sha256=FcCkvA4x1Po3SuugfQa8klT0Lrj7fq4N8kbzx6luUxI,5095
|
353
|
-
meutils/apis/kling/kolors_virtual_try_on.py,sha256=
|
353
|
+
meutils/apis/kling/kolors_virtual_try_on.py,sha256=khIoa6zPGA7tALocrIDBZmVa5ik1rprp-iy4VcWgzSM,3094
|
354
354
|
meutils/apis/kling/videos.py,sha256=6z3w0gQHPe3BQNid4ZO2DfYSqvry44EMehG9U0qSB3E,2115
|
355
355
|
meutils/apis/kling/鉴权.py,sha256=1kR67Mb0PxEo4ZxLVJZys4Iru9BUnS_Qqo2cbpLZNCU,842
|
356
356
|
meutils/apis/kuaishou/__init__.py,sha256=fDzJvVQl_CxHyiL3bCPH9x7gOLYfK6QuW2iQ33eez7c,243
|
@@ -418,8 +418,8 @@ meutils/apis/voice_clone/fish_api.py,sha256=pDpE-B8HFiGIOV3NVd1HmFrCC2GQc3wH-81o
|
|
418
418
|
meutils/async_task/__init__.py,sha256=45cUr-GWvQ1JFYGOYPOIkHLyTR3JbfP_PEYrmktpMLo,367
|
419
419
|
meutils/async_task/celery_config.py,sha256=-p8-uGQq0HFFifZWZY6duCxEDcPJpWA4A_Rnz-WNysU,3430
|
420
420
|
meutils/async_task/common.py,sha256=ZJ4e0CsEJf1ppPmGSwPCwhZBAkUL5xsi_t1ny-bJuko,845
|
421
|
-
meutils/async_task/demo_create_tasks.py,sha256=
|
422
|
-
meutils/async_task/utils.py,sha256=
|
421
|
+
meutils/async_task/demo_create_tasks.py,sha256=Eu4XjNxRROmMJ0oKfbEhrfLTaOUgedbAhmFyQx5nOQc,2699
|
422
|
+
meutils/async_task/utils.py,sha256=jqJArlsv8C559fuN9Qz1q777dRuw44DtctKzKFQwJbA,5190
|
423
423
|
meutils/async_task/通用设计.py,sha256=kGdrJHJu9VoOkyGHREn0KUtBTibAaLIcG0O6hEJNhLA,3232
|
424
424
|
meutils/async_task/tasks/__init__.py,sha256=flHRXJMdts_9az9T9V1c5l3Y-gaDD88COWrARr4WAKU,246
|
425
425
|
meutils/async_task/tasks/_all.py,sha256=Vz63k9yvgj-IBGjekm0u2t571TTT0nMRMqcPvPqJAbY,533
|
@@ -460,7 +460,7 @@ meutils/config_utils/lark_utils/demo.py,sha256=3g0Fs7oLaeW75T60gYWMLgyNg1OnfOjfH
|
|
460
460
|
meutils/config_utils/lark_utils/x.py,sha256=MlMQGhehP9xMEgetxVCX68XFaosfKoW1JA5cZ3JqN2w,1857
|
461
461
|
meutils/crawlers/__init__.py,sha256=TBU4xA-IOsHV-0yIkW7YXxn_QT7TT8NncqxO7IykEfs,271
|
462
462
|
meutils/data/SimHei.ttf,sha256=-XEnekS5yHP_URkT4XBI2w22ylV-KxudhkeIYFbrILA,10062565
|
463
|
-
meutils/data/VERSION,sha256=
|
463
|
+
meutils/data/VERSION,sha256=9M1foIAwkqkrZoMedtaqp9mmEE8XG8DGG09VdEn8Iqs,19
|
464
464
|
meutils/data/_FLAG,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
465
465
|
meutils/data/_SUCCESS,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
466
466
|
meutils/data/__init__.py,sha256=Hfwkkxs4zHqKhxht0YrhS566a9P5axtmgNvM5wF8ceQ,243
|
@@ -655,7 +655,7 @@ meutils/schemas/runwayml_types.py,sha256=q6g00kg1PYCDjpw-notgbcUGwRAlIa8kAmU52Zu
|
|
655
655
|
meutils/schemas/siliconflow_types.py,sha256=amOygjMqbSss4021sCNX1p5d-k1wa2tNLr0gnke1Vrc,8429
|
656
656
|
meutils/schemas/step_types.py,sha256=nGTPXZ7RwOF2RTsPBQguLLcIaBxHs4bsZkYa_LalcJ0,648
|
657
657
|
meutils/schemas/suno_types.py,sha256=KTdcwaJNDUFiY8izVJSZdGZgEMb0OhdiRR_dJVN-Cz0,14967
|
658
|
-
meutils/schemas/task_types.py,sha256=
|
658
|
+
meutils/schemas/task_types.py,sha256=pMVRtvPUxb5bMQ9SKn2gzMRUAvTUMTmsPFryrsARgss,4561
|
659
659
|
meutils/schemas/translator_types.py,sha256=xufNQeyim7RhkzAK_J5_JchZfqaUBDXFwMtrPUu1xzI,627
|
660
660
|
meutils/schemas/tripo3d_types.py,sha256=mQF65HwHYmczRgAIuXK5hGxWDWNYDq-Xu9pja7Dwy4o,1452
|
661
661
|
meutils/schemas/tryblend_types.py,sha256=glZ0diRJvZmfQotcCWYBA832inihy8TvVWxWZ64CzWA,27793
|
@@ -793,9 +793,9 @@ meutils/tools/seize.py,sha256=nOKAS63w-Lbi48I0m2MPhdsokUTwxco0laPxYVmW4Mw,1064
|
|
793
793
|
meutils/tools/service_monitor.py,sha256=ibsLtBN2g2DL7ZnLJ8vhiZOiOcqTAyx711djDdBK-3M,1255
|
794
794
|
meutils/tools/sys_monitor.py,sha256=6MoyzrItqDUOSjfHcMJmMofQkEPTW36CT_aKui0rg84,429
|
795
795
|
meutils/tools/token_monitor.py,sha256=Np-YK-R4P4IPAXyZvMxwvXI4sFmNJQAQK1lSegNaYpA,997
|
796
|
-
MeUtils-2024.
|
797
|
-
MeUtils-2024.
|
798
|
-
MeUtils-2024.
|
799
|
-
MeUtils-2024.
|
800
|
-
MeUtils-2024.
|
801
|
-
MeUtils-2024.
|
796
|
+
MeUtils-2024.12.2.8.52.40.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
797
|
+
MeUtils-2024.12.2.8.52.40.dist-info/METADATA,sha256=PEy8UrM2rrZyTUNtwP_lHGRqRbSNYHzqhKWS7bp-LUI,6142
|
798
|
+
MeUtils-2024.12.2.8.52.40.dist-info/WHEEL,sha256=R0nc6qTxuoLk7ShA2_Y-UWkN8ZdfDBG2B6Eqpz2WXbs,91
|
799
|
+
MeUtils-2024.12.2.8.52.40.dist-info/entry_points.txt,sha256=lufZlBHRqqZKdY-ZQJ4CSZb0qhV5hQC37egZna9M7ug,357
|
800
|
+
MeUtils-2024.12.2.8.52.40.dist-info/top_level.txt,sha256=cInfxMmkgNOskurdjwP5unau4rA7Uw48nu07tYhS7KY,22
|
801
|
+
MeUtils-2024.12.2.8.52.40.dist-info/RECORD,,
|
@@ -10,6 +10,7 @@
|
|
10
10
|
import jwt
|
11
11
|
|
12
12
|
from meutils.pipe import *
|
13
|
+
from meutils.schemas.task_types import TaskResponse ############# 根据这个重构
|
13
14
|
from meutils.schemas.kling_types import API_BASE_URL, TryOnRequest, TaskResponse
|
14
15
|
from meutils.config_utils.lark_utils import get_next_token_for_polling
|
15
16
|
from meutils.decorators.retry import retrying
|
@@ -33,9 +34,12 @@ def encode_jwt_token(token):
|
|
33
34
|
return token
|
34
35
|
|
35
36
|
|
37
|
+
###################################################################### 重构
|
38
|
+
|
39
|
+
######################################################################
|
36
40
|
@alru_cache(ttl=3600)
|
37
41
|
@retrying(title=__name__)
|
38
|
-
async def create_task(request: TryOnRequest, token: Optional[str] = None):
|
42
|
+
async def create_task(request: TryOnRequest, token: Optional[str] = None): ###### 所有的 TaskResponse标准化
|
39
43
|
token = token or await get_next_token_for_polling(FEISHU_URL)
|
40
44
|
token = encode_jwt_token(token)
|
41
45
|
|
@@ -11,7 +11,7 @@
|
|
11
11
|
from meutils.pipe import *
|
12
12
|
|
13
13
|
from meutils.async_task import worker
|
14
|
-
from meutils.async_task.tasks import test
|
14
|
+
from meutils.async_task.tasks import test, kling
|
15
15
|
from celery.result import AsyncResult
|
16
16
|
|
17
17
|
|
@@ -70,3 +70,8 @@ if __name__ == '__main__':
|
|
70
70
|
|
71
71
|
# test.ado_pydantic_task.apply_async(kwargs={"request": test.Request().model_dump()})
|
72
72
|
# test.ado_pydantic_task_2.apply_async(kwargs={"request": test.Request().model_dump()})
|
73
|
+
|
74
|
+
|
75
|
+
kling.create_task.apply_async(kwargs={"request": kling.kolors_virtual_try_on.TryOnRequest().model_dump()})
|
76
|
+
|
77
|
+
|
meutils/async_task/utils.py
CHANGED
@@ -48,7 +48,8 @@ async def create_task(async_task, request: Union[BaseModel, dict]):
|
|
48
48
|
async def get_task(
|
49
49
|
task_id: str,
|
50
50
|
remote_get_task: Optional[Callable] = None,
|
51
|
-
filter_kwargs: Optional[dict] = None
|
51
|
+
filter_kwargs: Optional[dict] = None,
|
52
|
+
background_tasks: Optional[BackgroundTasks] = None,
|
52
53
|
):
|
53
54
|
"""
|
54
55
|
|
@@ -63,12 +64,18 @@ async def get_task(
|
|
63
64
|
}
|
64
65
|
:return:
|
65
66
|
"""
|
67
|
+
filter_kwargs = filter_kwargs or {}
|
68
|
+
filter_kwargs["task_id"] = task_id
|
69
|
+
|
66
70
|
result = AsyncResult(id=task_id)
|
71
|
+
# logger.debug(bjson(result._get_task_meta()))
|
72
|
+
# logger.debug(bjson(result.get()))
|
73
|
+
|
74
|
+
data = result.get() # 创建任务时:remote task的返回结果
|
75
|
+
logger.debug(bjson(data))
|
67
76
|
|
68
77
|
if result.ready():
|
69
78
|
if result.successful():
|
70
|
-
data = result.get() # 创建任务时:remote task的返回结果
|
71
|
-
|
72
79
|
remote_task_id = (
|
73
80
|
data.get("task_id") # 远程任务 写在最外层
|
74
81
|
or data.get("id")
|
@@ -113,9 +120,10 @@ async def get_task(
|
|
113
120
|
|
114
121
|
# 更新到数据库:异步任务
|
115
122
|
update_fn = partial(update_oneapi_from_response, task_response=response)
|
116
|
-
|
117
|
-
|
118
|
-
|
123
|
+
if background_tasks:
|
124
|
+
background_tasks.add_task(update_or_insert, OneapiTask, filter_kwargs, update_fn)
|
125
|
+
else:
|
126
|
+
await update_or_insert(OneapiTask, filter_kwargs, update_fn)
|
119
127
|
|
120
128
|
return response
|
121
129
|
|
@@ -136,7 +144,7 @@ async def update_oneapi_from_response(task: OneapiTask, task_response: TaskRespo
|
|
136
144
|
"""
|
137
145
|
if task.status in {"SUCCESS", "FAILURE"}: return False # 跳出轮询,不再更新
|
138
146
|
|
139
|
-
task.data = task_response.model_dump(
|
147
|
+
task.data = task_response.model_dump(exclude={"system_fingerprint"})
|
140
148
|
task.status = task_response.status
|
141
149
|
task.progress = time.time() // 10 % 100
|
142
150
|
|
@@ -150,4 +158,16 @@ async def update_oneapi_from_response(task: OneapiTask, task_response: TaskRespo
|
|
150
158
|
|
151
159
|
|
152
160
|
if __name__ == '__main__':
|
153
|
-
|
161
|
+
from meutils.async_task import worker, shared_task #######重要 需要识别到worker
|
162
|
+
|
163
|
+
from meutils.apis.kling import kolors_virtual_try_on
|
164
|
+
|
165
|
+
task_id = "807e1525-11ff-40ca-8572-1cfc33d69673"
|
166
|
+
filter_kwargs = {
|
167
|
+
"task_id": task_id, #########理论上只需这个
|
168
|
+
"user_id": 1,
|
169
|
+
"platform": "kling",
|
170
|
+
"action": "kling", # 模型
|
171
|
+
}
|
172
|
+
|
173
|
+
arun(get_task(task_id, kolors_virtual_try_on.get_task, filter_kwargs))
|
meutils/data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2024.
|
1
|
+
2024.12.02.08.52.40
|
meutils/schemas/task_types.py
CHANGED
@@ -54,12 +54,16 @@ class TaskResponse(BaseModel):
|
|
54
54
|
data: Optional[Any] = None
|
55
55
|
|
56
56
|
# 系统水印:可以存token
|
57
|
-
# user_id: Optional[str] = None
|
58
57
|
system_fingerprint: Optional[str] = None
|
59
58
|
|
59
|
+
model: Optional[str] = None
|
60
|
+
|
61
|
+
# created_at: int = Field(default_factory=lambda: int(time.time()))
|
62
|
+
created_at: Union[str, int] = Field(default_factory=lambda: datetime.datetime.today().isoformat())
|
63
|
+
|
60
64
|
def __init__(self, /, **data: Any):
|
61
65
|
super().__init__(**data)
|
62
|
-
self.status = STATUSES.get(self.status, "UNKNOWN")
|
66
|
+
self.status = STATUSES.get(self.status.lower(), "UNKNOWN")
|
63
67
|
|
64
68
|
class Config:
|
65
69
|
# 允许额外字段,增加灵活性
|
@@ -126,11 +130,11 @@ class Task(BaseModel):
|
|
126
130
|
data: Optional[Any] = None
|
127
131
|
metadata: Optional[Any] = None
|
128
132
|
# metadata: Optional[Dict[str, str]] = None
|
129
|
-
description: Optional[str] = None
|
130
133
|
|
131
134
|
system_fingerprint: Optional[str] = None # api-key token cookie 加密
|
132
135
|
|
133
136
|
created_at: int = Field(default_factory=lambda: int(time.time()))
|
137
|
+
description: Optional[str] = None
|
134
138
|
|
135
139
|
|
136
140
|
class FileTask(BaseModel):
|
File without changes
|
File without changes
|
{MeUtils-2024.11.29.21.20.15.dist-info → MeUtils-2024.12.2.8.52.40.dist-info}/entry_points.txt
RENAMED
File without changes
|
File without changes
|