def __init__(self, base_module, python_version, pythonpath=(), imports_map=None, use_typeshed=True, modules=None): self._modules = modules or self._base_modules(python_version) if self._modules["__builtin__"].needs_unpickling(): self._unpickle_module(self._modules["__builtin__"]) if self._modules["typing"].needs_unpickling(): self._unpickle_module(self._modules["typing"]) self.builtins = self._modules["__builtin__"].ast self.typing = self._modules["typing"].ast self.base_module = base_module self.python_version = utils.normalize_version(python_version) self.pythonpath = pythonpath self.imports_map = imports_map self.use_typeshed = use_typeshed self._concatenated = None self._import_name_cache = {} # performance cache self._aliases = {} self._prefixes = set() # Paranoid verification that pytype.main properly checked the flags: if imports_map is not None: assert pythonpath == [""], pythonpath
def parse_pyi(src: str, filename: Optional[str], module_name: str, python_version: VersionType, platform: Optional[str] = None) -> pytd.TypeDeclUnit: """Parse a pyi string.""" filename = filename or "" feature_version = _feature_version(python_version) python_version = utils.normalize_version(python_version) root = _parse(src, feature_version, filename) gen_pytd = GeneratePytdVisitor(src, filename, module_name, python_version, platform) root = gen_pytd.visit(root) root = post_process_ast(root, src, module_name) return root
def parse_pyi_debug( src: str, filename: str, module_name: str, python_version: VersionType, platform: Optional[str] = None ) -> Tuple[pytd.TypeDeclUnit, GeneratePytdVisitor]: """Debug version of parse_pyi.""" feature_version = _feature_version(python_version) python_version = utils.normalize_version(python_version) root = _parse(src, feature_version, filename) print(debug.dump(root, ast3, include_attributes=False)) gen_pytd = GeneratePytdVisitor(src, filename, module_name, python_version, platform) root = gen_pytd.visit(root) print("---transformed parse tree--------------------") print(root) root = post_process_ast(root, src, module_name) print("---post-processed---------------------") print(root) print("------------------------") print(gen_pytd.defs.type_map) print(gen_pytd.defs.module_path_map) return root, gen_pytd
def __init__(self, base_module, python_version, pythonpath=(), imports_map=None, use_typeshed=True, modules=None, open_function=open): self.python_version = utils.normalize_version(python_version) self._modules = _ModuleMap(self.python_version, modules) self.builtins = self._modules["builtins"].ast self.typing = self._modules["typing"].ast self.base_module = base_module self._path_finder = _PathFinder(imports_map, pythonpath) self._builtin_loader = _BuiltinLoader(self.python_version) self._resolver = _Resolver(self.builtins) self.use_typeshed = use_typeshed self.open_function = open_function self._import_name_cache = {} # performance cache self._aliases = {} self._prefixes = set() # Paranoid verification that pytype.main properly checked the flags: if imports_map is not None: assert pythonpath == [""], pythonpath
def test_normalize_version_tuple(self): self.assertEqual(utils.normalize_version((2, 7)), (2, 7))
def test_normalize_version_int(self): self.assertEqual(utils.normalize_version(2), (2, 7))
def testNormalizeVersionTuple(self): self.assertEqual(utils.normalize_version((2, 7)), (2, 7))
def testNormalizeVersionInt(self): self.assertEqual(utils.normalize_version(2), (2, 7))