
Noctyra 是一个基于 AST 的框架,专为代码转换和去混淆而设计。它提供了一个模块化流水线,用于分析和简化 Python 源代码,解决复杂的表达式和逻辑问题。
该项目旨在提供一个灵活的环境来处理 Python 的抽象语法树。通过使用一系列可插拔的转换器,Noctyra 可以:
确保已安装 uv 用于依赖管理。
uv sync
要处理目标脚本,请使用以下命令:
python main.py <input_file> [options]
选项:
file:输入 Python 文件的路径(必需)。--output:转换后代码的文件名(默认:out.py)。--iterations:设置固定的转换次数(默认:0,表示自动检测)。--max-iterations:在自动模式下限制转换次数(默认:100)。--debug:启用详细日志以调试转换过程(看起来很酷)。本项目使用 uv 进行依赖管理,并使用 Makefile 处理常见任务。
uv sync --all-extras --dev
在提交 PR 或推送更改之前,确保所有检查通过:
make testmake formatmake typecheck(Windows 用户:这些命令可通过 make.bat 自动运行。)
每次推送都会通过 GitHub Actions 自动执行检查,包括使用 Ruff 进行代码规范检查、使用 Mypy 进行类型检查、以及使用 Pytest 进行单元测试。
Noctyra 包含一个带有基本资源限制的内部评估引擎。然而,在处理不受信任的代码时,强烈建议在隔离环境中(如容器或沙箱)运行流水线,以防止潜在的副作用或资源耗尽。