Files
d3i-szct/pyproject.toml
T
zwf 4729698049 Squashed 'paste-framework/' content from commit 34e8684
git-subtree-dir: paste-framework
git-subtree-split: 34e8684c4bc3cebbe177509f42ab4ef5b5425a7a
2026-06-02 19:09:22 +08:00

132 lines
2.9 KiB
TOML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
[build-system]
requires = ["setuptools>=61.0", "wheel"]
build-backend = "setuptools.build_meta"
[project]
name = "paste-framework"
version = "2.0.1"
description = "A production-ready lightweight Python framework with built-in RBAC, JWT, async tasks, Swagger, and modular utilities"
readme = "README.md"
requires-python = ">=3.11"
license = {text = "MIT"}
authors = [
{name = "Paste Contributors", email = "waynezwf@qq.com"},
]
keywords = ["framework", "tornado", "rbac", "jwt", "redis", "swagger"]
classifiers = [
"Development Status :: 4 - Beta",
"Intended Audience :: Developers",
"License :: OSI Approved :: MIT License",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.11",
"Topic :: Internet :: WWW/HTTP :: WSGI :: Server",
"Topic :: Software Development :: Libraries :: Application Frameworks",
]
dependencies = [
# --- Web 框架核心 ---
"tornado>=6.4",
# --- 数据库 / ORM ---
"sqlalchemy>=2.0.49,<3.0",
"PyMySQL>=1.1.0",
"aiomysql>=0.2.0",
# --- 安全 / JWT ---
"PyJWT>=1.7.1",
# --- Redis / 消息队列 ---
"redis>=5.2.1",
# --- 表单验证 ---
"WTForms>=3.2.1",
"tornado-wtforms>=0.0.1",
# --- 文件处理(PDF / SVG / Excel---
"weasyprint>=64.1",
"svgwrite>=1.4.2",
"pandas>=2.0.0",
"xlsxwriter>=3.0",
"openpyxl>=3.1.5",
# --- 日期 / 时间 ---
"python-dateutil>=2.8.0",
# --- 工具 / 序列化 ---
"PyYAML>=6.0.2",
"aiofiles>=23.0.0",
"psutil>=5.9.0",
# --- 通用 ---
"numpy>=1.24.0",
]
[project.optional-dependencies]
swagger = [
"tornado-swagger>=1.4.5",
]
async = [
"aiohttp>=3.13.0",
"aiosqlite>=0.21.0",
"aioquic>=1.2.0",
]
java = [
"javaobj-py3>=0.4.4",
]
chart = [
"matplotlib>=3.10.1",
"scipy>=1.14.0",
"seaborn>=0.13.2",
]
image = [
"pillow>=10.0.0",
"opencv-python>=4.11.0.86",
]
all = [
"paste-framework[swagger,async,java,chart,image]",
]
test = [
"pytest>=8.0.0",
"pytest-asyncio>=0.23.0",
"pytest-cov>=4.0.0",
"httpx>=0.25.0",
"httpx-sse>=0.4.0",
]
dev = [
"black>=24.0.0",
"flake8>=7.0.0",
"mypy>=1.0.0",
"pre-commit>=3.0.0",
]
[project.urls]
Homepage = "https://github.com/wayne-zwf/paste"
Documentation = "https://paste-framework.readthedocs.io"
Repository = "https://github.com/wayne-zwf/paste"
Changelog = "https://github.com/wayne-zwf/paste/blob/main/CHANGELOG.md"
[tool.setuptools.packages.find]
include = ["paste", "paste.*"]
[tool.pytest.ini_options]
testpaths = ["tests"]
asyncio_mode = "auto"
addopts = [
"--verbose",
"--cov=paste",
"--cov-report=term-missing",
"--cov-report=html",
"--asyncio-mode=auto",
]
[tool.black]
line-length = 120
target-version = ["py311"]
[tool.flake8]
max-line-length = 120
extend-ignore = ["E203", "W503"]
[project.scripts]
paste-hello = "examples.01_hello_world.main:main"
paste-task = "examples.04_tasks_service.task_service:start_service"