Skip to main content

A parameter management toolkit for Python

Project description

ParamKit

PyPI Version Python Versions License Documentation

🚀 特性

  • 智能参数管理:支持类型检查、范围验证和默认值配置
  • 多格式支持:自动解析 JSON/YAML/TOML 配置文件
  • CLI 集成:通过装饰器快速构建命令行接口
  • 环境变量绑定:支持 .env 文件和环境变量注入
  • 验证引擎:内置正则表达式和自定义验证规则
  • 类型提示:完整的 Python 类型注解支持

📦 安装

pip install paramkit

或安装开发版本:

pip install git+https://github.com/yourusername/paramkit.git

🛠️ 快速开始

基本用法

class DemoView(APIView):
    """
    Demo view class to demonstrate parameter validation.
    """

    @apiassert(
        P('name', typ=str, gt=2, le=3, opts=('cgq', 'b'), must=False),
        P('age', typ=int, ge=2, le=100),
        P('addr', typ=dict, le=10, ge=2),
        P('hobbies', typ=list, ge=1, le=16),
        P('addr.school.teacher', typ=str, ge=2, le=6, opts=('xz', 'ydy')),
    )
    def view_func(self, request):
        """
        Example view function to demonstrate parameter validation.

        :param request: The request object
        """
        print(request)

CLI 集成

from paramkit import cli_command

@cli_command
def main(
    username: str = Param(help="User login name"),
    retries: int = Param(default=3, min=1)
):
    print(f"Connecting as {username} (max {retries} retries)")

运行程序:

python app.py --username admin --retries 5

📚 文档

完整文档请访问:
https://paramkit.readthedocs.io

🧪 测试覆盖率

-------------------------- coverage: --------------------------
Name                     Stmts   Miss  Cover
--------------------------------------------
paramkit/__init__.py         5      0   100%
paramkit/core.py           142      2    98%
paramkit/cli.py             89      1    99%
--------------------------------------------
TOTAL                      236      3    98%

🤝 贡献指南

欢迎通过 Issue 或 PR 参与贡献!
请先阅读 CONTRIBUTING.md

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

📄 许可证

本项目采用 MIT License

📬 联系方式

作者:Dylan
邮箱:cgq2012516@gmail.com


## 🎨 项目架构

```mermaid
graph TD
    A[ParamKit] --> B[Core Engine]
    A --> C[CLI Interface]
    A --> D[File Loaders]
    B --> E[Validation]
    B --> F[Type Conversion]
    D --> G[JSON/YAML/TOML]
    C --> H[Argparse Integration]
    E --> I[Regex Validation]
    E --> J[Custom Validators]

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

paramkit-0.2.3.tar.gz (90.7 kB view details)

Uploaded Source

Built Distribution

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

paramkit-0.2.3-py3-none-any.whl (93.2 kB view details)

Uploaded Python 3

File details

Details for the file paramkit-0.2.3.tar.gz.

File metadata

  • Download URL: paramkit-0.2.3.tar.gz
  • Upload date:
  • Size: 90.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.16

File hashes

Hashes for paramkit-0.2.3.tar.gz
Algorithm Hash digest
SHA256 2d18a604204cfb7731e322f6bee2decf2866d93192870dde85d76ceb72a9841e
MD5 ef937e025cd90d2465f56788a4df247e
BLAKE2b-256 008d06c1e18dd53e74417ee4360ddab3bbd305adb6c2e6c9f96a1d7548ef0882

See more details on using hashes here.

File details

Details for the file paramkit-0.2.3-py3-none-any.whl.

File metadata

  • Download URL: paramkit-0.2.3-py3-none-any.whl
  • Upload date:
  • Size: 93.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.16

File hashes

Hashes for paramkit-0.2.3-py3-none-any.whl
Algorithm Hash digest
SHA256 5ae1e6f8cda5e16b7b460b3aed8c95907c3223af1d3b9d880d92772994a66289
MD5 a42b2ca7e693d575123fe7df57aaa4e7
BLAKE2b-256 037e12745d8969a82371f9d45064e64f201ba23b3e8f5e7adbc49bcb4db3e9e2

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