Beispiel #1
0
        /// <summary>
        /// Returns true if a module has been imported.
        /// </summary>
        /// <param name="importFrom">
        /// The entry of the module doing the import. If null, the module name
        /// is resolved as an absolute name.
        /// </param>
        /// <param name="relativeModuleName">
        /// The absolute or relative name of the module. If a relative name is
        /// passed here, <paramref name="importFrom"/> must be provided.
        /// </param>
        /// <param name="absoluteImports">
        /// True if Python 2.6/3.x style imports should be used.
        /// </param>
        /// <returns>
        /// True if the module was imported during analysis; otherwise, false.
        /// </returns>
        public bool IsModuleResolved(IPythonProjectEntry importFrom, string relativeModuleName, bool absoluteImports)
        {
            var unresolved = importFrom.GetModuleInfo()?.GetAllUnresolvedModules();

            if (unresolved == null || unresolved.Count == 0)
            {
                return(true);
            }
            var names = ModuleResolver.ResolvePotentialModuleNames(importFrom, relativeModuleName, absoluteImports);

            return(names.All(n => !unresolved.Contains(n)));
        }