def requires_dependencies(requirements: Union[str, List[str]]) -> Callable[[Callable[_P, _R]], Callable[_P, _R]]:
    """Decorator variant of `require_dependencies`.
    Perform a runtime check of the dependency versions, using the exact same syntax used by pip.
    The installed module version comes from the *site-packages* dir via *importlib.metadata*.

    Args:
        requirements: pip style definition, e.g.,  "tokenizers==0.9.4", "tqdm>=4.27", "numpy"

    Example:
    ```python
    @requires_dependencies("datasets>1.17.0")
    def from_datasets(self, ...):
        ...
    ```
    """

    def decorator(func: Callable[_P, _R]) -> Callable[_P, _R]:
        @functools.wraps(func)
        def wrapper(*args: _P.args, **kwargs: _P.kwargs) -> _R:
            require_dependencies(requirements, func.__name__)
            return func(*args, **kwargs)

        return wrapper

    return decorator
Decorator variant of `require_dependencies`.
    Perform a runtime check of the dependency versions, using the exact same syntax used by pip.
    The installed module version comes from the *site-packages* dir via *importlib.metadata*.

    Args:
        requirements: pip style definition, e.g.,  "tokenizers==0.9.4", "tqdm>=4.27", "numpy"

    Example:
    ```python
    @requires_dependencies("datasets>1.17.0")
    def from_datasets(self, ...):
        ...
    ```
    
argilla-v1/src/argilla_v1/utils/dependency.py