- is_encrypted(): certutil 原始哈希 + helper 视图对比, Python/pyd/EXE 三环境均可判定 - w/a/x 写入按后缀探测通道, 直写会被加密时自动切换 PowerShell stdin 中转, 保证落盘未加密 - 新增 WriteChannel/DlpWriteError 与 DLP_IO_WRITE_CHANNEL 强制通道开关 - tests: DLP 加解密样本 fixture 与 19 个结构化断言用例
dlp-io
io-compatible file reads through an approved Python helper on Windows DLP hosts.
完整文档见 docs/DLP_IO_LIBRARY.md。
安装
从 Gitea PyPI registry 安装(匿名可下载,无需 token):
py -m pip install --index-url https://gitea.docker.antior.cn/api/packages/antior/pypi/simple dlp-io
pip 会自动选择最匹配的 wheel:Windows 上 CPython 3.10–3.14 安装对应的 pyd wheel(整个库由 Cython 编译为单个 .pyd),其余环境安装纯 Python wheel。如需固定版本:
py -m pip install --index-url https://gitea.docker.antior.cn/api/packages/antior/pypi/simple dlp-io==0.1.1
也可以从 Releases 页面下载产物:wheel 用 py -m pip install <文件> 安装;dlp_io.py 或对应版本的裸 .pyd 为免安装单文件,直接放进项目目录(或加入 PYTHONPATH)即可 import dlp_io。
开发
pip install -r requirements-dev.txt
pytest
构建发布
发布流程由 .gitea/workflows/publish-dlp-io.yaml 驱动:推送 dlp-io-vX.Y.Z 格式的 annotated tag,Windows runner(Python 3.10–3.14)会自动完成测试、构建,并把产物上传到 Gitea Release:
dlp_io-X.Y.Z-py3-none-any.whl(纯 Python,跨平台)dlp_io-X.Y.Z-cp310…cp314-win_amd64.whl(5 个 pyd wheel,Cython 编译,Windows 按解释器版本选用)dlp_io-X.Y.Z.tar.gz(sdist)dlp_io.py和 5 个裸dlp_io.cp3XX-win_amd64.pyd(免安装单文件,放进项目目录即可 import)
同一批 wheel/sdist 还会同步发布到 Gitea PyPI registry(https://gitea.docker.antior.cn/api/packages/antior/pypi/simple),可直接 pip install --index-url ... dlp-io。
安装方式见 docs/DLP_IO_LIBRARY.md。
本地只构建纯 Python 版:
py -3.13 -m build
pyd wheel 由 CI 编译,不需要本地编译;runner 主机需预装 MSVC 生成工具(Visual Studio Build Tools 的 C++ 工作负载)。如需本地验证 pyd 构建,安装 cython 后执行:
set DLP_IO_PYD=1
py -3.13 -m build --wheel --no-isolation