diff --git a/examples/nosnap_extend_namespace/beet.yml b/examples/nosnap_extend_namespace/beet.yml new file mode 100644 index 000000000..52f67f04e --- /dev/null +++ b/examples/nosnap_extend_namespace/beet.yml @@ -0,0 +1,4 @@ + + +pipeline: + - main diff --git a/examples/nosnap_extend_namespace/main.py b/examples/nosnap_extend_namespace/main.py new file mode 100644 index 000000000..f8f715182 --- /dev/null +++ b/examples/nosnap_extend_namespace/main.py @@ -0,0 +1,17 @@ +from beet import Context, BinaryFile, NamespaceFileScope +from beet.contrib.vanilla import Vanilla +from typing import ClassVar + + +class UnihexZip(BinaryFile): + scope: ClassVar[NamespaceFileScope] = () + extension: ClassVar[str] = ".zip" + + +def beet_default(ctx: Context): + vanilla = ctx.inject(Vanilla) + vanilla.assets.extend_namespace.append(UnihexZip) + unihex = vanilla.mount("assets/minecraft/font", fetch_objects=True).assets[ + UnihexZip + ] + print(unihex) diff --git a/src/beet/contrib/vanilla.py b/src/beet/contrib/vanilla.py index 67ba95a65..eaff31185 100644 --- a/src/beet/contrib/vanilla.py +++ b/src/beet/contrib/vanilla.py @@ -94,6 +94,8 @@ def mount( # triggering merge policies that might try to deserialize # files before they're fully retrieved. temp = ResourcePack() + temp.extend_namespace.extend(pack.extend_namespace) + temp.extend_namespace_extra.update(pack.extend_namespace_extra) with self.cache.parallel_downloads(): temp.mount(prefix, object_mapping.with_prefix(prefix)) pack.merge(temp)