def get_fully_qualified_classname(cls=None, obj=None):
    """
    Returns `fully-qualified-name` of the class represented by **cls** or **obj**

    :param cls:
    :param obj:
    :return:
    """
    if obj:
        module = obj.__class__.__module__
        if module is None or module == str.__class__.__module__:
            return obj.__class__.__name__
        return module + '.' + obj.__class__.__name__
    elif cls:
        module = cls.__module__
        if module is None or module == str.__class__.__module__:
            return cls.__name__
        return module + '.' + cls.__name__