@staticmethod
def authorized_for_method(method, user_creds) ->bool:
    """
        Checks if oauth2 user_creds dict has sufficient scopes for a method call.
        
        .. note:: 
        
            This method doesn't check whether creds are refreshed or valid.

        e.g.

            **Correct:**

            .. code-block:: python3
        
                is_authorized = authorized_for_method(youtube.video.list)
            
            **NOT correct:**

            .. code-block:: python3

                is_authorized = authorized_for_method(youtube.video.list())

            **AND NOT correct:**

            .. code-block:: python3

                is_authorized = authorized_for_method(youtube.videos)


        Arguments:

            method (aiogoogle.resource.Method): Method to be checked

            user_credentials (aiogoogle.auth.creds.UserCreds): User Credentials with scopes item

        Returns:

            bool:

        """
    method_scopes = method['scopes'] or []
    if not method_scopes:
        return True
    if not isinstance(user_creds['scopes'], (list, set, tuple)):
        raise TypeError('Scopes should be an instance of list, set or tuple')
    if set(method_scopes).issubset(set(user_creds['scopes'])):
        return True
    else:
        return False
