Metadata-Version: 2.4
Name: py-easy-hikvision
Version: 1.0.1
Summary: 海康威视 ISecureCenter Python SDK，提供简单易用的海康威视 ISecureCenter 平台 API 交互功能，支持与海康威视 ISecureCenter 平台的各种操作。
Home-page: https://gitee.com/guolei19850528/py_easy_hikvision
Author: guolei
Author-email: 174000902@qq.com
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.6
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: httpx
Requires-Dist: jsonschema
Requires-Dist: jsonpath-ng
Requires-Dist: py-easy-httpx
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: license-file
Dynamic: requires-dist
Dynamic: requires-python
Dynamic: summary

# py_easy_hikvision

海康威视 ISecureCenter Python SDK，提供简单易用的海康威视 ISecureCenter 平台 API 交互功能，支持与海康威视 ISecureCenter 平台的各种操作。

## 功能特性

- **ISecureCenter API 客户端**：提供与海康威视 ISecureCenter 平台 API 交互的客户端
- **签名生成**：按照海康威视 API 要求生成请求签名
- **请求头构建**：自动构建符合 API 规范的请求头
- **同步/异步支持**：同时支持同步和异步操作
- **灵活配置**：支持通过参数自定义客户端行为
- **响应处理**：提供 JSON 数据验证功能
- **类型提示**：完整的类型注解，提供良好的 IDE 支持

## 安装

### 使用 pip 安装

```bash
pip install py_easy_hikvision
```

### 从源码安装

```bash
git clone https://gitee.com/guolei19850528/py_easy_hikvision.git
cd py_easy_hikvision
pip install -e .
```

## 依赖

- httpx
- py_easy_httpx

## 快速开始

### 同步请求

```python
from py_easy_hikvision.isc import ISecureCenter

# 初始化海康威视 ISecureCenter 客户端
isc_client = ISecureCenter(
    host="https://example.com",
    ak="YOUR_ACCESS_KEY",
    sk="YOUR_SECRET_KEY"
)

# 发送同步请求
response = isc_client.request(
    url="/api/parking/info",
    json={
        "param1": "value1",
        "param2": "value2"
    }
)
print(f"请求结果: {response}")
```

### 异步请求

```python
import asyncio
from py_easy_hikvision.isc import ISecureCenter

async def main():
    # 初始化海康威视 ISecureCenter 客户端
    isc_client = ISecureCenter(
        host="https://example.com",
        ak="YOUR_ACCESS_KEY",
        sk="YOUR_SECRET_KEY"
    )
    
    # 发送异步请求
    response = await isc_client.async_request(
        url="/api/parking/info",
        json={
            "param1": "value1",
            "param2": "value2"
        }
    )
    print(f"请求结果: {response}")

asyncio.run(main())
```

## API 文档

### ISecureCenter 类

#### 初始化参数
- `host`: ISecureCenter 平台的基础 URL
- `ak`: Access Key，用于身份认证
- `sk`: Secret Key，用于签名生成
- `client_kwargs`: 传递给 httpx.Client 的额外参数

#### 方法

##### 静态方法
- `timestamp()`: 生成当前时间戳（毫秒）
- `nonce()`: 生成随机的 UUID 字符串

##### 实例方法
- `signature(string="")`: 生成请求签名
- `headers(method="POST", path="", headers={})`: 生成符合 ISecureCenter API 规范的请求头
- `request(client=None, **kwargs)`: 同步发送请求
- `async_request(client=None, **kwargs)`: 异步发送请求

## 高级用法

### 自定义客户端配置

```python
from py_easy_hikvision.isc import ISecureCenter

# 初始化海康威视 ISecureCenter 客户端，自定义客户端配置
isc_client = ISecureCenter(
    host="https://example.com",
    ak="YOUR_ACCESS_KEY",
    sk="YOUR_SECRET_KEY",
    client_kwargs={
        "timeout": 60.0,  # 设置超时时间为 60 秒
        "headers": {
            "User-Agent": "py_easy_hikvision"
        }
    }
)

# 发送请求
response = isc_client.request(
    url="/api/parking/info",
    json={
        "param1": "value1",
        "param2": "value2"
    }
)
print(f"请求结果: {response}")
```

### 自定义请求头

```python
from py_easy_hikvision.isc import ISecureCenter

# 初始化海康威视 ISecureCenter 客户端
isc_client = ISecureCenter(
    host="https://example.com",
    ak="YOUR_ACCESS_KEY",
    sk="YOUR_SECRET_KEY"
)

# 发送请求，自定义请求头
response = isc_client.request(
    url="/api/parking/info",
    json={
        "param1": "value1",
        "param2": "value2"
    },
    headers={
        "X-Custom-Header": "custom-value"
    }
)
print(f"请求结果: {response}")
```

## 项目结构

```
py_easy_hikvision/
├── py_easy_hikvision/              # 主包目录
│   ├── __init__.py            # 包初始化文件
│   └── isc/                   # ISecureCenter 模块
│       ├── __init__.py        # ISecureCenter 模块初始化文件
├── README.md                  # 项目文档
├── setup.py                   # 安装配置
├── requirements.txt           # 依赖列表
├── LICENSE                    # 许可证文件
├── deploy.sh                  # 部署脚本
├── .gitignore                 # Git 忽略文件
└── test_isc.py                # 测试文件
```

## 测试

运行测试：

```bash
# 运行测试
python test_isc.py
```

## 许可证

MIT License

## 贡献

欢迎提交 Issue 和 Pull Request！

## 联系方式

- 作者：guolei
- 邮箱：174000902@qq.com
- 项目地址：https://gitee.com/guolei19850528/py_easy_hikvision

## 致谢

- [httpx](https://www.python-httpx.org/) - 高性能的异步 HTTP 客户端库
- [py_easy_httpx](https://gitee.com/guolei19850528/py_easy_httpx) - 简化 HTTP 请求的工具包
