sync(v1.6.0 / v1.0.9): synchronize full luminamoon monorepo, LSO-Eval v1.1.1 results, and LuminaV v1.6.0 bundle (part 2)
446b91f verified Download python/luminamoon/nn/_compat.py from cloverx-id/LuminaV-Optimizer: direct link, hf CLI and curl.
- Browser
- Download file 4.92 kB
-
https://huggingface.co/cloverx-id/LuminaV-Optimizer/resolve/main/python/luminamoon/nn/_compat.py
- Command line
-
hf download hf://cloverx-id/LuminaV-Optimizer/python/luminamoon/nn/_compat.py
-
curl -L -o _compat.py https://huggingface.co/cloverx-id/LuminaV-Optimizer/resolve/main/python/luminamoon/nn/_compat.py
4.92 kB
| from __future__ import annotations | |
| import sys | |
| from typing import TYPE_CHECKING, Any, Dict, List, Optional, Tuple | |
| # 1. Automatic PyTorch Detection | |
| try: | |
| import torch | |
| import torch.nn as nn | |
| _HAS_TORCH = True | |
| except ImportError: | |
| torch = None # type: ignore[assignment] | |
| nn = None # type: ignore[assignment] | |
| _HAS_TORCH = False | |
| # 2. Automatic NumPy Detection | |
| try: | |
| import numpy as np | |
| _HAS_NUMPY = True | |
| except ImportError: | |
| np = None # type: ignore[assignment] | |
| _HAS_NUMPY = False | |
| # 3. Automatic Triton Detection | |
| try: | |
| import triton # type: ignore[import-untyped] | |
| _HAS_TRITON = True | |
| except ImportError: | |
| triton = None # type: ignore[assignment] | |
| _HAS_TRITON = False | |
| # 4. Automatic Rust SIMD Engine Detection | |
| _rs_engine: Any = None | |
| try: | |
| try: | |
| from luminamoon.optimizer import _luminamoon_optimizer_rs as _rs_engine # type: ignore[import-not-found] | |
| except ImportError: | |
| try: | |
| from luminamoon import _luminamoon_optimizer_rs as _rs_engine # type: ignore[import-not-found] | |
| except ImportError: | |
| import _luminamoon_optimizer_rs as _rs_engine # type: ignore[import-not-found] | |
| _HAS_RUST_SIMD = hasattr(_rs_engine, "ra_norm_f32_pyo3") | |
| except ImportError: | |
| _rs_engine = None # type: ignore[assignment] | |
| _HAS_RUST_SIMD = False | |
| def is_torch_available() -> bool: | |
| """Returns True if PyTorch is installed and available in the environment.""" | |
| return _HAS_TORCH | |
| def is_numpy_available() -> bool: | |
| """Returns True if NumPy is installed and available in the environment.""" | |
| return _HAS_NUMPY | |
| def is_triton_available() -> bool: | |
| """Returns True if Triton GPU compiler is available.""" | |
| return _HAS_TRITON | |
| def is_rust_simd_available() -> bool: | |
| """Returns True if compiled Rust SIMD extension is available.""" | |
| return _HAS_RUST_SIMD | |
| def _is_torch_compiling() -> bool: | |
| """Returns True when TorchDynamo / torch.compile is actively tracing.""" | |
| if not _HAS_TORCH: | |
| return False | |
| compiler_mod = getattr(torch, "compiler", None) | |
| if compiler_mod is not None and hasattr(compiler_mod, "is_compiling"): | |
| return bool(compiler_mod.is_compiling()) | |
| dynamo_mod = getattr(torch, "_dynamo", None) | |
| if dynamo_mod is not None and hasattr(dynamo_mod, "is_compiling"): | |
| return bool(dynamo_mod.is_compiling()) | |
| return False | |
| class StandaloneModule: | |
| """ | |
| Lightweight fallback base class when PyTorch is not installed. | |
| Allows Ra-Family components to be imported, instantiated, and inspected | |
| in zero-dependency environments (e.g. edge microcontrollers, web servers) | |
| without raising ModuleNotFoundError. | |
| """ | |
| def __init__(self, *args: Any, **kwargs: Any) -> None: | |
| self._training: bool = True | |
| self._parameters: Dict[str, Any] = {} | |
| self._buffers: Dict[str, Any] = {} | |
| self._modules: Dict[str, Any] = {} | |
| def training(self) -> bool: | |
| return self._training | |
| def train(self, mode: bool = True) -> StandaloneModule: | |
| self._training = mode | |
| for module in self._modules.values(): | |
| if isinstance(module, StandaloneModule): | |
| module.train(mode) | |
| return self | |
| def eval(self) -> StandaloneModule: | |
| return self.train(False) | |
| def parameters(self) -> List[Any]: | |
| params = list(self._parameters.values()) | |
| for module in self._modules.values(): | |
| if hasattr(module, "parameters"): | |
| params.extend(module.parameters()) | |
| return params | |
| def register_parameter(self, name: str, param: Any) -> None: | |
| self._parameters[name] = param | |
| def register_buffer(self, name: str, tensor: Any) -> None: | |
| self._buffers[name] = tensor | |
| def __call__(self, *args: Any, **kwargs: Any) -> Any: | |
| return self.forward(*args, **kwargs) | |
| def forward(self, *args: Any, **kwargs: Any) -> Any: | |
| raise NotImplementedError("Forward pass must be implemented by subclass.") | |
| def __repr__(self) -> str: | |
| cls_name = self.__class__.__name__ | |
| extra = self.extra_repr() | |
| if extra: | |
| return f"{cls_name}({extra})" | |
| return f"{cls_name}()" | |
| def extra_repr(self) -> str: | |
| return "" | |
| if TYPE_CHECKING: | |
| import torch.nn as _nn_type # type: ignore[import-not-found] | |
| BaseModule = _nn_type.Module | |
| else: | |
| # BaseModule dynamically aliases torch.nn.Module when available, | |
| # or StandaloneModule when in a pure zero-dependency environment. | |
| BaseModule = nn.Module if _HAS_TORCH else StandaloneModule | |
| __all__ = [ | |
| "BaseModule", | |
| "StandaloneModule", | |
| "is_torch_available", | |
| "is_numpy_available", | |
| "is_triton_available", | |
| "is_rust_simd_available", | |
| "_HAS_TORCH", | |
| "_HAS_NUMPY", | |
| "_HAS_TRITON", | |
| "_HAS_RUST_SIMD", | |
| "_is_torch_compiling", | |
| "_rs_engine", | |
| "torch", | |
| "nn", | |
| "np", | |
| ] | |