Skip to main content

一个轻量级的Python开发框架

Project description

Brief Develop

一个轻量级的Python开发框架,提供简洁高效的测试工具和参数验证功能。

✨ 特性

  • 彩色测试输出: 使用 termcolor 提供直观的彩色测试结果展示

  • 灵活的测试框架: 支持正常测试和异常测试,自动统计测试通过率

  • 智能参数验证: 基于装饰器的参数验证,支持复杂条件表达式

  • 详细的错误信息: 提供清晰的错误定位和参数值展示

  • 轻量级设计: 无复杂依赖,易于集成到现有项目

  • Python 3.7+ 兼容: 支持广泛的Python版本

🚀 快速开始

前提条件

  • Python 3.7 或更高版本
  • pip 包管理器

安装

从 PyPI 安装(推荐)

pip install brief-develop

从源码安装(开发版本)

git clone https://gitee.com/hh66dw/brief_develop.git
cd brief_develop
pip install -e .

📖 使用指南

测试框架使用

from brief_develop.test.BriefTest import BriefTest

# 创建测试实例
brief_test = BriefTest()

# 运行正常测试
def test_addition(a,b):
    return a+b

brief_test.run_test(    test_func        = lambda:test_addition(1,1),
                        detail           = lambda:f"test_addition 功能测试",
                        expected_source  = lambda:test_addition(1,1),
                        expected_message = 2
                    )

# 运行异常测试
def test_division_by_zero():
    1 / 0

brief_test.run_test(    test_func        = lambda: test_division_by_zero(),
                        detail           = lambda:f"test_division_by_zero 功能测试",
                        expected_message = "division by zero"
                    )

# 获取测试统计
print(f"测试通过率: {brief_test.get_stats()}%")

参数验证使用

from brief_develop.param.param_validity import param_validity

# 参数验证
@param_validity(
    lambda username: len(username) >= 3,         
    lambda password: len(password) >= 8,          
    lambda email: '@' in email,                   
)
def create_account(username: str, password: str, email: str) -> str:
    return f"账户创建成功: {username} ({email})"

# 使用预定义的验证函数
def is_adult(age):
    return age >= 18

def has_valid_name(name):
    return len(name) > 0 and name[0].isupper()

@param_validity(is_adult, has_valid_name)
def create_profile(name: str, age: int) -> str:
    return f"个人资料创建成功: {name}, {age}岁"

# 测试示例
try:
   print(create_account("john", "password123", "john@example.com"))  # 应该成功
   print(create_account("admin", "pass", "admin@example.com"))       # 应该失败(密码太短)
except ValueError as e:
   print(f"错误: {e}")
    
try:
   print(create_profile("Bob", 20))  # 应该成功
   print(create_profile("bob", 20))  # 应该失败(首字母小写)
except ValueError as e:
   print(f"错误: {e}")

📚 API 文档

BriefTest 类

BriefTest()

测试框架主类。

方法:

  • run_test(test_func, detail=None, expected_source=None, expected_message=None)

    • 描述: 运行单个测试用例
    • 参数:
      • test_func: 测试函数
      • detail: 测试描述信息
      • expected_source: 期望的源(None 表示期望异常)
      • expected_message: 期望的消息内容
    • 返回值: 布尔值,表示测试是否通过
  • get_stats()

    • 描述: 获取测试统计信息
    • 返回值: 测试通过率(百分比)
  • print_Brief_Test(message, color=None)

    • 描述: 彩色打印测试信息
    • 参数:
      • message: 要打印的消息
      • color: 颜色名称(如 'red', 'green', 'yellow' 等)

param_validity 装饰器

@param_validity(*conditions)

参数验证装饰器。

参数:

  • *conditions: 任意数量的条件函数,每个函数应返回布尔值

💻 开发

项目结构

brief_develop/
├── src/
│   └── brief_develop/
│       ├── __init__.py
│       ├── BriefTest.py
│       └── param_validity.py
├── pyproject.toml
├── requirements.txt
├── LICENSE
└── README.md

🤝 贡献指南

我们欢迎各种形式的贡献!包括但不限于:

  • 代码改进和功能添加
  • 文档完善和翻译
  • 测试用例补充
  • 问题报告和功能建议

贡献流程:

  1. Fork 本仓库
  2. 创建特性分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 开启 Pull Request

请确保代码风格一致,并通过所有测试。

📝 版本历史

  • v1.1.0 (当前版本): 稳定版本,包含完整的测试框架和参数验证功能
  • v1.0.0: 初始版本,基础功能实现

📄 许可证

本项目基于 MIT 许可证发行。详情请参阅 LICENSE 文件。

🙏 致谢

  • 感谢 termcolor 库提供彩色输出功能
  • 感谢所有为项目做出贡献的开发者

📞 联系方式

❓ 常见问题

Q: 如何解决 "参数不存在" 的错误? A: 请确保条件函数中使用的参数名与被装饰函数的参数名完全一致。

Q: 测试框架支持异步函数吗? A: 当前版本主要支持同步函数。


如果这个项目对您有帮助,请给个 ⭐️ 星标支持!

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

brief_develop-1.1.0.tar.gz (10.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

brief_develop-1.1.0-py3-none-any.whl (8.5 kB view details)

Uploaded Python 3

File details

Details for the file brief_develop-1.1.0.tar.gz.

File metadata

  • Download URL: brief_develop-1.1.0.tar.gz
  • Upload date:
  • Size: 10.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.1

File hashes

Hashes for brief_develop-1.1.0.tar.gz
Algorithm Hash digest
SHA256 25250e05ad1935bfda973dfe24c10a1936841a86ecafb33687266b4a5f673134
MD5 65982d3616e5941c7f52adbb46f76985
BLAKE2b-256 dabf41bfe18787ece228ca462299cf8669d8229ae0149f98be94a15e4b108e10

See more details on using hashes here.

File details

Details for the file brief_develop-1.1.0-py3-none-any.whl.

File metadata

  • Download URL: brief_develop-1.1.0-py3-none-any.whl
  • Upload date:
  • Size: 8.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.1

File hashes

Hashes for brief_develop-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0871800db21187b7e783063402daddd331cf167031db9b1a74a1fd57e3592173
MD5 b75b4302d53ce58d9dabda73422ca87b
BLAKE2b-256 e69520b7974f7b8fb4d45daca045844ffc7d8f74a59b1b3e56a8c61b821e309c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page