summaryrefslogtreecommitdiff
path: root/sphinx/pycode/__init__.py
diff options
context:
space:
mode:
Diffstat (limited to 'sphinx/pycode/__init__.py')
-rw-r--r--sphinx/pycode/__init__.py41
1 files changed, 13 insertions, 28 deletions
diff --git a/sphinx/pycode/__init__.py b/sphinx/pycode/__init__.py
index ab0dfdbf8..c55a4fe4a 100644
--- a/sphinx/pycode/__init__.py
+++ b/sphinx/pycode/__init__.py
@@ -19,14 +19,14 @@ from os import path
from typing import IO, Any, Dict, List, Optional, Tuple
from zipfile import ZipFile
-from sphinx.deprecation import RemovedInSphinx40Warning, RemovedInSphinx50Warning
+from sphinx.deprecation import RemovedInSphinx50Warning
from sphinx.errors import PycodeError
from sphinx.pycode.parser import Parser
class ModuleAnalyzer:
# cache for analyzer objects -- caches both by module and file name
- cache = {} # type: Dict[Tuple[str, str], Any]
+ cache: Dict[Tuple[str, str], Any] = {}
@staticmethod
def get_module_source(modname: str) -> Tuple[Optional[str], Optional[str]]:
@@ -79,7 +79,7 @@ class ModuleAnalyzer:
@classmethod
def for_string(cls, string: str, modname: str, srcname: str = '<string>'
) -> "ModuleAnalyzer":
- return cls(StringIO(string), modname, srcname, decoded=True)
+ return cls(StringIO(string), modname, srcname)
@classmethod
def for_file(cls, filename: str, modname: str) -> "ModuleAnalyzer":
@@ -87,7 +87,7 @@ class ModuleAnalyzer:
return cls.cache['file', filename]
try:
with tokenize.open(filename) as f:
- obj = cls(f, modname, filename, decoded=True)
+ obj = cls(f, modname, filename)
cls.cache['file', filename] = obj
except Exception as err:
if '.egg' + path.sep in filename:
@@ -127,29 +127,20 @@ class ModuleAnalyzer:
cls.cache['module', modname] = obj
return obj
- def __init__(self, source: IO, modname: str, srcname: str, decoded: bool = False) -> None:
+ def __init__(self, source: IO, modname: str, srcname: str) -> None:
self.modname = modname # name of the module
self.srcname = srcname # name of the source file
# cache the source code as well
- pos = source.tell()
- if not decoded:
- warnings.warn('decode option for ModuleAnalyzer is deprecated.',
- RemovedInSphinx40Warning, stacklevel=2)
- self._encoding, _ = tokenize.detect_encoding(source.readline)
- source.seek(pos)
- self.code = source.read().decode(self._encoding)
- else:
- self._encoding = None
- self.code = source.read()
+ self.code = source.read()
# will be filled by analyze()
- self.annotations = None # type: Dict[Tuple[str, str], str]
- self.attr_docs = None # type: Dict[Tuple[str, str], List[str]]
- self.finals = None # type: List[str]
- self.overloads = None # type: Dict[str, List[Signature]]
- self.tagorder = None # type: Dict[str, int]
- self.tags = None # type: Dict[str, Tuple[str, int, int]]
+ self.annotations: Dict[Tuple[str, str], str] = None
+ self.attr_docs: Dict[Tuple[str, str], List[str]] = None
+ self.finals: List[str] = None
+ self.overloads: Dict[str, List[Signature]] = None
+ self.tagorder: Dict[str, int] = None
+ self.tags: Dict[str, Tuple[str, int, int]] = None
self._analyzed = False
def parse(self) -> None:
@@ -164,7 +155,7 @@ class ModuleAnalyzer:
return None
try:
- parser = Parser(self.code, self._encoding)
+ parser = Parser(self.code)
parser.parse()
self.attr_docs = OrderedDict()
@@ -192,9 +183,3 @@ class ModuleAnalyzer:
"""Find class, function and method definitions and their location."""
self.analyze()
return self.tags
-
- @property
- def encoding(self) -> str:
- warnings.warn('ModuleAnalyzer.encoding is deprecated.',
- RemovedInSphinx40Warning, stacklevel=2)
- return self._encoding