""" rplibs 包内置了一个 vendored six.py,但其内部不会自动在 sys.modules 中注册子模块名(如 rplibs.six.moves),在 Python 3.12 下直接 `import rplibs.six.moves` 会失败。这里手动注入一个 module 别名, 让现有 RenderPipeline 的导入语句继续可用。 """ import sys import types from . import six as _six # 复制 six.moves 的属性到一个 ModuleType,挂到 sys.modules。 # 为避免访问不存在的旧模块(如 _dummy_thread)引发异常,改为用 __getattr__ 延迟转发。 _moves_mod = types.ModuleType(__name__ + ".six.moves") def __getattr__(name): return getattr(_six.moves, name) def __dir__(): return dir(_six.moves) _moves_mod.__getattr__ = __getattr__ _moves_mod.__dir__ = __dir__ sys.modules[__name__ + ".six"] = _six sys.modules[__name__ + ".six.moves"] = _moves_mod __all__ = ["six"]