Skip to main content

blext

NOTE: This software should be considered alpha aka. unstable. It is not ready for production use. The feature-set is incomplete. The documentation is still very sparse.

With that said, we already find it quite useful. We hope you'll consider sharing your experiences with us, good and bad - for example, in the Discussions / Issues sections!

A project manager for Blender extensions, facilitating rapid and reliable development.

Features

  • All You Need is uv: The absolute only prerequisite is uv and blender. Another opinionated Python packager? Trust me, it's great.
  • Intuitive and Fast: uvx blext dev runs Blender with your extension. If you only changed some code, it runs nearly instantly!
  • Effortless Deps: Need a Python package for your addon? Just uv add <pkgname>. The next time you run blext dev, your package will be available from your extension code.
  • Single Source of Truth: Manage your Blender extension entirely from pyproject.toml, using the new table [tool.blext]. blext is explicit about any mistakes you might make, and for your trouble, generates a correct blender_manifest.toml when making the addon.
  • Extension Analysis: "Look inside" your extension with ease. Need to check the generated blender_manifest.toml? Re-run Blender's own extension validation? Or just check a platform-specific deduction? Just use blext show!

Running blext

If you have uv, just run:

uvx blext

This relies on uv tools, which is similar to pipx.

This is the recommended way of using blext.

Using blext

For now, see examples/simple in this repository for an example of a working Blender extension.

Particular attention should be paid to the [tool.blext] section of pyproject.toml.

More in-depth documentation TBD.

Installing blext

Apart from uvx, installation can be one more or less as with any Python package:

  • pip install --user blext: The standard pip package manager should work fine. It is strongly suggested to use a venv.
  • uv tool install blext: This allows running blext without prepending uvx blext.
  • uv add --dev blext: This enables running uv run blext from any other uv project.
  • Install from Source: See the Contributing section.

Documentation

For now, run blext alone, or run blext --help explicitly.

Subcommands also have help text available. For example, blext dev --help.

More documentation TBD

Contributing to blext

How do I...

Get Started?

# Install uv.

# Clone the Repository
git clone URL
cd blext

# Install pre-commit hooks
uvx pre-commit install

# That's it! Change some code!

Test some Local Changes?

# Run the Local 'blext'
## - Add any CLI options you want!
uv run blext

Make a Commit?

# Stage Files for the Commit
## - Generally, make sure that "one commit is one change".
git add ...  ## 'git add -A' works too, due to thorough .gitignores.

# Use 'commitizen' for Semantic Commits
## - Commit messages **are** CHANGELOG messages, and can also ref/close issues.
## - So make them good! `cz c` makes that easy.
uv run cz c  ## 'git commit' always works, but is less convenient.

# When pre-commit Makes Changes
## - For example, adding a license header or reformatting something.
## - Just re-stage and re-commit - `cz c` will remember the commit message.
git add ...  ## 'git add -A' works too, due to thorough .gitignores.
uv run cz c

Overview of Tools

Development of blext relies on the following tools:

  • uv: Package and project manager. Required.
  • pre-commit: Enforces conventions at commit-time. Strongly suggested.
  • commitizen: Commit and release manager. Enforced by pre-commit.
  • ruff fmt: Deterministic code formatter. Enforced by pre-commit.
  • ruff lint: Code linter. Not enforced (planned).
  • mypy: Static type analysis. Not enforced (planned).

Making Commits

Commits are subject to pre-commit hooks, if installed. To set this up, simply run:

uvx pre-commit install

Then, all pre-commit hooks will run after each commit.

Sometimes it's nice to run all of the pre-commit hooks manually:

uvx pre-commit run --all-files

Download files

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

Source Distribution

blext-0.3.0.tar.gz (115.0 kB view details)

Uploaded Source

Built Distribution

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

blext-0.3.0-py3-none-any.whl (35.9 kB view details)

Uploaded Python 3

File details

Details for the file blext-0.3.0.tar.gz.

File metadata

  • Download URL: blext-0.3.0.tar.gz
  • Upload date:
  • Size: 115.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.5.18

File hashes

Hashes for blext-0.3.0.tar.gz
Algorithm Hash digest
SHA256 2f3871e4384728816ba2297f04633d089b5dc6e43105182cd4b95a75f7a179e0
MD5 1a72bd5f4134abfd5599ee158a46faf1
BLAKE2b-256 a014d7217ce50873ff63087d9a5958ca53cabab2d500dea5606afc1809a6a55c

See more details on using hashes here.

File details

Details for the file blext-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: blext-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 35.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.5.18

File hashes

Hashes for blext-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5b05e3c39a91d4605a470f4f363cd54cd6815e3fc14c965180d2f5deb0e6201f
MD5 9631837d170b51c9b7fc390fe55ea899
BLAKE2b-256 ed4cdf37762c5448a43b79c223e4b77c2e81445f5321b0990683579ca2236f64

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.3.0 This release

2 files

0.2.1

2 files

0.2.0

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