'Dot-separated path of this object.
It is in the form of ``<module>[.<submodule>[...]][.<object>]``.
It is useful when you want to look up Python manual of the
object at hand.
Example:
>>> from jedi import Script
>>> source = \'\'\'
... import os
... os.path.join\'\'\'
>>> script = Script(source, 3, len(\'os.path.join\'), \'example.py\')
>>> print(script.goto_definitions()[0].full_name)
os.path.join
Notice that it returns ``\'os.path.join\'`` instead of (for example)
``\'posixpath.join\'``. This is not correct, since the modules name would
be ``<module \'posixpath\' ...>```. However most users find the latter
more practical.'

@property
def full_name(self):

    path = list(self._path())
    if (not path):
        return None
    with common.ignored(KeyError):
        path[0] = self._mapping[path[0]]
    for (key, repl) in self._tuple_mapping.items():
        if (tuple(path[:len(key)]) == key):
            path = ([repl] + path[len(key):])
    return '.'.join((path if path[0] else path[1:]))
