diff --git a/jedi/api/__init__.py b/jedi/api/__init__.py index 2be38b8f..3a9d5a68 100644 --- a/jedi/api/__init__.py +++ b/jedi/api/__init__.py @@ -8,7 +8,6 @@ debug messages to stdout, simply call :func:`set_debug_function` without arguments. """ import sys -import warnings from pathlib import Path import parso @@ -90,23 +89,16 @@ class Script(object): :param code: The source code of the current file, separated by newlines. :type code: str - :param line: Deprecated, please use it directly on e.g. ``.complete`` - :type line: int - :param column: Deprecated, please use it directly on e.g. ``.complete`` - :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 pathlib.Path or None - :param sys_path: Deprecated, use the project parameter. - :type sys_path: typing.List[str] :param Environment environment: Provide a predefined :ref:`Environment ` to work with a specific Python version or virtualenv. :param Project project: Provide a :class:`.Project` to make sure finding references works well, because the right folder is searched. There are also ways to modify the sys path and other things. """ - def __init__(self, code=None, line=None, column=None, path=None, - sys_path=None, environment=None, project=None, source=None): + def __init__(self, code=None, *, path=None, environment=None, project=None): self._orig_path = path # An empty path (also empty string) should always result in no path. if isinstance(path, str): @@ -114,27 +106,6 @@ class Script(object): self.path = path.absolute() if path else None - if line is not None: - warnings.warn( - "Providing the line is now done in the functions themselves " - "like `Script(...).complete(line, column)`", - DeprecationWarning, - stacklevel=2 - ) - if column is not None: - warnings.warn( - "Providing the column is now done in the functions themselves " - "like `Script(...).complete(line, column)`", - DeprecationWarning, - stacklevel=2 - ) - if source is not None: - code = source - warnings.warn( - "Use the code keyword argument instead.", - DeprecationWarning, - stacklevel=2 - ) if code is None: # TODO add a better warning than the traceback! with open(path, 'rb') as f: @@ -143,15 +114,6 @@ class Script(object): if project is None: # Load the Python grammar of the current interpreter. project = get_default_project(None if self.path is None else self.path.parent) - # TODO deprecate and remove sys_path from the Script API. - if sys_path is not None: - project._sys_path = sys_path - warnings.warn( - "Deprecated since version 0.17.0. Use the project API instead, " - "which means Script(project=Project(dir, sys_path=sys_path)) instead.", - DeprecationWarning, - stacklevel=2 - ) self._inference_state = InferenceState( project, environment=environment, script_path=self.path @@ -168,7 +130,6 @@ class Script(object): debug.speed('parsed') self._code_lines = parso.split_lines(code, keepends=True) self._code = code - self._pos = line, column cache.clear_time_caches() debug.reset_time() @@ -250,14 +211,6 @@ class Script(object): ) return completion.complete() - def completions(self, fuzzy=False): - warnings.warn( - "Deprecated since version 0.16.0. Use Script(...).complete instead.", - DeprecationWarning, - stacklevel=2 - ) - return self.complete(*self._pos, fuzzy=fuzzy) - @validate_line_column def infer(self, line=None, column=None, *, only_stubs=False, prefer_stubs=False): """ @@ -297,25 +250,6 @@ class Script(object): # the API. return helpers.sorted_definitions(set(defs)) - def goto_definitions(self, **kwargs): - warnings.warn( - "Deprecated since version 0.16.0. Use Script(...).infer instead.", - DeprecationWarning, - stacklevel=2 - ) - return self.infer(*self._pos, **kwargs) - - def goto_assignments(self, follow_imports=False, follow_builtin_imports=False, **kwargs): - warnings.warn( - "Deprecated since version 0.16.0. Use Script(...).goto instead.", - DeprecationWarning, - stacklevel=2 - ) - return self.goto(*self._pos, - follow_imports=follow_imports, - follow_builtin_imports=follow_builtin_imports, - **kwargs) - @validate_line_column def goto(self, line=None, column=None, *, follow_imports=False, follow_builtin_imports=False, only_stubs=False, prefer_stubs=False): @@ -446,14 +380,6 @@ class Script(object): return [classes.Name(self._inference_state, name)] return [] - def usages(self, **kwargs): - warnings.warn( - "Deprecated since version 0.16.0. Use Script(...).get_references instead.", - DeprecationWarning, - stacklevel=2 - ) - return self.get_references(*self._pos, **kwargs) - @validate_line_column def get_references(self, line=None, column=None, **kwargs): """ @@ -484,14 +410,6 @@ class Script(object): return helpers.sorted_definitions(definitions) return _references(**kwargs) - def call_signatures(self): - warnings.warn( - "Deprecated since version 0.16.0. Use Script(...).get_signatures instead.", - DeprecationWarning, - stacklevel=2 - ) - return self.get_signatures(*self._pos) - @validate_line_column def get_signatures(self, line=None, column=None): """ @@ -817,21 +735,6 @@ class Interpreter(Script): ) -def names(source=None, path=None, all_scopes=False, - definitions=True, references=False, environment=None): - warnings.warn( - "Deprecated since version 0.16.0. Use Script(...).get_names instead.", - DeprecationWarning, - stacklevel=2 - ) - - return Script(source, path=path).get_names( - all_scopes=all_scopes, - definitions=definitions, - references=references, - ) - - def preload_module(*modules): """ Preloading modules tells Jedi to load a module now, instead of lazy parsing diff --git a/jedi/api/classes.py b/jedi/api/classes.py index 679d1e59..cadff7b1 100644 --- a/jedi/api/classes.py +++ b/jedi/api/classes.py @@ -14,7 +14,6 @@ These classes are the much biggest part of the API, because they contain the interesting information about all operations. """ import re -import warnings from typing import Optional from parso.python.tree import search_ancestor @@ -453,14 +452,6 @@ class BaseName(object): return [self if n == self._name else Name(self._inference_state, n) for n in names] - def goto_assignments(self, **kwargs): - warnings.warn( - "Deprecated since version 0.16.0. Use .goto.", - DeprecationWarning, - stacklevel=2 - ) - return self.goto(**kwargs) - @debug.increase_indent_cm('infer on name') def infer(self, *, only_stubs=False, prefer_stubs=False): """ @@ -497,28 +488,6 @@ class BaseName(object): return [self if n == self._name else Name(self._inference_state, n) for n in resulting_names] - @property - @memoize_method - def params(self): - warnings.warn( - "Deprecated since version 0.16.0. Use get_signatures()[...].params", - DeprecationWarning, - stacklevel=2 - ) - # Only return the first one. There might be multiple one, especially - # with overloading. - for signature in self._get_signatures(): - return [ - Name(self._inference_state, n) - for n in signature.get_param_names(resolve_stars=True) - ] - - if self.type == 'function' or self.type == 'class': - # Fallback, if no signatures were defined (which is probably by - # itself a bug). - return [] - raise AttributeError('There are no params defined on this.') - def parent(self): """ Returns the parent scope of this identifier. @@ -763,15 +732,6 @@ class Name(BaseName): def __init__(self, inference_state, definition): super().__init__(inference_state, definition) - @property - def desc_with_module(self): - warnings.warn( - "Deprecated since version 0.17.0. No replacement for now, maybe .full_name helps", - DeprecationWarning, - stacklevel=2 - ) - return "%s:%s" % (self.module_name, self.description) - @memoize_method def defined_names(self): """