docstr: 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.
docstr_tok: ["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","."]
code: def full_name(self):
      """
      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.
      """
      path = list(self._path())
      # TODO add further checks, the mapping should only occur on stdlib.
      if not path:
          return None  # for keywords the path is empty
  
      with 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:])
  
imports: import re
  from parso.python.tree import search_ancestor
  from jedi import settings
  from jedi.evaluate.utils import ignored, unite
  from jedi.cache import memoize_method
  from jedi.evaluate import imports
  from jedi.evaluate import compiled
  from jedi.evaluate.imports import ImportName
  from jedi.evaluate.context import instance
  from jedi.evaluate.context import ClassContext, FunctionExecutionContext
  from jedi.api.keywords import KeywordName
label_desc: Use image node_id 11 for calling the BaseDefinition obj's underlying member method code with example usage: obj.full_name() and returns: str, None