public void Init() { string python = "from math import *"; DefaultProjectContent projectContent = new DefaultProjectContent(); PythonParser parser = new PythonParser(); compilationUnit = parser.Parse(projectContent, @"C:\test.py", python); import = compilationUnit.UsingScope.Usings[0] as PythonFromImport; }
public override bool Walk(FromImportStatement node) { var container = containers.Peek(); if (!container.SupportsFromStatements) { return(base.Walk(node)); } var fromImport = new PythonFromImport() { ModuleName = node.Root.MakeString(), Region = GetDomRegion(node) }; // even if '*' is present, we may get an alias for a member // (using 'as') bool importAll = node.Names.Where(name => name == "*").Count() > 0; var names = new List <PythonNameReference> (); for (int i = 0; i < node.Names.Count; i++) { var name = node.Names [i]; var asname = node.AsNames == null ? null : node.AsNames [i]; // Discard unused data if (importAll && (String.IsNullOrEmpty(asname) || name == "*")) { continue; } var nameRef = new PythonNameReference() { Name = node.Names [i], AsName = node.AsNames == null ? null : node.AsNames [i] }; names.Add(nameRef); } fromImport.Names = names; fromImport.ImportAll = importAll; container.FromImports.Add(fromImport); return(base.Walk(node)); }