Security News
PyPI’s New Archival Feature Closes a Major Security Gap
PyPI now allows maintainers to archive projects, improving security and helping users make informed decisions about their dependencies.
The Minecraft pack development kit.
Minecraft resource packs and data packs work well as distribution formats but can be pretty limiting as authoring formats. You can quickly end up having to manage hundreds of files, some of which might be buried within the bundled output of various generators.
The beet
project is a development kit that tries to unify data pack and resource pack tooling into a single pipeline. The community is always coming up with pre-processors, frameworks, and generators of all kinds to make the developer experience more ergonomic. With beet
you can seamlessly integrate all these tools in your project.
from beet import ResourcePack, Texture
# Open a zipped resource pack and add a custom stone texture
with ResourcePack(path="stone.zip") as assets:
assets["minecraft:block/stone"] = Texture(source_path="custom.png")
The beet
library provides carefully crafted primitives for working with Minecraft resource packs and data packs.
pytest
integration with detailed assertion explanationsfrom beet import Context, Function
def greet(ctx: Context):
"""Plugin that adds a function for greeting the player."""
ctx.data["greet:hello"] = Function(["say hello"], tags=["minecraft:load"])
The beet
toolchain is designed to support a wide range of use-cases. The most basic pipeline will let you create configurable resource packs and data packs, but plugins make it easy to implement arbitrarily advanced workflows and tools like linters, asset generators and function pre-processors.
The package can be installed with pip
.
$ pip install beet
To create and edit images programmatically you should install beet
with the image
extra or install Pillow
separately.
$ pip install beet[image]
$ pip install beet Pillow
You can make sure that beet
was successfully installed by trying to use the toolchain from the command-line.
$ beet --help
Usage: beet [OPTIONS] COMMAND [ARGS]...
The beet toolchain.
Options:
-p, --project PATH Select project.
-s, --set OPTION Set config option.
-l, --log LEVEL Configure output verbosity.
-v, --version Show the version and exit.
-h, --help Show this message and exit.
Commands:
build Build the current project.
cache Inspect or clear the cache.
link Link the generated resource pack and data pack to Minecraft.
watch Watch the project directory and build on file changes.
Contributions are welcome. Make sure to first open an issue discussing the problem or the new feature before creating a pull request. The project uses poetry
.
$ poetry install --extras image
You can run the tests with poetry run pytest
. We use pytest-minecraft
to run tests against actual Minecraft releases.
$ poetry run pytest
$ poetry run pytest --minecraft-latest
We also use pytest-insta
for snapshot testing. Data pack and resource pack snapshots make it easy to monitor and review changes.
$ poetry run pytest --insta review
The project must type-check with pyright
. If you're using VSCode the pylance
extension should report diagnostics automatically. You can also install the type-checker locally with npm install
and run it from the command-line.
$ npm run watch
$ npm run check
The code follows the black
code style. Import statements are sorted with isort
.
$ poetry run isort beet tests
$ poetry run black beet tests
$ poetry run black --check beet tests
License - MIT
FAQs
The Minecraft pack development kit
We found that beet demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
PyPI now allows maintainers to archive projects, improving security and helping users make informed decisions about their dependencies.
Research
Security News
Malicious npm package postcss-optimizer delivers BeaverTail malware, targeting developer systems; similarities to past campaigns suggest a North Korean connection.
Security News
CISA's KEV data is now on GitHub, offering easier access, API integration, commit history tracking, and automated updates for security teams and researchers.