Nuitka build config
Project description
Nuitka Build Config (nbc)
Документация на русском
nuitka-build-config (nbc) is a tool for managing application builds with Nuitka using declarative configuration files (YAML/JSON). It provides a convenient Pydantic configuration model, a CLI for generation and building, as well as support for pre- and post-compilation actions.
📦 Features
- 🧩 Declarative Configuration — describe builds in YAML/JSON without writing commands.
- ⚙️ Configuration Generation — automatically create a configuration file from command line parameters.
- 🧠 Pydantic Models — strict validation and IDE autocompletion.
- 📦 Plugin Support — enable/disable Nuitka plugins.
- 🖥️ Cross-platform — separate parameters for Windows, macOS, Linux.
- 📋 Pre/Post Compilation Actions — run arbitrary commands (e.g., tests, packaging).
- 📊 Report Generation — create an XML compilation report.
- 🧹 Build Directory Removal —
--remove-outputoption.
🚀 Installation
pip install nuitka-build-config
Or with uv:
uv add nuitka-build-config
After installation, the nbc command becomes available.
🧪 Usage
1. Generate a configuration file
nbc generate --main main.py --mode standalone --windows-console-mode disable -o myconfig.yaml
Almost all Nuitka parameters are supported (see nbc generate --help).
2. Build a project from a configuration file
nbc build myconfig.yaml
If main is not specified in the config, you can pass it as a second argument:
nbc build myconfig.yaml main.py
3. Generate build command without building (Dry-run)
nbc build --dry-run
This will show which Nuitka command would have been executed.
4. Example configuration (nbc-config.yaml)
type: standalone
main: src/main.py
run: true
follow_stdlib: false
output_dir: ./dist
output_name: myapp
remove_output: true
include:
packages:
- requests
- rich
files:
- ./assets/icon.png
- [./data/, "data"]
plugins:
- anti-bloat
windows_params:
console_mode: disable
uac_admin: true
icon: ./assets/app.ico
python_flags:
- -O # remove asserts
- no_warnings
pre_compile_actions:
- echo "Starting build"
post_compile_actions:
- upx --best dist/myapp.exe
🧱 Programmatic Usage
You can use the models inside your Python code:
from nuitka_build_config.models import NuitkaConfig
config = NuitkaConfig.from_yaml_file("nbc-config.yaml")
print(config.output_dir) # ./dist
🧰 CLI Commands
| Command | Description |
|---|---|
nbc build |
Run build from configuration |
nbc generate |
Generate config from arguments |
Параметры generate (примеры)
--mode onefile |
build mode |
--enable-plugins tk-inter |
enable plugin |
--windows-console-mode disable |
disable console |
-o config.yaml |
output file name (default nbc-config.yaml) |
--compile |
start build immediately after generation |
⚙️ Requirements
- Python ≥ 3.9
- Nuitka ≥ 4.0
- Pydantic ≥ 2.0
🧩 Extensions and Customization
The package is designed to be modular. You can:
- Inherit from
NuitkaConfigand add your own fields. - Override
_add_*methods inDecoratorMixin. - Use
extra_flagsfor any custom Nuitka arguments.
🌍 Internationalization
CLI messages and field descriptions support translations. Current languages: English, Русский.
Translation files are located in nuitka_build_config/locale/.
📄 License
MIT License © MagIlyasDOMA
Nuitka Build Config (nbc)
Documentation in English
nuitka-build-config (nbc) --- это инструмент для управления сборкой
приложений с помощью Nuitka через декларативные конфигурационные
файлы (YAML/JSON). Он предоставляет удобную Pydantic-модель
конфигурации, CLI для генерации и сборки, а также поддержку пред- и
пост-компиляционных действий.
📦 Возможности
- 🧩 Декларативная конфигурация --- описание сборки в YAML/JSON без написания команд.
- ⚙️ Генерация конфигурации --- автоматическое создание файла конфигурации из параметров командной строки.
- 🧠 Pydantic-модели --- строгая валидация и автодополнение в IDE.
- 📦 Поддержка плагинов --- включение/отключение плагинов Nuitka.
- 🖥️ Кроссплатформенность --- отдельные параметры для Windows, macOS, Linux.
- 📋 Действия до/после компиляции --- запуск произвольных команд (например, тесты, упаковка).
- 📊 Генерация отчётов --- создание XML-отчёта о компиляции.
- 🧹 Удаление build-каталога --- опция
--remove-output.
🚀 Установка
pip install nuitka-build-config
Или с помощью uv:
uv add nuitka-build-config
После установки становится доступна команда nbc.
🧪 Использование
1. Генерация конфигурационного файла
nbc generate --main main.py --mode standalone --windows-console-mode disable -o myconfig.yaml
Поддерживаются почти все параметры Nuitka (см. nbc generate --help).
2. Сборка проекта по конфигурации
nbc build myconfig.yaml
Если main не указан в конфиге, его можно передать вторым аргументом:
nbc build myconfig.yaml main.py
3. Генерация команды сборки без сборки (Dry-run)
nbc build --dry-run
Покажет, какая команда Nuitka была бы выполнена.
4. Пример конфигурации (nbc-config.yaml)
type: standalone
main: src/main.py
run: true
follow_stdlib: false
output_dir: ./dist
output_name: myapp
remove_output: true
include:
packages:
- requests
- rich
files:
- ./assets/icon.png
- [./data/, "data"]
plugins:
- anti-bloat
windows_params:
console_mode: disable
uac_admin: true
icon: ./assets/app.ico
python_flags:
- -O # удалить assert'ы
- no_warnings
pre_compile_actions:
- echo "Starting build"
post_compile_actions:
- upx --best dist/myapp.exe
🧱 Программное использование
Вы можете использовать модели внутри своего Python-кода:
from nuitka_build_config.models import NuitkaConfig
config = NuitkaConfig.from_yaml_file("config.yaml")
print(config.output_dir) # ./dist
🧰 Команды CLI
| Команда | Описание |
|---|---|
nbc build |
Запуск сборки по конфигурации |
nbc generate |
Генерация конфига из аргументов |
Параметры generate (примеры)
--mode onefile |
режим сборки |
--enable-plugins tk-inter |
включить плагин |
--windows-console-mode disable |
отключить консоль |
-o config.yaml |
имя выходного файла (по умолч. nbc-config.yaml) |
--compile |
сразу после генерации запустить сборку |
⚙️ Требования
- Python ≥ 3.9
- Nuitka ≥ 4.0
- Pydantic ≥ 2.0
🧩 Расширения и кастомизация
Пакет спроектирован модульно. Вы можете:
- Наследовать
NuitkaConfigи добавлять свои поля. - Переопределять методы
_add_*вDecoratorMixin. - Использовать
extra_flagsдля любых кастомных аргументов Nuitka.
🌍 Интернационализация
Сообщения CLI и описания полей поддерживают переводы. Текущие языки: English, Русский.
Файлы переводов находятся в nuitka_build_config/locale/.
📄 Лицензия
MIT License © MagIlyasDOMA
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file nuitka_build_config-0.4.1.tar.gz.
File metadata
- Download URL: nuitka_build_config-0.4.1.tar.gz
- Upload date:
- Size: 29.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4fd0d576b3a984cddb20fb9e4f730382ae282da37fabbb20ac3d5f54c3a7c48c
|
|
| MD5 |
7b8838580ea8d83954a8fc15ae91cc97
|
|
| BLAKE2b-256 |
fce50f55315387744c03569cd752227a278bc6ad58ab65075dabeeef3a8bd69b
|
File details
Details for the file nuitka_build_config-0.4.1-py3-none-any.whl.
File metadata
- Download URL: nuitka_build_config-0.4.1-py3-none-any.whl
- Upload date:
- Size: 41.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ddf99b22f2cb80ba4d569be1a25b45b6c6e1a577859d6d8723cb3d9322ced2d8
|
|
| MD5 |
d674ccdb938543aecb308d94ccbce612
|
|
| BLAKE2b-256 |
87759a4b836d63b484911254a2cb8c57ae2afae716c9b3ee5cef18723797ebc3
|