from typing import Any
from typing import List


def is_typing_list(data_type: Any) -> bool:
    """
    Return `True` if data_type is `typing.List` or a subscription of it.

    Examples
    --------
    ```python3
    assert is_typing_list(typing.List)
    assert is_typing_list(typing.List[int])
    assert not is_typing_list(int)
    ```

    """
    return data_type is List or (
        hasattr(data_type, '__origin__') and
        hasattr(data_type, '__args__') and
        data_type.__origin__ in  # type: ignore
        # This has changed in newer Python implementations to `List`,
        # `list` is checked for compatibility.
        (list, List)
    )