Metadata-Version: 2.4
Name: zzupy
Version: 6.0.0rc9
Summary: 豫见郑大的 Python API 封装 / An API wrapper for Zhengzhou University Mobile Campus written in Python.
Project-URL: Repository, https://github.com/Illustar0/ZZU.Py
Project-URL: Documentation, https://illustar0.github.io/ZZU.Py
Author-email: Illustar0 <me@illustar0.com>
License-Expression: MIT
License-File: LICENSE
Requires-Python: >=3.11
Requires-Dist: beautifulsoup4>=4.13.3
Requires-Dist: gmalg>=1.0.6
Requires-Dist: httpx>=0.28.1
Requires-Dist: ifaddr>=0.2.0
Requires-Dist: loguru>=0.7.3
Requires-Dist: pydantic>=2.11.7
Requires-Dist: pyjwt>=2.10.1
Requires-Dist: typing-extensions>=4.12.2
Provides-Extra: ci
Requires-Dist: ruff>=0.13.1; extra == 'ci'
Provides-Extra: docs
Requires-Dist: jieba>=0.42.1; extra == 'docs'
Requires-Dist: markdown-callouts>=0.4.0; extra == 'docs'
Requires-Dist: markdown-exec>=1.11.0; extra == 'docs'
Requires-Dist: mkdocs-git-revision-date-localized-plugin>=1.4.7; extra == 'docs'
Requires-Dist: mkdocs-include-markdown-plugin>=7.1.7; extra == 'docs'
Requires-Dist: mkdocs-llmstxt>=0.3.1; extra == 'docs'
Requires-Dist: mkdocs-material>=9.6.20; extra == 'docs'
Requires-Dist: mkdocs-minify-plugin>=0.8.0; extra == 'docs'
Requires-Dist: mkdocs-redirects>=1.2.2; extra == 'docs'
Requires-Dist: mkdocs-section-index>=0.3.10; extra == 'docs'
Requires-Dist: mkdocs>=1.6.1; extra == 'docs'
Requires-Dist: mkdocstrings>=0.30.0; extra == 'docs'
Requires-Dist: mkdocstrings[python]>=0.30.0; extra == 'docs'
Description-Content-Type: text/markdown

# ZZU.Py

豫见郑大的 Python API 封装

## 概述

ZZU.Py 是一个为郑州大学各个线上系统和相关服务提供 Python API 封装的库。它提供了简洁易用的接口来访问校园各类服务，包括移动应用 API、校园网络认证、一卡通服务等。

> [!WARNING]  
> 研究生教务系统暂未适配

## 特性

- **统一认证系统 (CAS)** - 支持账密登录和 Token 认证
- **智慧教务系统** - 获取课表、查询空教室
- **校园网络服务** - Portal 认证、设备管理、流量查询
- **校园卡服务** - 余额查询、电费充值
- **类型安全** - 基于 Pydantic 的数据模型验证
- **异步支持** - 基于 httpx 的高性能网络请求

## 快速开始

### 安装

```bash
pip install zzupy --upgrade
```

### 基础使用

```python
from zzupy.app import CASClient, SupwisdomClient

# CAS 认证
cas = CASClient("Your account", "Your password")
cas.login()

with SupwisdomClient(cas) as client:
    # 获取本周课表
    week_courses = client.get_week_courses()
    print(week_courses)
```

### 核心模块

#### `app` - 移动应用 API 抽象层

提供基于移动端逆向的 API 封装：

- **auth**: CAS 统一认证系统客户端
- **supwisdom**: 智慧教务系统，支持课表查询、空教室查询
- **ecard**: 校园卡服务，支持余额查询、电费充值
- **interfaces**: 定义统一的客户端接口规范

#### `web` - Web API 客户端模块

提供基于 Web 端逆向的 API 封装：

- **network**: 校园网络服务，包含 Portal 认证和设备管理

#### `aio` - 各模块的异步实现

提供以上模块的异步实现


## 开发指南

### 环境要求

- Python >= 3.13
- 依赖管理：使用 uv

### 贡献代码

欢迎提交 Issue 和 Pull Request。在贡献代码前，请确保：

1. 代码符合项目风格规范
2. 添加必要的类型注解
3. 编写相应的文档字符串
4. 测试通过

## 许可证

本项目使用 MIT 许可证。详见 [LICENSE](https://github.com/Illustar0/ZZU.Py/blob/main/LICENSE) 文件。

## 相关链接

- [GitHub 仓库](https://github.com/Illustar0/ZZU.Py)
- [API 参考文档](https://illustar0.github.io/ZZU.Py)
- [问题反馈](https://github.com/Illustar0/ZZU.Py/issues)