I'm not sure if has_namespace is the best name for this typeguard, so Suggestions are welcome.
Example implementation that builds #17:
# _namespace.py
from typing_extensions import TypeIs
# --snip--
def has_namespace(obj: object, /) -> TypeIs[HasNamespace[Any]]:
    return hasattr(obj, "__array_namespace__")