Files
dev/third_party/python/README.md

42 lines
1.1 KiB
Markdown

# Vendored Python packages
This package exposes vendored Python dependencies through stable public Bazel targets.
Bazel uses `PYTHON_TOOLCHAIN_ROOT` to find the monorepo `python3` runtime.
Project code depends on targets in `//third_party/python`.
It does not depend on files inside vendored source directories directly.
Use this layout for a vendored package:
```text
third_party/python/
BUILD.bazel
<name>/
LICENSE
pyproject.toml
src/
```
Use the upstream package name for library targets.
For command-line tools, add a `_bin` suffix to the binary target.
Preserve upstream license files and package metadata.
Keep repository Bazel files outside upstream source when possible.
Add optional dependencies as separate public targets.
Do not bundle optional dependencies into the primary package target.
## `rpycdec`
Ariadne uses `rpycdec` for archive extraction and debug decompilation.
Ariadne uses the game-bundled Ren'Py runtime for AST export.
The vendored source comes from `cnfatal/rpycdec` at commit `489e9c6b8a48ed7904d7039d7787c36a03c75fe3`.
The public targets are:
```text
//third_party/python:rpycdec
//third_party/python:rpycdec_bin
```