private void HandleModuleImportStar(PythonVariableModule variableModule, bool isImplicitPackage) { if (variableModule.Module == Module) { // from self import * won't define any new members return; } // If __all__ is present, take it, otherwise declare all members from the module that do not begin with an underscore. var memberNames = isImplicitPackage ? variableModule.GetMemberNames() : variableModule.Analysis.StarImportMemberNames ?? variableModule.GetMemberNames().Where(s => !s.StartsWithOrdinal("_")); foreach (var memberName in memberNames) { var member = variableModule.GetMember(memberName); if (member == null) { Log?.Log(TraceEventType.Verbose, $"Undefined import: {variableModule.Name}, {memberName}"); } else if (member.MemberType == PythonMemberType.Unknown) { Log?.Log(TraceEventType.Verbose, $"Unknown import: {variableModule.Name}, {memberName}"); } member = member ?? Eval.UnknownType; if (member is IPythonModule m) { ModuleResolution.GetOrLoadModule(m.Name); } var variable = variableModule.Analysis?.GlobalScope?.Variables[memberName]; Eval.DeclareVariable(memberName, variable ?? member, VariableSource.Import); } }
private void HandleModuleImportStar(PythonVariableModule variableModule) { if (variableModule.Module == Module) { // from self import * won't define any new members return; } foreach (var memberName in variableModule.GetMemberNames()) { var member = variableModule.GetMember(memberName); if (member == null) { Log?.Log(TraceEventType.Verbose, $"Undefined import: {variableModule.Name}, {memberName}"); } else if (member.MemberType == PythonMemberType.Unknown) { Log?.Log(TraceEventType.Verbose, $"Unknown import: {variableModule.Name}, {memberName}"); } member = member ?? Eval.UnknownType; if (member is IPythonModule m) { ModuleResolution.GetOrLoadModule(m.Name); } Eval.DeclareVariable(memberName, member, VariableSource.Import, variableModule.Location); } }
private void HandleModuleImportStar(PythonVariableModule variableModule, IImportSearchResult imports, int importPosition, NameExpression nameExpression) { if (variableModule.Module == Module) { // from self import * won't define any new members return; } // If __all__ is present, take it, otherwise declare all members from the module that do not begin with an underscore. var memberNames = imports is ImplicitPackageImport ? variableModule.GetMemberNames() : variableModule.Analysis.StarImportMemberNames ?? variableModule.GetMemberNames().Where(s => !s.StartsWithOrdinal("_")); foreach (var memberName in memberNames) { DeclareVariable(variableModule, memberName, imports, memberName, importPosition, nameExpression); } }
public IEnumerable <string> GetMemberNames(PythonVariableModule variableModule) => variableModule.Analysis.StarImportMemberNames ?? variableModule.GetMemberNames().Where(s => !s.StartsWithOrdinal("_"));