Spaces:
Running
on
Zero
Running
on
Zero
File size: 906 Bytes
13c3e03 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
"""
Utilities for integrating Hugging Face Spaces ZeroGPU without breaking
local or non-ZeroGPU environments.
"""
from typing import Callable, TypeVar
T = TypeVar("T", bound=Callable)
# Default values in case the spaces package is unavailable (e.g., local runs).
ZERO_GPU_AVAILABLE = False
try:
import spaces # type: ignore
gpu_decorator = spaces.GPU # pragma: no cover
ZERO_GPU_AVAILABLE = True
except Exception:
def gpu_decorator(*decorator_args, **decorator_kwargs):
"""
No-op replacement for spaces.GPU so code can run without the package
or outside of a ZeroGPU Space.
"""
def wrapper(func: T) -> T:
return func
# Support both bare @gpu_decorator and @gpu_decorator(...)
if decorator_args and callable(decorator_args[0]) and not decorator_kwargs:
return decorator_args[0]
return wrapper
|