public void LogFileRotation() { var logFile = Path.Combine(TestData.GetTempPath(), "Log.txt"); var writer = new AnalysisLogWriter(logFile, false, false); for (int i = 0; i < 100; ++i) { writer.Log("Event", i); } writer.Flush(synchronous: true); var lines = File.ReadAllLines(logFile); Assert.AreEqual(101, lines.Length); writer.Rotate(11); lines = File.ReadAllLines(logFile); AssertUtil.ContainsExactly(lines.Select(l => l.Substring(l.IndexOf(']') + 1).Trim()), "Event: 90", "Event: 91", "Event: 92", "Event: 93", "Event: 94", "Event: 95", "Event: 96", "Event: 97", "Event: 98", "Event: 99" ); }
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); }
public AstPythonInterpreterFactory( InterpreterConfiguration config, InterpreterFactoryCreationOptions options ) { 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); } _databasePath = CreationOptions.DatabasePath; if (!string.IsNullOrEmpty(_databasePath)) { _searchPathCachePath = Path.Combine(_databasePath, "database.path"); _log = new AnalysisLogWriter(Path.Combine(_databasePath, "AnalysisLog.txt"), false, LogToConsole, LogCacheSize); _log.Rotate(LogRotationSize); _log.MinimumLevel = CreationOptions.TraceLevel; } else { if (InstallPath.TryGetFile($"DefaultDB\\v{Configuration.Version.Major}\\python.pyi", out string biPath)) { CreationOptions.DatabasePath = _databasePath = Path.GetDirectoryName(biPath); _skipWriteToCache = true; } } _skipCache = !CreationOptions.UseExistingCache; }
public AstPythonInterpreterFactory( InterpreterConfiguration config, InterpreterFactoryCreationOptions options ) { Configuration = config ?? throw new ArgumentNullException(nameof(config)); LanguageVersion = Configuration.Version.ToLanguageVersion(); options = options ?? new InterpreterFactoryCreationOptions(); _databasePath = options.DatabasePath; if (!string.IsNullOrEmpty(_databasePath)) { _log = new AnalysisLogWriter(PathUtils.GetAbsoluteFilePath(_databasePath, "AnalysisLog.txt"), false, LogToConsole, LogCacheSize); _log.Rotate(LogRotationSize); _log.MinimumLevel = options.TraceLevel; } _skipCache = !options.UseExistingCache; if (!GlobalInterpreterOptions.SuppressPackageManagers) { try { var pm = options.PackageManager; if (pm != null) { pm.SetInterpreterFactory(this); pm.InstalledFilesChanged += PackageManager_InstalledFilesChanged; PackageManager = pm; } } catch (NotSupportedException) { } } }
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); } BuiltinModuleName = BuiltinTypeId.Unknown.GetModuleName(LanguageVersion); _databasePath = CreationOptions.DatabasePath; _useDefaultDatabase = useDefaultDatabase; if (_useDefaultDatabase) { var dbPath = Path.Combine("DefaultDB", $"v{Configuration.Version.Major}", "python.pyi"); if (InstallPath.TryGetFile(dbPath, out string biPath)) { CreationOptions.DatabasePath = _databasePath = Path.GetDirectoryName(biPath); } else { _skipCache = true; } } else { _searchPathCachePath = Path.Combine(_databasePath, "database.path"); _log = new AnalysisLogWriter(Path.Combine(_databasePath, "AnalysisLog.txt"), false, LogToConsole, LogCacheSize); _log.Rotate(LogRotationSize); _log.MinimumLevel = CreationOptions.TraceLevel; } _skipCache = !CreationOptions.UseExistingCache; }