public AstModuleResolution(AstModuleCache moduleCache, InterpreterConfiguration configuration, AnalysisLogWriter log)
 {
     _moduleCache   = moduleCache;
     _configuration = configuration;
     _log           = log;
     _requireInitPy = ModulePath.PythonVersionRequiresInitPyFiles(_configuration.Version);
 }
Esempio n. 2
0
        private AstPythonInterpreterFactory(
            InterpreterConfiguration config,
            InterpreterFactoryCreationOptions options,
            bool useDefaultDatabase
            )
        {
            Configuration   = config ?? throw new ArgumentNullException(nameof(config));
            CreationOptions = options ?? new InterpreterFactoryCreationOptions();
            try {
                LanguageVersion = Configuration.Version.ToLanguageVersion();
            } catch (InvalidOperationException ex) {
                throw new ArgumentException(ex.Message, ex);
            }

            _useDefaultDatabase = useDefaultDatabase;
            if (!string.IsNullOrEmpty(CreationOptions.DatabasePath) && CreationOptions.TraceLevel != TraceLevel.Off)
            {
                _log = new AnalysisLogWriter(Path.Combine(CreationOptions.DatabasePath, "AnalysisLog.txt"), false, LogToConsole, LogCacheSize);
                _log.Rotate(LogRotationSize);
                _log.MinimumLevel = CreationOptions.TraceLevel;
            }

            ModuleCache      = new AstModuleCache(config, CreationOptions.DatabasePath, useDefaultDatabase, !CreationOptions.UseExistingCache, _log);
            ModuleResolution = new AstModuleResolution(ModuleCache, config, _log);
        }
Esempio n. 3
0
 public AstModuleResolution(IPythonInterpreter interpreter, ConcurrentDictionary <string, IPythonModule> modules, AstModuleCache astModuleCache, InterpreterConfiguration configuration, AnalysisLogWriter log)
 {
     _interpreter    = interpreter;
     _modules        = modules;
     _astModuleCache = astModuleCache;
     _configuration  = configuration;
     _log            = log;
     _requireInitPy  = ModulePath.PythonVersionRequiresInitPyFiles(_configuration.Version);
 }
        public AstPythonInterpreter(AstPythonInterpreterFactory factory, bool useDefaultDatabase, AnalysisLogWriter log = null)
        {
            _factory = factory ?? throw new ArgumentNullException(nameof(factory));
            _factory.ImportableModulesChanged += Factory_ImportableModulesChanged;

            Log = log;

            ModuleCache      = new AstModuleCache(factory.Configuration, factory.CreationOptions.DatabasePath, useDefaultDatabase, factory.CreationOptions.UseExistingCache, log);
            ModuleResolution = new AstModuleResolution(this, _modules, ModuleCache, factory.Configuration, log);
        }