class_docstr: A Script is the base for completions, goto or whatever you want to do with
  |jedi|.
  
  You can either use the ``source`` parameter or ``path`` to read a file.
  Usually you're going to want to use both of them (in an editor).
  
  The script might be analyzed in a different ``sys.path`` than |jedi|:
  
  - if `sys_path` parameter is not ``None``, it will be used as ``sys.path``
    for the script;
  
  - if `sys_path` parameter is ``None`` and ``VIRTUAL_ENV`` environment
    variable is defined, ``sys.path`` for the specified environment will be
    guessed (see :func:`jedi.evaluate.sys_path.get_venv_path`) and used for
    the script;
  
  - otherwise ``sys.path`` will match that of |jedi|.
  
  :param source: The source code of the current file, separated by newlines.
  :type source: str
  :param line: The line to perform actions on (starting with 1).
  :type line: int
  :param column: The column of the cursor (starting with 0).
  :type column: int
  :param path: The path of the file in the file system, or ``''`` if
      it hasn't been saved yet.
  :type path: str or None
  :param encoding: The encoding of ``source``, if it is not a
      ``unicode`` object (default ``'utf-8'``).
  :type encoding: str
  :param sys_path: ``sys.path`` to use during analysis of the script
  :type sys_path: list
  :param environment: TODO
  :type sys_path: Environment
class_docstr_tok: ["A","Script","is","the","base","for","completions",",","goto","or","whatever","you","want","to","do","with","|jedi|",".","You","can","either","use","the","``","source","``","parameter","or","``","path","``","to","read","a","file",".","Usually","you","'re","going","to","want","to","use","both","of","them","(","in","an","editor",")",".","The","script","might","be","analyzed","in","a","different","``","sys.path","``","than","|jedi|",":","-","if","`","sys_path","`","parameter","is","not","``","None","``",",","it","will","be","used","as","``","sys.path","``","for","the","script",";","-","if","`","sys_path","`","parameter","is","``","None","``","and","``","VIRTUAL_ENV","``","environment","variable","is","defined",",","``","sys.path","``","for","the","specified","environment","will","be","guessed","(","see",":","func",":","`","jedi.evaluate.sys_path.get_venv_path","`",")","and","used","for","the","script",";","-","otherwise","``","sys.path","``","will","match","that","of","|jedi|",".",":","param","source",":","The","source","code","of","the","current","file",",","separated","by","newlines",".",":","type","source",":","str",":","param","line",":","The","line","to","perform","actions","on","(","starting","with","1",")",".",":","type","line",":","int",":","param","column",":","The","column","of","the","cursor","(","starting","with","0",")",".",":","type","column",":","int",":","param","path",":","The","path","of","the","file","in","the","file","system",",","or","``","``","``","if","it","has","n't","been","saved","yet",".",":","type","path",":","str","or","None",":","param","encoding",":","The","encoding","of","``","source","``",",","if","it","is","not","a","``","unicode","``","object","(","default","``","'utf-8","'","``",")",".",":","type","encoding",":","str",":","param","sys_path",":","``","sys.path","``","to","use","during","analysis","of","the","script",":","type","sys_path",":","list",":","param","environment",":","TODO",":","type","sys_path",":","Environment"]
docstr: Return :class:`classes.Definition` objects, which contain all
  names that point to the definition of the name under the cursor. This
  is very useful for refactoring (renaming), or to show all usages of a
  variable.
  
  .. todo:: Implement additional_module_paths
  
  :param additional_module_paths: Deprecated, never ever worked.
  :param include_builtins: Default True, checks if a usage is a builtin
      (e.g. ``sys``) and in that case does not return it.
  :rtype: list of :class:`classes.Definition`
code: def usages(self, additional_module_paths=(), **kwargs):
      """
      Return :class:`classes.Definition` objects, which contain all
      names that point to the definition of the name under the cursor. This
      is very useful for refactoring (renaming), or to show all usages of a
      variable.
  
      .. todo:: Implement additional_module_paths
  
      :param additional_module_paths: Deprecated, never ever worked.
      :param include_builtins: Default True, checks if a usage is a builtin
          (e.g. ``sys``) and in that case does not return it.
      :rtype: list of :class:`classes.Definition`
      """
      if additional_module_paths:
          warnings.warn(
              "Deprecated since version 0.12.0. This never even worked, just ignore it.",
              DeprecationWarning,
              stacklevel=2,
          )
  
      def _usages(include_builtins=True):
          tree_name = self._module_node.get_name_of_position(self._pos)
          if tree_name is None:
              # Must be syntax
              return []
  
          names = usages.usages(self._get_module(), tree_name)
  
          definitions = [
              classes.Definition(self._evaluator, n) for n in names
          ]
          if not include_builtins:
              definitions = [
                  d for d in definitions if not d.in_builtin_module()
              ]
          return helpers.sorted_definitions(definitions)
  
      return _usages(**kwargs)
  
imports: import os
  import sys
  import warnings
  import parso
  from parso.python import tree
  from jedi._compatibility import force_unicode, is_py3
  from jedi.parser_utils import get_executable_nodes
  from jedi import debug
  from jedi import settings
  from jedi import cache
  from jedi.api import classes
  from jedi.api import interpreter
  from jedi.api import helpers
  from jedi.api.completion import Completion
  from jedi.api.environment import InterpreterEnvironment
  from jedi.api.project import get_default_project
  from jedi.evaluate import Evaluator
  from jedi.evaluate import imports
  from jedi.evaluate import usages
  from jedi.evaluate.arguments import try_iter_content
  from jedi.evaluate.helpers import get_module_names, evaluate_call_of_leaf
  from jedi.evaluate.sys_path import dotted_path_in_sys_path
  from jedi.evaluate.filters import TreeNameDefinition, ParamName
  from jedi.evaluate.syntax_tree import tree_name_to_contexts
  from jedi.evaluate.context import ModuleContext
  from jedi.evaluate.context.iterable import unpack_tuple_to_dict
label_desc: Use image node_id 7 for calling the Script obj's underlying member method code with example usage: obj.usages(additional_module_paths) and returns: _usages, helpers, list