Files
Viper_VSCode/architecture/generated/features/feat-program-analysis-and-scheduling.md
TermiNexus e9e4693333
Some checks failed
Run mypy_primer on push / Run mypy_primer on push (push) Has been cancelled
Validation / Typecheck (push) Has been cancelled
Validation / Style (push) Has been cancelled
Validation / Test macos-latest (push) Has been cancelled
Validation / Test ubuntu-latest (push) Has been cancelled
Validation / Test windows-latest (push) Has been cancelled
Validation / Build (push) Has been cancelled
Validation / Required (push) Has been cancelled
初始化上传
2026-07-24 17:08:39 +08:00

24 KiB

Program Analysis and Scheduling

Feature path: Program Analysis and Scheduling

Implementation summary

  • Files: 14
  • Symbols: 300

Primary files

These are the main implementation files attached to this semantic node.

File Summary
packages/pyright/packages/pyright-internal/src/analyzer/analysis.ts Exports types and analyzeProgram to run a Program analysis, gather diagnostics, and invoke a completion callback
packages/pyright/packages/pyright-internal/src/analyzer/analyzerFileInfo.ts Provides interfaces and utilities for storing per-source-file analysis metadata and import lookup in the analyzer
packages/pyright/packages/pyright-internal/src/analyzer/backgroundAnalysisProgram.ts Manages a Program with optional background analysis, syncing config, imports, file state and diagnostics
packages/pyright/packages/pyright-internal/src/analyzer/cacheManager.ts Tracks cache owners and heap usage to trigger cache eviction when memory usage approaches the heap limit
packages/pyright/packages/pyright-internal/src/analyzer/cellChainIndex.ts Provides a lazily-built index mapping notebook CellDocs cells to their chain tails for fast later-cell lookups
packages/pyright/packages/pyright-internal/src/analyzer/circularDependency.ts Represents circular import chains as ordered lists of file URIs, normalizing start and comparing equality
packages/pyright/packages/pyright-internal/src/analyzer/parentDirectoryCache.ts Cache for storing parent-directory import lookup results to avoid repeated folder searches
packages/pyright/packages/pyright-internal/src/analyzer/program.ts Tracks and manages the project's source files, imports, and analysis state for Pyright's type checker
packages/pyright/packages/pyright-internal/src/analyzer/programTypes.ts Defines ISourceFileFactory interface and a type guard for creating SourceFile instances
packages/pyright/packages/pyright-internal/src/analyzer/service.ts Analyzes Python files and manages background analysis, programs, configuration, and import resolution
packages/pyright/packages/pyright-internal/src/analyzer/serviceUtils.ts Helpers to locate pyproject.toml and project config files starting from a given Uri
packages/pyright/packages/pyright-internal/src/analyzer/sourceFile.ts Represents a single Python source or stub file and manages its parsing, analysis, and diagnostics
packages/pyright/packages/pyright-internal/src/analyzer/sourceFileInfo.ts Holds per-file metadata and mutable program relations like imports, diagnostics, and edit-mode snapshots
packages/pyright/packages/pyright-internal/src/analyzer/sourceFileInfoUtils.ts Utilities for SourceFileInfo: import/chain relationships, cycle checks, and parsing open IPython notebook cells

Symbol preview (40 of 300)

Symbol Kind Source
nullCallback function packages/pyright/packages/pyright-internal/src/analyzer/analysis.ts
analyzeProgram function packages/pyright/packages/pyright-internal/src/analyzer/analysis.ts
isAnnotationEvaluationPostponed function packages/pyright/packages/pyright-internal/src/analyzer/analyzerFileInfo.ts
BackgroundAnalysisProgram class packages/pyright/packages/pyright-internal/src/analyzer/backgroundAnalysisProgram.ts
BackgroundAnalysisProgram.hasSourceFile method packages/pyright/packages/pyright-internal/src/analyzer/backgroundAnalysisProgram.ts
BackgroundAnalysisProgram.setConfigOptions method packages/pyright/packages/pyright-internal/src/analyzer/backgroundAnalysisProgram.ts
BackgroundAnalysisProgram.setImportResolver method packages/pyright/packages/pyright-internal/src/analyzer/backgroundAnalysisProgram.ts
BackgroundAnalysisProgram.setTrackedFiles method packages/pyright/packages/pyright-internal/src/analyzer/backgroundAnalysisProgram.ts
BackgroundAnalysisProgram.setAllowedThirdPartyImports method packages/pyright/packages/pyright-internal/src/analyzer/backgroundAnalysisProgram.ts
BackgroundAnalysisProgram.setFileOpened method packages/pyright/packages/pyright-internal/src/analyzer/backgroundAnalysisProgram.ts
BackgroundAnalysisProgram.getChainedUri method packages/pyright/packages/pyright-internal/src/analyzer/backgroundAnalysisProgram.ts
BackgroundAnalysisProgram.updateChainedUri method packages/pyright/packages/pyright-internal/src/analyzer/backgroundAnalysisProgram.ts
BackgroundAnalysisProgram.updateOpenFileContents method packages/pyright/packages/pyright-internal/src/analyzer/backgroundAnalysisProgram.ts
BackgroundAnalysisProgram.setFileClosed method packages/pyright/packages/pyright-internal/src/analyzer/backgroundAnalysisProgram.ts
BackgroundAnalysisProgram.addInterimFile method packages/pyright/packages/pyright-internal/src/analyzer/backgroundAnalysisProgram.ts
BackgroundAnalysisProgram.markAllFilesDirty method packages/pyright/packages/pyright-internal/src/analyzer/backgroundAnalysisProgram.ts
BackgroundAnalysisProgram.markFilesDirty method packages/pyright/packages/pyright-internal/src/analyzer/backgroundAnalysisProgram.ts
BackgroundAnalysisProgram.setCompletionCallback method packages/pyright/packages/pyright-internal/src/analyzer/backgroundAnalysisProgram.ts
BackgroundAnalysisProgram.startAnalysis method packages/pyright/packages/pyright-internal/src/analyzer/backgroundAnalysisProgram.ts
BackgroundAnalysisProgram.analyzeFile method packages/pyright/packages/pyright-internal/src/analyzer/backgroundAnalysisProgram.ts
BackgroundAnalysisProgram.analyzeFileAndGetDiagnostics method packages/pyright/packages/pyright-internal/src/analyzer/backgroundAnalysisProgram.ts
BackgroundAnalysisProgram.libraryUpdated method packages/pyright/packages/pyright-internal/src/analyzer/backgroundAnalysisProgram.ts
BackgroundAnalysisProgram.getDiagnosticsForRange method packages/pyright/packages/pyright-internal/src/analyzer/backgroundAnalysisProgram.ts
BackgroundAnalysisProgram.writeTypeStub method packages/pyright/packages/pyright-internal/src/analyzer/backgroundAnalysisProgram.ts
BackgroundAnalysisProgram.invalidateAndForceReanalysis method packages/pyright/packages/pyright-internal/src/analyzer/backgroundAnalysisProgram.ts
BackgroundAnalysisProgram.restart method packages/pyright/packages/pyright-internal/src/analyzer/backgroundAnalysisProgram.ts
BackgroundAnalysisProgram.dispose method packages/pyright/packages/pyright-internal/src/analyzer/backgroundAnalysisProgram.ts
BackgroundAnalysisProgram.enterEditMode method packages/pyright/packages/pyright-internal/src/analyzer/backgroundAnalysisProgram.ts
BackgroundAnalysisProgram.exitEditMode method packages/pyright/packages/pyright-internal/src/analyzer/backgroundAnalysisProgram.ts
BackgroundAnalysisProgram._ensurePartialStubPackages method packages/pyright/packages/pyright-internal/src/analyzer/backgroundAnalysisProgram.ts
BackgroundAnalysisProgram._reportDiagnosticsForRemovedFiles method packages/pyright/packages/pyright-internal/src/analyzer/backgroundAnalysisProgram.ts
CacheManager class packages/pyright/packages/pyright-internal/src/analyzer/cacheManager.ts
CacheManager.registerCacheOwner method packages/pyright/packages/pyright-internal/src/analyzer/cacheManager.ts
CacheManager.addWorker method packages/pyright/packages/pyright-internal/src/analyzer/cacheManager.ts
CacheManager.handleCachedUsageBufferMessage method packages/pyright/packages/pyright-internal/src/analyzer/cacheManager.ts
CacheManager.unregisterCacheOwner method packages/pyright/packages/pyright-internal/src/analyzer/cacheManager.ts
CacheManager.pauseTracking method packages/pyright/packages/pyright-internal/src/analyzer/cacheManager.ts
CacheManager.getCacheUsage method packages/pyright/packages/pyright-internal/src/analyzer/cacheManager.ts
CacheManager.emptyCache method packages/pyright/packages/pyright-internal/src/analyzer/cacheManager.ts
CacheManager.getUsedHeapRatio method packages/pyright/packages/pyright-internal/src/analyzer/cacheManager.ts
260 additional symbols omitted

Dependencies

Imported by:

  • packages/pyright/packages/pyright-internal/src/analyzer/analyzerNodeInfo.ts
  • packages/pyright/packages/pyright-internal/src/analyzer/binder.ts
  • packages/pyright/packages/pyright-internal/src/analyzer/checker.ts
  • packages/pyright/packages/pyright-internal/src/analyzer/declarationUtils.ts
  • packages/pyright/packages/pyright-internal/src/analyzer/importResolver.ts
  • packages/pyright/packages/pyright-internal/src/analyzer/importStatementUtils.ts
  • packages/pyright/packages/pyright-internal/src/analyzer/packageTypeVerifier.ts
  • packages/pyright/packages/pyright-internal/src/analyzer/sourceMapper.ts
  • packages/pyright/packages/pyright-internal/src/analyzer/tracePrinter.ts
  • packages/pyright/packages/pyright-internal/src/analyzer/typeEvaluator.ts
  • packages/pyright/packages/pyright-internal/src/analyzer/typeEvaluatorTypes.ts
  • packages/pyright/packages/pyright-internal/src/analyzer/typeEvaluatorWithTracker.ts
  • packages/pyright/packages/pyright-internal/src/backgroundAnalysisBase.ts
  • packages/pyright/packages/pyright-internal/src/backgroundThreadBase.ts
  • packages/pyright/packages/pyright-internal/src/commands/createTypeStub.ts
  • packages/pyright/packages/pyright-internal/src/common/extensibility.ts
  • packages/pyright/packages/pyright-internal/src/common/languageServerInterface.ts
  • packages/pyright/packages/pyright-internal/src/common/serviceKeys.ts
  • packages/pyright/packages/pyright-internal/src/common/serviceProviderExtensions.ts
  • packages/pyright/packages/pyright-internal/src/common/workspaceEditUtils.ts
  • packages/pyright/packages/pyright-internal/src/languageServerBase.ts
  • packages/pyright/packages/pyright-internal/src/languageService/analyzerServiceExecutor.ts
  • packages/pyright/packages/pyright-internal/src/languageService/autoImporter.ts
  • packages/pyright/packages/pyright-internal/src/languageService/callHierarchyProvider.ts
  • packages/pyright/packages/pyright-internal/src/languageService/documentSymbolCollector.ts
  • packages/pyright/packages/pyright-internal/src/languageService/referencesProvider.ts
  • packages/pyright/packages/pyright-internal/src/languageService/renameProvider.ts
  • packages/pyright/packages/pyright-internal/src/languageService/symbolIndexer.ts
  • packages/pyright/packages/pyright-internal/src/languageService/workspaceSymbolProvider.ts
  • packages/pyright/packages/pyright-internal/src/pyright.ts
  • packages/pyright/packages/pyright-internal/src/server.ts
  • packages/pyright/packages/pyright-internal/src/workspaceFactory.ts

Imports:

  • packages/pyright/packages/pyright-internal/src/analyzer/analyzerNodeInfo.ts
  • packages/pyright/packages/pyright-internal/src/analyzer/binder.ts
  • packages/pyright/packages/pyright-internal/src/analyzer/checker.ts
  • packages/pyright/packages/pyright-internal/src/analyzer/commentUtils.ts
  • packages/pyright/packages/pyright-internal/src/analyzer/importLogger.ts
  • packages/pyright/packages/pyright-internal/src/analyzer/importResolver.ts
  • packages/pyright/packages/pyright-internal/src/analyzer/importResult.ts
  • packages/pyright/packages/pyright-internal/src/analyzer/parseTreeCleaner.ts
  • packages/pyright/packages/pyright-internal/src/analyzer/parseTreeUtils.ts
  • packages/pyright/packages/pyright-internal/src/analyzer/pythonPathUtils.ts
  • packages/pyright/packages/pyright-internal/src/analyzer/scope.ts
  • packages/pyright/packages/pyright-internal/src/analyzer/sourceEnumerator.ts
  • packages/pyright/packages/pyright-internal/src/analyzer/sourceMapper.ts
  • packages/pyright/packages/pyright-internal/src/analyzer/symbol.ts
  • packages/pyright/packages/pyright-internal/src/analyzer/testWalker.ts
  • packages/pyright/packages/pyright-internal/src/analyzer/tracePrinter.ts
  • packages/pyright/packages/pyright-internal/src/analyzer/typeEvaluatorTypes.ts
  • packages/pyright/packages/pyright-internal/src/analyzer/typeEvaluatorWithTracker.ts
  • packages/pyright/packages/pyright-internal/src/analyzer/typePrinter.ts
  • packages/pyright/packages/pyright-internal/src/analyzer/typeStubWriter.ts
  • packages/pyright/packages/pyright-internal/src/analyzer/types.ts
  • packages/pyright/packages/pyright-internal/src/backgroundAnalysisBase.ts
  • packages/pyright/packages/pyright-internal/src/common/cancellationUtils.ts
  • packages/pyright/packages/pyright-internal/src/common/collectionUtils.ts
  • packages/pyright/packages/pyright-internal/src/common/commandLineOptions.ts
  • packages/pyright/packages/pyright-internal/src/common/configOptions.ts
  • packages/pyright/packages/pyright-internal/src/common/console.ts
  • packages/pyright/packages/pyright-internal/src/common/core.ts
  • packages/pyright/packages/pyright-internal/src/common/debug.ts
  • packages/pyright/packages/pyright-internal/src/common/diagnostic.ts
  • packages/pyright/packages/pyright-internal/src/common/diagnosticRules.ts
  • packages/pyright/packages/pyright-internal/src/common/diagnosticSink.ts
  • packages/pyright/packages/pyright-internal/src/common/editAction.ts
  • packages/pyright/packages/pyright-internal/src/common/extensibility.ts
  • packages/pyright/packages/pyright-internal/src/common/fileSystem.ts
  • packages/pyright/packages/pyright-internal/src/common/fileWatcher.ts
  • packages/pyright/packages/pyright-internal/src/common/host.ts
  • packages/pyright/packages/pyright-internal/src/common/logTracker.ts
  • packages/pyright/packages/pyright-internal/src/common/memUtils.ts
  • packages/pyright/packages/pyright-internal/src/common/pathConsts.ts
  • packages/pyright/packages/pyright-internal/src/common/pathUtils.ts
  • packages/pyright/packages/pyright-internal/src/common/positionUtils.ts
  • packages/pyright/packages/pyright-internal/src/common/pythonVersion.ts
  • packages/pyright/packages/pyright-internal/src/common/serviceKeys.ts
  • packages/pyright/packages/pyright-internal/src/common/serviceProvider.ts
  • packages/pyright/packages/pyright-internal/src/common/serviceProviderExtensions.ts
  • packages/pyright/packages/pyright-internal/src/common/stringUtils.ts
  • packages/pyright/packages/pyright-internal/src/common/textRange.ts
  • packages/pyright/packages/pyright-internal/src/common/textRangeCollection.ts
  • packages/pyright/packages/pyright-internal/src/common/timing.ts
  • packages/pyright/packages/pyright-internal/src/common/tomlUtils.ts
  • packages/pyright/packages/pyright-internal/src/common/uri/uri.ts
  • packages/pyright/packages/pyright-internal/src/common/uri/uriMap.ts
  • packages/pyright/packages/pyright-internal/src/common/uri/uriUtils.ts
  • packages/pyright/packages/pyright-internal/src/localization/localize.ts
  • packages/pyright/packages/pyright-internal/src/parser/parseNodes.ts
  • packages/pyright/packages/pyright-internal/src/parser/parser.ts
  • packages/pyright/packages/pyright-internal/src/parser/tokenizer.ts
  • packages/pyright/packages/pyright-internal/src/parser/tokenizerTypes.ts