dwyeapi 0.9.1__tar.gz → 0.9.3__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.
- {dwyeapi-0.9.1 → dwyeapi-0.9.3}/PKG-INFO +2 -1
- {dwyeapi-0.9.1 → dwyeapi-0.9.3}/pyproject.toml +21 -2
- {dwyeapi-0.9.1 → dwyeapi-0.9.3}/src/dwyeapi/tasks/model.py +7 -7
- {dwyeapi-0.9.1 → dwyeapi-0.9.3}/src/dwyeapi.egg-info/PKG-INFO +2 -1
- {dwyeapi-0.9.1 → dwyeapi-0.9.3}/README.md +0 -0
- {dwyeapi-0.9.1 → dwyeapi-0.9.3}/setup.cfg +0 -0
- {dwyeapi-0.9.1 → dwyeapi-0.9.3}/src/dwyeapi/__init__.py +0 -0
- {dwyeapi-0.9.1 → dwyeapi-0.9.3}/src/dwyeapi/cache.py +0 -0
- {dwyeapi-0.9.1 → dwyeapi-0.9.3}/src/dwyeapi/config.py +0 -0
- {dwyeapi-0.9.1 → dwyeapi-0.9.3}/src/dwyeapi/database.py +0 -0
- {dwyeapi-0.9.1 → dwyeapi-0.9.3}/src/dwyeapi/dependencies.py +0 -0
- {dwyeapi-0.9.1 → dwyeapi-0.9.3}/src/dwyeapi/dt.py +0 -0
- {dwyeapi-0.9.1 → dwyeapi-0.9.3}/src/dwyeapi/exceptions.py +0 -0
- {dwyeapi-0.9.1 → dwyeapi-0.9.3}/src/dwyeapi/health.py +0 -0
- {dwyeapi-0.9.1 → dwyeapi-0.9.3}/src/dwyeapi/logger.py +0 -0
- {dwyeapi-0.9.1 → dwyeapi-0.9.3}/src/dwyeapi/masking.py +0 -0
- {dwyeapi-0.9.1 → dwyeapi-0.9.3}/src/dwyeapi/pagination.py +0 -0
- {dwyeapi-0.9.1 → dwyeapi-0.9.3}/src/dwyeapi/providers/__init__.py +0 -0
- {dwyeapi-0.9.1 → dwyeapi-0.9.3}/src/dwyeapi/providers/email/__init__.py +0 -0
- {dwyeapi-0.9.1 → dwyeapi-0.9.3}/src/dwyeapi/providers/email/base.py +0 -0
- {dwyeapi-0.9.1 → dwyeapi-0.9.3}/src/dwyeapi/providers/email/config.py +0 -0
- {dwyeapi-0.9.1 → dwyeapi-0.9.3}/src/dwyeapi/providers/email/factory.py +0 -0
- {dwyeapi-0.9.1 → dwyeapi-0.9.3}/src/dwyeapi/providers/email/protocol.py +0 -0
- {dwyeapi-0.9.1 → dwyeapi-0.9.3}/src/dwyeapi/providers/email/resend.py +0 -0
- {dwyeapi-0.9.1 → dwyeapi-0.9.3}/src/dwyeapi/response.py +0 -0
- {dwyeapi-0.9.1 → dwyeapi-0.9.3}/src/dwyeapi/security.py +0 -0
- {dwyeapi-0.9.1 → dwyeapi-0.9.3}/src/dwyeapi/tasks/__init__.py +0 -0
- {dwyeapi-0.9.1 → dwyeapi-0.9.3}/src/dwyeapi/tasks/context.py +0 -0
- {dwyeapi-0.9.1 → dwyeapi-0.9.3}/src/dwyeapi/tasks/pool.py +0 -0
- {dwyeapi-0.9.1 → dwyeapi-0.9.3}/src/dwyeapi/tasks/registry.py +0 -0
- {dwyeapi-0.9.1 → dwyeapi-0.9.3}/src/dwyeapi/tasks/router.py +0 -0
- {dwyeapi-0.9.1 → dwyeapi-0.9.3}/src/dwyeapi/tasks/schema.py +0 -0
- {dwyeapi-0.9.1 → dwyeapi-0.9.3}/src/dwyeapi/tasks/service.py +0 -0
- {dwyeapi-0.9.1 → dwyeapi-0.9.3}/src/dwyeapi/tasks/worker.py +0 -0
- {dwyeapi-0.9.1 → dwyeapi-0.9.3}/src/dwyeapi.egg-info/SOURCES.txt +0 -0
- {dwyeapi-0.9.1 → dwyeapi-0.9.3}/src/dwyeapi.egg-info/dependency_links.txt +0 -0
- {dwyeapi-0.9.1 → dwyeapi-0.9.3}/src/dwyeapi.egg-info/requires.txt +0 -0
- {dwyeapi-0.9.1 → dwyeapi-0.9.3}/src/dwyeapi.egg-info/top_level.txt +0 -0
- {dwyeapi-0.9.1 → dwyeapi-0.9.3}/tests/test_cache.py +0 -0
- {dwyeapi-0.9.1 → dwyeapi-0.9.3}/tests/test_config.py +0 -0
- {dwyeapi-0.9.1 → dwyeapi-0.9.3}/tests/test_database.py +0 -0
- {dwyeapi-0.9.1 → dwyeapi-0.9.3}/tests/test_dependencies.py +0 -0
- {dwyeapi-0.9.1 → dwyeapi-0.9.3}/tests/test_exceptions.py +0 -0
- {dwyeapi-0.9.1 → dwyeapi-0.9.3}/tests/test_health.py +0 -0
- {dwyeapi-0.9.1 → dwyeapi-0.9.3}/tests/test_logger.py +0 -0
- {dwyeapi-0.9.1 → dwyeapi-0.9.3}/tests/test_masking.py +0 -0
- {dwyeapi-0.9.1 → dwyeapi-0.9.3}/tests/test_pagination.py +0 -0
- {dwyeapi-0.9.1 → dwyeapi-0.9.3}/tests/test_response.py +0 -0
- {dwyeapi-0.9.1 → dwyeapi-0.9.3}/tests/test_security.py +0 -0
- {dwyeapi-0.9.1 → dwyeapi-0.9.3}/tests/test_tasks.py +0 -0
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: dwyeapi
|
|
3
|
-
Version: 0.9.
|
|
3
|
+
Version: 0.9.3
|
|
4
4
|
Summary: Lightweight FastAPI infrastructure — exceptions, database, config, security, cache, pagination, logger
|
|
5
5
|
License: MIT
|
|
6
|
+
Project-URL: Repository, https://github.com/danweiyuancircle/dwy-ai-experience
|
|
6
7
|
Requires-Python: >=3.11
|
|
7
8
|
Requires-Dist: fastapi>=0.100.0
|
|
8
9
|
Requires-Dist: sqlalchemy[asyncio]>=2.0.0
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "dwyeapi"
|
|
3
|
-
version = "0.9.
|
|
3
|
+
version = "0.9.3"
|
|
4
4
|
description = "Lightweight FastAPI infrastructure — exceptions, database, config, security, cache, pagination, logger"
|
|
5
5
|
requires-python = ">=3.11"
|
|
6
6
|
license = {text = "MIT"}
|
|
@@ -37,6 +37,9 @@ dev = [
|
|
|
37
37
|
"fakeredis>=2.0.0",
|
|
38
38
|
]
|
|
39
39
|
|
|
40
|
+
[project.urls]
|
|
41
|
+
Repository = "https://github.com/danweiyuancircle/dwy-ai-experience"
|
|
42
|
+
|
|
40
43
|
[build-system]
|
|
41
44
|
requires = ["setuptools>=68.0"]
|
|
42
45
|
build-backend = "setuptools.build_meta"
|
|
@@ -49,11 +52,27 @@ target-version = "py311"
|
|
|
49
52
|
line-length = 120
|
|
50
53
|
|
|
51
54
|
[tool.ruff.lint]
|
|
52
|
-
select = ["E", "W", "F", "I", "N", "UP", "B", "SIM", "RUF"]
|
|
55
|
+
select = ["E", "W", "F", "I", "N", "UP", "B", "SIM", "RUF", "D"]
|
|
56
|
+
ignore = [
|
|
57
|
+
"D100", # 模块顶层 docstring:脚本/迁移不强制
|
|
58
|
+
"D104", # __init__.py 不强制 docstring
|
|
59
|
+
"D107", # __init__ 方法 docstring 写在类 docstring 里
|
|
60
|
+
"D203", # 与 D211 冲突(Google 风格选 D211)
|
|
61
|
+
"D213", # 与 D212 冲突(Google 风格选 D212)
|
|
62
|
+
"D401", # 中文 docstring 不要求祈使句开头
|
|
63
|
+
"D415", # 中文 docstring 不要求英文句号结尾
|
|
64
|
+
]
|
|
65
|
+
|
|
66
|
+
[tool.ruff.lint.pydocstyle]
|
|
67
|
+
convention = "google"
|
|
53
68
|
|
|
54
69
|
[tool.ruff.lint.per-file-ignores]
|
|
55
70
|
"src/dwyeapi/tasks/router.py" = ["B008"]
|
|
56
71
|
"src/dwyeapi/tasks/worker.py" = ["RUF012"]
|
|
72
|
+
# 邮件模板含大段内联 CSS 的 HTML 字面量,行宽无意义,豁免 E501
|
|
73
|
+
"src/dwyeapi/providers/email/base.py" = ["E501"]
|
|
74
|
+
"tests/**/*.py" = ["D100", "D101", "D102", "D103", "D104"]
|
|
75
|
+
"**/test_*.py" = ["D100", "D101", "D102", "D103", "D104"]
|
|
57
76
|
|
|
58
77
|
[tool.ruff.lint.isort]
|
|
59
78
|
known-first-party = ["dwyeapi"]
|
|
@@ -36,10 +36,10 @@ class Task(Base, TimestampMixin):
|
|
|
36
36
|
|
|
37
37
|
__tablename__ = "tasks"
|
|
38
38
|
|
|
39
|
-
id: Mapped[str] = mapped_column(String(64), primary_key=True, default=_generate_task_id, comment="任务 ID")
|
|
40
|
-
task_type: Mapped[str] = mapped_column(String(50), index=True, comment="任务类型")
|
|
41
|
-
status: Mapped[TaskStatus] = mapped_column(Enum(TaskStatus), default=TaskStatus.PENDING, comment="执行状态")
|
|
42
|
-
params: Mapped[dict] = mapped_column(JSON, comment="任务参数(JSON)")
|
|
43
|
-
result: Mapped[dict | None] = mapped_column(JSON, nullable=True, default=None, comment="执行结果(JSON)")
|
|
44
|
-
progress: Mapped[int] = mapped_column(Integer, default=0, comment="进度百分比 0-100")
|
|
45
|
-
logs: Mapped[str] = mapped_column(Text, default="", comment="执行日志")
|
|
39
|
+
id: Mapped[str] = mapped_column(String(64), primary_key=True, default=_generate_task_id, comment="任务 ID")
|
|
40
|
+
task_type: Mapped[str] = mapped_column(String(50), index=True, comment="任务类型")
|
|
41
|
+
status: Mapped[TaskStatus] = mapped_column(Enum(TaskStatus), default=TaskStatus.PENDING, comment="执行状态")
|
|
42
|
+
params: Mapped[dict] = mapped_column(JSON, comment="任务参数(JSON)")
|
|
43
|
+
result: Mapped[dict | None] = mapped_column(JSON, nullable=True, default=None, comment="执行结果(JSON)")
|
|
44
|
+
progress: Mapped[int] = mapped_column(Integer, default=0, comment="进度百分比 0-100")
|
|
45
|
+
logs: Mapped[str] = mapped_column(Text, default="", comment="执行日志")
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: dwyeapi
|
|
3
|
-
Version: 0.9.
|
|
3
|
+
Version: 0.9.3
|
|
4
4
|
Summary: Lightweight FastAPI infrastructure — exceptions, database, config, security, cache, pagination, logger
|
|
5
5
|
License: MIT
|
|
6
|
+
Project-URL: Repository, https://github.com/danweiyuancircle/dwy-ai-experience
|
|
6
7
|
Requires-Python: >=3.11
|
|
7
8
|
Requires-Dist: fastapi>=0.100.0
|
|
8
9
|
Requires-Dist: sqlalchemy[asyncio]>=2.0.0
|
|
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
|
|
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
|