"""Django app config — registers shard with shell at startup.""" import os from django.apps import AppConfig class ShellboundDjangoApp(AppConfig): name = "substrate_sdk.django" label = "substrate_sdk" verbose_name = "Substrate Shell SDK" default_auto_field = "django.db.models.BigAutoField" def ready(self): from substrate_sdk import ShellApp from substrate_sdk.django.middleware import set_emitter from substrate_sdk.django.signals import connect_signals shard_name = os.environ.get("SUBSTRATE_SHARD_NAME") if not shard_name: parts = os.environ.get("DJANGO_SETTINGS_MODULE", "django-app").split(".") shard_name = parts[-2] if len(parts) >= 2 else parts[0] version = os.environ.get("SUBSTRATE_SHARD_VERSION", "0.0.0") app = ShellApp(shard_name=shard_name, version=version) app.register() set_emitter(app.emitter) connect_signals(app.emitter)