public override void BuildChildNodes(ITreeBuilder treeBuilder, object dataObject) { PackagesNode packages = dataObject as PackagesNode; foreach (ProjectFile projectFile in packages.Project.Files) { if (projectFile.BuildAction == BuildAction.Compile) { if (Path.GetExtension(projectFile.Name).ToLower() == ".py") { var name = PythonHelper.ModuleFromFilename(projectFile.Name); // It's only a module unless there is a "." in the name // or its the __init__.py inside the package folder. if (name.Contains(".") || Path.GetFileName(projectFile.Name).ToLower() == "__init__.py") { name = PythonHelper.PackageFromFilename(projectFile.Name); treeBuilder.AddChild(new PackageNode() { Name = name, ProjectFile = projectFile, }); } } } } }
public void Build() { if (Module == null) { return; } // fake class containing modules funcs var module = new PackageDomType() { Name = PythonHelper.PackageFromFilename(FileName), ClassType = ClassType.Unknown, Location = new DomLocation(0, 0), BodyRegion = Module.Region, }; m_AllWrapped.Add(module); Add(module); // module functions foreach (IMethod method in BuildFunctions(Module.Functions)) { module.Add(method); } // module attributes foreach (IField field in BuildAttributes(Module.Attributes)) { module.Add(field); } // module classes foreach (IType type in BuildClasses(Module.Classes)) { module.Add(type); } }