Skip to main content

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-output option.

🚀 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 NuitkaConfig and add your own fields.
  • Override _add_* methods in DecoratorMixin.
  • Use extra_flags for 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

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nuitka_build_config-0.5.0.tar.gz (27.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

nuitka_build_config-0.5.0-py3-none-any.whl (35.3 kB view details)

Uploaded Python 3

File details

Details for the file nuitka_build_config-0.5.0.tar.gz.

File metadata

  • Download URL: nuitka_build_config-0.5.0.tar.gz
  • Upload date:
  • Size: 27.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.6

File hashes

Hashes for nuitka_build_config-0.5.0.tar.gz
Algorithm Hash digest
SHA256 713388110b5422ad3670869141d17ef15764f51d9deb8a03f7bdaa47cfbddf37
MD5 d7454fdbd9b80bbacc1bcda3ad5bc034
BLAKE2b-256 b128d174a4f77c05e5944a78e9b05aa22ad08920332c911307b9bc6b968fb6fa

See more details on using hashes here.

File details

Details for the file nuitka_build_config-0.5.0-py3-none-any.whl.

File metadata

File hashes

Hashes for nuitka_build_config-0.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7b6b531608c3f1c30f604d8201868132198c8aa51748d2792837ea356dfc8e7d
MD5 7fce9fe16c3b44a6a3a0c6b291e8b2a5
BLAKE2b-256 a7ed12215a33e57d29c15dc1b2ecb634d77195bf7e20acaf703bd71d401c9e4c

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.5.0 This release

2 files

0.4.3

2 files

0.4.2

2 files

0.4.1

2 files

0.4.0

2 files

0.3.1

2 files

0.3.0

2 files

0.2.0

2 files

0.1.8

2 files

0.1.7

2 files

0.1.6

2 files

0.1.5

2 files

0.1.4

2 files

0.1.3

2 files

0.1.2

2 files

0.1.1

2 files

0.1.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page