Metadata-Version: 2.4
Name: pyreqver_cn
Version: 0.1.0
Summary:  一个命令行工具，帮助您找到支持您 requirements.txt 文件中所有库的 Python 版本
Home-page: https://github.com/evanstellun/pyreqver_cn
Author: Evanstellun
Author-email: niweilun@outlook.com
License: MIT
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Requires-Python: >=3.6.0
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: requests
Requires-Dist: packaging
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: license
Dynamic: license-file
Dynamic: requires-dist
Dynamic: requires-python
Dynamic: summary


# PyReqVer - Python 依赖版本检查工具

PyReqVer 是一个命令行工具，帮助您找到支持您 requirements.txt 文件中所有库的 Python 版本。它分析来自 PyPI 的每个包的兼容性信息，并确定支持所有依赖项的 Python 版本的交集。

## 功能特点

- 分析 requirements.txt 文件中的包
- 从 PyPI 获取 Python 版本兼容性数据
- 识别所有包都支持的通用 Python 版本
- 处理复杂的版本说明符和分类器
- 提供清晰的输出，显示兼容的 Python 版本
- 使用并发请求高效获取包信息

## 安装

### 从源代码安装

1. 克隆或下载此仓库
2. 安装依赖：
   ```
   pip install -r requirements.txt
   ```

### 使用 pip 安装（如果已发布）

```bash
pip install pyreqver
```

## 使用方法

### 基本用法

```bash
python main.py path/to/your/requirements.txt
```

示例：
```bash
python main.py requirements.txt
```

### 命令行参数

- `requirements`: requirements.txt 文件的路径（必需）

## 输出示例

```
requests 可用版本: ['3.13', '3.12', '3.11', '3.10', '3.9', '3.8', '3.7', '3.6', '3.5', '2.7']
scikit-learn 可用版本: ['3.13', '3.12', '3.11', '3.10', '3.9', '3.8', '3.7', '3.6', '3.5']
pandas 可用版本: ['3.13', '3.12', '3.11', '3.10', '3.9', '3.8', '3.7', '3.6', '3.5', '2.7']
matplotlib 可用版本: ['3.13', '3.12', '3.11', '3.10', '3.9', '3.8', '3.7', '3.6', '3.5']
numpy 可用版本: ['3.13', '3.12', '3.11', '3.10', '3.9', '3.8', '3.7', '3.6', '3.5', '2.7']
--------------------------------------------------------------------------------
所有库支持的 Python 版本: ['3.13', '3.12', '3.11', '3.10', '3.9', '3.8', '3.7', '3.6', '3.5']
```

## 工作原理

1. **解析依赖项**：工具读取并解析 requirements.txt 文件以提取包名。
2. **获取包信息**：对于每个包，它查询 PyPI 的 JSON API 以获取有关可用版本及其 Python 版本兼容性的元数据。
3. **分析兼容性**：它检查两个兼容性信息来源：
   - 包元数据中的 `requires_python` 字段
   - 指示 Python 版本支持的包分类器
4. **查找通用版本**：它计算支持您 requirements 中所有包的 Python 版本的交集。
5. **显示结果**：工具显示每个包支持的 Python 版本，并突出显示与所有包兼容的版本。

## 技术细节

- 使用 `packaging` 库处理版本说明符
- 实现缓存以避免冗余 API 调用
- 使用并发请求高效获取包信息
- 处理各种边缘情况，如缺少包信息或不完整的元数据

## 依赖项

- `requests>=2.25.0`：用于向 PyPI 发送 HTTP 请求
- `packaging>=21.0`：用于解析版本说明符和处理版本比较

## 限制

1. 需要互联网连接以从 PyPI 获取包信息
2. 某些包可能没有明确的 Python 版本支持信息
3. 结果基于包元数据，可能不反映实际的运行时兼容性
4. 该工具检查声明的兼容性，而不是跨 Python 版本的实际功能

## 贡献

欢迎贡献！请随时提交 Pull Request。

## 许可证

本项目基于 MIT 许可证授权 - 有关详细信息，请参阅 LICENSE 文件。

## 注意事项

1. 此工具需要互联网连接以从 PyPI 获取包信息
2. 某些包可能没有明确的 Python 版本支持信息
3. 结果仅供参考，请确保在所选 Python 版本上测试您的代码的兼容性
4. 该工具可能无法正确处理使用非标准版本控制方案的包
