# Data flow — python-poetry/poetry

> Canonical page: https://codevetter.com/unpack/poetry/data-flow

# Data flow — python-poetry/poetry

Scanned commit d4fd21e4711ae948f04e18a1736d9ee85b590e87 (2026-09-27). Generated by codevetter codevetter 1.15.0 on 2026-10-02.

Source inspection; upstream code and tests were not executed.

CLI inputs become project models, configuration, and installer state before resolution or environment mutation begins. Package candidates arrive through prioritized indexes or direct origins and become solved packages with transitive metadata. Transactions filter that result against the selected environment and installed distributions. Artifact caches, build environments, lockfiles, project TOML, and upload requests form distinct output boundaries.
- --directory selects the working directory, while relative --project values resolve against it; Application passes the resulting project_directory into lazy Factory.create_poetry. — [src/poetry/console/application.py#L196-L214](https://github.com/python-poetry/poetry/blob/d4fd21e4711ae948f04e18a1736d9ee85b590e87/src/poetry/console/application.py#L196-L214) [src/poetry/console/application.py#L343-L362](https://github.com/python-poetry/poetry/blob/d4fd21e4711ae948f04e18a1736d9ee85b590e87/src/poetry/console/application.py#L343-L362)
- Config.create loads global configuration and auth configuration, Factory merges project poetry.toml, and Config.get applies normalized POETRY_* environment overrides at lookup time. — [src/poetry/config/config.py#L432-L455](https://github.com/python-poetry/poetry/blob/d4fd21e4711ae948f04e18a1736d9ee85b590e87/src/poetry/config/config.py#L432-L455) [src/poetry/factory.py#L101-L110](https://github.com/python-poetry/poetry/blob/d4fd21e4711ae948f04e18a1736d9ee85b590e87/src/poetry/factory.py#L101-L110) [src/poetry/config/config.py#L333-L369](https://github.com/python-poetry/poetry/blob/d4fd21e4711ae948f04e18a1736d9ee85b590e87/src/poetry/config/config.py#L333-L369)
- RepositoryPool sends source-qualified dependencies directly to their named repository; general lookup excludes explicit repositories and stops before supplemental sources once earlier sources produce candidates. — [src/poetry/repositories/repository_pool.py#L76-L90](https://github.com/python-poetry/poetry/blob/d4fd21e4711ae948f04e18a1736d9ee85b590e87/src/poetry/repositories/repository_pool.py#L76-L90) [src/poetry/repositories/repository_pool.py#L168-L178](https://github.com/python-poetry/poetry/blob/d4fd21e4711ae948f04e18a1736d9ee85b590e87/src/poetry/repositories/repository_pool.py#L168-L178)
- Provider resolves Git/file/directory/URL dependencies through type-specific loaders, pins their dependency constraints to discovered versions, and caches them; index candidates are ordered using yanked, prerelease, and version properties. — [src/poetry/puzzle/provider.py#L282-L355](https://github.com/python-poetry/poetry/blob/d4fd21e4711ae948f04e18a1736d9ee85b590e87/src/poetry/puzzle/provider.py#L282-L355)
- Solver aggregates the solved dependency graph into TransitivePackageInfo and simplifies group markers; Transaction evaluates selected groups, environment markers, and extras before comparing versions and source identity with installed packages. — [src/poetry/puzzle/solver.py#L89-L98](https://github.com/python-poetry/poetry/blob/d4fd21e4711ae948f04e18a1736d9ee85b590e87/src/poetry/puzzle/solver.py#L89-L98) [src/poetry/puzzle/solver.py#L190-L197](https://github.com/python-poetry/poetry/blob/d4fd21e4711ae948f04e18a1736d9ee85b590e87/src/poetry/puzzle/solver.py#L190-L197) [src/poetry/puzzle/transaction.py#L63-L140](https://github.com/python-poetry/poetry/blob/d4fd21e4711ae948f04e18a1736d9ee85b590e87/src/poetry/puzzle/transaction.py#L63-L140)
- Chooser filters repository links by binary policy and environment wheel support; Executor retrieves cached/downloaded archives, builds non-wheels through Chef, validates available locked hashes, and sends wheels to WheelInstaller. — [src/poetry/installation/chooser.py#L49-L105](https://github.com/python-poetry/poetry/blob/d4fd21e4711ae948f04e18a1736d9ee85b590e87/src/poetry/installation/chooser.py#L49-L105) [src/poetry/installation/executor.py#L585-L619](https://github.com/python-poetry/poetry/blob/d4fd21e4711ae948f04e18a1736d9ee85b590e87/src/poetry/installation/executor.py#L585-L619) [src/poetry/installation/executor.py#L756-L805](https://github.com/python-poetry/poetry/blob/d4fd21e4711ae948f04e18a1736d9ee85b590e87/src/poetry/installation/executor.py#L756-L805)
- Locker serializes package files, extras, Python requirements, lock format, and a content hash; AddCommand writes changed project TOML only after installer success and outside dry-run mode. — [src/poetry/packages/locker.py#L213-L244](https://github.com/python-poetry/poetry/blob/d4fd21e4711ae948f04e18a1736d9ee85b590e87/src/poetry/packages/locker.py#L213-L244) [src/poetry/packages/locker.py#L292-L341](https://github.com/python-poetry/poetry/blob/d4fd21e4711ae948f04e18a1736d9ee85b590e87/src/poetry/packages/locker.py#L292-L341) [src/poetry/console/commands/add.py#L396-L415](https://github.com/python-poetry/poetry/blob/d4fd21e4711ae948f04e18a1736d9ee85b590e87/src/poetry/console/commands/add.py#L396-L415)
- Publisher resolves a target and authentication, configures Uploader, and passes publication options; Uploader converts each archive's metadata into legacy upload fields and streams file content through a multipart encoder. — [src/poetry/publishing/publisher.py#L53-L99](https://github.com/python-poetry/poetry/blob/d4fd21e4711ae948f04e18a1736d9ee85b590e87/src/poetry/publishing/publisher.py#L53-L99) [src/poetry/publishing/uploader.py#L190-L224](https://github.com/python-poetry/poetry/blob/d4fd21e4711ae948f04e18a1736d9ee85b590e87/src/poetry/publishing/uploader.py#L190-L224)

Every claim links to its cited files at the pinned commit. Citations identify source evidence; they do not establish runtime correctness. Independent CodeVetter scan — not reviewed by upstream maintainers.

## Public product links

- [CodeVetter](https://codevetter.com/)
- [Download](https://codevetter.com/download)
- [Documentation](https://codevetter.com/docs/)
- [Source](https://github.com/Codevetter/codevetter)
