Skip to main content

py-tiehu-toolkit

铁虎管理系统 API Python SDK,提供同步和异步两种调用方式,实现完整的请求签名机制,用于与铁虎停车场管理系统(Parking)和 SCMP 进行 API 交互。

功能特性

  • ✅ 自动生成请求签名/Token(MD5 算法)
  • ✅ 支持同步/异步 HTTP 请求
  • ✅ 自动添加公共请求参数
  • ✅ Pydantic 响应模型支持
  • ✅ JSON Schema 响应校验
  • ✅ JSONPath 数据查询

项目结构

src/py_tiehu_toolkit/
├── __init__.py          # 模块入口
├── parking/             # 停车场模块
│   ├── __init__.py      # Pklot 客户端类
│   ├── utils.py         # 工具函数
│   └── responses.py     # 响应数据模型
└── scmp/                # SCMP 模块
    ├── __init__.py      # Scmp 客户端类
    ├── utils.py         # 工具函数
    └── responses.py     # 响应数据模型

安装方式

使用 pip

pip install py-tiehu-toolkit

使用 uv(推荐)

uv add py-tiehu-toolkit

从源码安装

git clone https://gitee.com/guolei19850528/py_tiehu_toolkit.git
cd py_tiehu_toolkit
uv install .

依赖包

依赖 版本要求 说明
httpx >=0.27.0 HTTP 客户端库,支持同步和异步
pydantic >=2.0 数据验证和序列化
jsonpath-ng >=1.5.3 JSONPath 查询支持
jsonschema >=4.21.0 JSON Schema 校验
py-httpx-toolkit >=1.0.1 HTTP 工具包封装

快速开始

停车场模块 (Parking)

from py_tiehu_toolkit.parking import Pklot
from py_tiehu_toolkit.parking.utils import build_success_instance, timestamp

# 创建同步客户端
pklot = Pklot(
    base_url="https://isc.example.com",
    parking_id="park001",
    app_key="your_app_secret"
)

# 发送请求
response = pklot.request_with_signature(url="/api/v1/query")

# 转换为响应模型
result = build_success_instance(response)
print(result.status)
print(result.Data)

SCMP 模块

from py_tiehu_toolkit.scmp import Scmp
from py_tiehu_toolkit.scmp.utils import build_success_instance

# 创建同步客户端
scmp = Scmp(
    base_url="https://scmp.example.com",
    appid="app001",
    secret="your_secret"
)

# 发送请求
response = scmp.request_with_token(url="/api/v1/data")

# 转换为响应模型
result = build_success_instance(response)
print(result.code)
print(result.Data)

异步调用

import asyncio
from py_tiehu_toolkit.parking import Pklot

async def main():
    pklot = Pklot(
        base_url="https://isc.example.com",
        parking_id="park001",
        app_key="your_app_secret"
    )
    
    # 异步请求
    response = await pklot.async_request_with_signature(url="/api/v1/query")
    print(response.json())

asyncio.run(main())

API 参考

parking.Pklot 类

方法 说明
__init__(base_url, parking_id, app_key, client_kwargs) 初始化客户端
signature(data) 生成请求签名
request_with_signature(client, client_kwargs, **kwargs) 同步请求(带签名)
async_request_with_signature(client, client_kwargs, **kwargs) 异步请求(带签名)

scmp.Scmp 类

方法 说明
__init__(base_url, appid, secret, client_kwargs) 初始化客户端
token(ts) 生成请求 Token
request_with_token(client, client_kwargs, **kwargs) 同步请求(带 Token)
async_request_with_token(client, client_kwargs, **kwargs) 异步请求(带 Token)

utils 工具函数

函数 说明
timestamp() 生成毫秒级时间戳
json_find_first(expression, data) JSONPath 查询
json_is_valid(schema, data) JSON Schema 校验
build_success_instance(response) 响应转模型
success_is_valid(response, schema) 校验成功响应

作者

Guolei - 174000902@qq.com

项目主页

许可证

MIT License

Download files

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

Source Distribution

py_tiehu_toolkit-1.0.0.tar.gz (14.6 kB view details)

Uploaded Source

Built Distribution

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

py_tiehu_toolkit-1.0.0-py3-none-any.whl (19.8 kB view details)

Uploaded Python 3

File details

Details for the file py_tiehu_toolkit-1.0.0.tar.gz.

File metadata

  • Download URL: py_tiehu_toolkit-1.0.0.tar.gz
  • Upload date:
  • Size: 14.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.6.11

File hashes

Hashes for py_tiehu_toolkit-1.0.0.tar.gz
Algorithm Hash digest
SHA256 b70c58eae6e5fcb32ad6853afa96a2c59c4faee7032291dc9f985500c7012d78
MD5 01d03186008423277b058f4bab17e14f
BLAKE2b-256 42775534f10ee884e50b0e02d1924079d0c04dde6a496465aeccb1861d39a4de

See more details on using hashes here.

File details

Details for the file py_tiehu_toolkit-1.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for py_tiehu_toolkit-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 fd45ceabd6d530b9f9d83a75d12bb5cb9731798bfe6c7f35cce7160e9f9a0304
MD5 a58a64620b26b8f676804f99e7d02d12
BLAKE2b-256 c2f378f0f23a4db1fafa13b45ce86ac62436fcea68d6a9942039b1fe175e3058

See more details on using hashes here.

Release history Release notifications | RSS feed

1.0.4

2 files

1.0.3

2 files

1.0.2

2 files

1.0.1

2 files

This release

1.0.0 This release

2 files

Supported by

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