Modern Python/PySide6 clone of the Neverwinter Nights Aurora Toolset
- Python 100%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
|
All checks were successful
CI / check (push) Successful in 1m30s
CI's test phase reported "2028 passed, 60 skipped" — a clean run — yet the step still failed with exit code 139. Reproduced locally: pytest prints its full passing summary, then the process segfaults (135/139, flaky — not every run) during Python's own shutdown GC/atexit sweep, which is a known PySide6 issue once enough QWidget/QOpenGLWidget instances have been created across a session. It's a native teardown- ordering crash, not a real test failure. Add a pytest_sessionfinish hook that calls os._exit() with pytest's own computed exit status, bypassing that GC/atexit sweep entirely so the crash can't happen after the fact. Verified over repeated full-suite runs (previously flaky at 135/139, now consistently 0) and confirmed a deliberately failing test still exits 1. |
||
| .forgejo/workflows | ||
| bioware-docs | ||
| docs | ||
| scripts/hooks | ||
| src/pyaurora | ||
| tests | ||
| .gitignore | ||
| LICENSE | ||
| Makefile | ||
| Pipfile | ||
| pyproject.toml | ||
| README.md | ||
| uv.lock | ||
pyaurora-toolset
Modern Python/PySide6 clone of the Neverwinter Nights Aurora Toolset.
Quickstart
uv sync
uv run pyaurora
On first launch the toolset auto-detects your NWN:EE installation. If detection fails you will be prompted to browse to the installation root manually.
Environment variables
| Variable | Purpose | Required |
|---|---|---|
NWNEE_HOME |
Path to the NWN:EE installation root (the directory containing chitin.key). Overrides auto-detection. |
No |
Auto-detection search order (first valid path wins):
NWNEE_HOMEenv var- Steam — platform default paths (Linux, Windows, macOS)
- GOG — platform default paths (Windows, macOS)
If no installation is found automatically, set NWNEE_HOME explicitly:
export NWNEE_HOME="/path/to/Neverwinter Nights"
uv run pyaurora
Development
uv sync --group dev
make check # format check + lint + typecheck + tests
make fmt # auto-format and fix lint
make test # tests only
make typecheck # mypy only
Git hooks (format check, lint, typecheck on commit):
make hooks
Integration tests require a real NWN:EE installation and are skipped automatically
when NWNEE_HOME is not set. To run them:
NWNEE_HOME="/path/to/Neverwinter Nights" uv run pytest -m integration