• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1### SPDX License 匹配工具
2
3该工具用于从Excel文件和JSON文件中提取、匹配并映射开源许可证信息。其核心功能包括将Excel文件中的`cc_url`字段复制到`match_url`字段中,并将`spdx_fixed_license_name`字段与JSON中的SPDX License键进行匹配,结果输出到Excel文件的`match_license`字段。
4
5### 目录结构
6
7```
8plaintextCopy codeproject_root/
9├── src/
10│   └── spdx_license_matcher.py         # SPDX License 匹配工具代码
11├── test/
12│   └── test_spdx_license_matcher.py     # SPDX License 匹配工具的测试代码
13└── data/
14    ├── url_license_fixed.xlsx           # 输入的Excel数据文件
15    └── spdx.json                        # 输入的SPDX License JSON文件
16```
17
18### 文件详细说明
19
20- **src/spdx_license_matcher.py**:核心脚本文件,包含加载数据、列复制、许可证匹配及结果输出等功能。
21- **test/test_spdx_license_matcher.py**:测试文件,使用`unittest`框架验证工具的核心功能是否正常工作。
22- **data/oh_spdx_license_match.xlsx**和**data/spdx.json**:测试数据文件,分别包含Excel的许可URL数据和SPDX License的JSON映射数据。
23
24
25
26#### 使用说明
27
281. 运行脚本需要传递三个参数:输入的Excel文件路径、JSON文件路径和输出Excel文件路径。
292. 命令示例如下:
30
31```
32python src/spdx_license_matcher.py data/oh_spdx_license_match.xlsx data/spdx.json data/output.xlsx
33```
34
35###
36
37#### 测试步骤
38
391. 在项目根目录运行测试命令:
40
41```
42python -m unittest discover -s test
43```
44
451. 测试输出:
46   - 测试代码会自动验证主要功能,包括列复制、许可证匹配、数据保存等。
47   - 若所有测试通过,将显示“OK”。
48
49### 注意事项
50
51- **SPDX 数据格式**:确保JSON文件的格式符合SPDX标准。
52- **Excel 文件格式**:输入Excel文件应包含`cc_url`和`spdx_fixed_license_name`列。
53- **测试文件**:测试中创建的临时文件会在测试结束时自动删除。
54
55------
56
57### 常见问题
58
591. 许可证名称无法匹配:请检查输入Excel文件的`spdx_fixed_license_name`字段内容,确保名称拼写正确,并与JSON文件的键名称一致。
602. 多项许可匹配:对于含有多个以“分号”分隔的许可证名称,脚本会逐个进行匹配,并将结果以“分号”分隔的方式填入`match_license`列中。
61