Metadata-Version: 2.4
Name: homlab-gen
Version: 0.1.3
Summary: Generate crossing-free subprojects for HomLab project JSON files.
Project-URL: Homepage, https://github.com/Homology-Lab/homlab_gen
Project-URL: Documentation, https://github.com/Homology-Lab/homlab_gen/tree/main/docs
Project-URL: Issues, https://github.com/Homology-Lab/homlab_gen/issues
Author: HomLab.Gen contributors
License-Expression: MIT
License-File: LICENSE
Keywords: diagram,generator,graph,homlab
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Scientific/Engineering :: Mathematics
Requires-Python: >=3.10
Requires-Dist: filelock>=3.13
Requires-Dist: homlab-polynomial
Requires-Dist: homlab-solver
Description-Content-Type: text/markdown

# HomLab.Gen

HomLab.Gen 用于读取 HomLab 项目 JSON，消除图中的交叉点，并生成所有可能的无交叉子图。

## 安装

开发安装：

```bash
python -m pip install -e .
```

构建发布包：

```bash
python -m pip install build
python -m build
```

构建产物会输出到 `dist/`。

## 命令行使用

安装后可以使用 `homlab-gen`：

```bash
homlab-gen path/to/project.json
```

默认输出：

- `sub_diagram/`：所有生成的子项目 JSON。
- `erase.json`：删除原交叉边并插入角点后的中间文件。
- `progress.txt`：生成进度。
- `error.log`：错误日志。

也可以显式指定这些路径：

```bash
homlab-gen path/to/project.json path/to/error.log --tmp path/to/erase.json --progress path/to/progress.txt
```

只清理旧的 `sub_diagram/` 目录：

```bash
homlab-gen path/to/project.json --erase-only
```

兼容旧参数名：

```bash
homlab-gen path/to/project.json --dryrun
```

## Python API

```python
from homlab_gen import generate_subprojects

exit_code = generate_subprojects("path/to/project.json")
```

`exit_code` 为 `0` 表示成功，为 `1` 表示失败。失败原因会写入错误日志。

## 文档

更多细节放在 `docs/`：

- [命令行接口](docs/cli.md)
- [Python API](docs/api.md)
- [项目 JSON 约定](docs/project-json.md)
- [打包与发布](docs/packaging.md)

## 开发检查

```bash
python -m unittest
python -m build
```
