2025-10-13 17:01:21 +08:00
2025-09-30 10:40:58 +08:00
2025-10-13 17:01:21 +08:00
2025-07-09 00:01:38 +08:00
2025-07-08 23:25:15 +08:00
2025-09-22 10:05:03 +08:00
2025-07-08 23:25:15 +08:00
2025-07-09 00:01:38 +08:00
2025-09-20 03:39:51 +08:00
2025-07-09 23:52:24 +08:00

Convention-Python

Convention-Python基于 Convention-Template 规范实现的一套完整的开发工具集。

主要内容

辅助 (Config.py)

  • 内置依赖: 提供辅助函数与辅助类型

架构 (Architecture.py)

  • 依赖注入容器: 支持类型注册、依赖解析和生命周期管理
  • 信号系统: 提供发布-订阅模式的消息通信机制
  • 时间线管理: 支持基于条件的任务队列和执行流程控制
  • 单例模式: 内置单例模型支持

异步 (Asynchrony.py)

  • 线程管理: 提供线程实例、原子操作、锁机制
  • 并发控制: 支持线程安全的数据结构和操作
  • 异步工具: 简化异步编程的工具函数

配置 (GlobalConfig.py)

  • 类型系统: 强大的类型检查和转换系统
  • 调试支持: 内置调试模式和彩色输出
  • 平台兼容: 跨平台路径和环境管理
  • 全局配置: 统一的配置管理机制

文件 (File.py)

  • ToolFile 类: 强大的文件操作封装
    • 支持多种文件格式 (JSON, CSV, Excel, 图像, 音频, Word文档等)
    • 文件压缩和解压缩 (ZIP, TAR)
    • 文件加密和解密
    • 哈希值计算和验证
    • 文件监控和备份
    • 权限管理
  • 批量处理: 支持文件批量操作和处理

序列化 (EasySave.py)

  • 序列化支持: JSON 和二进制格式的序列化
  • 反射集成: 基于反射的对象序列化和反序列化
  • 备份机制: 自动备份和恢复功能
  • 字段过滤: 支持自定义字段选择和忽略规则

反射 (Reflection.py)

  • 类型管理: 完整的类型信息管理和缓存
  • 成员访问: 字段和方法的动态访问
  • 类型转换: 灵活的类型转换和验证
  • 泛型支持: 支持泛型类型的处理

视觉 (Visual)

可视化 (Visual/Core.py)

  • 图表生成: 支持多种图表类型 (折线图、柱状图、散点图、饼图等)
  • 数据处理: 数据清洗、标准化、归一化
  • 样式定制: 丰富的图表样式和主题选项

图像处理 (Visual/OpenCV.py)

  • ImageObject 类: 完整的图像处理功能
  • 图像增强: 支持 30+ 种图像增强算法
  • 格式转换: 支持多种图像格式转换
  • 批量处理: 支持图像批量处理和增强

词云生成 (Visual/WordCloud.py)

  • 词云创建: 支持中英文词云生成
  • 样式定制: 丰富的样式和布局选项

字符串工具 (String.py)

  • 字符串处理: 长度限制、填充、编码转换
  • 中文分词: 集成 jieba 分词支持

安装说明

环境要求

  • Python >= 3.12
  • 操作系统: Windows, Linux, macOS

依赖包

运行时自动报告需要被引入的包

调用Config中ReleaseFailed2Requirements函数生成requirements.txt文件

安装方式

  1. 从源码安装:
git clone https://github.com/NINEMINEsigma/Convention-Python.git
cd Convention-Python
pip install -e .
  1. 直接安装:
pip install .
  1. 打包安装
pip install build
python -m build
pip install dist/convention.tar.gz

🚀 使用示例

架构模式示例

from Convention.Runtime import Architecture

# 注册服务
class DatabaseService:
    def query(self, sql): return "result"

db_service = DatabaseService()
Architecture.Register(DatabaseService, db_service, lambda: print("DB服务初始化"))

# 获取服务
service = Architecture.Get(DatabaseService)
result = service.query("SELECT * FROM users")

文件操作示例

from Convention.Runtime import ToolFile

# 创建文件对象
file = ToolFile("data.json")

# 保存和加载 JSON 数据
data = {"name": "张三", "age": 25}
file.SaveAsJson(data)
loaded_data = file.LoadAsJson()

# 文件压缩
compressed = file.Compress("backup.zip")

# 计算哈希值
hash_value = file.calculate_hash("sha256")

数据序列化示例

from Convention.Runtime import EasySave
from pydantic import BaseModel

class User(BaseModel):
    name: str
    age: int
    email: str

# 保存数据
user = User(name="李四", age=30, email="lisi@example.com")
EasySave.Write(user, "user.json")

# 读取数据
loaded_user = EasySave.Read(User, "user.json")

数据可视化示例

from Convention.Runtime.Visual import Core
import pandas as pd

# 创建数据可视化生成器
df = pd.read_csv("sales_data.csv")
generator = Core.data_visual_generator("sales_data.csv")

# 绘制图表
generator.plot_line("month", "sales", title="月度销售趋势")
generator.plot_bar("product", "revenue", title="产品收入对比")
generator.plot_pie("category", title="类别分布")

图像处理示例

from Convention.Runtime.Visual.OpenCV import ImageObject
from Convention.Runtime.Visual.Core import ImageAugmentConfig, ResizeAugmentConfig

# 加载图像
image = ImageObject("input.jpg")

# 图像增强配置
config = ImageAugmentConfig(
    resize=ResizeAugmentConfig(width=800, height=600),
    lighting=LightingAugmentConfig(lighting=20),
    contrast=ContrastAugmentConfig(contrast=1.2)
)

# 批量增强
results = config.augment_from_dir_to("input_dir", "output_dir")

打包指令

构建分发包

# 清理之前的构建文件
python setup.py clean --all
rm -rf build/ dist/ *.egg-info/

# 构建源码包和轮子包
python setup.py sdist bdist_wheel

# 或使用 build 工具 (推荐)
pip install build
python -m build

安装本地包

# 开发模式安装 (可编辑安装)
pip install -e .

# 普通安装
pip install .

上传到 PyPI

# 安装上传工具
pip install twine

# 检查包
twine check dist/*

# 上传到测试 PyPI
twine upload --repository-url https://test.pypi.org/legacy/ dist/*

# 上传到正式 PyPI
twine upload dist/*

创建可执行文件

# 使用 PyInstaller
pip install pyinstaller
pyinstaller --onefile --name convention-tool your_main_script.py

许可证

本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。

作者

LiuBai - NINEMINEsigma

相关链接

最后更新: 2025年9月

Description
Convention-Template的python实现
Readme MIT 251 KiB
Languages
Python 100%