Skip to content

Instantly share code, notes, and snippets.

@EvilSupahFly
Created March 19, 2025 02:58
Show Gist options
  • Save EvilSupahFly/c0af4efdc71be0ef92229bf4d7a05078 to your computer and use it in GitHub Desktop.
Save EvilSupahFly/c0af4efdc71be0ef92229bf4d7a05078 to your computer and use it in GitHub Desktop.
model_reader - __init__.py
import os, logging
import platformdirs
# Define TRACE level before Amulet initializes logging
TRACE_LEVEL = 5
logging.addLevelName(TRACE_LEVEL, "TRACE")
################
# Attach a custom trace method to all loggers - moved to amulet_map_editor/amulet_map_editor/__main__.py to make trace() available to all loggers
#def trace(self, message, *args, include_traceback=False, **kwargs):
# """Custom trace logging function."""
# if include_traceback:
# stack_trace = traceback.format_stack()
# message = f"{message}\nTRACEBACK:\n{''.join(stack_trace)}"
# if self.isEnabledFor(TRACE_LEVEL):
# self._log(TRACE_LEVEL, message, args, **kwargs)
#logging.Logger.trace = trace
################
# Get the existing root logger
log = logging.getLogger(__name__)
if not log.handlers:
print("⚠️ WARNING: No log handlers found! Logging is broken.")
# Ensure TRACE-level logs are captured by Amulet’s setup
if log.level > TRACE_LEVEL:
log.setLevel(TRACE_LEVEL)
# Initialise default paths. Applications should override these environment variables.
os.environ.setdefault("DATA_DIR", platformdirs.user_data_dir("AmuletTeam", "AmuletTeam"))
os.environ.setdefault("CONFIG_DIR", platformdirs.user_config_dir("AmuletTeam", "AmuletTeam"))
os.environ.setdefault("CACHE_DIR", platformdirs.user_cache_dir("AmuletTeam", "AmuletTeam"))
os.environ.setdefault("LOG_DIR", platformdirs.user_log_dir("AmuletTeam", "AmuletTeam"))
from minecraft_model_reader.api.mesh.block.block_mesh import BlockMesh
from minecraft_model_reader.api.resource_pack import (BaseResourcePack, BaseResourcePackManager,)
from ._version import get_versions
__version__ = get_versions()["version"]
del get_versions
# init a default logger
log.trace(f'minecraft_model_reader/__init__.py: DATA_DIR: {os.environ.get("DATA_DIR", platformdirs.user_data_dir("AmuletTeam", "AmuletTeam"))}')
log.trace(f'minecraft_model_reader/__init__.py: CONFIG_DIR: {os.environ.get("CONFIG_DIR", platformdirs.user_config_dir("AmuletTeam", "AmuletTeam"))}')
log.trace(f'minecraft_model_reader/__init__.py: CACHE_DIR: {os.environ.get("CACHE_DIR", platformdirs.user_cache_dir("AmuletTeam", "AmuletTeam"))}')
log.trace(f'minecraft_model_reader/__init__.py: LOG_DIR: {os.environ.get("LOG_DIR", platformdirs.user_log_dir("AmuletTeam", "AmuletTeam"))}')
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment