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));
        }