def python_object_name(item, module=True):
    """takes a python object and returns its import path.
    :param item: the source object
    :param module: bool - defaults to ``True`` - whether the object name should be prefixed by its module name.
    """
    if not isinstance(item, type):
        return python_object_name(type(item))

    return br'.'.join(filter(is_valid_python_name, (module and item.__module__, item.__name__)))