Metadata-Version: 2.4
Name: lsdataset
Version: 0.3.2
Summary: LeRobot-style dataset I/O：core / io / schemas（本地数据集与录制；不含 Web 服务）。
License: Apache-2.0
Keywords: lerobot,robot,dataset,parquet,robotics
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: OS Independent
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 :: Artificial Intelligence
Requires-Python: >=3.10
Description-Content-Type: text/markdown
Requires-Dist: pydantic>=2.7
Requires-Dist: numpy>=1.26
Requires-Dist: scipy>=1.11
Requires-Dist: Pillow>=10.3
Requires-Dist: pandas
Requires-Dist: datasets==3.2.0
Requires-Dist: pyarrow==22.0.0
Requires-Dist: jsonlines>=4.0.0
Requires-Dist: av==14.2.0
Provides-Extra: dev
Requires-Dist: pytest>=8.0; extra == "dev"
Requires-Dist: opencv-python-headless==4.12.0.88; extra == "dev"

# lsdataset

独立仓库中的 **LeRobot 风格**数据集库：**`core`**（`LsRobotDataset`、`LsDatasetManager`）、**`io`**、**`schemas`**。负责本地数据集的创建、写入、episode 生命周期管理与磁盘元信息；**不包含** Web 框架或 HTTP 服务实现。

PyPI 项目名与 **import 名**均为 **`lsdataset`**。

## 安装

```bash
pip install -e .
```

**版本单一来源**：`datasets` / `pyarrow` / `jsonlines` / `av`、`pydantic`、`numpy`、`scipy`、`Pillow` 在 **`pyproject.toml`**。

异步图像写入并发度（默认 `4`）：

- `LSDATASET_IMAGE_WRITER_PROCESSES`
- `LSDATASET_IMAGE_WRITER_THREADS`

## 测试

```bash
pip install -e ".[dev]"
make test
# 或：python -m pytest tests -q --tb=short
```

集成脚本在 **`scripts/`**（多为本地调试；**`parquet2json.py`** 需设置 **`LSDATASET_PARQUET2JSON_IN`** 等环境变量，见脚本内说明）。本仓库 **`tests/`** 覆盖核心数据集与编码流程。

## 版本与依赖声明

在宿主项目的依赖文件中 pin **`lsdataset==x.y.z`**（与 **PyPI** 或 **editable 安装**一致即可）。

本地 editable 示例：

```text
pip install -e /path/to/lsdataset
```

---

## 版本号与发布脚本

```bash
python scripts/release.py patch --sync-readme
make release PART=minor
make release-build PART=patch
```

`--sync-readme` 会替换本仓库 **`README.md`** 中出现的 **`lsdataset==旧版本`**，以及历史上可能存在的 **`lsdataset[…]==旧版本`** 写法。

发版后：更新依赖方声明的版本号，再执行 **`twine upload`** 等发布步骤。

---

## 发布到 PyPI（摘要）

1. `python scripts/release.py patch --sync-readme`（或手改 `version`）
2. `python -m build` → `twine check dist/*` → `twine upload dist/*`
3. `git tag v<x.y.z>`

**近期主版本语义（摘要）**：
**0.2.0** 起移除包内 HTTP 路由模块；
**0.3.0** 起移除与外部上传网关对接的实现子包；
**0.3.1** 起精简 **`schemas.types`**，删除仅用于该上传流程的请求模型（由集成方自行定义）。若曾依赖已删除的导入路径，请在集成侧替换实现。
