Remove all deprecations

This commit is contained in:
Dave Halter
2020-07-20 02:02:41 +02:00
parent ae2becb531
commit abb2250bf5
2 changed files with 1 additions and 138 deletions

View File

@@ -8,7 +8,6 @@ debug messages to stdout, simply call :func:`set_debug_function` without
arguments. arguments.
""" """
import sys import sys
import warnings
from pathlib import Path from pathlib import Path
import parso import parso
@@ -90,23 +89,16 @@ class Script(object):
:param code: The source code of the current file, separated by newlines. :param code: The source code of the current file, separated by newlines.
:type code: str :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 :param path: The path of the file in the file system, or ``''`` if
it hasn't been saved yet. it hasn't been saved yet.
:type path: str or pathlib.Path or None :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 <environments>` :param Environment environment: Provide a predefined :ref:`Environment <environments>`
to work with a specific Python version or virtualenv. to work with a specific Python version or virtualenv.
:param Project project: Provide a :class:`.Project` to make sure finding :param Project project: Provide a :class:`.Project` to make sure finding
references works well, because the right folder is searched. There are references works well, because the right folder is searched. There are
also ways to modify the sys path and other things. also ways to modify the sys path and other things.
""" """
def __init__(self, code=None, line=None, column=None, path=None, def __init__(self, code=None, *, path=None, environment=None, project=None):
sys_path=None, environment=None, project=None, source=None):
self._orig_path = path self._orig_path = path
# An empty path (also empty string) should always result in no path. # An empty path (also empty string) should always result in no path.
if isinstance(path, str): if isinstance(path, str):
@@ -114,27 +106,6 @@ class Script(object):
self.path = path.absolute() if path else None 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: if code is None:
# TODO add a better warning than the traceback! # TODO add a better warning than the traceback!
with open(path, 'rb') as f: with open(path, 'rb') as f:
@@ -143,15 +114,6 @@ class Script(object):
if project is None: if project is None:
# Load the Python grammar of the current interpreter. # Load the Python grammar of the current interpreter.
project = get_default_project(None if self.path is None else self.path.parent) 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( self._inference_state = InferenceState(
project, environment=environment, script_path=self.path project, environment=environment, script_path=self.path
@@ -168,7 +130,6 @@ class Script(object):
debug.speed('parsed') debug.speed('parsed')
self._code_lines = parso.split_lines(code, keepends=True) self._code_lines = parso.split_lines(code, keepends=True)
self._code = code self._code = code
self._pos = line, column
cache.clear_time_caches() cache.clear_time_caches()
debug.reset_time() debug.reset_time()
@@ -250,14 +211,6 @@ class Script(object):
) )
return completion.complete() 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 @validate_line_column
def infer(self, line=None, column=None, *, only_stubs=False, prefer_stubs=False): def infer(self, line=None, column=None, *, only_stubs=False, prefer_stubs=False):
""" """
@@ -297,25 +250,6 @@ class Script(object):
# the API. # the API.
return helpers.sorted_definitions(set(defs)) 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 @validate_line_column
def goto(self, line=None, column=None, *, follow_imports=False, follow_builtin_imports=False, def goto(self, line=None, column=None, *, follow_imports=False, follow_builtin_imports=False,
only_stubs=False, prefer_stubs=False): only_stubs=False, prefer_stubs=False):
@@ -446,14 +380,6 @@ class Script(object):
return [classes.Name(self._inference_state, name)] return [classes.Name(self._inference_state, name)]
return [] 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 @validate_line_column
def get_references(self, line=None, column=None, **kwargs): def get_references(self, line=None, column=None, **kwargs):
""" """
@@ -484,14 +410,6 @@ class Script(object):
return helpers.sorted_definitions(definitions) return helpers.sorted_definitions(definitions)
return _references(**kwargs) 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 @validate_line_column
def get_signatures(self, line=None, column=None): 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): def preload_module(*modules):
""" """
Preloading modules tells Jedi to load a module now, instead of lazy parsing Preloading modules tells Jedi to load a module now, instead of lazy parsing

View File

@@ -14,7 +14,6 @@ These classes are the much biggest part of the API, because they contain
the interesting information about all operations. the interesting information about all operations.
""" """
import re import re
import warnings
from typing import Optional from typing import Optional
from parso.python.tree import search_ancestor 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) return [self if n == self._name else Name(self._inference_state, n)
for n in names] 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') @debug.increase_indent_cm('infer on name')
def infer(self, *, only_stubs=False, prefer_stubs=False): 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) return [self if n == self._name else Name(self._inference_state, n)
for n in resulting_names] 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): def parent(self):
""" """
Returns the parent scope of this identifier. Returns the parent scope of this identifier.
@@ -763,15 +732,6 @@ class Name(BaseName):
def __init__(self, inference_state, definition): def __init__(self, inference_state, definition):
super().__init__(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 @memoize_method
def defined_names(self): def defined_names(self):
""" """