Hide navigation sidebar
Hide table of contents sidebar
Skip to content
Back to top
View this page
Toggle table of contents sidebar

# Architecture of pip’s internals

Note

This section of the documentation is currently being written. pip developers welcome your help to complete this documentation. If you’re interested in helping out, please let us know in the tracking issue, or just go ahead and submit a pull request and mention it in that tracking issue.

Note

Direct use of pip’s internals is not supported, and these internals can change at any time. For more details, see Using pip from your program.

- Broad functionality overview
  - Broad overview of flow
- Repository anatomy & directory structure
  - Root and tools
  - src directory
- Configuration File Handling
  - Overview
  - `Configuration` class
  - kinds
  - Future Refactoring Ideas
- Finding and choosing files (`index` and `PackageFinder`)
  - Overview
  - The `PackageFinder` class
  - The `LinkCollector` class
  - The `LinkEvaluator` class
  - The `CandidateEvaluator` class
  - The `CandidatePreferences` class
  - The `BestCandidateResult` class
- Command Line Interface
  - Overview
  - Future Refactoring Ideas
- Options that control the installation process
  - Controlling what gets installed
  - Controlling what gets considered
  - Controlling dependency data
  - Special cases