Full Code of python-poetry/poetry for AI

main 2c270050111b cached
949 files
3.5 MB
975.4k tokens
3284 symbols
1 requests
Download .txt
Showing preview only (3,874K chars total). Download the full file or copy to clipboard to get everything.
Repository: python-poetry/poetry
Branch: main
Commit: 2c270050111b
Files: 949
Total size: 3.5 MB

Directory structure:
gitextract_5_4n1xc3/

├── .cirrus.yml
├── .gitattributes
├── .github/
│   ├── ISSUE_TEMPLATE/
│   │   ├── ---bug-report.yml
│   │   ├── ---documentation.yml
│   │   ├── ---feature-request.yml
│   │   └── config.yml
│   ├── PULL_REQUEST_TEMPLATE.md
│   ├── actions/
│   │   ├── bootstrap-poetry/
│   │   │   └── action.yaml
│   │   └── poetry-install/
│   │       └── action.yaml
│   ├── dependabot.yml
│   ├── scripts/
│   │   └── backport.sh
│   └── workflows/
│       ├── .tests-matrix.yaml
│       ├── backport.yaml
│       ├── docs.yaml
│       ├── lock-threads.yaml
│       ├── release.yaml
│       └── tests.yaml
├── .gitignore
├── .pre-commit-config.yaml
├── .pre-commit-hooks.yaml
├── CHANGELOG.md
├── CITATION.cff
├── CODE_OF_CONDUCT.md
├── LICENSE
├── README.md
├── docs/
│   ├── _index.md
│   ├── basic-usage.md
│   ├── building-extension-modules.md
│   ├── cli.md
│   ├── community.md
│   ├── configuration.md
│   ├── contributing.md
│   ├── dependency-specification.md
│   ├── faq.md
│   ├── libraries.md
│   ├── managing-dependencies.md
│   ├── managing-environments.md
│   ├── plugins.md
│   ├── pre-commit-hooks.md
│   ├── pyproject.md
│   └── repositories.md
├── pyproject.toml
├── src/
│   └── poetry/
│       ├── __main__.py
│       ├── __version__.py
│       ├── config/
│       │   ├── __init__.py
│       │   ├── config.py
│       │   ├── config_source.py
│       │   ├── dict_config_source.py
│       │   ├── file_config_source.py
│       │   └── source.py
│       ├── console/
│       │   ├── __init__.py
│       │   ├── application.py
│       │   ├── command_loader.py
│       │   ├── commands/
│       │   │   ├── __init__.py
│       │   │   ├── about.py
│       │   │   ├── add.py
│       │   │   ├── build.py
│       │   │   ├── cache/
│       │   │   │   ├── __init__.py
│       │   │   │   ├── clear.py
│       │   │   │   └── list.py
│       │   │   ├── check.py
│       │   │   ├── command.py
│       │   │   ├── config.py
│       │   │   ├── debug/
│       │   │   │   ├── __init__.py
│       │   │   │   ├── info.py
│       │   │   │   ├── resolve.py
│       │   │   │   └── tags.py
│       │   │   ├── env/
│       │   │   │   ├── __init__.py
│       │   │   │   ├── activate.py
│       │   │   │   ├── info.py
│       │   │   │   ├── list.py
│       │   │   │   ├── remove.py
│       │   │   │   └── use.py
│       │   │   ├── env_command.py
│       │   │   ├── group_command.py
│       │   │   ├── init.py
│       │   │   ├── install.py
│       │   │   ├── installer_command.py
│       │   │   ├── lock.py
│       │   │   ├── new.py
│       │   │   ├── publish.py
│       │   │   ├── python/
│       │   │   │   ├── __init__.py
│       │   │   │   ├── install.py
│       │   │   │   ├── list.py
│       │   │   │   └── remove.py
│       │   │   ├── remove.py
│       │   │   ├── run.py
│       │   │   ├── search.py
│       │   │   ├── self/
│       │   │   │   ├── __init__.py
│       │   │   │   ├── add.py
│       │   │   │   ├── install.py
│       │   │   │   ├── lock.py
│       │   │   │   ├── remove.py
│       │   │   │   ├── self_command.py
│       │   │   │   ├── show/
│       │   │   │   │   ├── __init__.py
│       │   │   │   │   └── plugins.py
│       │   │   │   ├── sync.py
│       │   │   │   └── update.py
│       │   │   ├── show.py
│       │   │   ├── source/
│       │   │   │   ├── __init__.py
│       │   │   │   ├── add.py
│       │   │   │   ├── remove.py
│       │   │   │   └── show.py
│       │   │   ├── sync.py
│       │   │   ├── update.py
│       │   │   └── version.py
│       │   ├── events/
│       │   │   ├── __init__.py
│       │   │   └── console_events.py
│       │   ├── exceptions.py
│       │   └── logging/
│       │       ├── __init__.py
│       │       ├── filters.py
│       │       ├── formatters/
│       │       │   ├── __init__.py
│       │       │   ├── builder_formatter.py
│       │       │   └── formatter.py
│       │       ├── io_formatter.py
│       │       └── io_handler.py
│       ├── exceptions.py
│       ├── factory.py
│       ├── inspection/
│       │   ├── __init__.py
│       │   ├── info.py
│       │   └── lazy_wheel.py
│       ├── installation/
│       │   ├── __init__.py
│       │   ├── chef.py
│       │   ├── chooser.py
│       │   ├── executor.py
│       │   ├── installer.py
│       │   ├── operations/
│       │   │   ├── __init__.py
│       │   │   ├── install.py
│       │   │   ├── operation.py
│       │   │   ├── uninstall.py
│       │   │   └── update.py
│       │   └── wheel_installer.py
│       ├── json/
│       │   ├── __init__.py
│       │   └── schemas/
│       │       └── poetry.json
│       ├── layouts/
│       │   ├── __init__.py
│       │   ├── layout.py
│       │   └── src.py
│       ├── locations.py
│       ├── masonry/
│       │   ├── __init__.py
│       │   ├── api.py
│       │   └── builders/
│       │       ├── __init__.py
│       │       └── editable.py
│       ├── mixology/
│       │   ├── __init__.py
│       │   ├── assignment.py
│       │   ├── failure.py
│       │   ├── incompatibility.py
│       │   ├── incompatibility_cause.py
│       │   ├── partial_solution.py
│       │   ├── result.py
│       │   ├── set_relation.py
│       │   ├── term.py
│       │   └── version_solver.py
│       ├── packages/
│       │   ├── __init__.py
│       │   ├── dependency_package.py
│       │   ├── direct_origin.py
│       │   ├── locker.py
│       │   ├── package_collection.py
│       │   └── transitive_package_info.py
│       ├── plugins/
│       │   ├── __init__.py
│       │   ├── application_plugin.py
│       │   ├── base_plugin.py
│       │   ├── plugin.py
│       │   └── plugin_manager.py
│       ├── poetry.py
│       ├── publishing/
│       │   ├── __init__.py
│       │   ├── hash_manager.py
│       │   ├── publisher.py
│       │   └── uploader.py
│       ├── puzzle/
│       │   ├── __init__.py
│       │   ├── exceptions.py
│       │   ├── provider.py
│       │   ├── solver.py
│       │   └── transaction.py
│       ├── py.typed
│       ├── pyproject/
│       │   ├── __init__.py
│       │   └── toml.py
│       ├── repositories/
│       │   ├── __init__.py
│       │   ├── abstract_repository.py
│       │   ├── cached_repository.py
│       │   ├── exceptions.py
│       │   ├── http_repository.py
│       │   ├── installed_repository.py
│       │   ├── legacy_repository.py
│       │   ├── link_sources/
│       │   │   ├── __init__.py
│       │   │   ├── base.py
│       │   │   ├── html.py
│       │   │   └── json.py
│       │   ├── lockfile_repository.py
│       │   ├── parsers/
│       │   │   ├── __init__.py
│       │   │   ├── html_page_parser.py
│       │   │   └── pypi_search_parser.py
│       │   ├── pypi_repository.py
│       │   ├── repository.py
│       │   ├── repository_pool.py
│       │   └── single_page_repository.py
│       ├── toml/
│       │   ├── __init__.py
│       │   ├── exceptions.py
│       │   └── file.py
│       ├── utils/
│       │   ├── __init__.py
│       │   ├── _compat.py
│       │   ├── authenticator.py
│       │   ├── cache.py
│       │   ├── constants.py
│       │   ├── dependency_specification.py
│       │   ├── env/
│       │   │   ├── __init__.py
│       │   │   ├── base_env.py
│       │   │   ├── env_manager.py
│       │   │   ├── exceptions.py
│       │   │   ├── generic_env.py
│       │   │   ├── mock_env.py
│       │   │   ├── null_env.py
│       │   │   ├── python/
│       │   │   │   ├── __init__.py
│       │   │   │   ├── exceptions.py
│       │   │   │   ├── installer.py
│       │   │   │   ├── manager.py
│       │   │   │   └── providers.py
│       │   │   ├── script_strings.py
│       │   │   ├── site_packages.py
│       │   │   ├── system_env.py
│       │   │   └── virtual_env.py
│       │   ├── extras.py
│       │   ├── helpers.py
│       │   ├── isolated_build.py
│       │   ├── log_utils.py
│       │   ├── password_manager.py
│       │   ├── patterns.py
│       │   ├── pip.py
│       │   ├── threading.py
│       │   └── wheel.py
│       ├── vcs/
│       │   ├── __init__.py
│       │   └── git/
│       │       ├── __init__.py
│       │       ├── backend.py
│       │       └── system.py
│       └── version/
│           ├── __init__.py
│           └── version_selector.py
└── tests/
    ├── __init__.py
    ├── config/
    │   ├── __init__.py
    │   ├── test_config.py
    │   ├── test_config_source.py
    │   ├── test_dict_config_source.py
    │   ├── test_file_config_source.py
    │   └── test_source.py
    ├── conftest.py
    ├── console/
    │   ├── __init__.py
    │   ├── commands/
    │   │   ├── __init__.py
    │   │   ├── cache/
    │   │   │   ├── __init__.py
    │   │   │   ├── conftest.py
    │   │   │   ├── test_clear.py
    │   │   │   └── test_list.py
    │   │   ├── conftest.py
    │   │   ├── debug/
    │   │   │   ├── __init__.py
    │   │   │   ├── test_info.py
    │   │   │   └── test_resolve.py
    │   │   ├── env/
    │   │   │   ├── __init__.py
    │   │   │   ├── conftest.py
    │   │   │   ├── helpers.py
    │   │   │   ├── test_activate.py
    │   │   │   ├── test_info.py
    │   │   │   ├── test_list.py
    │   │   │   ├── test_remove.py
    │   │   │   └── test_use.py
    │   │   ├── python/
    │   │   │   ├── __init__.py
    │   │   │   ├── test_python_install.py
    │   │   │   ├── test_python_list.py
    │   │   │   └── test_python_remove.py
    │   │   ├── self/
    │   │   │   ├── __init__.py
    │   │   │   ├── conftest.py
    │   │   │   ├── fixtures/
    │   │   │   │   └── poetry-1.0.5-darwin.sha256sum
    │   │   │   ├── test_add_plugins.py
    │   │   │   ├── test_install.py
    │   │   │   ├── test_remove_plugins.py
    │   │   │   ├── test_self_command.py
    │   │   │   ├── test_show.py
    │   │   │   ├── test_show_plugins.py
    │   │   │   ├── test_sync.py
    │   │   │   ├── test_update.py
    │   │   │   └── utils.py
    │   │   ├── source/
    │   │   │   ├── __init__.py
    │   │   │   ├── conftest.py
    │   │   │   ├── test_add.py
    │   │   │   ├── test_remove.py
    │   │   │   └── test_show.py
    │   │   ├── test_about.py
    │   │   ├── test_add.py
    │   │   ├── test_build.py
    │   │   ├── test_check.py
    │   │   ├── test_config.py
    │   │   ├── test_init.py
    │   │   ├── test_install.py
    │   │   ├── test_lock.py
    │   │   ├── test_new.py
    │   │   ├── test_publish.py
    │   │   ├── test_remove.py
    │   │   ├── test_run.py
    │   │   ├── test_search.py
    │   │   ├── test_show.py
    │   │   ├── test_sync.py
    │   │   ├── test_update.py
    │   │   └── test_version.py
    │   ├── conftest.py
    │   ├── logging/
    │   │   ├── __init__.py
    │   │   ├── formatters/
    │   │   │   ├── __init__.py
    │   │   │   └── test_builder_formatter.py
    │   │   └── test_io_formatter.py
    │   ├── test_application.py
    │   ├── test_application_command_not_found.py
    │   ├── test_application_global_options.py
    │   ├── test_application_removed_commands.py
    │   ├── test_exceptions_console_message.py
    │   └── test_exections_poetry_runtime_error.py
    ├── fixtures/
    │   ├── bad_scripts_project/
    │   │   ├── no_colon/
    │   │   │   ├── README.rst
    │   │   │   ├── pyproject.toml
    │   │   │   └── simple_project/
    │   │   │       └── __init__.py
    │   │   └── too_many_colon/
    │   │       ├── README.rst
    │   │       ├── pyproject.toml
    │   │       └── simple_project/
    │   │           └── __init__.py
    │   ├── build_constraints/
    │   │   └── pyproject.toml
    │   ├── build_constraints_empty/
    │   │   └── pyproject.toml
    │   ├── build_system_requires_not_available/
    │   │   ├── README.rst
    │   │   ├── pyproject.toml
    │   │   └── simple_project/
    │   │       └── __init__.py
    │   ├── build_systems/
    │   │   ├── core_from_git/
    │   │   │   ├── README.md
    │   │   │   ├── pyproject.toml
    │   │   │   └── simple_project/
    │   │   │       └── __init__.py
    │   │   ├── core_in_range/
    │   │   │   ├── README.md
    │   │   │   ├── pyproject.toml
    │   │   │   └── simple_project/
    │   │   │       └── __init__.py
    │   │   ├── core_not_in_range/
    │   │   │   ├── README.md
    │   │   │   ├── pyproject.toml
    │   │   │   └── simple_project/
    │   │   │       └── __init__.py
    │   │   ├── has_build_script/
    │   │   │   ├── README.md
    │   │   │   ├── pyproject.toml
    │   │   │   └── simple_project/
    │   │   │       └── __init__.py
    │   │   ├── multiple_build_deps/
    │   │   │   ├── README.md
    │   │   │   ├── pyproject.toml
    │   │   │   └── simple_project/
    │   │   │       └── __init__.py
    │   │   ├── no_build_backend/
    │   │   │   ├── README.md
    │   │   │   ├── pyproject.toml
    │   │   │   └── simple_project/
    │   │   │       └── __init__.py
    │   │   ├── no_build_system/
    │   │   │   ├── README.md
    │   │   │   ├── pyproject.toml
    │   │   │   └── simple_project/
    │   │   │       └── __init__.py
    │   │   └── no_core/
    │   │       ├── README.md
    │   │       ├── pyproject.toml
    │   │       └── simple_project/
    │   │           └── __init__.py
    │   ├── complete.toml
    │   ├── deleted_directory_dependency/
    │   │   └── pyproject.toml
    │   ├── deleted_file_dependency/
    │   │   └── pyproject.toml
    │   ├── directory/
    │   │   ├── project_with_transitive_directory_dependencies/
    │   │   │   ├── project_with_transitive_directory_dependencies/
    │   │   │   │   └── __init__.py
    │   │   │   ├── pyproject.toml
    │   │   │   └── setup.py
    │   │   └── project_with_transitive_file_dependencies/
    │   │       ├── inner-directory-project/
    │   │       │   └── pyproject.toml
    │   │       ├── project_with_transitive_file_dependencies/
    │   │       │   └── __init__.py
    │   │       └── pyproject.toml
    │   ├── distributions/
    │   │   ├── demo-0.1.0-py2.py3-none-any.whl
    │   │   ├── demo-0.1.2-py2.py3-none-any.whl
    │   │   ├── demo_invalid_record-0.1.0-py2.py3-none-any.whl
    │   │   ├── demo_invalid_record2-0.1.0-py2.py3-none-any.whl
    │   │   ├── demo_metadata_version_23-0.1.0-py2.py3-none-any.whl
    │   │   ├── demo_metadata_version_24-0.1.0-py2.py3-none-any.whl
    │   │   ├── demo_metadata_version_299-0.1.0-py2.py3-none-any.whl
    │   │   ├── demo_metadata_version_unknown-0.1.0-py2.py3-none-any.whl
    │   │   └── demo_missing_dist_info-0.1.0-py2.py3-none-any.whl
    │   ├── excluded_subpackage/
    │   │   ├── README.rst
    │   │   ├── example/
    │   │   │   ├── __init__.py
    │   │   │   └── test/
    │   │   │       ├── __init__.py
    │   │   │       └── excluded.py
    │   │   └── pyproject.toml
    │   ├── extended_project/
    │   │   ├── README.rst
    │   │   ├── build.py
    │   │   ├── extended_project/
    │   │   │   └── __init__.py
    │   │   └── pyproject.toml
    │   ├── extended_project_without_setup/
    │   │   ├── README.rst
    │   │   ├── build.py
    │   │   ├── extended_project/
    │   │   │   └── __init__.py
    │   │   └── pyproject.toml
    │   ├── extended_with_no_setup/
    │   │   ├── README.md
    │   │   ├── build.py
    │   │   ├── extended/
    │   │   │   ├── __init__.py
    │   │   │   └── extended.c
    │   │   └── pyproject.toml
    │   ├── git/
    │   │   └── github.com/
    │   │       ├── demo/
    │   │       │   ├── demo/
    │   │       │   │   ├── demo/
    │   │       │   │   │   └── __init__.py
    │   │       │   │   └── pyproject.toml
    │   │       │   ├── namespace-package-one/
    │   │       │   │   ├── namespace_package/
    │   │       │   │   │   ├── __init__.py
    │   │       │   │   │   └── one/
    │   │       │   │   │       └── __init__.py
    │   │       │   │   └── setup.py
    │   │       │   ├── no-dependencies/
    │   │       │   │   ├── demo/
    │   │       │   │   │   └── __init__.py
    │   │       │   │   └── setup.py
    │   │       │   ├── no-version/
    │   │       │   │   ├── demo/
    │   │       │   │   │   └── __init__.py
    │   │       │   │   └── setup.py
    │   │       │   ├── non-canonical-name/
    │   │       │   │   ├── demo/
    │   │       │   │   │   └── __init__.py
    │   │       │   │   └── setup.py
    │   │       │   ├── poetry-plugin/
    │   │       │   │   ├── poetry_plugin/
    │   │       │   │   │   └── __init__.py
    │   │       │   │   └── pyproject.toml
    │   │       │   ├── poetry-plugin2/
    │   │       │   │   └── subdir/
    │   │       │   │       ├── poetry_plugin/
    │   │       │   │       │   └── __init__.py
    │   │       │   │       └── pyproject.toml
    │   │       │   ├── prerelease/
    │   │       │   │   ├── prerelease/
    │   │       │   │   │   └── __init__.py
    │   │       │   │   └── pyproject.toml
    │   │       │   ├── pyproject-demo/
    │   │       │   │   ├── demo/
    │   │       │   │   │   └── __init__.py
    │   │       │   │   └── pyproject.toml
    │   │       │   └── subdirectories/
    │   │       │       ├── one/
    │   │       │       │   ├── one/
    │   │       │       │   │   └── __init__.py
    │   │       │       │   └── pyproject.toml
    │   │       │       ├── one-copy/
    │   │       │       │   ├── one/
    │   │       │       │   │   └── __init__.py
    │   │       │       │   └── pyproject.toml
    │   │       │       └── two/
    │   │       │           ├── pyproject.toml
    │   │       │           └── two/
    │   │       │               └── __init__.py
    │   │       └── forked_demo/
    │   │           └── subdirectories/
    │   │               ├── one/
    │   │               │   ├── one/
    │   │               │   │   └── __init__.py
    │   │               │   └── pyproject.toml
    │   │               ├── one-copy/
    │   │               │   ├── one/
    │   │               │   │   └── __init__.py
    │   │               │   └── pyproject.toml
    │   │               └── two/
    │   │                   ├── pyproject.toml
    │   │                   └── two/
    │   │                       └── __init__.py
    │   ├── incompatible_lock/
    │   │   └── pyproject.toml
    │   ├── inspection/
    │   │   ├── demo/
    │   │   │   └── pyproject.toml
    │   │   ├── demo_no_setup_pkg_info_no_deps/
    │   │   │   ├── PKG-INFO
    │   │   │   └── pyproject.toml
    │   │   ├── demo_no_setup_pkg_info_no_deps_dynamic/
    │   │   │   ├── PKG-INFO
    │   │   │   └── pyproject.toml
    │   │   ├── demo_no_setup_pkg_info_no_deps_for_sure/
    │   │   │   ├── PKG-INFO
    │   │   │   └── pyproject.toml
    │   │   ├── demo_only_requires_txt.egg-info/
    │   │   │   ├── PKG-INFO
    │   │   │   └── requires.txt
    │   │   ├── demo_poetry_package/
    │   │   │   └── pyproject.toml
    │   │   └── demo_with_obsolete_egg_info/
    │   │       ├── demo-0.1.0.egg-info/
    │   │       │   ├── PKG-INFO
    │   │       │   └── requires.txt
    │   │       └── pyproject.toml
    │   ├── invalid_lock/
    │   │   └── pyproject.toml
    │   ├── invalid_pyproject/
    │   │   └── pyproject.toml
    │   ├── invalid_pyproject_dep_name/
    │   │   └── pyproject.toml
    │   ├── missing_directory_dependency/
    │   │   └── pyproject.toml
    │   ├── missing_extra_directory_dependency/
    │   │   └── pyproject.toml
    │   ├── missing_file_dependency/
    │   │   └── pyproject.toml
    │   ├── nameless_pyproject/
    │   │   └── pyproject.toml
    │   ├── no_name_project/
    │   │   ├── README.rst
    │   │   └── pyproject.toml
    │   ├── non_package_mode/
    │   │   └── pyproject.toml
    │   ├── old_lock/
    │   │   └── pyproject.toml
    │   ├── old_lock_path_dependency/
    │   │   ├── pyproject.toml
    │   │   └── quix/
    │   │       └── pyproject.toml
    │   ├── outdated_lock/
    │   │   └── pyproject.toml
    │   ├── private_pyproject/
    │   │   └── pyproject.toml
    │   ├── project_plugins/
    │   │   ├── my_application_plugin-1.0.dist-info/
    │   │   │   ├── METADATA
    │   │   │   └── entry_points.txt
    │   │   ├── my_application_plugin-2.0.dist-info/
    │   │   │   ├── METADATA
    │   │   │   └── entry_points.txt
    │   │   ├── my_other_plugin-1.0.dist-info/
    │   │   │   ├── METADATA
    │   │   │   └── entry_points.txt
    │   │   ├── pyproject.toml
    │   │   ├── some_lib-1.0.dist-info/
    │   │   │   └── METADATA
    │   │   └── some_lib-2.0.dist-info/
    │   │       └── METADATA
    │   ├── project_with_extras/
    │   │   ├── project_with_extras/
    │   │   │   └── __init__.py
    │   │   └── pyproject.toml
    │   ├── project_with_git_dev_dependency/
    │   │   └── pyproject.toml
    │   ├── project_with_local_dependencies/
    │   │   └── pyproject.toml
    │   ├── project_with_multi_constraints_dependency/
    │   │   ├── project/
    │   │   │   └── __init__.py
    │   │   └── pyproject.toml
    │   ├── project_with_nested_local/
    │   │   ├── bar/
    │   │   │   └── pyproject.toml
    │   │   ├── foo/
    │   │   │   └── pyproject.toml
    │   │   ├── pyproject.toml
    │   │   └── quix/
    │   │       └── pyproject.toml
    │   ├── project_with_setup/
    │   │   ├── my_package/
    │   │   │   └── __init__.py
    │   │   └── setup.py
    │   ├── project_with_setup_calls_script/
    │   │   ├── my_package/
    │   │   │   └── __init__.py
    │   │   ├── pyproject.toml
    │   │   └── setup.py
    │   ├── pypi_reference/
    │   │   └── pyproject.toml
    │   ├── sample_project/
    │   │   ├── README.rst
    │   │   └── pyproject.toml
    │   ├── scripts/
    │   │   ├── README.md
    │   │   ├── pyproject.toml
    │   │   └── scripts/
    │   │       ├── __init__.py
    │   │       ├── check_argv0.py
    │   │       ├── exit_code.py
    │   │       └── return_code.py
    │   ├── self_version_not_ok/
    │   │   └── pyproject.toml
    │   ├── self_version_not_ok_invalid_config/
    │   │   └── pyproject.toml
    │   ├── self_version_ok/
    │   │   └── pyproject.toml
    │   ├── simple_project/
    │   │   ├── LICENSE
    │   │   ├── README.rst
    │   │   ├── dist/
    │   │   │   └── simple_project-1.2.3-py2.py3-none-any.whl
    │   │   ├── pyproject.toml
    │   │   └── simple_project/
    │   │       └── __init__.py
    │   ├── simple_project_legacy/
    │   │   ├── LICENSE
    │   │   ├── README.rst
    │   │   ├── pyproject.toml
    │   │   └── simple_project/
    │   │       └── __init__.py
    │   ├── up_to_date_lock/
    │   │   └── pyproject.toml
    │   ├── up_to_date_lock_non_package/
    │   │   └── pyproject.toml
    │   ├── wheel_with_no_requires_dist/
    │   │   └── demo-0.1.0-py2.py3-none-any.whl
    │   ├── with-include/
    │   │   ├── LICENSE
    │   │   ├── README.rst
    │   │   ├── extra_dir/
    │   │   │   ├── README.md
    │   │   │   ├── __init__.py
    │   │   │   ├── sub_pkg/
    │   │   │   │   ├── __init__.py
    │   │   │   │   └── vcs_excluded.txt
    │   │   │   └── vcs_excluded.txt
    │   │   ├── for_wheel_only/
    │   │   │   └── __init__.py
    │   │   ├── my_module.py
    │   │   ├── notes.txt
    │   │   ├── package_with_include/
    │   │   │   └── __init__.py
    │   │   ├── pyproject.toml
    │   │   ├── src/
    │   │   │   └── src_package/
    │   │   │       └── __init__.py
    │   │   └── tests/
    │   │       └── __init__.py
    │   ├── with_conditional_path_deps/
    │   │   ├── demo_one/
    │   │   │   └── pyproject.toml
    │   │   ├── demo_two/
    │   │   │   └── pyproject.toml
    │   │   └── pyproject.toml
    │   ├── with_explicit_pypi_and_other/
    │   │   └── pyproject.toml
    │   ├── with_explicit_pypi_and_other_explicit/
    │   │   └── pyproject.toml
    │   ├── with_explicit_pypi_no_other/
    │   │   └── pyproject.toml
    │   ├── with_explicit_source/
    │   │   └── pyproject.toml
    │   ├── with_local_config/
    │   │   ├── README.rst
    │   │   ├── poetry.toml
    │   │   └── pyproject.toml
    │   ├── with_multiple_dist_dir/
    │   │   ├── README.rst
    │   │   ├── dist/
    │   │   │   └── simple_project-1.2.3-py2.py3-none-any.whl
    │   │   ├── other_dist/
    │   │   │   └── dist/
    │   │   │       └── simple_project-1.2.3-py2.py3-none-any.whl
    │   │   ├── pyproject.toml
    │   │   └── simple_project/
    │   │       └── __init__.py
    │   ├── with_multiple_readme_files/
    │   │   ├── README-1.rst
    │   │   ├── README-2.rst
    │   │   ├── my_package/
    │   │   │   └── __init__.py
    │   │   └── pyproject.toml
    │   ├── with_multiple_sources/
    │   │   └── pyproject.toml
    │   ├── with_multiple_sources_pypi/
    │   │   └── pyproject.toml
    │   ├── with_multiple_supplemental_sources/
    │   │   └── pyproject.toml
    │   ├── with_path_dependency/
    │   │   ├── bazz/
    │   │   │   └── pyproject.toml
    │   │   └── pyproject.toml
    │   ├── with_primary_source_explicit/
    │   │   └── pyproject.toml
    │   ├── with_primary_source_implicit/
    │   │   └── pyproject.toml
    │   ├── with_source/
    │   │   ├── README.rst
    │   │   └── pyproject.toml
    │   └── with_supplemental_source/
    │       └── pyproject.toml
    ├── helpers.py
    ├── inspection/
    │   ├── __init__.py
    │   ├── test_info.py
    │   └── test_lazy_wheel.py
    ├── installation/
    │   ├── __init__.py
    │   ├── conftest.py
    │   ├── fixtures/
    │   │   ├── extras-with-dependencies.test
    │   │   ├── extras.test
    │   │   ├── install-no-dev.test
    │   │   ├── no-dependencies.test
    │   │   ├── remove.test
    │   │   ├── update-with-lock.test
    │   │   ├── update-with-locked-extras.test
    │   │   ├── with-conditional-dependency.test
    │   │   ├── with-conflicting-dependency-extras-root.test
    │   │   ├── with-conflicting-dependency-extras-transitive.test
    │   │   ├── with-dependencies-differing-extras.test
    │   │   ├── with-dependencies-extras.test
    │   │   ├── with-dependencies-nested-extras.test
    │   │   ├── with-dependencies.test
    │   │   ├── with-directory-dependency-poetry-transitive.test
    │   │   ├── with-directory-dependency-poetry.test
    │   │   ├── with-directory-dependency-setuptools.test
    │   │   ├── with-duplicate-dependencies-update.test
    │   │   ├── with-duplicate-dependencies.test
    │   │   ├── with-exclusive-extras.test
    │   │   ├── with-file-dependency-transitive.test
    │   │   ├── with-file-dependency.test
    │   │   ├── with-multiple-updates.test
    │   │   ├── with-optional-dependencies.test
    │   │   ├── with-platform-dependencies.test
    │   │   ├── with-prereleases.test
    │   │   ├── with-pypi-repository.test
    │   │   ├── with-python-versions.test
    │   │   ├── with-same-version-url-dependencies.test
    │   │   ├── with-self-referencing-extras-all-deep.test
    │   │   ├── with-self-referencing-extras-all-top.test
    │   │   ├── with-self-referencing-extras-b-markers.test
    │   │   ├── with-self-referencing-extras-deep.test
    │   │   ├── with-self-referencing-extras-download-deep.test
    │   │   ├── with-self-referencing-extras-download-top.test
    │   │   ├── with-self-referencing-extras-install-deep.test
    │   │   ├── with-self-referencing-extras-install-download-deep.test
    │   │   ├── with-self-referencing-extras-install-download-top.test
    │   │   ├── with-self-referencing-extras-install-top.test
    │   │   ├── with-self-referencing-extras-nested-deep.test
    │   │   ├── with-self-referencing-extras-nested-top.test
    │   │   ├── with-self-referencing-extras-top.test
    │   │   ├── with-sub-dependencies.test
    │   │   ├── with-url-dependency.test
    │   │   ├── with-vcs-dependency-with-extras.test
    │   │   ├── with-vcs-dependency-without-ref.test
    │   │   └── with-wheel-dependency-no-requires-dist.test
    │   ├── test_chef.py
    │   ├── test_chooser.py
    │   ├── test_chooser_errors.py
    │   ├── test_executor.py
    │   ├── test_installer.py
    │   └── test_wheel_installer.py
    ├── integration/
    │   ├── __init__.py
    │   └── test_utils_vcs_git.py
    ├── json/
    │   ├── __init__.py
    │   ├── fixtures/
    │   │   ├── build_constraints.toml
    │   │   ├── self_invalid_plugin.toml
    │   │   ├── self_invalid_version.toml
    │   │   ├── self_valid.toml
    │   │   └── source/
    │   │       ├── complete_invalid_priority.toml
    │   │       ├── complete_invalid_url.toml
    │   │       └── complete_valid.toml
    │   └── test_schema.py
    ├── masonry/
    │   └── builders/
    │       ├── __init__.py
    │       ├── fixtures/
    │       │   └── excluded_subpackage/
    │       │       ├── README.rst
    │       │       ├── example/
    │       │       │   ├── __init__.py
    │       │       │   └── test/
    │       │       │       ├── __init__.py
    │       │       │       └── excluded.py
    │       │       └── pyproject.toml
    │       └── test_editable_builder.py
    ├── mixology/
    │   ├── __init__.py
    │   ├── helpers.py
    │   ├── test_incompatibility.py
    │   └── version_solver/
    │       ├── __init__.py
    │       ├── conftest.py
    │       ├── test_backtracking.py
    │       ├── test_basic_graph.py
    │       ├── test_dependency_cache.py
    │       ├── test_python_constraint.py
    │       ├── test_unsolvable.py
    │       └── test_with_lock.py
    ├── packages/
    │   ├── __init__.py
    │   ├── test_direct_origin.py
    │   ├── test_locker.py
    │   └── test_transitive_package_info.py
    ├── plugins/
    │   ├── __init__.py
    │   └── test_plugin_manager.py
    ├── publishing/
    │   ├── __init__.py
    │   ├── test_hash_manager.py
    │   ├── test_publisher.py
    │   └── test_uploader.py
    ├── puzzle/
    │   ├── __init__.py
    │   ├── conftest.py
    │   ├── test_provider.py
    │   ├── test_solver.py
    │   ├── test_solver_internals.py
    │   └── test_transaction.py
    ├── pyproject/
    │   ├── __init__.py
    │   ├── conftest.py
    │   ├── test_pyproject_toml.py
    │   └── test_pyproject_toml_file.py
    ├── repositories/
    │   ├── __init__.py
    │   ├── conftest.py
    │   ├── fixtures/
    │   │   ├── __init__.py
    │   │   ├── distribution_hashes.py
    │   │   ├── installed/
    │   │   │   ├── lib/
    │   │   │   │   └── python3.7/
    │   │   │   │       └── site-packages/
    │   │   │   │           ├── cleo-0.7.6.dist-info/
    │   │   │   │           │   └── METADATA
    │   │   │   │           ├── directory_pep_610-1.2.3.dist-info/
    │   │   │   │           │   ├── METADATA
    │   │   │   │           │   └── direct_url.json
    │   │   │   │           ├── editable-2.3.4.dist-info/
    │   │   │   │           │   └── METADATA
    │   │   │   │           ├── editable-src-dir-2.3.4.dist-info/
    │   │   │   │           │   └── METADATA
    │   │   │   │           ├── editable-src-dir.pth
    │   │   │   │           ├── editable-with-import-2.3.4.dist-info/
    │   │   │   │           │   └── METADATA
    │   │   │   │           ├── editable-with-import.pth
    │   │   │   │           ├── editable.pth
    │   │   │   │           ├── editable_directory_pep_610-1.2.3.dist-info/
    │   │   │   │           │   ├── METADATA
    │   │   │   │           │   └── direct_url.json
    │   │   │   │           ├── file_pep_610-1.2.3.dist-info/
    │   │   │   │           │   ├── METADATA
    │   │   │   │           │   └── direct_url.json
    │   │   │   │           ├── foo-0.1.0-py3.8.egg
    │   │   │   │           ├── git_pep_610-1.2.3.dist-info/
    │   │   │   │           │   ├── METADATA
    │   │   │   │           │   └── direct_url.json
    │   │   │   │           ├── git_pep_610_no_requested_version-1.2.3.dist-info/
    │   │   │   │           │   ├── METADATA
    │   │   │   │           │   └── direct_url.json
    │   │   │   │           ├── git_pep_610_subdirectory-1.2.3.dist-info/
    │   │   │   │           │   ├── METADATA
    │   │   │   │           │   └── direct_url.json
    │   │   │   │           ├── standard-1.2.3.dist-info/
    │   │   │   │           │   └── METADATA
    │   │   │   │           ├── standard.pth
    │   │   │   │           └── url_pep_610-1.2.3.dist-info/
    │   │   │   │               ├── METADATA
    │   │   │   │               └── direct_url.json
    │   │   │   ├── lib64/
    │   │   │   │   └── python3.7/
    │   │   │   │       └── site-packages/
    │   │   │   │           ├── bender-2.0.5.dist-info/
    │   │   │   │           │   └── METADATA
    │   │   │   │           ├── bender.pth
    │   │   │   │           └── lib64-2.3.4.dist-info/
    │   │   │   │               └── METADATA
    │   │   │   ├── src/
    │   │   │   │   ├── bender/
    │   │   │   │   │   └── bender.egg-info/
    │   │   │   │   │       └── PKG-INFO
    │   │   │   │   └── pendulum/
    │   │   │   │       └── pendulum.egg-info/
    │   │   │   │           ├── PKG-INFO
    │   │   │   │           └── requires.txt
    │   │   │   └── vendor/
    │   │   │       └── py3.7/
    │   │   │           └── attrs-19.3.0.dist-info/
    │   │   │               └── METADATA
    │   │   ├── legacy/
    │   │   │   ├── absolute.html
    │   │   │   ├── black.html
    │   │   │   ├── clikit.html
    │   │   │   ├── demo.html
    │   │   │   ├── discord-py.html
    │   │   │   ├── futures-partial-yank.html
    │   │   │   ├── futures.html
    │   │   │   ├── invalid-version.html
    │   │   │   ├── ipython.html
    │   │   │   ├── isort-metadata.html
    │   │   │   ├── isort.html
    │   │   │   ├── json/
    │   │   │   │   ├── _readme
    │   │   │   │   ├── absolute.json
    │   │   │   │   ├── demo.json
    │   │   │   │   ├── invalid-version.json
    │   │   │   │   ├── isort-metadata.json
    │   │   │   │   ├── jupyter.json
    │   │   │   │   ├── poetry-test-py2-py3-metadata-merge.json
    │   │   │   │   ├── relative.json
    │   │   │   │   └── sqlalchemy-legacy.json
    │   │   │   ├── jupyter.html
    │   │   │   ├── missing-version.html
    │   │   │   ├── pastel.html
    │   │   │   ├── poetry-test-py2-py3-metadata-merge.html
    │   │   │   ├── pytest-with-extra-packages.html
    │   │   │   ├── pytest.html
    │   │   │   ├── python-language-server.html
    │   │   │   ├── pyyaml.html
    │   │   │   ├── relative.html
    │   │   │   ├── sqlalchemy-legacy.html
    │   │   │   └── tomlkit.html
    │   │   ├── legacy.py
    │   │   ├── pypi.org/
    │   │   │   ├── dists/
    │   │   │   │   ├── mocked/
    │   │   │   │   │   ├── poetry_test_py2_py3_metadata_merge-0.1.0-py2-none-any.whl
    │   │   │   │   │   └── poetry_test_py2_py3_metadata_merge-0.1.0-py3-none-any.whl
    │   │   │   │   ├── poetry_core-1.5.0-py3-none-any.whl
    │   │   │   │   ├── poetry_core-2.0.1-py3-none-any.whl
    │   │   │   │   ├── setuptools-67.6.1-py3-none-any.whl
    │   │   │   │   └── wheel-0.40.0-py3-none-any.whl
    │   │   │   ├── generate.py
    │   │   │   ├── json/
    │   │   │   │   ├── attrs/
    │   │   │   │   │   └── 17.4.0.json
    │   │   │   │   ├── attrs.json
    │   │   │   │   ├── black/
    │   │   │   │   │   ├── 19.10b0.json
    │   │   │   │   │   └── 21.11b0.json
    │   │   │   │   ├── black.json
    │   │   │   │   ├── cleo/
    │   │   │   │   │   └── 1.0.0a5.json
    │   │   │   │   ├── cleo.json
    │   │   │   │   ├── clikit/
    │   │   │   │   │   └── 0.2.4.json
    │   │   │   │   ├── clikit.json
    │   │   │   │   ├── colorama/
    │   │   │   │   │   └── 0.3.9.json
    │   │   │   │   ├── colorama.json
    │   │   │   │   ├── discord-py/
    │   │   │   │   │   └── 2.0.0.json
    │   │   │   │   ├── discord-py.json
    │   │   │   │   ├── filecache/
    │   │   │   │   │   └── 0.81.json
    │   │   │   │   ├── filecache.json
    │   │   │   │   ├── funcsigs/
    │   │   │   │   │   └── 1.0.2.json
    │   │   │   │   ├── funcsigs.json
    │   │   │   │   ├── futures/
    │   │   │   │   │   └── 3.2.0.json
    │   │   │   │   ├── futures.json
    │   │   │   │   ├── hbmqtt/
    │   │   │   │   │   └── 0.9.6.json
    │   │   │   │   ├── hbmqtt.json
    │   │   │   │   ├── importlib-metadata/
    │   │   │   │   │   └── 1.7.0.json
    │   │   │   │   ├── importlib-metadata.json
    │   │   │   │   ├── ipython/
    │   │   │   │   │   ├── 4.1.0rc1.json
    │   │   │   │   │   ├── 5.7.0.json
    │   │   │   │   │   └── 7.5.0.json
    │   │   │   │   ├── ipython.json
    │   │   │   │   ├── isodate/
    │   │   │   │   │   └── 0.7.0.json
    │   │   │   │   ├── isodate.json
    │   │   │   │   ├── isort/
    │   │   │   │   │   └── 4.3.4.json
    │   │   │   │   ├── isort-metadata.json
    │   │   │   │   ├── isort.json
    │   │   │   │   ├── jupyter/
    │   │   │   │   │   └── 1.0.0.json
    │   │   │   │   ├── jupyter.json
    │   │   │   │   ├── mocked/
    │   │   │   │   │   ├── invalid-version-package.json
    │   │   │   │   │   ├── isort-metadata/
    │   │   │   │   │   │   └── 4.3.4.json
    │   │   │   │   │   ├── six-unknown-version/
    │   │   │   │   │   │   └── 1.11.0.json
    │   │   │   │   │   ├── six-unknown-version.json
    │   │   │   │   │   ├── with-extra-dependency/
    │   │   │   │   │   │   └── 0.12.4.json
    │   │   │   │   │   ├── with-extra-dependency.json
    │   │   │   │   │   ├── with-transitive-extra-dependency/
    │   │   │   │   │   │   └── 0.12.4.json
    │   │   │   │   │   └── with-transitive-extra-dependency.json
    │   │   │   │   ├── more-itertools/
    │   │   │   │   │   └── 4.1.0.json
    │   │   │   │   ├── more-itertools.json
    │   │   │   │   ├── pastel/
    │   │   │   │   │   └── 0.1.0.json
    │   │   │   │   ├── pastel.json
    │   │   │   │   ├── pluggy/
    │   │   │   │   │   └── 0.6.0.json
    │   │   │   │   ├── pluggy.json
    │   │   │   │   ├── poetry-core/
    │   │   │   │   │   ├── 1.5.0.json
    │   │   │   │   │   └── 2.0.1.json
    │   │   │   │   ├── poetry-core.json
    │   │   │   │   ├── py/
    │   │   │   │   │   └── 1.5.3.json
    │   │   │   │   ├── py.json
    │   │   │   │   ├── pylev/
    │   │   │   │   │   └── 1.3.0.json
    │   │   │   │   ├── pylev.json
    │   │   │   │   ├── pytest/
    │   │   │   │   │   ├── 3.5.0.json
    │   │   │   │   │   └── 3.5.1.json
    │   │   │   │   ├── pytest.json
    │   │   │   │   ├── python-language-server/
    │   │   │   │   │   └── 0.21.2.json
    │   │   │   │   ├── python-language-server.json
    │   │   │   │   ├── pyyaml/
    │   │   │   │   │   └── 3.13.0.json
    │   │   │   │   ├── pyyaml.json
    │   │   │   │   ├── requests/
    │   │   │   │   │   ├── 2.18.0.json
    │   │   │   │   │   ├── 2.18.1.json
    │   │   │   │   │   ├── 2.18.2.json
    │   │   │   │   │   ├── 2.18.3.json
    │   │   │   │   │   ├── 2.18.4.json
    │   │   │   │   │   └── 2.19.0.json
    │   │   │   │   ├── requests.json
    │   │   │   │   ├── setuptools/
    │   │   │   │   │   ├── 39.2.0.json
    │   │   │   │   │   └── 67.6.1.json
    │   │   │   │   ├── setuptools.json
    │   │   │   │   ├── six/
    │   │   │   │   │   └── 1.11.0.json
    │   │   │   │   ├── six.json
    │   │   │   │   ├── sqlalchemy/
    │   │   │   │   │   └── 1.2.12.json
    │   │   │   │   ├── sqlalchemy.json
    │   │   │   │   ├── toga/
    │   │   │   │   │   ├── 0.3.0.json
    │   │   │   │   │   ├── 0.3.0dev1.json
    │   │   │   │   │   ├── 0.3.0dev2.json
    │   │   │   │   │   └── 0.4.0.json
    │   │   │   │   ├── toga.json
    │   │   │   │   ├── tomlkit/
    │   │   │   │   │   ├── 0.5.2.json
    │   │   │   │   │   └── 0.5.3.json
    │   │   │   │   ├── tomlkit.json
    │   │   │   │   ├── twisted/
    │   │   │   │   │   └── 18.9.0.json
    │   │   │   │   ├── twisted.json
    │   │   │   │   ├── wheel/
    │   │   │   │   │   └── 0.40.0.json
    │   │   │   │   ├── wheel.json
    │   │   │   │   ├── zipp/
    │   │   │   │   │   └── 3.5.0.json
    │   │   │   │   └── zipp.json
    │   │   │   ├── metadata/
    │   │   │   │   ├── PyYAML-3.13-cp27-cp27m-win32.whl.metadata
    │   │   │   │   ├── PyYAML-3.13-cp27-cp27m-win_amd64.whl.metadata
    │   │   │   │   ├── PyYAML-3.13-cp34-cp34m-win32.whl.metadata
    │   │   │   │   ├── PyYAML-3.13-cp34-cp34m-win_amd64.whl.metadata
    │   │   │   │   ├── PyYAML-3.13-cp35-cp35m-win32.whl.metadata
    │   │   │   │   ├── PyYAML-3.13-cp35-cp35m-win_amd64.whl.metadata
    │   │   │   │   ├── PyYAML-3.13-cp36-cp36m-win32.whl.metadata
    │   │   │   │   ├── PyYAML-3.13-cp36-cp36m-win_amd64.whl.metadata
    │   │   │   │   ├── PyYAML-3.13-cp37-cp37m-win32.whl.metadata
    │   │   │   │   ├── PyYAML-3.13-cp37-cp37m-win_amd64.whl.metadata
    │   │   │   │   ├── attrs-17.4.0-py2.py3-none-any.whl.metadata
    │   │   │   │   ├── black-19.10b0-py36-none-any.whl.metadata
    │   │   │   │   ├── black-21.11b0-py3-none-any.whl.metadata
    │   │   │   │   ├── cleo-1.0.0a5-py3-none-any.whl.metadata
    │   │   │   │   ├── clikit-0.2.4-py2.py3-none-any.whl.metadata
    │   │   │   │   ├── colorama-0.3.9-py2.py3-none-any.whl.metadata
    │   │   │   │   ├── discord.py-2.0.0-py3-none-any.whl.metadata
    │   │   │   │   ├── filecache-0.81-py3-none-any.whl.metadata
    │   │   │   │   ├── funcsigs-1.0.2-py2.py3-none-any.whl.metadata
    │   │   │   │   ├── futures-3.2.0-py2-none-any.whl.metadata
    │   │   │   │   ├── importlib_metadata-1.7.0-py2.py3-none-any.whl.metadata
    │   │   │   │   ├── ipython-4.1.0rc1-py2.py3-none-any.whl.metadata
    │   │   │   │   ├── ipython-5.7.0-py2-none-any.whl.metadata
    │   │   │   │   ├── ipython-5.7.0-py3-none-any.whl.metadata
    │   │   │   │   ├── ipython-7.5.0-py3-none-any.whl.metadata
    │   │   │   │   ├── isodate-0.7.0-py3-none-any.whl.metadata
    │   │   │   │   ├── isort-4.3.4-py2-none-any.whl.metadata
    │   │   │   │   ├── isort-4.3.4-py3-none-any.whl.metadata
    │   │   │   │   ├── isort-metadata-4.3.4-py2-none-any.whl.metadata
    │   │   │   │   ├── isort-metadata-4.3.4-py3-none-any.whl.metadata
    │   │   │   │   ├── jupyter-1.0.0-py2.py3-none-any.whl.metadata
    │   │   │   │   ├── mocked/
    │   │   │   │   │   ├── with_extra_dependency-0.12.4-py3-none-any.whl.metadata
    │   │   │   │   │   └── with_transitive_extra_dependency-0.12.4-py3-none-any.whl.metadata
    │   │   │   │   ├── more_itertools-4.1.0-py2-none-any.whl.metadata
    │   │   │   │   ├── more_itertools-4.1.0-py3-none-any.whl.metadata
    │   │   │   │   ├── pastel-0.1.0-py3-none-any.whl.metadata
    │   │   │   │   ├── pluggy-0.6.0-py2-none-any.whl.metadata
    │   │   │   │   ├── pluggy-0.6.0-py3-none-any.whl.metadata
    │   │   │   │   ├── poetry_core-1.5.0-py3-none-any.whl.metadata
    │   │   │   │   ├── poetry_core-2.0.1-py3-none-any.whl.metadata
    │   │   │   │   ├── py-1.5.3-py2.py3-none-any.whl.metadata
    │   │   │   │   ├── pylev-1.3.0-py2.py3-none-any.whl.metadata
    │   │   │   │   ├── pytest-3.5.0-py2.py3-none-any.whl.metadata
    │   │   │   │   ├── pytest-3.5.1-py2.py3-none-any.whl.metadata
    │   │   │   │   ├── requests-2.18.0-py2.py3-none-any.whl.metadata
    │   │   │   │   ├── requests-2.18.1-py2.py3-none-any.whl.metadata
    │   │   │   │   ├── requests-2.18.2-py2.py3-none-any.whl.metadata
    │   │   │   │   ├── requests-2.18.3-py2.py3-none-any.whl.metadata
    │   │   │   │   ├── requests-2.18.4-py2.py3-none-any.whl.metadata
    │   │   │   │   ├── requests-2.19.0-py2.py3-none-any.whl.metadata
    │   │   │   │   ├── setuptools-39.2.0-py2.py3-none-any.whl.metadata
    │   │   │   │   ├── setuptools-67.6.1-py3-none-any.whl.metadata
    │   │   │   │   ├── six-1.11.0-py2.py3-none-any.whl.metadata
    │   │   │   │   ├── toga-0.3.0-py3-none-any.whl.metadata
    │   │   │   │   ├── toga-0.3.0.dev1-py3-none-any.whl.metadata
    │   │   │   │   ├── toga-0.3.0.dev2-py3-none-any.whl.metadata
    │   │   │   │   ├── toga-0.4.0-py3-none-any.whl.metadata
    │   │   │   │   ├── tomlkit-0.5.2-py2.py3-none-any.whl.metadata
    │   │   │   │   ├── tomlkit-0.5.3-py2.py3-none-any.whl.metadata
    │   │   │   │   ├── wheel-0.40.0-py3-none-any.whl.metadata
    │   │   │   │   └── zipp-3.5.0-py3-none-any.whl.metadata
    │   │   │   ├── search/
    │   │   │   │   ├── search-disallowed.html
    │   │   │   │   └── search.html
    │   │   │   └── stubbed/
    │   │   │       ├── Twisted-18.9.0.tar.bz2
    │   │   │       ├── attrs-17.4.0-py2.py3-none-any.whl
    │   │   │       ├── black-19.10b0-py36-none-any.whl
    │   │   │       ├── black-21.11b0-py3-none-any.whl
    │   │   │       ├── cleo-1.0.0a5-py3-none-any.whl
    │   │   │       ├── clikit-0.2.4-py2.py3-none-any.whl
    │   │   │       ├── colorama-0.3.9-py2.py3-none-any.whl
    │   │   │       ├── discord.py-2.0.0-py3-none-any.whl
    │   │   │       ├── futures-3.2.0-py2-none-any.whl
    │   │   │       ├── ipython-5.7.0-py2-none-any.whl
    │   │   │       ├── ipython-5.7.0-py3-none-any.whl
    │   │   │       ├── ipython-7.5.0-py3-none-any.whl
    │   │   │       ├── isodate-0.7.0-py3-none-any.whl
    │   │   │       ├── isort-4.3.4-py2-none-any.whl
    │   │   │       ├── isort-4.3.4-py3-none-any.whl
    │   │   │       ├── jupyter-1.0.0-py2.py3-none-any.whl
    │   │   │       ├── more_itertools-4.1.0-py2-none-any.whl
    │   │   │       ├── more_itertools-4.1.0-py3-none-any.whl
    │   │   │       ├── pastel-0.1.0-py3-none-any.whl
    │   │   │       ├── pluggy-0.6.0-py2-none-any.whl
    │   │   │       ├── pluggy-0.6.0-py3-none-any.whl
    │   │   │       ├── py-1.5.3-py2.py3-none-any.whl
    │   │   │       ├── pytest-3.5.0-py2.py3-none-any.whl
    │   │   │       ├── pytest-3.5.1-py2.py3-none-any.whl
    │   │   │       ├── requests-2.18.4-py2.py3-none-any.whl
    │   │   │       ├── six-1.11.0-py2.py3-none-any.whl
    │   │   │       ├── tomlkit-0.5.2-py2.py3-none-any.whl
    │   │   │       ├── tomlkit-0.5.3-py2.py3-none-any.whl
    │   │   │       └── zipp-3.5.0-py3-none-any.whl
    │   │   ├── pypi.py
    │   │   ├── python_hosted.py
    │   │   └── single-page/
    │   │       ├── jax_releases.html
    │   │       └── mmcv_torch_releases.html
    │   ├── link_sources/
    │   │   ├── __init__.py
    │   │   ├── test_base.py
    │   │   ├── test_html.py
    │   │   └── test_json.py
    │   ├── parsers/
    │   │   ├── __init__.py
    │   │   ├── test_html_page_parser.py
    │   │   └── test_pypi_search_parser.py
    │   ├── test_cached_repository.py
    │   ├── test_http_repository.py
    │   ├── test_installed_repository.py
    │   ├── test_legacy_repository.py
    │   ├── test_lockfile_repository.py
    │   ├── test_pypi_repository.py
    │   ├── test_repository.py
    │   ├── test_repository_pool.py
    │   └── test_single_page_repository.py
    ├── test_conftest.py
    ├── test_factory.py
    ├── test_helpers.py
    ├── types.py
    ├── utils/
    │   ├── __init__.py
    │   ├── conftest.py
    │   ├── env/
    │   │   ├── __init__.py
    │   │   ├── conftest.py
    │   │   ├── python/
    │   │   │   ├── __init__.py
    │   │   │   ├── test_manager.py
    │   │   │   ├── test_python_installer.py
    │   │   │   └── test_python_providers.py
    │   │   ├── test_env.py
    │   │   ├── test_env_manager.py
    │   │   ├── test_env_site_packages.py
    │   │   └── test_system_env.py
    │   ├── fixtures/
    │   │   └── pyproject.toml
    │   ├── test_authenticator.py
    │   ├── test_cache.py
    │   ├── test_dependency_specification.py
    │   ├── test_extras.py
    │   ├── test_helpers.py
    │   ├── test_isolated_build.py
    │   ├── test_log_utils.py
    │   ├── test_password_manager.py
    │   ├── test_patterns.py
    │   ├── test_pip.py
    │   ├── test_python_manager.py
    │   └── test_threading.py
    └── vcs/
        └── git/
            ├── conftest.py
            ├── git_fixture.py
            ├── test_backend.py
            └── test_system.py

================================================
FILE CONTENTS
================================================

================================================
FILE: .cirrus.yml
================================================
tests_task:
  # We only use Cirrus CI for FreeBSD at present; the rest of the task will assume FreeBSD.
  freebsd_instance:
    image_family: freebsd-14-3
    # Cirrus has a concurrency limit of 8 vCPUs for FreeBSD. Allow executing 4 tasks in parallel.
    cpu: 2
    memory: 2G

  env:
    matrix:
      - PYTHON: python3.11
        PYTHON_VERSION: 3.11
        PYTHON_PACKAGE: python311
        SQLITE_PACKAGE: py311-sqlite3
      # FIXME: Python 3.12 is not available in Ports.
      # - PYTHON: python3.12
      #   PYTHON_VERSION: 3.12
      #   PYTHON_PACKAGE: python312
      #   SQLITE_PACKAGE: py312-sqlite3
    # FIXME: use pipx for install. pipx is currently broken in Ports.
    POETRY_HOME: /opt/poetry
    # SHELL is not set by default, and we have tests that depend on it.
    SHELL: sh

  bootstrap_poetry_script:
    - pkg install -y git $PYTHON_PACKAGE $SQLITE_PACKAGE
    - $PYTHON -m venv $POETRY_HOME
    - $POETRY_HOME/bin/pip install poetry
    - echo "PATH=${POETRY_HOME}/bin:${PATH}" >> $CIRRUS_ENV

  setup_environment_script:
    # TODO: caching
    - poetry install
    - poetry env info
    - poetry show

  matrix:
    - alias: pytest
      name: "Tests / FreeBSD (Python ${PYTHON_VERSION}) / pytest"
      skip: "!changesInclude('.cirrus.yml', 'poetry.lock', 'pyproject.toml', 'src/**.py', 'tests/**')"
      pytest_script: poetry run pytest --integration -v --junitxml=junit.xml
      on_failure:
        annotate_failure_artifacts:
          path: junit.xml
          format: junit
          type: text/xml

status_task:
  name: "Tests / FreeBSD Status"

  depends_on:
    - pytest

  container:
    image: alpine:latest
    cpu: 0.5
    memory: 512M

  # No-op the clone.
  clone_script: true


================================================
FILE: .gitattributes
================================================
# Do not mess with line endings in metadata files or the hash will be wrong.
*.metadata binary


================================================
FILE: .github/ISSUE_TEMPLATE/---bug-report.yml
================================================
name: "\U0001F41E Bug Report"
labels: ["kind/bug", "status/triage"]
description: "Poetry not working the way it is documented?"

body:
  - type: markdown
    attributes:
      value: |
        Thank you for taking the time to file a complete bug report.

        Before submitting your issue, please review the [Before submitting a bug report](https://python-poetry.org/docs/contributing/#before-submitting-a-bug-report) section of our documentation.

  - type: textarea
    attributes:
      label: Description
      description: |
        Please describe what happened, with as much pertinent information as you can. Feel free to use markdown syntax.

        Also, ensure that the issue is not already fixed in the [latest](https://github.com/python-poetry/poetry/releases/latest) Poetry release.
    validations:
      required: true

  - type: textarea
    attributes:
      label: Workarounds
      description: |
        Is there a mitigation or workaround that allows users to avoid the issue today?
    validations:
      required: true

  - type: dropdown
    attributes:
      label: Poetry Installation Method
      description: |
        How did you install Poetry?
      options:
        - "pipx"
        - "install.python-poetry.org"
        - "system package manager (eg: dnf, apt etc.)"
        - "pip"
        - "other"
    validations:
      required: true

  - type: input
    attributes:
      label: Operating System
      description: |
        What Operating System are you using?
      placeholder: "Fedora 39"
    validations:
      required: true

  - type: input
    attributes:
      label: Poetry Version
      description: |
        Please attach output from `poetry --version`
    validations:
      required: true

  - type: textarea
    attributes:
      label: Poetry Configuration
      description: |
        Please attach output from `poetry config --list`
      render: 'bash session'
    validations:
      required: true

  - type: textarea
    attributes:
      label: Python Sysconfig
      description: |
        Please attach output from `python -m sysconfig`
        Note:_ You can paste the output into the placeholder below. If it is too long, you can attach it as a file.
      value: |
        <details>
          <summary>sysconfig.log</summary>
          <!-- Please leave one blank line below for enabling the code block rendering. -->

          ```
          Paste the output of 'python -m sysconfig', over this line.
          ```
        </details>
    validations:
      required: false

  - type: textarea
    attributes:
      label: Example pyproject.toml
      description: |
        Please provide an example `pyproject.toml` demonstrating the issue.
      render: 'TOML'
    validations:
      required: false

  - type: textarea
    attributes:
      label: Poetry Runtime Logs
      description: |
        Please attach logs from the failing command using `poetry -vvv <command>`
        Note:_ You can paste the output into the placeholder below. If it is too long, you can attach it as a file.
      value: |
        <details>
          <summary>poetry-runtime.log</summary>
          <!-- Please leave one blank line below for enabling the code block rendering. -->

          ```
          Paste the output of 'poetry -vvv <command>', over this line.
          ```
        </details>
    validations:
      required: true


================================================
FILE: .github/ISSUE_TEMPLATE/---documentation.yml
================================================
name: "\U0001F4DA Documentation Issue"
labels: ["area/docs", "status/triage"]
description: "Did you find errors, omissions, or anything unintelligible in the documentation?"

body:
  - type: markdown
    attributes:
      value: |
        Thank you for taking the time to file a complete bug report.

        Before submitting your issue, please review the [Suggesting enhancements](https://python-poetry.org/docs/contributing/#suggesting-enhancements) section of our documentation.

        Please also confirm the following:
        - You have searched the [issues](https://github.com/python-poetry/poetry/issues) of this repository and believe that this is not a duplicate.
        - You have searched the [FAQ](https://python-poetry.org/docs/faq/) and general [documentation](https://python-poetry.org/docs/) and believe that your question is not already covered.

  - type: dropdown
    attributes:
      label: Issue Kind
      description: |
        What best describes the issue?
      options:
        - "Improving documentation"
        - "Missing documentation"
        - "Error in existing documentation"
        - "Unclear documentation"
        - "Other concerns with documentation"
    validations:
      required: true

  - type: input
    attributes:
      label: Existing Link
      description: |
        If the documentation in question exists, please provide a link to it.
      placeholder: "https://python-poetry.org/docs/dependency-specification/#version-constraints"
    validations:
      required: true

  - type: textarea
    attributes:
      label: Description
      description: |
        Please describe the feature, with as much pertinent information as you can. Feel free to use markdown syntax.
    validations:
      required: true


================================================
FILE: .github/ISSUE_TEMPLATE/---feature-request.yml
================================================
name: "\U0001F381 Feature Request"
labels: ["kind/feature", "status/triage"]
description: "Want something new?"

body:
  - type: markdown
    attributes:
      value: |
        Thank you for taking the time to file a complete bug report.

        Before submitting your issue, please search [issues](https://github.com/python-poetry/poetry/issues) to ensure this is not a duplicate.

        If the issue is trivial, why not submit a pull request instead?

  - type: dropdown
    attributes:
      label: Issue Kind
      description: |
        What best describes this issue?
      options:
        - "Brand new capability"
        - "Change in current behaviour"
        - "Other"
    validations:
      required: true

  - type: textarea
    attributes:
      label: Description
      description: |
        Please describe the issue, with as much pertinent information as you can. Feel free to use markdown syntax.

        Also, ensure that the issue is not already fixed in the [development documentation](https://python-poetry.org/docs/main/).
    validations:
      required: true

  - type: textarea
    attributes:
      label: Impact
      description: |
        Please describe the motivation for this issue. Describe, as best you can, how this improves or impacts the users of Poetry and why this is important.
    validations:
      required: true

  - type: textarea
    attributes:
      label: Workarounds
      description: |
        Is there a mitigation, workaround, or addon that allows users to achieve the same functionality today?
    validations:
      required: true


================================================
FILE: .github/ISSUE_TEMPLATE/config.yml
================================================
# Ref: https://help.github.com/en/github/building-a-strong-community/configuring-issue-templates-for-your-repository#configuring-the-template-chooser
blank_issues_enabled: false
contact_links:
- name: '💬 Discussions'
  url: https://github.com/python-poetry/poetry/discussions
  about: |
    Ask questions about using Poetry, Poetry's features and roadmap, or get support and feedback for your usage of Poetry.
- name: '💬 Discord Server'
  url: https://discordapp.com/invite/awxPgve
  about: |
    Chat with the community and Poetry maintainers about both the usage of and development of the project.


================================================
FILE: .github/PULL_REQUEST_TEMPLATE.md
================================================
# Pull Request Check List

Resolves: #issue-number-here

<!-- This is just a reminder about the most common mistakes. Please make sure that you tick all *appropriate* boxes.  But please read our [contribution guide](https://python-poetry.org/docs/contributing/) at least once, it will save you unnecessary review cycles! -->

- [ ] Added **tests** for changed code.
- [ ] Updated **documentation** for changed code.

<!-- If you have *any* questions to *any* of the points above, just **submit and ask**!  This checklist is here to *help* you, not to deter you from contributing! -->


================================================
FILE: .github/actions/bootstrap-poetry/action.yaml
================================================
name: Bootstrap Poetry
description: Configure the environment with the specified Python and Poetry version.

inputs:
  python-version:
    description: Desired node-semver compatible Python version expression (or 'default')
    default: 'default'
  python-latest:
    description: Use an uncached Python if a newer match is available
    default: 'false'
  poetry-spec:
    description: pip-compatible installation specification to use for Poetry
    default: 'poetry'

outputs:
  python-path:
    description: Path to the installed Python interpreter
    value: ${{ steps.setup-python.outputs.python-path }}
  python-version:
    description: Version of the installed Python interpreter
    value: ${{ steps.setup-python.outputs.python-version }}

runs:
  using: composite
  steps:
    - uses: actions/setup-python@83679a892e2d95755f2dac6acb0bfd1e9ac5d548 # v6.1.0
      id: setup-python
      if: inputs.python-version != 'default'
      with:
        python-version: ${{ inputs.python-version }}
        check-latest: ${{ inputs.python-latest == 'true' }}
        allow-prereleases: true
        update-environment: false

    - run: pipx install ${PYTHON_PATH:+--python "$PYTHON_PATH"} "${POETRY_SPEC}"
      shell: bash
      env:
        PYTHON_PATH: ${{ inputs.python-version != 'default' && steps.setup-python.outputs.python-path || '' }}
        POETRY_SPEC: ${{ inputs.poetry-spec }}

    # Enable handling long path names (+260 char) on the Windows platform
    # https://docs.microsoft.com/en-us/windows/win32/fileio/naming-a-file#maximum-path-length-limitation
    - run: git config --system core.longpaths true
      if: runner.os == 'Windows'
      shell: pwsh

    # Use Poetry Python for virtual environments
    # (Otherwise, the system Python will be used per default instead of the Python version we just installed)
    - run: poetry config virtualenvs.use-poetry-python true
      shell: bash


================================================
FILE: .github/actions/poetry-install/action.yaml
================================================
name: Poetry Install
description: Run `poetry install` with optional artifact and metadata caching

inputs:
  args:
    description: Arguments for `poetry install`
  cache:
    description: Enable transparent Poetry artifact and metadata caching
    default: 'true'

outputs:
  cache-hit:
    description: Whether an exact cache hit occured
    value: ${{ steps.cache.outputs.cache-hit }}

runs:
  using: composite
  steps:
    - run: printf 'cache-dir=%s\n' "$(poetry config cache-dir)" >> $GITHUB_OUTPUT
      id: poetry-config
      shell: bash

    # Bust the cache every 24 hours to prevent it from expanding over time.
    - run: printf 'date=%s\n' "$(date -I)" >> $GITHUB_OUTPUT
      id: get-date
      if: inputs.cache == 'true'
      shell: bash

    - uses: actions/cache@8b402f58fbc84540c8b491a91e594a4576fec3d7 # v5.0.2
      id: cache
      if: inputs.cache == 'true'
      with:
        path: |
          ${{ steps.poetry-config.outputs.cache-dir }}/artifacts
          ${{ steps.poetry-config.outputs.cache-dir }}/cache
        key: poetry-${{ steps.get-date.outputs.date }}-${{ runner.os }}-${{ hashFiles('pyproject.toml', 'poetry.lock') }}
        # The cache is cross-platform, and other platforms are used to seed cache misses.
        restore-keys: |
          poetry-${{ steps.get-date.outputs.date }}-${{ runner.os }}-
          poetry-${{ steps.get-date.outputs.date }}-
        enableCrossOsArchive: true

    - run: poetry install ${ARGS}
      shell: bash
      env:
        ARGS: ${{ inputs.args }}

    - run: poetry env info
      shell: bash

    - run: poetry show
      shell: bash


================================================
FILE: .github/dependabot.yml
================================================
version: 2

updates:
  - package-ecosystem: "github-actions"
    directory: "/"
    schedule:
      interval: "weekly"
    cooldown:
      default-days: 7
    labels:
      - "area/ci"

  # Grouped updates to reduce PR noise.
  #
  # See:
  #   - https://docs.github.com/en/code-security/dependabot/dependabot-version-updates/optimizing-pr-creation-version-updates#prioritizing-meaningful-updates
  #   - https://docs.github.com/en/code-security/dependabot/working-with-dependabot/dependabot-options-reference#groups--
  - package-ecosystem: "pip"
    directory: "/"
    schedule:
      interval: "monthly"
    cooldown:
      default-days: 7
    labels:
      - "area/project/deps"
    groups:
      production-dependencies:
        dependency-type: "production"
      development-dependencies:
        dependency-type: "development"
    open-pull-requests-limit: 2


================================================
FILE: .github/scripts/backport.sh
================================================
#!/usr/bin/env bash
#
# Copyright 2024 Bjorn Neergaard
#
# This work is licensed under the terms of the MIT license.
# For a copy, see <https://opensource.org/licenses/MIT>.
#
# This script is used to automatically create backport pull requests. It is
# smart enough to require no arguments if run against a PR branch, assuming the
# upstream repo conforms to the default prefixes. Target branches will be
# determined by labels present on the original pull request.
#
# It is capable of handling PRs merged with a commit, by rebase and by
# squash-and-rebase. The backport pull request will have its title, body and
# labels derived from the original. The cherry-picked comments can be signed off,
# and a comment will be created if requested.
#
# In particular, this script assumes the 'origin' remote points to the target
# repository for backports. We also assume we can freely clobber local and remote
# branches using our backport branch naming scheme and that you don't mind if we
# prune your worktrees for you.
#
# This script can push the backport branches to a fork if a corresponding
# --remote is passed.

basename=${0##*/}

# Check for Homebrew-installed getopt on macOS.
for g in /{usr/local,opt/homebrew}/opt/gnu-getopt/bin/getopt; do
    test -x "$g" && : GETOPT="${GETOPT:=$g}" && break
done || : GETOPT="${GETOPT:=getopt}"

"${GETOPT}" --test >/dev/null
if [ $? -ne 4 ]; then
    printf >&2 '%s: GNU getopt is required, please ensure it is available in the PATH\n' "$basename"
    exit 1
fi

if ! command -v gh >/dev/null; then
    printf >&2 "%s: the GitHub CLI (\`gh') is required, please ensure it is available in the PATH\n" "$basename"
fi

usage() {
    printf >&2 '%s -h|--help\n' "$basename"
    printf >&2 '%s [-s|--signoff] [-c|--comment] --pr [pr] --remote [remote] --branch-prefix [prefix] --label-prefix [prefix]\n' "$basename"
}

args="$("${GETOPT}" -o h,s,c -l help,signoff,comment,pr:,remote:,branch-prefix:,label-prefix: -n "$basename" -- "$@")" || exit $?
eval set -- "$args"
unset args

while [ "$#" -gt 0 ]; do
    case "$1" in
    --pr | --remote | --branch-prefix | --label-prefix)
        flag="${1:2}"
        printf -v "${flag//-/_}" '%s' "$2"
        shift 2
        ;;
    -s | --signoff)
        signoff=1
        shift
        ;;
    -c | --comment)
        comment=1
        shift
        ;;
    -h | --help)
        usage
        exit
        ;;
    -- | *)
        shift
        break
        ;;
    esac
done

set -eux -o pipefail

# Determine the number of the target pull request, if not already supplied.
: pr="${pr:=$(gh pr view --json number --jq '.number')}"

# Use the 'origin' remote by default; if a fork is desired, a corresponding remote should
# be specified, e.g. `gh repo fork --remote-name fork` and `--remote fork`.
: remote="${remote:=origin}"

# Use 'backport/' as a default prefix for both the resulting branch and the triggering label.
: branch_prefix="${branch_prefix:=backport/}"
: label_prefix="${label_prefix:=backport/}"

# Determine the owner of the target remote (necessary to open a pull request) based on the URL.
remote_owner=$(basename "$(dirname "$(git remote get-url --push "$remote")")")

# Get the state, base branch and merge commit (if it exists) of the pull request.
pr_meta=$(gh pr view --json state,baseRefName,mergeCommit --jq '[.state,.baseRefName,.mergeCommit.oid][]' "$pr")
pr_state=$(sed '1q;d' <<<"$pr_meta")
pr_base=$(sed '2q;d' <<<"$pr_meta")
pr_mergecommit=$(sed '3q;d' <<<"$pr_meta")

# Get the list of commits present in the pull request.
pr_commits=$(gh pr view --json commits --jq '.commits[].oid' "$pr")

# Get the title and body of the pull request.
pr_title_body=$(gh pr view --json title,body --jq '[.title,.body][]' "$pr")
pr_title=$(head -n 1 <<<"$pr_title_body")
pr_body=$(tail -n +2 <<<"$pr_title_body")
# Gather the list of labels on the pull request.
pr_labels=$(gh pr view --json labels --jq '.labels[].name' "$pr")

# Fetch origin, to ensure we have the latest commits on all upstream branches.
git fetch origin
# Fetch the latest pull request head, to ensure we have all commits available locally.
# It will be available as FETCH_HEAD for the remainder of this script.
git fetch origin "refs/pull/${pr}/head"

# Determine which commits should be cherry-picked. This can be surprisingly complex,
# but the typical cases present on GitHub are handled here.
if [ "$pr_state" = OPEN ] || [ "$(git rev-list --no-walk --count --merges "$pr_mergecommit")" -eq 1 ]; then
    # Unmerged, or merge commit: the list of commits is equivalent to the pull request.
    backport_commits=$pr_commits
else
    # The cherry commits represent those commits that were cherry-picked from the pull request to the base.
    pr_cherry_commits=$(git cherry refs/remotes/origin/main FETCH_HEAD | sed -n '/^- / s/- //p')
    # The rebased commits represent those commits present in the base that correspond to the pull request.
    pr_rebased_commits=$(git cherry FETCH_HEAD refs/remotes/origin/main | sed -n '/^- / s/- //p')

    # Look for cherry-picks (which is what a conflict-free and non-interactive rebase merge
    # effectively does). Note that a squash confuses the list of rebased commits;
    # to make our heuristics as effective as possible, we have two checks:
    # * Git must successfully identify the list of commits cherry-picked from the PR.
    # * The number of commits in the pull request and identified for backport must match.
    if [ "$pr_cherry_commits" = "$pr_commits" ] \
        && [ "$(wc -l <<<"$pr_rebased_commits")" -eq "$(wc -l <<<"$pr_commits")" ]; then
        # Rebase: the list of commits is those rebased into the base branch.
        backport_commits=$pr_rebased_commits
    else
        # Squash-and-rebase: the list of commits is the singular merged commit.
        backport_commits=$pr_mergecommit
    fi
fi

# Create a temporary directory in which to hold worktrees for each backport attempt.
workdir="$(mktemp -d)"
trap 'rm -rf "${workdir}"; git worktree prune -v' EXIT

# Create some arrays to track success and failure.
backport_urls=()
failed_backports=()

# Iterate over all labels matching the prefix to determine what branches must be backported.
while IFS= read -r backport_label; do
    target_branch="${backport_label/#${label_prefix}}"
    backport_branch="${branch_prefix}${pr}-${target_branch}"

    # Check that the target branch and base branch are not the same. This heads off some
    # potential errors.
    if [ "$target_branch" = "$pr_base" ]; then
        continue
    fi

    # Create a new backport branch, in a new worktree, based on the target branch.
    backport_worktree="${workdir}/${backport_branch}"
    git worktree add -B "$backport_branch" "$backport_worktree" "refs/remotes/origin/${target_branch}"

    # Cherry-pick the commits from the target branch in order.
    for commit in $backport_commits; do
        if ! git -C "$backport_worktree" cherry-pick -x ${signoff:+-s} "$commit"; then
            # If a cherry-pick fails, record the branch and move on.
            failed_backports+=("$target_branch")
            continue 2
        fi
    done

    # Push the resulting backport branch to the configured remote.
    git push -f "$remote" "$backport_branch"

    # Create a derived title and label for the PR.
    backport_title="[${target_branch} backport] ${pr_title}"
    backport_body="Backport #${pr} to ${target_branch}."
    if [ -n "$pr_body" ]; then
        backport_body+=$'\n\n'"---"$'\n\n'"$pr_body"
    fi
    # Determine which labels should be brought over to the new pull request, formatted as the CLI expects.
    backport_labels=$(grep -v "^${label_prefix}" <<<"$pr_labels" | head -c -1 | tr '\n' ',')

    # Check for any open backports; note this is a heuristic as we just grab the first pull request
    # that matches our generated branch name. This is unlikely to fail as we filter by author, however.
    backport_url=$(gh pr list --author '@me' --head "$backport_branch" --json url --jq 'first(.[].url)')
    if [ -n "$backport_url" ]; then
        # Update the pull request title and body.
        # TODO: update labels?
        gh pr edit "$backport_url" --title "$backport_title" --body "$backport_body"
        found_backport=1
    else
        # Create a new pull request from the backport branch, against the target branch.
        backport_url=$(gh pr create --base "$target_branch" --head "${remote_owner}:${backport_branch}" \
            --title "$backport_title" --body-file - \
            --label "$backport_labels" \
            <<<"$backport_body" | tail -n 1)
    fi

    # Track this successful backport.
    backport_urls+=("$backport_url")
done < <(grep "^${label_prefix}" <<<"$pr_labels")

if [ -n "${comment:-}" ]; then
    # Generate a comment on the original PR, recording what backports we opened (or failed to open).
    if [ "${#backport_urls[@]}" -gt 0 ]; then
        comment_body+="Automated backport PRs opened:"$'\n'
        for backport_url in "${backport_urls[@]}"; do
            comment_body+="* ${backport_url}"$'\n'
        done
        comment_body+=$'\n'
    fi

    if [ "${#failed_backports[@]}" -gt 0 ]; then
        comment_body+="Backports failed on the following branches:"
        for failed_backport in "${failed_backports[@]}"; do
            comment_body+="* ${failed_backport}"$'\n'
        done
        comment_body+=$'\n'

        # If we're running in GitHub actions, link to the run log to diagnose why a backport failed.
        if [ -n "${GITHUB_ACTIONS:-}" ]; then
            comment_body+="Inspect the run at ${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}/actions/runs/${GITHUB_RUN_ID}"
        fi
    fi

    if [ -n "$comment_body" ]; then
        # If we had any matches for an existing PR, we'll go ahead and assume we already commented.
        # Edit the existing comment instead.
        gh pr comment "$pr" ${found_backport:+--edit-last} --body-file - <<<"$comment_body"
    fi
fi


================================================
FILE: .github/workflows/.tests-matrix.yaml
================================================
# Reusable workflow consumed by tests.yaml; used to share a single matrix across jobs.
on:
  workflow_call:
    inputs:
      runner:
        required: true
        type: string
      python-version:
        required: true
        type: string
      run-mypy:
        required: true
        type: boolean
      run-pytest:
        required: true
        type: boolean
      run-pytest-export:
        required: true
        type: boolean

defaults:
  run:
    shell: bash

env:
  PYTHONWARNDEFAULTENCODING: 'true'

jobs:
  mypy:
    name: mypy
    runs-on: ${{ inputs.runner }}
    if: inputs.run-mypy
    steps:
      - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
        with:
          persist-credentials: false

      - uses: ./.github/actions/bootstrap-poetry
        id: bootstrap-poetry
        with:
          python-version: ${{ inputs.python-version }}

      - uses: ./.github/actions/poetry-install

      - uses: actions/cache@8b402f58fbc84540c8b491a91e594a4576fec3d7 # v5.0.2
        with:
          path: .mypy_cache
          key: mypy-${{ runner.os }}-py${{ steps.bootstrap-poetry.outputs.python-version }}-${{ hashFiles('pyproject.toml', 'poetry.lock') }}
          restore-keys: |
            mypy-${{ runner.os }}-py${{ steps.bootstrap-poetry.outputs.python-version }}-
            mypy-${{ runner.os }}-

      - run: poetry run mypy

  pytest:
    name: pytest
    runs-on: ${{ inputs.runner }}
    if: inputs.run-pytest
    steps:
      - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
        with:
          persist-credentials: false

      - uses: ./.github/actions/bootstrap-poetry
        with:
          python-version: ${{ inputs.python-version }}

      - uses: ./.github/actions/poetry-install
        with:
          args: --with github-actions

      - run: poetry run pytest --integration -v
        env:
          POETRY_TEST_INTEGRATION_GIT_USERNAME: ${{ github.actor }}
          POETRY_TEST_INTEGRATION_GIT_PASSWORD: ${{ github.token }}

      - run: git diff --exit-code --stat HEAD

  pytest-export:
    name: pytest (poetry-plugin-export)
    runs-on: ${{ inputs.runner }}
    if: inputs.run-pytest-export
    steps:
      - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
        with:
          persist-credentials: false
          path: poetry

      - uses: ./poetry/.github/actions/bootstrap-poetry
        with:
          python-version: ${{ inputs.python-version }}

      - name: Get poetry-plugin-export version
        run: |
          PLUGIN_VERSION=$(curl -s https://pypi.org/pypi/poetry-plugin-export/json | jq -r ".info.version")
          echo "Found version ${PLUGIN_VERSION}"
          echo version=${PLUGIN_VERSION} >> $GITHUB_OUTPUT
        id: poetry-plugin-export-version

      - name: Check out poetry-plugin-export
        uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
        with:
          persist-credentials: false
          path: poetry-plugin-export
          repository: python-poetry/poetry-plugin-export
          # use main for now because of poetry-core#826
          # ref: refs/tags/${{ steps.poetry-plugin-export-version.outputs.version }}

      - name: Use local poetry
        working-directory: poetry-plugin-export
        # Replace the python version to avoid conflicts
        # if the plugin still supports a wider range than Poetry itself.
        run: |
          perl -pi -e 's/^requires-python =.*$/requires-python = "~='"${PYTHON_VERSION}"'"/' pyproject.toml
          poetry remove --lock poetry-core  # use whatever poetry uses
          poetry add --lock --group dev ../poetry
        env:
          PYTHON_VERSION: ${{ inputs.python-version }}

      # This step can be removed after having released a poetry-plugin-export version
      # that has cffi>=1.17.0 in its lock file.
      - name: Force more recent cffi (workaround for Python 3.13)
        working-directory: poetry-plugin-export
        run: poetry update --lock cffi

      - name: Install
        working-directory: poetry-plugin-export
        run: poetry install

      - name: Run tests
        working-directory: poetry-plugin-export
        run: poetry run pytest -v

      - name: Check for clean working tree
        working-directory: poetry-plugin-export
        run: |
          git checkout -- pyproject.toml poetry.lock
          git diff --exit-code --stat HEAD


================================================
FILE: .github/workflows/backport.yaml
================================================
name: Backport

on:
  pull_request_target:  # zizmor: ignore[dangerous-triggers]
    types:
      - closed
      - labeled

# we create the token we need later on
permissions: {}

jobs:
  backport:
    name: Create backport
    runs-on: ubuntu-latest
    # This workflow only applies to merged PRs; and triggers on a PR being closed, or the backport label being applied.
    # See https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#pull_request_target.
    if: >
      github.event.pull_request.merged
      && (
        github.event.action == 'closed'
        ||
          (github.event.action == 'labeled' && contains(github.event.label.name, 'backport/')
        )
      )
    steps:
      - uses: actions/create-github-app-token@29824e69f54612133e76f7eaac726eef6c875baf # v2.2.1
        id: app-token
        with:
          app-id: ${{ secrets.POETRY_TOKEN_APP_ID }}
          private-key: ${{ secrets.POETRY_TOKEN_APP_KEY }}
      - uses: tibdex/backport@9565281eda0731b1d20c4025c43339fb0a23812e # v2.0.4
        with:
          github_token: ${{ steps.app-token.outputs.token }}
          title_template: "[<%= base %>] <%= title %>"
          label_pattern: "^backport/(?<base>([^ ]+))$"


================================================
FILE: .github/workflows/docs.yaml
================================================
name: Documentation Preview

on:
  pull_request:
    # allow repository maintainers to modify and test workflow
    paths:
      - ".github/workflows/docs.yaml"
  pull_request_target:  # zizmor: ignore[dangerous-triggers]
    # enable runs for this workflow when labeled as documentation only
    # prevent execution when the workflow itself is modified from a fork
    types:
      - labeled
      - synchronize
    paths:
      - "docs/**"

jobs:
  deploy:
    name: Build & Deploy
    runs-on: ubuntu-latest
    if: >
      (github.event_name == 'pull_request_target' && contains(github.event.pull_request.labels.*.name, 'impact/docs'))
      || (github.event_name == 'pull_request' && github.event.pull_request.head.repo.full_name == github.repository)
    permissions:
      contents: read
      pull-requests: write
    steps:
      - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
        with:
          persist-credentials: false
          repository: python-poetry/website

      # use .github from pull request target instead of pull_request.head
      # for pull_request_target trigger to avoid arbitrary code execution
      - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
        with:
          persist-credentials: false
          path: poetry-github
          sparse-checkout: .github

      # only checkout docs from pull_request.head to not use something else by accident
      # for pull_request_target trigger (security)
      - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
        with:
          persist-credentials: false
          path: poetry-docs
          ref: ${{ github.event.pull_request.head.sha }}
          sparse-checkout: docs

      - uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0
        with:
          node-version: "18"

      - uses: ./poetry-github/.github/actions/bootstrap-poetry

      - uses: ./poetry-github/.github/actions/poetry-install
        with:
          args: --no-root --only main

      - name: website-build
        run: |
          # Rebuild the docs files from the PR checkout.
          poetry run python bin/website build --local ./poetry-docs
          # Build website assets (CSS/JS).
          npm ci && npm run prod
          # Build the static website.
          npx hugo --minify --logLevel info

      - uses: amondnet/vercel-action@888da851026e0573da056b061931bcb765a915c4 # v41.1.4
        with:
          vercel-version: 41.1.4
          vercel-token: ${{ secrets.VERCEL_TOKEN }}
          github-token: ${{ secrets.GITHUB_TOKEN }}
          vercel-org-id: ${{ secrets.VERCEL_ORG_ID }}
          vercel-project-id: ${{ secrets.VERCEL_PROJECT_ID }}
          scope: python-poetry
          github-comment: true
          working-directory: public


================================================
FILE: .github/workflows/lock-threads.yaml
================================================
name: Lock Threads

on:
  schedule:
    - cron: '0 0 * * *' # every day at midnight
  workflow_dispatch:

concurrency:
  group: ${{ github.workflow }}

jobs:
  lock-issues:
    runs-on: ubuntu-latest
    permissions:
      issues: write
    steps:
      - uses: dessant/lock-threads@7266a7ce5c1df01b1c6db85bf8cd86c737dadbe7 # v6.0.0
        with:
          process-only: issues
          issue-inactive-days: 30
          issue-comment: >
            This issue has been automatically locked since there
            has not been any recent activity after it was closed.
            Please open a new issue for related bugs.

  lock-prs:
    runs-on: ubuntu-latest
    permissions:
      issues: write
      pull-requests: write
    steps:
      - uses: dessant/lock-threads@7266a7ce5c1df01b1c6db85bf8cd86c737dadbe7 # v6.0.0
        with:
          process-only: prs
          pr-inactive-days: 30
          pr-comment: >
            This pull request has been automatically locked since there
            has not been any recent activity after it was closed.
            Please open a new issue for related bugs.


================================================
FILE: .github/workflows/release.yaml
================================================
name: Release

on:
  release:
    types: [published]

permissions: {}

jobs:
  build:
    name: Build
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
        with:
          persist-credentials: false

      - run: pipx run build

      - uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
        with:
          name: distfiles
          path: dist/
          if-no-files-found: error

  upload-github:
    name: Upload (GitHub)
    runs-on: ubuntu-latest
    permissions:
      contents: write
    needs: build
    steps:
      # We need to be in a git repo for gh to work.
      - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
        with:
          persist-credentials: false

      - uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0
        with:
          name: distfiles
          path: dist/

      - run: gh release upload "${TAG_NAME}" dist/*.{tar.gz,whl}
        env:
          GH_TOKEN: ${{ github.token }}
          TAG_NAME: ${{ github.event.release.tag_name }}

  upload-pypi:
    name: Upload (PyPI)
    runs-on: ubuntu-latest
    environment:
      name: pypi
      url: https://pypi.org/project/poetry/
    permissions:
      id-token: write
    needs: build
    steps:
      - uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0
        with:
          name: distfiles
          path: dist/

      - uses: pypa/gh-action-pypi-publish@ed0c53931b1dc9bd32cbe73a98c7f6766f8a527e # v1.13.0
        with:
          print-hash: true


================================================
FILE: .github/workflows/tests.yaml
================================================
name: Tests

on:
  push:
  pull_request:
  merge_group:

concurrency:
  group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}
  cancel-in-progress: ${{ github.event_name == 'pull_request' }}

defaults:
  run:
    shell: bash

permissions: {}

jobs:
  changes:
    name: Detect changed files
    runs-on: ubuntu-latest
    outputs:
      project: ${{ steps.changes.outputs.project }}
      fixtures-pypi: ${{ steps.changes.outputs.fixtures-pypi }}
      src: ${{ steps.changes.outputs.src }}
      tests: ${{ steps.changes.outputs.tests }}
    steps:
      - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
        with:
          persist-credentials: false

      - uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
        id: changes
        with:
          filters: |
            workflow: &workflow
              - '.github/actions/**'
              - '.github/workflows/tests.yaml'
              - '.github/workflows/.tests-matrix.yaml'
            project: &project
              - *workflow
              - 'poetry.lock'
              - 'pyproject.toml'
            fixtures-pypi:
              - *workflow
              - 'tests/repositories/fixtures/pypi.org/**'
            src:
              - *project
              - 'src/**/*.py'
            tests:
              - *project
              - 'src/**/*.py'
              - 'tests/**'

  lockfile:
    name: Check poetry.lock
    runs-on: ubuntu-latest
    if: needs.changes.outputs.project == 'true'
    needs: changes
    steps:
      - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
        with:
          persist-credentials: false

      - uses: ./.github/actions/bootstrap-poetry

      - run: poetry check --lock

  smoke:
    name: Smoke-test build and install
    runs-on: ubuntu-latest
    if: needs.changes.outputs.project == 'true'
    needs: lockfile
    steps:
      - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
        with:
          persist-credentials: false

      - run: pipx run build

      - run: pipx run twine check --strict dist/*

      - run: pipx install --suffix=@build dist/*.whl

      - uses: ./.github/actions/bootstrap-poetry

      # Smoke test: confirm the version of the installed wheel matches the project.
      - run: poetry@build --version | grep $(poetry version --short)

  fixtures-pypi:
    name: Check fixtures (PyPI)
    runs-on: ubuntu-latest
    if: needs.changes.outputs.fixtures-pypi == 'true'
    needs: changes
    steps:
      - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
        with:
          persist-credentials: false

      - uses: ./.github/actions/bootstrap-poetry

      - uses: ./.github/actions/poetry-install
        with:
          args: --only main,test

      - run: poetry run env PYTHONPATH="$GITHUB_WORKSPACE" python tests/repositories/fixtures/pypi.org/generate.py

      - run: git diff --exit-code --stat HEAD tests/repositories/fixtures/pypi.org

  tests-matrix:
    # Use this matrix with multiple jobs defined in a reusable workflow:
    uses: ./.github/workflows/.tests-matrix.yaml
    name: "${{ matrix.os.name }} (Python ${{ matrix.python-version }})"
    if: '!failure()'
    needs:
      - lockfile
      - changes
    with:
      runner: ${{ matrix.os.image }}
      python-version: ${{ matrix.python-version }}
      run-mypy: ${{ needs.changes.outputs.tests == 'true' }}
      run-pytest: ${{ needs.changes.outputs.tests == 'true' }}
      run-pytest-export: ${{ needs.changes.outputs.src == 'true' }}
    secrets: inherit  # zizmor: ignore[secrets-inherit]
    strategy:
      matrix:
        os:
          - name: Ubuntu
            image: ubuntu-22.04
          - name: Windows
            image: windows-2022
          - name: macOS aarch64
            image: macos-14
        python-version:
          - "3.10"
          - "3.11"
          - "3.12"
          - "3.13"
          - "3.14"
      fail-fast: false

  status:
    name: Status
    runs-on: ubuntu-latest
    if: always()
    needs:
      - lockfile
      - smoke
      - fixtures-pypi
      - tests-matrix
    steps:
      - run: ${{ (contains(needs.*.result, 'failure') || contains(needs.*.result, 'cancelled')) && 'false' || 'true' }}


================================================
FILE: .gitignore
================================================
*.pyc

# Packages
/dist/*

# Unit test / coverage reports
.coverage
.pytest_cache

.DS_Store
.idea/*
.python-version
.vscode/*

/docs/site/*
.mypy_cache

.venv
/poetry.toml


================================================
FILE: .pre-commit-config.yaml
================================================
ci:
  autofix_prs: false

repos:
  - repo: https://github.com/pre-commit/pre-commit-hooks
    rev: v6.0.0
    hooks:
      - id: trailing-whitespace
        exclude: tests/repositories/fixtures/pypi.org/metadata/.*\.metadata
      - id: end-of-file-fixer
        exclude: ^.*\.egg-info/|tests/repositories/fixtures/pypi.org/metadata/.*\.metadata
      - id: check-merge-conflict
        exclude: tests/repositories/fixtures/installed/vendor/py3.7/attrs-19.3.0.dist-info/METADATA
      - id: check-case-conflict
      - id: check-json
      - id: check-toml
        exclude: tests/fixtures/invalid_lock/poetry\.lock
      - id: check-yaml
      - id: pretty-format-json
        args: [--autofix, --no-ensure-ascii, --no-sort-keys]
      - id: check-ast
      - id: debug-statements
      - id: check-docstring-first

  - repo: https://github.com/pre-commit/pre-commit
    rev: v4.5.1
    hooks:
      - id: validate_manifest

  - repo: https://github.com/astral-sh/ruff-pre-commit
    rev: v0.15.4
    hooks:
      - id: ruff-check
      - id: ruff-format

  - repo: https://github.com/woodruffw/zizmor-pre-commit
    rev: v1.22.0
    hooks:
      - id: zizmor


================================================
FILE: .pre-commit-hooks.yaml
================================================
- id: poetry-check
  name: poetry-check
  description: run poetry check to validate config
  entry: poetry check
  language: python
  pass_filenames: false
  files: ^(.*/)?(poetry\.lock|pyproject\.toml)$

- id: poetry-lock
  name: poetry-lock
  description: run poetry lock to update lock file
  entry: poetry lock
  language: python
  pass_filenames: false
  files: ^(.*/)?(poetry\.lock|pyproject\.toml)$

- id: poetry-install
  name: poetry-install
  description: run poetry install to install dependencies from the lock file
  entry: poetry install
  language: python
  pass_filenames: false
  stages: [post-checkout, post-merge]
  always_run: true


================================================
FILE: CHANGELOG.md
================================================
# Change Log

## [2.3.2] - 2026-02-01

### Changed

- Allow `dulwich>=1.0` ([#10701](https://github.com/python-poetry/poetry/pull/10701)).

### poetry-core ([`2.3.1`](https://github.com/python-poetry/poetry-core/releases/tag/2.3.1))

- Fix an issue where `platform_release` could not be parsed on Windows Server ([#911](https://github.com/python-poetry/poetry-core/pull/911)).


## [2.3.1] - 2026-01-20

### Fixed

- Fix an issue where cached information about each package was always considered outdated ([#10699](https://github.com/python-poetry/poetry/pull/10699)).

### Docs

- Document SHELL_VERBOSITY environment variable ([#10678](https://github.com/python-poetry/poetry/pull/10678)).


## [2.3.0] - 2026-01-18

### Added

- **Add support for exporting `pylock.toml` files with `poetry-plugin-export`** ([#10677](https://github.com/python-poetry/poetry/pull/10677)).
- Add support for specifying build constraints for dependencies ([#10388](https://github.com/python-poetry/poetry/pull/10388)).
- Add support for publishing artifacts whose version is determined dynamically by the build-backend ([#10644](https://github.com/python-poetry/poetry/pull/10644)).
- Add support for editable project plugins ([#10661](https://github.com/python-poetry/poetry/pull/10661)).
- Check `requires-poetry` before any other validation ([#10593](https://github.com/python-poetry/poetry/pull/10593)).
- Validate the content of `project.readme` when running `poetry check` ([#10604](https://github.com/python-poetry/poetry/pull/10604)).
- Add the option to clear all caches by making the cache name in `poetry cache clear` optional ([#10627](https://github.com/python-poetry/poetry/pull/10627)).
- Automatically update the cache for packages where the locked files differ from cached files ([#10657](https://github.com/python-poetry/poetry/pull/10657)).
- Suggest to clear the cache if running a command with `--no-cache` solves an issue ([#10585](https://github.com/python-poetry/poetry/pull/10585)).
- Propose `poetry init` when trying `poetry new` for an existing directory ([#10563](https://github.com/python-poetry/poetry/pull/10563)).
- Add support for `poetry publish --skip-existing` for new Nexus OSS versions ([#10603](https://github.com/python-poetry/poetry/pull/10603)).
- Show Poetry's own Python's path in `poetry debug info` ([#10588](https://github.com/python-poetry/poetry/pull/10588)).

### Changed

- **Drop support for Python 3.9** ([#10634](https://github.com/python-poetry/poetry/pull/10634)).
- **Change the default of `installer.re-resolve` from `true` to `false`** ([#10622](https://github.com/python-poetry/poetry/pull/10622)).
- **PEP 735 dependency groups are considered in the lock file hash** ([#10621](https://github.com/python-poetry/poetry/pull/10621)).
- Deprecate `poetry.utils._compat.metadata`, which is sometimes used in plugins, in favor of `importlib.metadata` ([#10634](https://github.com/python-poetry/poetry/pull/10634)).
- Improve managing free-threaded Python versions with `poetry python` ([#10606](https://github.com/python-poetry/poetry/pull/10606)).
- Prefer JSON API to HTML API in legacy repositories ([#10672](https://github.com/python-poetry/poetry/pull/10672)).
- When running `poetry init`, only add the readme field in the `pyproject.toml` if the readme file exists ([#10679](https://github.com/python-poetry/poetry/pull/10679)).
- Raise an error if no hash can be determined for any distribution link of a package ([#10673](https://github.com/python-poetry/poetry/pull/10673)).
- Require `dulwich>=0.25.0` ([#10674](https://github.com/python-poetry/poetry/pull/10674)).

### Fixed

- Fix an issue where `poetry remove` did not work for PEP 735 dependency groups with `include-group` items ([#10587](https://github.com/python-poetry/poetry/pull/10587)).
- Fix an issue where `poetry remove` caused dangling `include-group` references in PEP 735 dependency groups ([#10590](https://github.com/python-poetry/poetry/pull/10590)).
- Fix an issue where `poetry add` did not work for PEP 735 dependency groups with `include-group` items ([#10636](https://github.com/python-poetry/poetry/pull/10636)).
- Fix an issue where PEP 735 dependency groups were not considered in the lock file hash ([#10621](https://github.com/python-poetry/poetry/pull/10621)).
- Fix an issue where wrong markers were locked for a dependency that was required by several groups with different markers ([#10613](https://github.com/python-poetry/poetry/pull/10613)).
- Fix an issue where non-deterministic markers were created in a method used by `poetry-plugin-export` ([#10667](https://github.com/python-poetry/poetry/pull/10667)).
- Fix an issue where wrong wheels were chosen for installation in free-threaded Python environments if Poetry itself was not installed with free-threaded Python ([#10614](https://github.com/python-poetry/poetry/pull/10614)).
- Fix an issue where `poetry publish` used the metadata of the project instead of the metadata of the build artifact ([#10624](https://github.com/python-poetry/poetry/pull/10624)).
- Fix an issue where `poetry env use` just used another Python version instead of failing when the requested version was not supported by the project ([#10685](https://github.com/python-poetry/poetry/pull/10685)).
- Fix an issue where `poetry env activate` returned the wrong command for `dash` ([#10696](https://github.com/python-poetry/poetry/pull/10696)).
- Fix an issue where `data-dir` and `python.installation-dir` could not be set ([#10595](https://github.com/python-poetry/poetry/pull/10595)).
- Fix an issue where Python and pip executables were not correctly detected on Windows ([#10645](https://github.com/python-poetry/poetry/pull/10645)).
- Fix an issue where invalid template variables in `virtualenvs.prompt` caused an incomprehensible error message ([#10648](https://github.com/python-poetry/poetry/pull/10648)).

### Docs

- Add a warning about `~/.netrc` for Poetry credential configuration ([#10630](https://github.com/python-poetry/poetry/pull/10630)).
- Clarify that the local configuration takes precedence over the global configuration ([#10676](https://github.com/python-poetry/poetry/pull/10676)).
- Add an explanation in which cases `packages` are automatically detected ([#10680](https://github.com/python-poetry/poetry/pull/10680)).

### poetry-core ([`2.3.0`](https://github.com/python-poetry/poetry-core/releases/tag/2.3.0))

- Normalize versions ([#893](https://github.com/python-poetry/poetry-core/pull/893)).
- Fix an issue where unsatisfiable requirements did not raise an error ([#891](https://github.com/python-poetry/poetry-core/pull/891)).
- Fix an issue where the implicit main group did not exist if it was explicitly declared as not having any dependencies ([#892](https://github.com/python-poetry/poetry-core/pull/892)).
- Fix an issue where `python_full_version` markers with pre-release versions were parsed incorrectly ([#893](https://github.com/python-poetry/poetry-core/pull/893)).


## [2.2.1] - 2025-09-21

### Fixed

- Fix an issue where `poetry self show` failed with a message about an invalid output format ([#10560](https://github.com/python-poetry/poetry/pull/10560)).

### Docs

- Remove outdated statements about dependency groups ([#10561](https://github.com/python-poetry/poetry/pull/10561)).

### poetry-core ([`2.2.1`](https://github.com/python-poetry/poetry-core/releases/tag/2.2.1))

- Fix an issue where it was not possible to declare a PEP 735 dependency group as optional ([#888](https://github.com/python-poetry/poetry-core/pull/888)).


## [2.2.0] - 2025-09-14

### Added

- **Add support for nesting dependency groups** ([#10166](https://github.com/python-poetry/poetry/pull/10166)).
- **Add support for PEP 735 dependency groups** ([#10130](https://github.com/python-poetry/poetry/pull/10130)).
- **Add support for PEP 639 license clarity** ([#10413](https://github.com/python-poetry/poetry/pull/10413)).
- Add a `--format` option to `poetry show` to alternatively output json format ([#10487](https://github.com/python-poetry/poetry/pull/10487)).
- Add official support for Python 3.14 ([#10514](https://github.com/python-poetry/poetry/pull/10514)).

### Changed

- **Normalize dependency group names** ([#10387](https://github.com/python-poetry/poetry/pull/10387)).
- Change `installer.no-binary` and `installer.only-binary` so that explicit package names will take precedence over `:all:` ([#10278](https://github.com/python-poetry/poetry/pull/10278)).
- Improve log output during `poetry install` when a wheel is built from source ([#10404](https://github.com/python-poetry/poetry/pull/10404)).
- Improve error message in case a file lock could not be acquired while cloning a git repository ([#10535](https://github.com/python-poetry/poetry/pull/10535)).
- Require `dulwich>=0.24.0` ([#10492](https://github.com/python-poetry/poetry/pull/10492)).
- Allow `virtualenv>=20.33` again ([#10506](https://github.com/python-poetry/poetry/pull/10506)).
- Allow `findpython>=0.7` ([#10510](https://github.com/python-poetry/poetry/pull/10510)).
- Allow `importlib-metadata>=8.7` ([#10511](https://github.com/python-poetry/poetry/pull/10511)).

### Fixed

- Fix an issue where `poetry new` did not create the project structure in an existing empty directory ([#10431](https://github.com/python-poetry/poetry/pull/10431)).
- Fix an issue where a dependency that was required for a specific Python version was not installed into an environment of a pre-release Python version ([#10516](https://github.com/python-poetry/poetry/pull/10516)).

### poetry-core ([`2.2.0`](https://github.com/python-poetry/poetry-core/releases/tag/2.2.0))

- Deprecate table values and values that are not valid SPDX expressions for `[project.license]` ([#870](https://github.com/python-poetry/poetry-core/pull/870)).
- Fix an issue where explicitly included files that are in `.gitignore` were not included in the distribution ([#874](https://github.com/python-poetry/poetry-core/pull/874)).
- Fix an issue where marker operations could result in invalid markers ([#875](https://github.com/python-poetry/poetry-core/pull/875)).


## [2.1.4] - 2025-08-05

### Changed

- Require `virtualenv<20.33` to work around an issue where Poetry uses the wrong Python version ([#10491](https://github.com/python-poetry/poetry/pull/10491)).
- Improve the error messages for the validation of the `pyproject.toml` file ([#10471](https://github.com/python-poetry/poetry/pull/10471)).

### Fixed

- Fix an issue where project plugins were installed even though `poetry install` was called with `--no-plugins` ([#10405](https://github.com/python-poetry/poetry/pull/10405)).
- Fix an issue where dependency resolution failed for self-referential extras with duplicate dependencies ([#10488](https://github.com/python-poetry/poetry/pull/10488)).

### Docs

- Clarify how to include files that were automatically excluded via VCS ignore settings ([#10442](https://github.com/python-poetry/poetry/pull/10442)).
- Clarify the behavior of `poetry add` if no version constraint is explicitly specified ([#10445](https://github.com/python-poetry/poetry/pull/10445)).


## [2.1.3] - 2025-05-04

### Changed

- Require `importlib-metadata<8.7` for Python 3.9 because of a breaking change in importlib-metadata 8.7 ([#10374](https://github.com/python-poetry/poetry/pull/10374)).

### Fixed

- Fix an issue where re-locking failed for incomplete multiple-constraints dependencies with explicit sources ([#10324](https://github.com/python-poetry/poetry/pull/10324)).
- Fix an issue where the `--directory` option did not work if a plugin, which accesses the poetry instance during its activation, was installed ([#10352](https://github.com/python-poetry/poetry/pull/10352)).
- Fix an issue where `poetry env activate -v` printed additional information to stdout instead of stderr so that the output could not be used as designed ([#10353](https://github.com/python-poetry/poetry/pull/10353)).
- Fix an issue where the original error was not printed if building a git dependency failed ([#10366](https://github.com/python-poetry/poetry/pull/10366)).
- Fix an issue where wheels for the wrong platform were installed in rare cases. ([#10361](https://github.com/python-poetry/poetry/pull/10361)).

### poetry-core ([`2.1.3`](https://github.com/python-poetry/poetry-core/releases/tag/2.1.3))

- Fix an issue where the union of specific inverse or partially inverse markers was not simplified ([#858](https://github.com/python-poetry/poetry-core/pull/858)).
- Fix an issue where optional dependencies defined in the `project` section were treated as non-optional when a source was defined for them in the `tool.poetry` section ([#857](https://github.com/python-poetry/poetry-core/pull/857)).
- Fix an issue where markers with `===` were not parsed correctly ([#860](https://github.com/python-poetry/poetry-core/pull/860)).
- Fix an issue where local versions with upper case letters caused an error ([#859](https://github.com/python-poetry/poetry-core/pull/859)).
- Fix an issue where `extra` markers with a value starting with "in" were not validated correctly ([#862](https://github.com/python-poetry/poetry-core/pull/862)).


## [2.1.2] - 2025-03-29

### Changed

- Improve performance of locking dependencies ([#10275](https://github.com/python-poetry/poetry/pull/10275)).

### Fixed

- Fix an issue where markers were not locked correctly ([#10240](https://github.com/python-poetry/poetry/pull/10240)).
- Fix an issue where the result of `poetry lock` was not deterministic ([#10276](https://github.com/python-poetry/poetry/pull/10276)).
- Fix an issue where `poetry env activate` returned the wrong command for `tcsh` ([#10243](https://github.com/python-poetry/poetry/pull/10243)).
- Fix an issue where `poetry env activate` returned the wrong command for `pwsh` on Linux ([#10256](https://github.com/python-poetry/poetry/pull/10256)).

### Docs

- Update basic usage section to reflect new default layout ([#10203](https://github.com/python-poetry/poetry/pull/10203)).

### poetry-core ([`2.1.2`](https://github.com/python-poetry/poetry-core/releases/tag/2.1.2))

- Improve performance of marker operations ([#851](https://github.com/python-poetry/poetry-core/pull/851)).
- Fix an issue where incorrect markers were calculated when removing parts covered by the project's Python constraint ([#841](https://github.com/python-poetry/poetry-core/pull/841),
  [#846](https://github.com/python-poetry/poetry-core/pull/846)).
- Fix an issue where `extra` markers were not simplified ([#842](https://github.com/python-poetry/poetry-core/pull/842),
  [#845](https://github.com/python-poetry/poetry-core/pull/845),
  [#847](https://github.com/python-poetry/poetry-core/pull/847)).
- Fix an issue where the intersection and union of markers was not deterministic ([#843](https://github.com/python-poetry/poetry-core/pull/843)).
- Fix an issue where the intersection of `python_version` markers was not recognized as empty ([#849](https://github.com/python-poetry/poetry-core/pull/849)).
- Fix an issue where `python_version` markers were not simplified ([#848](https://github.com/python-poetry/poetry-core/pull/848),
  [#851](https://github.com/python-poetry/poetry-core/pull/851)).
- Fix an issue where Python constraints on a package were converted into invalid markers ([#853](https://github.com/python-poetry/poetry-core/pull/853)).


## [2.1.1] - 2025-02-16

### Fixed

- Fix an issue where `poetry env use python` does not choose the Python from the PATH ([#10187](https://github.com/python-poetry/poetry/pull/10187)).

### poetry-core ([`2.1.1`](https://github.com/python-poetry/poetry-core/releases/tag/2.1.1))

- Fix an issue where simplifying a `python_version` marker resulted in an invalid marker ([#838](https://github.com/python-poetry/poetry-core/pull/838)).


## [2.1.0] - 2025-02-15

### Added

- **Make `build` command build-system agnostic** ([#10059](https://github.com/python-poetry/poetry/pull/10059),
  [#10092](https://github.com/python-poetry/poetry/pull/10092)).
- Add a `--config-settings` option to `poetry build` ([#10059](https://github.com/python-poetry/poetry/pull/10059)).
- Add support for defining `config-settings` when building dependencies ([#10129](https://github.com/python-poetry/poetry/pull/10129)).
- **Add (experimental) commands to manage Python installations** ([#10112](https://github.com/python-poetry/poetry/pull/10112)).
- Use `findpython` to find the Python interpreters ([#10097](https://github.com/python-poetry/poetry/pull/10097)).
- Add a `--no-truncate` option to `poetry show` ([#9580](https://github.com/python-poetry/poetry/pull/9580)).
- Re-add support for passwords with empty usernames ([#10088](https://github.com/python-poetry/poetry/pull/10088)).
- Add better error messages ([#10053](https://github.com/python-poetry/poetry/pull/10053),
  [#10065]( https://github.com/python-poetry/poetry/pull/10065),
  [#10126](https://github.com/python-poetry/poetry/pull/10126),
  [#10127](https://github.com/python-poetry/poetry/pull/10127),
  [#10132](https://github.com/python-poetry/poetry/pull/10132)).

### Changed

- **`poetry new` defaults to "src" layout by default** ([#10135](https://github.com/python-poetry/poetry/pull/10135)).
- Improve performance of locking dependencies ([#10111](https://github.com/python-poetry/poetry/pull/10111),
  [#10114](https://github.com/python-poetry/poetry/pull/10114),
  [#10138](https://github.com/python-poetry/poetry/pull/10138),
  [#10146](https://github.com/python-poetry/poetry/pull/10146)).
- Deprecate adding sources without specifying `--priority` ([#10134](https://github.com/python-poetry/poetry/pull/10134)).

### Fixed

- Fix an issue where global options were not handled correctly when positioned after command options ([#10021](https://github.com/python-poetry/poetry/pull/10021),
  [#10067](https://github.com/python-poetry/poetry/pull/10067),
  [#10128](https://github.com/python-poetry/poetry/pull/10128)).
- Fix an issue where building a dependency from source failed because of a conflict between build-system dependencies that were not required for the target environment ([#10048](https://github.com/python-poetry/poetry/pull/10048)).
- Fix an issue where `poetry init` was not able to find a package on PyPI while adding dependencies interactively ([#10055](https://github.com/python-poetry/poetry/pull/10055)).
- Fix an issue where the `@latest` descriptor was incorrectly passed to the core requirement parser ([#10069](https://github.com/python-poetry/poetry/pull/10069)).
- Fix an issue where Boolean environment variables set to `True` (in contrast to `true`) were interpreted as `false` ([#10080](https://github.com/python-poetry/poetry/pull/10080)).
- Fix an issue where `poetry env activate` reported a misleading error message ([#10087](https://github.com/python-poetry/poetry/pull/10087)).
- Fix an issue where adding an optional dependency with `poetry add --optional` would not correctly update the lock file ([#10076](https://github.com/python-poetry/poetry/pull/10076)).
- Fix an issue where `pip` was not installed/updated before other dependencies resulting in a race condition ([#10102](https://github.com/python-poetry/poetry/pull/10102)).
- Fix an issue where Poetry freezes when multiple threads attempt to unlock the `keyring` simultaneously ([#10062](https://github.com/python-poetry/poetry/pull/10062)).
- Fix an issue where markers with extras were not locked correctly ([#10119](https://github.com/python-poetry/poetry/pull/10119)).
- Fix an issue where self-referential extras were not resolved correctly ([#10106](https://github.com/python-poetry/poetry/pull/10106)).
- Fix an issue where Poetry could not be run from a `zipapp` ([#10074](https://github.com/python-poetry/poetry/pull/10074)).
- Fix an issue where installation failed with a permission error when using the system environment as a user without write access to system site packages ([#9014](https://github.com/python-poetry/poetry/pull/9014)).
- Fix an issue where a version of a dependency that is not compatible with the project's python constraint was locked. ([#10141](https://github.com/python-poetry/poetry/pull/10141)).
- Fix an issue where Poetry wrongly reported that the current project's supported Python range is not compatible with some of the required packages Python requirement ([#10157](https://github.com/python-poetry/poetry/pull/10157)).
- Fix an issue where the requested extras of a dependency were ignored if the same dependency (with same extras) was specified in multiple groups ([#10158](https://github.com/python-poetry/poetry/pull/10158)).

### Docs

- Sort commands by name in the CLI reference ([#10035](https://github.com/python-poetry/poetry/pull/10035)).
- Add missing documentation for `env` commands ([#10027](https://github.com/python-poetry/poetry/pull/10027)).
- Clarify that the `name` and `version` fields are always required if the `project` section is specified ([#10033](https://github.com/python-poetry/poetry/pull/10033)).
- Add a note about restarting the shell for tab completion changes to take effect ([#10070](https://github.com/python-poetry/poetry/pull/10070)).
- Fix the example for `project.gui-scripts` [#10121](https://github.com/python-poetry/poetry/pull/10121).
- Explain how to include files as scripts in the project configuration ([#9572](https://github.com/python-poetry/poetry/pull/9572),
  [#10133](https://github.com/python-poetry/poetry/pull/10133)).
- Add additional information on specifying required python versions ([#10104](https://github.com/python-poetry/poetry/pull/10104)).

### poetry-core ([`2.1.0`](https://github.com/python-poetry/poetry-core/releases/tag/2.1.0))

- Fix an issue where inclusive ordering with post releases was inconsistent with PEP 440 ([#379](https://github.com/python-poetry/poetry-core/pull/379)).
- Fix an issue where invalid URI tokens in PEP 508 requirement strings were silently discarded ([#817](https://github.com/python-poetry/poetry-core/pull/817)).
- Fix an issue where wrong markers were calculated when removing parts covered by the project's python constraint ([#824](https://github.com/python-poetry/poetry-core/pull/824)).
- Fix an issue where optional dependencies that are not part of an extra were included in the wheel metadata ([#830](https://github.com/python-poetry/poetry-core/pull/830)).
- Fix an issue where the `__pycache__` directory and `*.pyc` files were included in sdists and wheels ([#835](https://github.com/python-poetry/poetry-core/pull/835)).


## [2.0.1] - 2025-01-11

### Added

- Add support for `poetry search` in legacy sources ([#9949](https://github.com/python-poetry/poetry/pull/9949)).
- Add a message in the `poetry source show` output when PyPI is implicitly enabled ([#9974](https://github.com/python-poetry/poetry/pull/9974)).

### Changed

- Improve performance for merging markers from overrides at the end of dependency resolution ([#10018](https://github.com/python-poetry/poetry/pull/10018)).

### Fixed

- Fix an issue where `poetry sync` did not remove packages that were not requested ([#9946](https://github.com/python-poetry/poetry/pull/9946)).
- Fix an issue where `poetry check` failed even though there were just warnings and add a `--strict` option to fail on warnings ([#9983](https://github.com/python-poetry/poetry/pull/9983)).
- Fix an issue where `poetry update`, `poetry add` and `poetry remove` with `--only` uninstalled packages from other groups ([#10014](https://github.com/python-poetry/poetry/pull/10014)).
- Fix an issue where `poetry update`, `poetry add` and `poetry remove` uninstalled all extra packages ([#10016](https://github.com/python-poetry/poetry/pull/10016)).
- Fix an issue where `poetry self update` did not recognize Poetry's own environment ([#9995](https://github.com/python-poetry/poetry/pull/9995)).
- Fix an issue where read-only system site-packages were not considered when loading an environment with system site-packages ([#9942](https://github.com/python-poetry/poetry/pull/9942)).
- Fix an issue where an error message in `poetry install` started with `Warning:` instead of `Error:` ([#9945](https://github.com/python-poetry/poetry/pull/9945)).
- Fix an issue where `Command.set_poetry`, which is used by plugins, was removed ([#9981](https://github.com/python-poetry/poetry/pull/9981)).
- Fix an issue where the help text of `poetry build --clean` showed a malformed short option instead of the description ([#9994](https://github.com/python-poetry/poetry/pull/9994)).

### Docs

- Add a FAQ entry for the migration from Poetry-specific fields to the `project` section ([#9996](https://github.com/python-poetry/poetry/pull/9996)).
- Fix examples for `project.readme` and `project.urls` ([#9948](https://github.com/python-poetry/poetry/pull/9948)).
- Add a warning that package sources are a Poetry-specific feature that is not included in core metadata ([#9935](https://github.com/python-poetry/poetry/pull/9935)).
- Replace `poetry install --sync` with `poetry sync` in the section about synchronizing dependencies ([#9944](https://github.com/python-poetry/poetry/pull/9944)).
- Replace `poetry shell` with `poetry env activate` in the basic usage section ([#9963](https://github.com/python-poetry/poetry/pull/9963)).
- Mention that `project.name` is always required when the `project` section is used ([#9989](https://github.com/python-poetry/poetry/pull/9989)).
- Fix the constraint of `poetry-plugin-export` in the section about `poetry export` ([#9954](https://github.com/python-poetry/poetry/pull/9954)).

### poetry-core ([`2.0.1`](https://github.com/python-poetry/poetry-core/releases/tag/2.0.1))

- Replace the deprecated core metadata field `Home-page` with `Project-URL: Homepage` ([#807](https://github.com/python-poetry/poetry-core/pull/807)).
- Fix an issue where includes from `tool.poetry.packages` without a specified `format` were not initialized with the default value resulting in a `KeyError` ([#805](https://github.com/python-poetry/poetry-core/pull/805)).
- Fix an issue where some `project.urls` entries were not processed correctly resulting in a `KeyError` ([#807](https://github.com/python-poetry/poetry-core/pull/807)).
- Fix an issue where dynamic `project.dependencies` via `tool.poetry.dependencies` were ignored if `project.optional-dependencies` were defined ([#811](https://github.com/python-poetry/poetry-core/pull/811)).


## [2.0.0] - 2025-01-05

### Added

- **Add support for the `project` section in the `pyproject.toml` file according to PEP 621** ([#9135](https://github.com/python-poetry/poetry/pull/9135),
[#9917](https://github.com/python-poetry/poetry/pull/9917)).
- **Add support for defining Poetry plugins that are required by the project and automatically installed if not present** ([#9547](https://github.com/python-poetry/poetry/pull/9547)).
- **Lock resulting markers and groups and add a `installer.re-resolve` option (default: `true`) to allow installation without re-resolving** ([#9427](https://github.com/python-poetry/poetry/pull/9427)).
- Add a `--local-version` option to `poetry build` ([#9064](https://github.com/python-poetry/poetry/pull/9064)).
- Add a `--clean` option to `poetry build` ([#9067](https://github.com/python-poetry/poetry/pull/9067)).
- Add FIPS support for `poetry publish` ([#9101](https://github.com/python-poetry/poetry/pull/9101)).
- Add the option to use `poetry new` interactively and configure more fields ([#9101](https://github.com/python-poetry/poetry/pull/9101)).
- Add a config option `installer.only-binary` to enforce the use of binary distribution formats ([#9150](https://github.com/python-poetry/poetry/pull/9150)).
- Add backend support for legacy repository search ([#9132](https://github.com/python-poetry/poetry/pull/9132)).
- Add support to resume downloads from connection resets ([#9422](https://github.com/python-poetry/poetry/pull/9422)).
- Add the option to define a constraint for the required Poetry version to manage the project ([#9547](https://github.com/python-poetry/poetry/pull/9547)).
- Add an `--all-groups` option to `poetry install` ([#9744](https://github.com/python-poetry/poetry/pull/9744)).
- Add an `poetry env activate` command as replacement of `poetry shell` ([#9763](https://github.com/python-poetry/poetry/pull/9763)).
- Add a `--markers` option to `poetry add` to add a dependency with markers ([#9814](https://github.com/python-poetry/poetry/pull/9814)).
- Add a `--migrate` option to `poetry config` to migrate outdated configs ([#9830](https://github.com/python-poetry/poetry/pull/9830)).
- Add a `--project` option to search the `pyproject.toml` file in another directory without switching the directory ([#9831](https://github.com/python-poetry/poetry/pull/9831)).
- Add support for shortened hashes to define git dependencies ([#9748](https://github.com/python-poetry/poetry/pull/9748)).
- Add partial support for conflicting extras ([#9553](https://github.com/python-poetry/poetry/pull/9553)).
- Add a `poetry sync` command as replacement of `poetry install --sync` ([#9801](https://github.com/python-poetry/poetry/pull/9801)).

### Changed

- **Change the default behavior of `poetry lock` to `--no-update` and introduce a `--regenerate` option for the old default behavior** ([#9327](https://github.com/python-poetry/poetry/pull/9327)).
- **Remove the dependency on `poetry-plugin-export` so that `poetry export` is not included per default** ([#5980](https://github.com/python-poetry/poetry/pull/5980)).
- **Outsource `poetry shell` into `poetry-plugin-shell`** ([#9763](https://github.com/python-poetry/poetry/pull/9763)).
- **Change the interface of `poetry add --optional` to require an extra the optional dependency is added to** ([#9135](https://github.com/python-poetry/poetry/pull/9135)).
- **Actually switch the directory when using `--directory`/`-C`** ([#9831](https://github.com/python-poetry/poetry/pull/9831)).
- **Drop support for Python 3.8** ([#9692](https://github.com/python-poetry/poetry/pull/9692)).
- Rename `experimental.system-git-client` to `experimental.system-git` ([#9787](https://github.com/python-poetry/poetry/pull/9787), [#9795](https://github.com/python-poetry/poetry/pull/9795)).
- Replace `virtualenvs.prefer-active-python` by the inverse setting `virtualenvs.use-poetry-python` and prefer the active Python by default ([#9786](https://github.com/python-poetry/poetry/pull/9786)).
- Deprecate several fields in the `tool.poetry` section in favor of the respective fields in the `project` section in the `pyproject.toml` file ([#9135](https://github.com/python-poetry/poetry/pull/9135)).
- Deprecate `poetry install --sync` in favor of `poetry sync` ([#9801](https://github.com/python-poetry/poetry/pull/9801)).
- Upgrade the warning if the current project cannot be installed to an error ([#9333](https://github.com/python-poetry/poetry/pull/9333)).
- Remove special handling for `platformdirs 2.0` macOS config directory ([#8916](https://github.com/python-poetry/poetry/pull/8916)).
- Tweak PEP 517 builds ([#9094](https://github.com/python-poetry/poetry/pull/9094)).
- Use Poetry instead of pip to manage dependencies in isolated build environments ([#9168](https://github.com/python-poetry/poetry/pull/9168),
[#9227](https://github.com/python-poetry/poetry/pull/9227)).
- Trust empty `Requires-Dist` with modern metadata ([#9078](https://github.com/python-poetry/poetry/pull/9078)).
- Do PEP 517 builds instead of parsing `setup.py` to determine dependencies ([#9099](https://github.com/python-poetry/poetry/pull/9099)).
- Drop support for reading lock files prior version 1.0 (created with Poetry prior 1.1) ([#9345](https://github.com/python-poetry/poetry/pull/9345)).
- Default to `>=` instead of `^` for the Python requirement when initializing a new project ([#9558](https://github.com/python-poetry/poetry/pull/9558)).
- Limit `build-system` to the current major version of `poetry-core` when initializing a new project ([#9812](https://github.com/python-poetry/poetry/pull/9812)).
- Remove pip-based installation, i.e. `installer.modern-installation = false` ([#9392](https://github.com/python-poetry/poetry/pull/9392)).
- Remove `virtualenvs.options.no-setuptools` config option and never include `setuptools` per default ([#9331](https://github.com/python-poetry/poetry/pull/9331)).
- Rename exceptions to have an `Error` suffix ([#9705](https://github.com/python-poetry/poetry/pull/9705)).
- Remove deprecated CLI options and methods and revoke the deprecation of `--dev` ([#9732](https://github.com/python-poetry/poetry/pull/9732)).
- Ignore installed packages during dependency resolution ([#9851](https://github.com/python-poetry/poetry/pull/9851)).
- Improve the error message on upload failure ([#9701](https://github.com/python-poetry/poetry/pull/9701)).
- Improve the error message if the current project cannot be installed to include another root cause ([#9651](https://github.com/python-poetry/poetry/pull/9651)).
- Improve the output of `poetry show <package>` ([#9750](https://github.com/python-poetry/poetry/pull/9750)).
- Improve the error message for build errors ([#9870](https://github.com/python-poetry/poetry/pull/9870)).
- Improve the error message when trying to remove a package from a project without any dependencies ([#9918](https://github.com/python-poetry/poetry/pull/9918)).
- Drop the direct dependency on `crashtest` ([#9108](https://github.com/python-poetry/poetry/pull/9108)).
- Require `keyring>=23.3.1` ([#9167](https://github.com/python-poetry/poetry/pull/9167)).
- Require `build>=1.2.1` ([#9283](https://github.com/python-poetry/poetry/pull/9283)).
- Require `dulwich>=0.22.6` ([#9748](https://github.com/python-poetry/poetry/pull/9748)).

### Fixed

- Fix an issue where git dependencies with extras could only be cloned if a branch was specified explicitly ([#7028](https://github.com/python-poetry/poetry/pull/7028)).
- Fix an issue where `poetry env remove` failed if `virtualenvs.in-project` was set to `true` ([#9118](https://github.com/python-poetry/poetry/pull/9118)).
- Fix an issue where locking packages with a digit at the end of the name and non-standard sdist names failed ([#9189](https://github.com/python-poetry/poetry/pull/9189)).
- Fix an issue where credentials where not passed when trying to download an URL dependency ([#9202](https://github.com/python-poetry/poetry/pull/9202)).
- Fix an issue where using uncommon group names with `poetry add` resulted in a broken `pyproject.toml` ([#9277](https://github.com/python-poetry/poetry/pull/9277)).
- Fix an issue where an inconsistent entry regarding the patch version of Python was kept in `envs.toml` ([#9286](https://github.com/python-poetry/poetry/pull/9286)).
- Fix an issue where relative paths were not resolved properly when using `poetry build --directory` ([#9433](https://github.com/python-poetry/poetry/pull/9433)).
- Fix an issue where unrequested extras were not uninstalled when running `poetry install` without an existing lock file ([#9345](https://github.com/python-poetry/poetry/pull/9345)).
- Fix an issue where the `poetry-check` pre-commit hook did not trigger if only `poetry.lock` has changed ([#9504](https://github.com/python-poetry/poetry/pull/9504)).
- Fix an issue where files (rather than directories) could not be added as single page source ([#9166](https://github.com/python-poetry/poetry/pull/9166)).
- Fix an issue where invalid constraints were generated when adding a package with a local version specifier ([#9603](https://github.com/python-poetry/poetry/pull/9603)).
- Fix several encoding warnings ([#8893](https://github.com/python-poetry/poetry/pull/8893)).
- Fix an issue where `virtualenvs.prefer-active-python` was not respected ([#9278](https://github.com/python-poetry/poetry/pull/9278)).
- Fix an issue where the line endings of the lock file were changed ([#9468](https://github.com/python-poetry/poetry/pull/9468)).
- Fix an issue where installing multiple dependencies from the same git repository failed sporadically due to a race condition ([#9658](https://github.com/python-poetry/poetry/pull/9658)).
- Fix an issue where installing multiple dependencies from forked monorepos failed sporadically due to a race condition ([#9723](https://github.com/python-poetry/poetry/pull/9723)).
- Fix an issue where an extra package was not installed if it is required by multiple extras ([#9700](https://github.com/python-poetry/poetry/pull/9700)).
- Fix an issue where a `direct_url.json` with vcs URLs not compliant with PEP 610 was written ([#9007](https://github.com/python-poetry/poetry/pull/9007)).
- Fix an issue where other files than wheels were recognized as wheels ([#9770](https://github.com/python-poetry/poetry/pull/9770)).
- Fix an issue where `installer.max-workers` was ignored for the implicit PyPI source ([#9815](https://github.com/python-poetry/poetry/pull/9815)).
- Fix an issue where local settings (from `poetry.toml`) were ignored for the implicit PyPI source ([#9816](https://github.com/python-poetry/poetry/pull/9816)).
- Fix an issue where different `dulwich` versions resulted in different hashes for a git dependency from a tag ([#9849](https://github.com/python-poetry/poetry/pull/9849)).
- Fix an issue where installing a yanked package with no dependencies failed with an `IndexError` ([#9505](https://github.com/python-poetry/poetry/pull/9505)).
- Fix an issue where a package could not be added from a source that required an empty password ([#9850](https://github.com/python-poetry/poetry/pull/9850)).
- Fix an issue where setting `allow-prereleases = false` still allowed pre-releases if no other solution was found ([#9798](https://github.com/python-poetry/poetry/pull/9798)).
- Fix an issue where the wrong environment was used for checking if an installed package is from system site packages ([#9861](https://github.com/python-poetry/poetry/pull/9861)).
- Fix an issue where build errors from builds to retrieve metadata information were hidden ([#9870](https://github.com/python-poetry/poetry/pull/9870)).
- Fix an issue where `poetry check` falsely reported that an invalid source "pypi" is referenced in dependencies ([#9475](https://github.com/python-poetry/poetry/pull/9475)).
- Fix an issue where `poetry install --sync` tried to uninstall system site packages if the virtual environment was created with `virtualenvs.options.system-site-packages = true` ([#9863](https://github.com/python-poetry/poetry/pull/9863)).
- Fix an issue where HTTP streaming requests were not closed properly when not completely consumed ([#9899](https://github.com/python-poetry/poetry/pull/9899)).

### Docs

- Add information about getting test coverage in the contribution guide ([#9726](https://github.com/python-poetry/poetry/pull/9726)).
- Mention `pre-commit-update` as an alternative to `pre-commit autoupdate` ([#9716](https://github.com/python-poetry/poetry/pull/9716)).
- Improve the explanation of `exclude` and `include` ([#9734](https://github.com/python-poetry/poetry/pull/9734)).
- Add information about compatible release requirements, i.e. `~=` ([#9783](https://github.com/python-poetry/poetry/pull/9783)).
- Add documentation for using a build script to build extension modules ([#9864](https://github.com/python-poetry/poetry/pull/9864)).

### poetry-core ([`2.0.0`](https://github.com/python-poetry/poetry-core/releases/tag/2.0.0))

- Add support for non PEP440 compliant version in the `platform_release` marker ([#722](https://github.com/python-poetry/poetry-core/pull/722)).
- Add support for string comparisons with `in` / `not in` in generic constraints ([#722](https://github.com/python-poetry/poetry-core/pull/722)).
- Add support for script files that are generated by a build script ([#710](https://github.com/python-poetry/poetry-core/pull/710)).
- Add support for `SOURCE_DATE_EPOCH` when building packages ([#766](https://github.com/python-poetry/poetry-core/pull/766),
[#781](https://github.com/python-poetry/poetry-core/pull/781)).
- Create `METADATA` files with version 2.3 instead of 2.2 ([#707](https://github.com/python-poetry/poetry-core/pull/707)).
- Remove support for `x` in version constraints ([#770](https://github.com/python-poetry/poetry-core/pull/770)).
- Remove support for scripts with extras ([#708](https://github.com/python-poetry/poetry-core/pull/708)).
- Remove deprecated features and interfaces ([#702](https://github.com/python-poetry/poetry-core/pull/702),
[#769](https://github.com/python-poetry/poetry-core/pull/769)).
- Deprecate `tool.poetry.dev-dependencies` in favor of `tool.poetry.group.dev.dependencies` ([#754](https://github.com/python-poetry/poetry-core/pull/754)).
- Fix an issue where the `platlib` directory of the wrong Python was used ([#726](https://github.com/python-poetry/poetry-core/pull/726)).
- Fix an issue where building a wheel in a nested output directory results in an error ([#762](https://github.com/python-poetry/poetry-core/pull/762)).
- Fix an issue where `+` was not allowed in git URL paths ([#765](https://github.com/python-poetry/poetry-core/pull/765)).
- Fix an issue where the temporary directory was not cleaned up on error ([#775](https://github.com/python-poetry/poetry-core/pull/775)).
- Fix an issue where the regular expression for author names was too restrictive ([#517](https://github.com/python-poetry/poetry-core/pull/517)).
- Fix an issue where basic auth http(s) credentials could not be parsed ([#791](https://github.com/python-poetry/poetry-core/pull/791)).


## [1.8.5] - 2024-12-06

### Changed

- Require `pkginfo>=1.12` to fix an issue with an unknown metadata version 2.4 ([#9888](https://github.com/python-poetry/poetry/pull/9888)).
- Do not fail if the unknown metadata version is only a minor version update ([#9888](https://github.com/python-poetry/poetry/pull/9888)).


## [1.8.4] - 2024-10-14

### Added

- **Add official support for Python 3.13** ([#9523](https://github.com/python-poetry/poetry/pull/9523)).

### Changed

- Require `virtualenv>=20.26.6` to mitigate potential command injection when running `poetry shell` in untrusted projects ([#9757](https://github.com/python-poetry/poetry/pull/9757)).

### poetry-core ([`1.9.1`](https://github.com/python-poetry/poetry-core/releases/tag/1.9.1))

- Add `3.13` to the list of available Python versions ([#747](https://github.com/python-poetry/poetry-core/pull/747)).


## [1.8.3] - 2024-05-08

### Added

- Add support for untagged CPython builds with versions ending with a `+` ([#9207](https://github.com/python-poetry/poetry/pull/9207)).

### Changed

- Require `pkginfo>=1.10` to ensure support for packages with metadata version 2.3 ([#9130](https://github.com/python-poetry/poetry/pull/9130)).
- Improve locking on FIPS systems ([#9152](https://github.com/python-poetry/poetry/pull/9152)).

### Fixed

- Fix an issue where unrecognized package metadata versions silently resulted in empty dependencies ([#9203](https://github.com/python-poetry/poetry/pull/9203),
  [#9226](https://github.com/python-poetry/poetry/pull/9226)).
- Fix an issue where trailing slashes in git URLs where not handled correctly ([#9205](https://github.com/python-poetry/poetry/pull/9205)).
- Fix an issue where `poetry self` commands printed a warning that the current project cannot be installed ([#9302](https://github.com/python-poetry/poetry/pull/9302)).
- Fix an issue where `poetry install` sporadically failed with a `KeyError` due to a race condition ([#9335](https://github.com/python-poetry/poetry/pull/9335)).

### Docs

- Fix incorrect information about `poetry shell` ([#9060](https://github.com/python-poetry/poetry/pull/9060)).
- Add a git subdirectory example to `poetry add` ([#9080](https://github.com/python-poetry/poetry/pull/9080)).
- Mention interactive credential configuration ([#9074](https://github.com/python-poetry/poetry/pull/9074)).
- Add notes for optional advanced installation steps ([#9098](https://github.com/python-poetry/poetry/pull/9098)).
- Add reference to configuration credentials in documentation of poetry `publish` ([#9110](https://github.com/python-poetry/poetry/pull/9110)).
- Improve documentation for configuring credentials via environment variables ([#9121](https://github.com/python-poetry/poetry/pull/9121)).
- Remove misleading wording around virtual environments ([#9213](https://github.com/python-poetry/poetry/pull/9213)).
- Remove outdated advice regarding seeding keyring backends ([#9164](https://github.com/python-poetry/poetry/pull/9164)).
- Add a `pyproject.toml` example for a dependency with multiple extras ([#9138](https://github.com/python-poetry/poetry/pull/9138)).
- Clarify help of `poetry add` ([#9230](https://github.com/python-poetry/poetry/pull/9230)).
- Add a note how to configure credentials for TestPyPI for `poetry publish` ([#9255](https://github.com/python-poetry/poetry/pull/9255)).
- Fix information about the `--readme` option in `poetry new` ([#9260](https://github.com/python-poetry/poetry/pull/9260)).
- Clarify what is special about the Python constraint in `dependencies` ([#9256](https://github.com/python-poetry/poetry/pull/9256)).
- Update how to uninstall plugins via `pipx` ([#9320](https://github.com/python-poetry/poetry/pull/9320)).


## [1.8.2] - 2024-03-02

### Fixed

- Harden `lazy-wheel` error handling if the index server is behaving badly in an unexpected way ([#9051](https://github.com/python-poetry/poetry/pull/9051)).
- Improve `lazy-wheel` error handling if the index server does not handle HTTP range requests correctly ([#9082](https://github.com/python-poetry/poetry/pull/9082)).
- Improve `lazy-wheel` error handling if the index server pretends to support HTTP range requests but does not respect them ([#9084](https://github.com/python-poetry/poetry/pull/9084)).
- Improve `lazy-wheel` to allow redirects for HEAD requests ([#9087](https://github.com/python-poetry/poetry/pull/9087)).
- Improve debug logging for `lazy-wheel` errors ([#9059](https://github.com/python-poetry/poetry/pull/9059)).
- Fix an issue where the hash of a metadata file could not be calculated correctly due to an encoding issue ([#9049](https://github.com/python-poetry/poetry/pull/9049)).
- Fix an issue where `poetry add` failed in non-package mode if no project name was set ([#9046](https://github.com/python-poetry/poetry/pull/9046)).
- Fix an issue where a hint to non-package mode was not compliant with the final name of the setting ([#9073](https://github.com/python-poetry/poetry/pull/9073)).


## [1.8.1] - 2024-02-26

### Fixed

- Update the minimum required version of `packaging` ([#9031](https://github.com/python-poetry/poetry/pull/9031)).
- Handle unexpected responses from servers that do not support HTTP range requests with negative offsets more robust ([#9030](https://github.com/python-poetry/poetry/pull/9030)).

### Docs

- Rename `master` branch to `main` ([#9022](https://github.com/python-poetry/poetry/pull/9022)).


## [1.8.0] - 2024-02-25

### Added

- **Add a `non-package` mode for use cases where Poetry is only used for dependency management** ([#8650](https://github.com/python-poetry/poetry/pull/8650)).
- **Add support for PEP 658 to fetch metadata without having to download wheels** ([#5509](https://github.com/python-poetry/poetry/pull/5509)).
- **Add a `lazy-wheel` config option (default: `true`) to reduce wheel downloads during dependency resolution** ([#8815](https://github.com/python-poetry/poetry/pull/8815),
  [#8941](https://github.com/python-poetry/poetry/pull/8941)).
- Improve performance of dependency resolution by using shallow copies instead of deep copies ([#8671](https://github.com/python-poetry/poetry/pull/8671)).
- `poetry check` validates that no unknown sources are referenced in dependencies ([#8709](https://github.com/python-poetry/poetry/pull/8709)).
- Add archive validation during installation for further hash algorithms ([#8851](https://github.com/python-poetry/poetry/pull/8851)).
- Add a `to` key in `tool.poetry.packages` to allow custom subpackage names ([#8791](https://github.com/python-poetry/poetry/pull/8791)).
- Add a config option to disable `keyring` ([#8910](https://github.com/python-poetry/poetry/pull/8910)).
- Add a `--sync` option to `poetry update` ([#8931](https://github.com/python-poetry/poetry/pull/8931)).
- Add an `--output` option to `poetry build` ([#8828](https://github.com/python-poetry/poetry/pull/8828)).
- Add a `--dist-dir` option to `poetry publish` ([#8828](https://github.com/python-poetry/poetry/pull/8828)).

### Changed

- **The implicit PyPI source is disabled if at least one primary source is configured** ([#8771](https://github.com/python-poetry/poetry/pull/8771)).
- **Deprecate source priority `default`** ([#8771](https://github.com/python-poetry/poetry/pull/8771)).
- **Upgrade the warning about an inconsistent lockfile to an error** ([#8737](https://github.com/python-poetry/poetry/pull/8737)).
- Deprecate setting `installer.modern-installation` to `false` ([#8988](https://github.com/python-poetry/poetry/pull/8988)).
- Drop support for `pip<19` ([#8894](https://github.com/python-poetry/poetry/pull/8894)).
- Require `requests-toolbelt>=1` ([#8680](https://github.com/python-poetry/poetry/pull/8680)).
- Allow `platformdirs` 4.x ([#8668](https://github.com/python-poetry/poetry/pull/8668)).
- Allow and require `xattr` 1.x on macOS ([#8801](https://github.com/python-poetry/poetry/pull/8801)).
- Improve venv shell activation in `fish` ([#8804](https://github.com/python-poetry/poetry/pull/8804)).
- Rename `system` to `base` in output of `poetry env info` ([#8832](https://github.com/python-poetry/poetry/pull/8832)).
- Use pretty name in output of `poetry version` ([#8849](https://github.com/python-poetry/poetry/pull/8849)).
- Improve error handling for invalid entries in `tool.poetry.scripts` ([#8898](https://github.com/python-poetry/poetry/pull/8898)).
- Improve verbose output for dependencies with extras during dependency resolution ([#8834](https://github.com/python-poetry/poetry/pull/8834)).
- Improve message about an outdated lockfile ([#8962](https://github.com/python-poetry/poetry/pull/8962)).

### Fixed

- Fix an issue where `poetry shell` failed when Python has been installed with MSYS2 ([#8644](https://github.com/python-poetry/poetry/pull/8644)).
- Fix an issue where Poetry commands failed in a terminal with a non-UTF-8 encoding ([#8608](https://github.com/python-poetry/poetry/pull/8608)).
- Fix an issue where a missing project name caused an incomprehensible error message ([#8691](https://github.com/python-poetry/poetry/pull/8691)).
- Fix an issue where Poetry failed to install an `sdist` path dependency ([#8682](https://github.com/python-poetry/poetry/pull/8682)).
- Fix an issue where `poetry install` failed because an unused extra was not available ([#8548](https://github.com/python-poetry/poetry/pull/8548)).
- Fix an issue where `poetry install --sync` did not remove an unrequested extra ([#8621](https://github.com/python-poetry/poetry/pull/8621)).
- Fix an issue where `poetry init` did not allow specific characters in the author field ([#8779](https://github.com/python-poetry/poetry/pull/8779)).
- Fix an issue where Poetry could not download `sdists` from misconfigured servers ([#8701](https://github.com/python-poetry/poetry/pull/8701)).
- Fix an issue where metadata of sdists that call CLI tools of their build requirements could not be determined ([#8827](https://github.com/python-poetry/poetry/pull/8827)).
- Fix an issue where Poetry failed to use the currently activated environment ([#8831](https://github.com/python-poetry/poetry/pull/8831)).
- Fix an issue where `poetry shell` failed in `zsh` if a space was in the venv path ([#7245](https://github.com/python-poetry/poetry/pull/7245)).
- Fix an issue where scripts with extras could not be installed ([#8900](https://github.com/python-poetry/poetry/pull/8900)).
- Fix an issue where explicit sources where not propagated correctly ([#8835](https://github.com/python-poetry/poetry/pull/8835)).
- Fix an issue where debug prints where swallowed when using a build script ([#8760](https://github.com/python-poetry/poetry/pull/8760)).
- Fix an issue where explicit sources of locked dependencies where not propagated correctly ([#8948](https://github.com/python-poetry/poetry/pull/8948)).
- Fix an issue where Poetry's own environment was falsely identified as system environment ([#8970](https://github.com/python-poetry/poetry/pull/8970)).
- Fix an issue where dependencies from a `setup.py` were ignored silently ([#9000](https://github.com/python-poetry/poetry/pull/9000)).
- Fix an issue where environment variables for `virtualenv.options` were ignored ([#9015](https://github.com/python-poetry/poetry/pull/9015)).
- Fix an issue where `virtualenvs.options.no-pip` and `virtualenvs.options.no-setuptools` were not normalized ([#9015](https://github.com/python-poetry/poetry/pull/9015)).

### Docs

- Replace deprecated `--no-dev` with `--without dev` in the FAQ ([#8659](https://github.com/python-poetry/poetry/pull/8659)).
- Recommend `poetry-check` instead of the deprecated `poetry-lock` pre-commit hook ([#8675](https://github.com/python-poetry/poetry/pull/8675)).
- Clarify the names of the environment variables to provide credentials for repositories ([#8782](https://github.com/python-poetry/poetry/pull/8782)).
- Add note how to install several version of Poetry in parallel ([#8814](https://github.com/python-poetry/poetry/pull/8814)).
- Improve description of `poetry show --why` ([#8817](https://github.com/python-poetry/poetry/pull/8817)).
- Improve documentation of `poetry update` ([#8706](https://github.com/python-poetry/poetry/pull/8706)).
- Add a warning about passing variables that may start with a hyphen via command line ([#8850](https://github.com/python-poetry/poetry/pull/8850)).
- Mention that the virtual environment in which Poetry itself is installed should not be activated ([#8833](https://github.com/python-poetry/poetry/pull/8833)).
- Add note about `poetry run` and externally managed environments ([#8748](https://github.com/python-poetry/poetry/pull/8748)).
- Update FAQ entry about `tox` for `tox` 4.x ([#8658](https://github.com/python-poetry/poetry/pull/8658)).
- Fix documentation for default `format` option for `include` and `exclude` value ([#8852](https://github.com/python-poetry/poetry/pull/8852)).
- Add note about `tox` and configured credentials ([#8888](https://github.com/python-poetry/poetry/pull/8888)).
- Add note and link how to install `pipx` ([#8878](https://github.com/python-poetry/poetry/pull/8878)).
- Fix examples for `poetry add` with git dependencies over ssh ([#8911](https://github.com/python-poetry/poetry/pull/8911)).
- Remove reference to deprecated scripts extras feature ([#8903](https://github.com/python-poetry/poetry/pull/8903)).
- Change examples to prefer `--only main` instead of `--without dev` ([#8921](https://github.com/python-poetry/poetry/pull/8921)).
- Mention that the `develop` attribute is a Poetry-specific feature and not propagated to other tools ([#8971](https://github.com/python-poetry/poetry/pull/8971)).
- Fix examples for adding supplemental and secondary sources ([#8953](https://github.com/python-poetry/poetry/pull/8953)).
- Add PyTorch example for explicit sources ([#9006](https://github.com/python-poetry/poetry/pull/9006)).

### poetry-core ([`1.9.0`](https://github.com/python-poetry/poetry-core/releases/tag/1.9.0))

- **Deprecate scripts that depend on extras** ([#690](https://github.com/python-poetry/poetry-core/pull/690)).
- Add support for path dependencies that do not define a build system ([#675](https://github.com/python-poetry/poetry-core/pull/675)).
- Update list of supported licenses ([#659](https://github.com/python-poetry/poetry-core/pull/659),
  [#669](https://github.com/python-poetry/poetry-core/pull/669),
  [#678](https://github.com/python-poetry/poetry-core/pull/678),
  [#694](https://github.com/python-poetry/poetry-core/pull/694)).
- Rework list of files included in build artifacts ([#666](https://github.com/python-poetry/poetry-core/pull/666)).
- Fix an issue where insignificant errors were printed if the working directory is not inside a git repository ([#684](https://github.com/python-poetry/poetry-core/pull/684)).
- Fix an issue where the project's directory was not recognized as git repository on Windows due to an encoding issue ([#685](https://github.com/python-poetry/poetry-core/pull/685)).


## [1.7.1] - 2023-11-16

### Fixed

- Fix an issue where sdists that call CLI tools of their build requirements could not be installed ([#8630](https://github.com/python-poetry/poetry/pull/8630)).
- Fix an issue where sdists with symlinks could not be installed due to a broken tarfile datafilter ([#8649](https://github.com/python-poetry/poetry/pull/8649)).
- Fix an issue where `poetry init` failed when trying to add dependencies ([#8655](https://github.com/python-poetry/poetry/pull/8655)).
- Fix an issue where `poetry install` failed if `virtualenvs.create` was set to `false` ([#8672](https://github.com/python-poetry/poetry/pull/8672)).


## [1.7.0] - 2023-11-03

### Added

- **Add official support for Python 3.12** ([#7803](https://github.com/python-poetry/poetry/pull/7803), [#8544](https://github.com/python-poetry/poetry/pull/8544)).
- **Print a future warning that `poetry-plugin-export` will not be installed by default anymore** ([#8562](https://github.com/python-poetry/poetry/pull/8562)).
- Add `poetry-install` pre-commit hook ([#8327](https://github.com/python-poetry/poetry/pull/8327)).
- Add `--next-phase` option to `poetry version` ([#8089](https://github.com/python-poetry/poetry/pull/8089)).
- Print a warning when overwriting files from another package at installation ([#8386](https://github.com/python-poetry/poetry/pull/8386)).
- Print a warning if the current project cannot be installed ([#8369](https://github.com/python-poetry/poetry/pull/8369)).
- Report more details on build backend exceptions ([#8464](https://github.com/python-poetry/poetry/pull/8464)).

### Changed

- Set Poetry as `user-agent` for all HTTP requests ([#8394](https://github.com/python-poetry/poetry/pull/8394)).
- Do not install `setuptools` per default in Python 3.12 ([#7803](https://github.com/python-poetry/poetry/pull/7803)).
- Do not install `wheel` per default ([#7803](https://github.com/python-poetry/poetry/pull/7803)).
- Remove `setuptools` and `wheel` when running `poetry install --sync` if they are not required by the project ([#8600](https://github.com/python-poetry/poetry/pull/8600)).
- Improve error message about PEP-517 support ([#8463](https://github.com/python-poetry/poetry/pull/8463)).
- Improve `keyring` handling ([#8227](https://github.com/python-poetry/poetry/pull/8227)).
- Read the `description` field when extracting metadata from `setup.py` files ([#8545](https://github.com/python-poetry/poetry/pull/8545)).

### Fixed

- **Fix an issue where dependencies of inactive extras were locked and installed** ([#8399](https://github.com/python-poetry/poetry/pull/8399)).
- **Fix an issue where build requirements were not installed due to a race condition in the artifact cache** ([#8517](https://github.com/python-poetry/poetry/pull/8517)).
- Fix an issue where packages included in the system site packages were installed even though `virtualenvs.options.system-site-packages` was set ([#8359](https://github.com/python-poetry/poetry/pull/8359)).
- Fix an issue where git dependencies' submodules with relative URLs were handled incorrectly ([#8020](https://github.com/python-poetry/poetry/pull/8020)).
- Fix an issue where a failed installation of build dependencies was not noticed directly ([#8479](https://github.com/python-poetry/poetry/pull/8479)).
- Fix an issue where `poetry shell` did not work completely with `nushell` ([#8478](https://github.com/python-poetry/poetry/pull/8478)).
- Fix an issue where a confusing error messages was displayed when running `poetry config pypi-token.pypi` without a value ([#8502](https://github.com/python-poetry/poetry/pull/8502)).
- Fix an issue where a cryptic error message is printed if there is no metadata entry in the lockfile ([#8523](https://github.com/python-poetry/poetry/pull/8523)).
- Fix an issue with the encoding with special characters in the virtualenv's path ([#8565](https://github.com/python-poetry/poetry/pull/8565)).
- Fix an issue where the connection pool size was not adjusted to the number of workers ([#8559](https://github.com/python-poetry/poetry/pull/8559)).

### Docs

- Improve the wording regarding a project's supported Python range ([#8423](https://github.com/python-poetry/poetry/pull/8423)).
- Make `pipx` the preferred (first mentioned) installation method ([#8090](https://github.com/python-poetry/poetry/pull/8090)).
- Add a warning about `poetry self` on Windows ([#8090](https://github.com/python-poetry/poetry/pull/8090)).
- Fix example for `poetry add` with a git dependency ([#8438](https://github.com/python-poetry/poetry/pull/8438)).
- Add information about auto-included files in wheels and sdist ([#8555](https://github.com/python-poetry/poetry/pull/8555)).
- Fix documentation of the `POETRY_REPOSITORIES_` variables docs ([#8492](https://github.com/python-poetry/poetry/pull/8492)).
- Add `CITATION.cff` file ([#8510](https://github.com/python-poetry/poetry/pull/8510)).

### poetry-core ([`1.8.1`](https://github.com/python-poetry/poetry-core/releases/tag/1.8.1))

- Add support for creating packages dynamically in the build script ([#629](https://github.com/python-poetry/poetry-core/pull/629)).
- Improve marker logic for `extra` markers ([#636](https://github.com/python-poetry/poetry-core/pull/636)).
- Update list of supported licenses ([#635](https://github.com/python-poetry/poetry-core/pull/635), [#646](https://github.com/python-poetry/poetry-core/pull/646)).
- Fix an issue where projects with extension modules were not installed in editable mode ([#633](https://github.com/python-poetry/poetry-core/pull/633)).
- Fix an issue where the wrong or no `lib` folder was added to the wheel ([#634](https://github.com/python-poetry/poetry-core/pull/634)).

### poetry-plugin-export ([`^1.6.0`](https://github.com/python-poetry/poetry-plugin-export/releases/tag/1.6.0))

- Add an `--all-extras` option ([#241](https://github.com/python-poetry/poetry-plugin-export/pull/241)).
- Fix an issue where git dependencies are exported with the branch name instead of the resolved commit hash ([#213](https://github.com/python-poetry/poetry-plugin-export/pull/213)).


## [1.6.1] - 2023-08-21

### Fixed

- Update the minimum required version of `requests` ([#8336](https://github.com/python-poetry/poetry/pull/8336)).


## [1.6.0] - 2023-08-20

### Added

- **Add support for repositories that do not provide a supported hash algorithm** ([#8118](https://github.com/python-poetry/poetry/pull/8118)).
- **Add full support for duplicate dependencies with overlapping markers** ([#7257](https://github.com/python-poetry/poetry/pull/7257)).
- **Improve performance of `poetry lock` for certain edge cases** ([#8256](https://github.com/python-poetry/poetry/pull/8256)).
- Improve performance of `poetry install` ([#8031](https://github.com/python-poetry/poetry/pull/8031)).
- `poetry check` validates that specified `readme` files do exist ([#7444](https://github.com/python-poetry/poetry/pull/7444)).
- Add a downgrading note when updating to an older version ([#8176](https://github.com/python-poetry/poetry/pull/8176)).
- Add support for `vox` in the `xonsh` shell ([#8203](https://github.com/python-poetry/poetry/pull/8203)).
- Add support for `pre-commit` hooks for projects where the pyproject.toml file is located in a subfolder ([#8204](https://github.com/python-poetry/poetry/pull/8204)).
- Add support for the `git+http://` scheme ([#6619](https://github.com/python-poetry/poetry/pull/6619)).

### Changed

- **Drop support for Python 3.7** ([#7674](https://github.com/python-poetry/poetry/pull/7674)).
- Move `poetry lock --check` to `poetry check --lock` and deprecate the former ([#8015](https://github.com/python-poetry/poetry/pull/8015)).
- Change future warning that PyPI will only be disabled automatically if there are no primary sources ([#8151](https://github.com/python-poetry/poetry/pull/8151)).

### Fixed

- Fix an issue where `build-system.requires` were not respected for projects with build scripts ([#7975](https://github.com/python-poetry/poetry/pull/7975)).
- Fix an issue where the encoding was not handled correctly when calling a subprocess ([#8060](https://github.com/python-poetry/poetry/pull/8060)).
- Fix an issue where `poetry show --top-level` did not show top level dependencies with extras ([#8076](https://github.com/python-poetry/poetry/pull/8076)).
- Fix an issue where `poetry init` handled projects with `src` layout incorrectly ([#8218](https://github.com/python-poetry/poetry/pull/8218)).
- Fix an issue where Poetry wrote `.pth` files with the wrong encoding ([#8041](https://github.com/python-poetry/poetry/pull/8041)).
- Fix an issue where `poetry install` did not respect the source if the same version of a package has been locked from different sources ([#8304](https://github.com/python-poetry/poetry/pull/8304)).

### Docs

- Document **official Poetry badge** ([#8066](https://github.com/python-poetry/poetry/pull/8066)).
- Update configuration folder path for macOS ([#8062](https://github.com/python-poetry/poetry/pull/8062)).
- Add a warning about pip ignoring lock files ([#8117](https://github.com/python-poetry/poetry/pull/8117)).
- Clarify the use of the `virtualenvs.in-project` setting. ([#8126](https://github.com/python-poetry/poetry/pull/8126)).
- Change `pre-commit` YAML style to be consistent with pre-commit's own examples ([#8146](https://github.com/python-poetry/poetry/pull/8146)).
- Fix command for listing installed plugins ([#8200](https://github.com/python-poetry/poetry/pull/8200)).
- Mention the `nox-poetry` package ([#8173](https://github.com/python-poetry/poetry/pull/8173)).
- Add an example with a PyPI source in the pyproject.toml file ([#8171](https://github.com/python-poetry/poetry/pull/8171)).
- Use `reference` instead of deprecated `callable` in the scripts example ([#8211](https://github.com/python-poetry/poetry/pull/8211)).

### poetry-core ([`1.7.0`](https://github.com/python-poetry/poetry-core/releases/tag/1.7.0))

- Improve performance of marker handling ([#609](https://github.com/python-poetry/poetry-core/pull/609)).
- Allow `|` as a value separator in markers with the operators `in` and `not in` ([#608](https://github.com/python-poetry/poetry-core/pull/608)).
- Put pretty name (instead of normalized name) in metadata ([#620](https://github.com/python-poetry/poetry-core/pull/620)).
- Update list of supported licenses ([#623](https://github.com/python-poetry/poetry-core/pull/623)).
- Fix an issue where PEP 508 dependency specifications with names starting with a digit could not be parsed ([#607](https://github.com/python-poetry/poetry-core/pull/607)).
- Fix an issue where Poetry considered an unrelated `.gitignore` file resulting in an empty wheel ([#611](https://github.com/python-poetry/poetry-core/pull/611)).

### poetry-plugin-export ([`^1.5.0`](https://github.com/python-poetry/poetry-plugin-export/releases/tag/1.5.0))

- Fix an issue where markers for dependencies required by an extra were not generated correctly ([#209](https://github.com/python-poetry/poetry-plugin-export/pull/209)).


## [1.5.1] - 2023-05-29

### Added

- Improve dependency resolution performance in cases with a lot of backtracking ([#7950](https://github.com/python-poetry/poetry/pull/7950)).

### Changed

- Disable wheel content validation during installation ([#7987](https://github.com/python-poetry/poetry/pull/7987)).

### Fixed

- Fix an issue where partially downloaded wheels were cached ([#7968](https://github.com/python-poetry/poetry/pull/7968)).
- Fix an issue where `poetry run` did no longer execute relative-path scripts ([#7963](https://github.com/python-poetry/poetry/pull/7963)).
- Fix an issue where dependencies were not installed in `in-project` environments ([#7977](https://github.com/python-poetry/poetry/pull/7977)).
- Fix an issue where no solution was found for a transitive dependency on a pre-release of a package ([#7978](https://github.com/python-poetry/poetry/pull/7978)).
- Fix an issue where cached repository packages were incorrectly parsed, leading to its dependencies being ignored ([#7995](https://github.com/python-poetry/poetry/pull/7995)).
- Fix an issue where an explicit source was ignored so that a direct origin dependency was used instead ([#7973](https://github.com/python-poetry/poetry/pull/7973)).
- Fix an issue where the installation of big wheels consumed a lot of memory ([#7987](https://github.com/python-poetry/poetry/pull/7987)).

### Docs

- Add information about multiple constraints dependencies with direct origin and version dependencies ([#7973](https://github.com/python-poetry/poetry/pull/7973)).

### poetry-core ([`1.6.1`](https://github.com/python-poetry/poetry-core/releases/tag/1.6.1))

- Fix an endless recursion in marker handling ([#593](https://github.com/python-poetry/poetry-core/pull/593)).
- Fix an issue where the wheel tag was not built correctly under certain circumstances ([#591](https://github.com/python-poetry/poetry-core/pull/591)).

### poetry-plugin-export ([`^1.4.0`](https://github.com/python-poetry/poetry-plugin-export/releases/tag/1.4.0))

- Fix an issue where `--extra-index-url` and `--trusted-host` was not generated for sources with priority `explicit` ([#205](https://github.com/python-poetry/poetry-plugin-export/pull/205)).


## [1.5.0] - 2023-05-19

### Added

- **Introduce the new source priorities `explicit` and `supplemental`** ([#7658](https://github.com/python-poetry/poetry/pull/7658),
  [#6879](https://github.com/python-poetry/poetry/pull/6879)).
- **Introduce the option to configure the priority of the implicit PyPI source** ([#7801](https://github.com/python-poetry/poetry/pull/7801)).
- Add handling for corrupt cache files ([#7453](https://github.com/python-poetry/poetry/pull/7453)).
- Improve caching of URL and git dependencies ([#7693](https://github.com/python-poetry/poetry/pull/7693),
  [#7473](https://github.com/python-poetry/poetry/pull/7473)).
- Add option to skip installing directory dependencies ([#6845](https://github.com/python-poetry/poetry/pull/6845),
  [#7923](https://github.com/python-poetry/poetry/pull/7923)).
- Add `--executable` option to `poetry env info` ([#7547](https://github.com/python-poetry/poetry/pull/7547)).
- Add `--top-level` option to `poetry show` ([#7415](https://github.com/python-poetry/poetry/pull/7415)).
- Add `--lock` option to `poetry remove` ([#7917](https://github.com/python-poetry/poetry/pull/7917)).
- Add experimental `POETRY_REQUESTS_TIMEOUT` option ([#7081](https://github.com/python-poetry/poetry/pull/7081)).
- Improve performance of wheel inspection by avoiding unnecessary file copy operations ([#7916](https://github.com/python-poetry/poetry/pull/7916)).

### Changed

- **Remove the old deprecated installer and the corresponding setting `experimental.new-installer`** ([#7356](https://github.com/python-poetry/poetry/pull/7356)).
- **Introduce `priority` key for sources and deprecate flags `default` and `secondary`** ([#7658](https://github.com/python-poetry/poetry/pull/7658)).
- Deprecate `poetry run <entry point>` if the entry point was not previously installed via `poetry install` ([#7606](https://github.com/python-poetry/poetry/pull/7606)).
- Only write the lock file if the installation succeeds ([#7498](https://github.com/python-poetry/poetry/pull/7498)).
- Do not write the unused package category into the lock file ([#7637](https://github.com/python-poetry/poetry/pull/7637)).

### Fixed

- Fix an issue where Poetry's internal pyproject.toml continually grows larger with empty lines ([#7705](https://github.com/python-poetry/poetry/pull/7705)).
- Fix an issue where Poetry crashes due to corrupt cache files ([#7453](https://github.com/python-poetry/poetry/pull/7453)).
- Fix an issue where the `Retry-After` in HTTP responses was not respected and retries were handled inconsistently ([#7072](https://github.com/python-poetry/poetry/pull/7072)).
- Fix an issue where Poetry silently ignored invalid groups ([#7529](https://github.com/python-poetry/poetry/pull/7529)).
- Fix an issue where Poetry does not find a compatible Python version if not given explicitly ([#7771](https://github.com/python-poetry/poetry/pull/7771)).
- Fix an issue where the `direct_url.json` of an editable install from a git dependency was invalid ([#7473](https://github.com/python-poetry/poetry/pull/7473)).
- Fix an issue where error messages from build backends were not decoded correctly ([#7781](https://github.com/python-poetry/poetry/pull/7781)).
- Fix an infinite loop when adding certain dependencies ([#7405](https://github.com/python-poetry/poetry/pull/7405)).
- Fix an issue where pre-commit hooks skip pyproject.toml files in subdirectories ([#7239](https://github.com/python-poetry/poetry/pull/7239)).
- Fix an issue where pre-commit hooks do not use the expected Python version ([#6989](https://github.com/python-poetry/poetry/pull/6989)).
- Fix an issue where an unclear error message is printed if the project name is the same as one of its dependencies ([#7757](https://github.com/python-poetry/poetry/pull/7757)).
- Fix an issue where `poetry install` returns a zero exit status even though the build script failed ([#7812](https://github.com/python-poetry/poetry/pull/7812)).
- Fix an issue where an existing `.venv` was not used if `in-project` was not set ([#7792](https://github.com/python-poetry/poetry/pull/7792)).
- Fix an issue where multiple extras passed to `poetry add` were not parsed correctly ([#7836](https://github.com/python-poetry/poetry/pull/7836)).
- Fix an issue where `poetry shell` did not send a newline to `fish` ([#7884](https://github.com/python-poetry/poetry/pull/7884)).
- Fix an issue where `poetry update --lock` printed operations that were not executed ([#7915](https://github.com/python-poetry/poetry/pull/7915)).
- Fix an issue where `poetry add --lock` did perform a full update of all dependencies ([#7920](https://github.com/python-poetry/poetry/pull/7920)).
- Fix an issue where `poetry shell` did not work with `nushell` ([#7919](https://github.com/python-poetry/poetry/pull/7919)).
- Fix an issue where subprocess calls failed on Python 3.7 ([#7932](https://github.com/python-poetry/poetry/pull/7932)).
- Fix an issue where keyring was called even though the password was stored in an environment variable ([#7928](https://github.com/python-poetry/poetry/pull/7928)).

### Docs

- Add information about what to use instead of `--dev` ([#7647](https://github.com/python-poetry/poetry/pull/7647)).
- Promote semantic versioning less aggressively ([#7517](https://github.com/python-poetry/poetry/pull/7517)).
- Explain Poetry's own versioning scheme in the FAQ ([#7517](https://github.com/python-poetry/poetry/pull/7517)).
- Update documentation for configuration with environment variables ([#6711](https://github.com/python-poetry/poetry/pull/6711)).
- Add details how to disable the virtualenv prompt ([#7874](https://github.com/python-poetry/poetry/pull/7874)).
- Improve documentation on whether to commit `poetry.lock` ([#7506](https://github.com/python-poetry/poetry/pull/7506)).
- Improve documentation of `virtualenv.create` ([#7608](https://github.com/python-poetry/poetry/pull/7608)).

### poetry-core ([`1.6.0`](https://github.com/python-poetry/poetry-core/releases/tag/1.6.0))

- Improve error message for invalid markers ([#569](https://github.com/python-poetry/poetry-core/pull/569)).
- Increase robustness when deleting temporary directories on Windows ([#460](https://github.com/python-poetry/poetry-core/pull/460)).
- Replace `tomlkit` with `tomli`, which changes the interface of some _internal_ classes ([#483](https://github.com/python-poetry/poetry-core/pull/483)).
- Deprecate `Package.category` ([#561](https://github.com/python-poetry/poetry-core/pull/561)).
- Fix a performance regression in marker handling ([#568](https://github.com/python-poetry/poetry-core/pull/568)).
- Fix an issue where wildcard version constraints were not handled correctly ([#402](https://github.com/python-poetry/poetry-core/pull/402)).
- Fix an issue where `poetry build` created duplicate Python classifiers if they were specified manually ([#578](https://github.com/python-poetry/poetry-core/pull/578)).
- Fix an issue where local versions where not handled correctly ([#579](https://github.com/python-poetry/poetry-core/pull/579)).


## [1.4.2] - 2023-04-02

### Changed

- When trying to install wheels with invalid `RECORD` files, Poetry does not fail anymore but only prints a warning.
  This mitigates an unintended change introduced in Poetry 1.4.1 ([#7694](https://github.com/python-poetry/poetry/pull/7694)).

### Fixed

- Fix an issue where relative git submodule urls were not parsed correctly ([#7017](https://github.com/python-poetry/poetry/pull/7017)).
- Fix an issue where Poetry could freeze when building a project with a build script if it generated enough output to fill the OS pipe buffer ([#7699](https://github.com/python-poetry/poetry/pull/7699)).


## [1.4.1] - 2023-03-19

### Fixed

- Fix an issue where `poetry install` did not respect the requirements for building editable dependencies ([#7579](https://github.com/python-poetry/poetry/pull/7579)).
- Fix an issue where `poetry init` crashed due to bad input when adding packages interactively ([#7569](https://github.com/python-poetry/poetry/pull/7569)).
- Fix an issue where `poetry install` ignored the `subdirectory` argument of git dependencies ([#7580](https://github.com/python-poetry/poetry/pull/7580)).
- Fix an issue where installing packages with `no-binary` could result in a false hash mismatch ([#7594](https://github.com/python-poetry/poetry/pull/7594)).
- Fix an issue where the hash of sdists was neither validated nor written to the `direct_url.json` during installation ([#7594](https://github.com/python-poetry/poetry/pull/7594)).
- Fix an issue where `poetry install --sync` attempted to remove itself ([#7626](https://github.com/python-poetry/poetry/pull/7626)).
- Fix an issue where wheels with non-normalized `dist-info` directory names could not be installed ([#7671](https://github.com/python-poetry/poetry/pull/7671)).
- Fix an issue where `poetry install --compile` compiled with optimization level 1 ([#7666](https://github.com/python-poetry/poetry/pull/7666)).

### Docs

- Clarify the behavior of the `--extras` option ([#7563](https://github.com/python-poetry/poetry/pull/7563)).
- Expand the FAQ on reasons for slow dependency resolution ([#7620](https://github.com/python-poetry/poetry/pull/7620)).

### poetry-core ([`1.5.2`](https://github.com/python-poetry/poetry-core/releases/tag/1.5.2))

- Fix an issue where wheels built on Windows could contain duplicate entries in the RECORD file ([#555](https://github.com/python-poetry/poetry-core/pull/555)).


## [1.4.0] - 2023-02-27

### Added

- **Add a modern installer (`installer.modern-installation`) for faster installation of packages and independence from pip** ([#6205](https://github.com/python-poetry/poetry/pull/6205)).
- Add support for `Private ::` trove classifiers ([#7271](https://github.com/python-poetry/poetry/pull/7271)).
- Add the version of poetry in the `@generated` comment at the beginning of the lock file ([#7339](https://github.com/python-poetry/poetry/pull/7339)).
- Add support for `virtualenvs.prefer-active-python` when running `poetry new` and `poetry init` ([#7100](https://github.com/python-poetry/poetry/pull/7100)).

### Changed

- **Deprecate the old installer, i.e. setting `experimental.new-installer` to `false`** ([#7358](https://github.com/python-poetry/poetry/pull/7358)).
- Remove unused `platform` field from cached package info and bump the cache version ([#7304](https://github.com/python-poetry/poetry/pull/7304)).
- Extra dependencies of the root project are now sorted in the lock file ([#7375](https://github.com/python-poetry/poetry/pull/7375)).
- Remove upper boundary for `importlib-metadata` dependency ([#7434](https://github.com/python-poetry/poetry/pull/7434)).
- Validate path dependencies during use instead of during construction ([#6844](https://github.com/python-poetry/poetry/pull/6844)).
- Remove the deprecated `repository` modules ([#7468](https://github.com/python-poetry/poetry/pull/7468)).

### Fixed

- Fix an issue where an unconditional dependency of an extra was not installed in specific environments ([#7175](https://github.com/python-poetry/poetry/pull/7175)).
- Fix an issue where a pre-release of a dependency was chosen even if a stable release fulfilled the constraint ([#7225](https://github.com/python-poetry/poetry/pull/7225), [#7236](https://github.com/python-poetry/poetry/pull/7236)).
- Fix an issue where HTTP redirects were not handled correctly during publishing ([#7160](https://github.com/python-poetry/poetry/pull/7160)).
- Fix an issue where `poetry check` did not handle the `-C, --directory` option correctly ([#7241](https://github.com/python-poetry/poetry/pull/7241)).
- Fix an issue where the subdirectory information of a git dependency was not written to the lock file ([#7367](https://github.com/python-poetry/poetry/pull/7367)).
- Fix an issue where the wrong Python version was selected when creating an virtual environment ([#7221](https://github.com/python-poetry/poetry/pull/7221)).
- Fix an issue where packages that should be kept were uninstalled when calling `poetry install --sync` ([#7389](https://github.com/python-poetry/poetry/pull/7389)).
- Fix an issue where an incorrect value was set for `sys.argv[0]` when running installed scripts ([#6737](https://github.com/python-poetry/poetry/pull/6737)).
- Fix an issue where hashes in `direct_url.json` files were not written according to the specification ([#7475](https://github.com/python-poetry/poetry/pull/7475)).
- Fix an issue where poetry commands failed due to special characters in the path of the project or virtual environment ([#7471](https://github.com/python-poetry/poetry/pull/7471)).
- Fix an issue where poetry crashed with a `JSONDecodeError` when running a Python script that produced certain warnings ([#6665](https://github.com/python-poetry/poetry/pull/6665)).

### Docs

- Add advice on how to maintain a poetry plugin ([#6977](https://github.com/python-poetry/poetry/pull/6977)).
- Update tox examples to comply with the latest tox release ([#7341](https://github.com/python-poetry/poetry/pull/7341)).
- Mention that the `poetry export` can export `constraints.txt` files ([#7383](https://github.com/python-poetry/poetry/pull/7383)).
- Add clarifications for moving configuration files ([#6864](https://github.com/python-poetry/poetry/pull/6864)).
- Mention the different types of exact version specifications ([#7503](https://github.com/python-poetry/poetry/pull/7503)).

### poetry-core ([`1.5.1`](https://github.com/python-poetry/poetry-core/releases/tag/1.5.1))

- Improve marker handling ([#528](https://github.com/python-poetry/poetry-core/pull/528),
  [#534](https://github.com/python-poetry/poetry-core/pull/534),
  [#530](https://github.com/python-poetry/poetry-core/pull/530),
  [#546](https://github.com/python-poetry/poetry-core/pull/546),
  [#547](https://github.com/python-poetry/poetry-core/pull/547)).
- Validate whether dependencies referenced in `extras` are defined in the main dependency group ([#542](https://github.com/python-poetry/poetry-core/pull/542)).
- Poetry no longer generates a `setup.py` file in sdists by default ([#318](https://github.com/python-poetry/poetry-core/pull/318)).
- Fix an issue where trailing newlines were allowed in `tool.poetry.description` ([#505](https://github.com/python-poetry/poetry-core/pull/505)).
- Fix an issue where the name of the data folder in wheels was not normalized ([#532](https://github.com/python-poetry/poetry-core/pull/532)).
- Fix an issue where the order of entries in the RECORD file was not deterministic ([#545](https://github.com/python-poetry/poetry-core/pull/545)).
- Fix an issue where zero padding was not correctly handled in version comparisons ([#540](https://github.com/python-poetry/poetry-core/pull/540)).
- Fix an issue where sdist builds did not support multiple READMEs ([#486](https://github.com/python-poetry/poetry-core/pull/486)).

### poetry-plugin-export ([`^1.3.0`](https://github.com/python-poetry/poetry-plugin-export/releases/tag/1.3.0))

- Fix an issue where the export failed if there was a circular dependency on the root package ([#118](https://github.com/python-poetry/poetry-plugin-export/pull/118)).


## [1.3.2] - 2023-01-10

### Fixed

- Fix a performance regression when locking dependencies from PyPI ([#7232](https://github.com/python-poetry/poetry/pull/7232)).
- Fix an issue where passing a relative path via `-C, --directory` fails ([#7266](https://github.com/python-poetry/poetry/pull/7266)).

### Docs

- Update docs to reflect the removal of the deprecated `get-poetry.py` installer from the repository ([#7288](https://github.com/python-poetry/poetry/pull/7288)).
- Add clarifications for `virtualenvs.path` settings ([#7286](https://github.com/python-poetry/poetry/pull/7286)).


## [1.3.1] - 2022-12-12

### Fixed

- Fix an issue where an explicit dependency on `lockfile` was missing, resulting in a broken Poetry in rare circumstances ([7169](https://github.com/python-poetry/poetry/pull/7169)).


## [1.3.0] - 2022-12-09

### Added

- Mark the lock file with an `@generated` comment as used by common tooling ([#2773](https://github.com/python-poetry/poetry/pull/2773)).
- `poetry check` validates trove classifiers and warns for deprecations ([#2881](https://github.com/python-poetry/poetry/pull/2881)).
- Introduce a top level `-C, --directory` option to set the working path ([#6810](https://github.com/python-poetry/poetry/pull/6810)).

### Changed

- **New lock file format (version 2.0)** ([#6393](https://github.com/python-poetry/poetry/pull/6393)).
- Path dependency metadata is unconditionally re-locked ([#6843](https://github.com/python-poetry/poetry/pull/6843)).
- URL dependency hashes are locked ([#7121](https://github.com/python-poetry/poetry/pull/7121)).
- `poetry update` and `poetry lock` should now resolve dependencies more similarly ([#6477](https://github.com/python-poetry/poetry/pull/6477)).
- `poetry publish` will report more useful errors when a file does not exist ([#4417](https://github.com/python-poetry/poetry/pull/4417)).
- `poetry add` will check for duplicate entries using canonical names ([#6832](https://github.com/python-poetry/poetry/pull/6832)).
- Wheels are preferred to source distributions when gathering metadata ([#6547](https://github.com/python-poetry/poetry/pull/6547)).
- Git dependencies of extras are only fetched if the extra is requested ([#6615](https://github.com/python-poetry/poetry/pull/6615)).
- Invoke `pip` with `--no-input` to prevent hanging without feedback ([#6724](https://github.com/python-poetry/poetry/pull/6724), [#6966](https://github.com/python-poetry/poetry/pull/6966)).
- Invoke `pip` with `--isolated` to prevent the influence of user configuration ([#6531](https://github.com/python-poetry/poetry/pull/6531)).
- Interrogate environments with Python in isolated (`-I`) mode ([#6628](https://github.com/python-poetry/poetry/pull/6628)).
- Raise an informative error when multiple version constraints overlap and are incompatible ([#7098](https://github.com/python-poetry/poetry/pull/7098)).

### Fixed

- **Fix an issue where concurrent instances of Poetry would corrupt the artifact cache** ([#6186](https://github.com/python-poetry/poetry/pull/6186)).
- **Fix an issue where Poetry can hang after being interrupted due to stale locking in cache** ([#6471](https://github.com/python-poetry/poetry/pull/6471)).
- Fix an issue where the output of commands executed with `--dry-run` contained duplicate entries ([#4660](https://github.com/python-poetry/poetry/pull/4660)).
- Fix an issue where `requests`'s pool size did not match the number of installer workers ([#6805](https://github.com/python-poetry/poetry/pull/6805)).
- Fix an issue where `poetry show --outdated` failed with a runtime error related to direct origin dependencies ([#6016](https://github.com/python-poetry/poetry/pull/6016)).
- Fix an issue where only the last command of an `ApplicationPlugin` is registered ([#6304](https://github.com/python-poetry/poetry/pull/6304)).
- Fix an issue where git dependencies were fetched unnecessarily when running `poetry lock --no-update` ([#6131](https://github.com/python-poetry/poetry/pull/6131)).
- Fix an issue where stdout was polluted with messages that should go to stderr ([#6429](https://github.com/python-poetry/poetry/pull/6429)).
- Fix an issue with `poetry shell` activation and zsh ([#5795](https://github.com/python-poetry/poetry/pull/5795)).
- Fix an issue where a url dependencies were shown as outdated ([#6396](https://github.com/python-poetry/poetry/pull/6396)).
- Fix an issue where the `source` field of a dependency with extras was ignored ([#6472](https://github.com/python-poetry/poetry/pull/6472)).
- Fix an issue where a package from the wrong source was installed for a multiple-constraints dependency with different sources ([#6747](https://github.com/python-poetry/poetry/pull/6747)).
- Fix an issue where dependencies from different sources where merged during dependency resolution ([#6679](https://github.com/python-poetry/poetry/pull/6679)).
- Fix an issue where `experimental.system-git-client` could not be used via environment variable ([#6783](https://github.com/python-poetry/poetry/pull/6783)).
- Fix an issue where Poetry fails with an `AssertionError` due to `distribution.files` being `None` ([#6788](https://github.com/python-poetry/poetry/pull/6788)).
- Fix an issue where `poetry env info` did not respect `virtualenvs.prefer-active-python` ([#6986](https://github.com/python-poetry/poetry/pull/6986)).
- Fix an issue where `poetry env list` does not list the in-project environment ([#6979](https://github.com/python-poetry/poetry/pull/6979)).
- Fix an issue where `poetry env remove` removed the wrong environment ([#6195](https://github.com/python-poetry/poetry/pull/6195)).
- Fix an issue where the return code of a script was not relayed as exit code ([#6824](https://github.com/python-poetry/poetry/pull/6824)).
- Fix an issue where the solver could silently swallow `ValueError` ([#6790](https://github.com/python-poetry/poetry/pull/6790)).

### Docs

- Improve documentation of package sources ([#5605](https://github.com/python-poetry/poetry/pull/5605)).
- Correct the default cache path on Windows ([#7012](https://github.com/python-poetry/poetry/pull/7012)).

### poetry-core ([`1.4.0`](https://github.com/python-poetry/poetry-core/releases/tag/1.4.0))

- The PEP 517 `metadata_directory` is now respected as an input to the `build_wheel` hook ([#487](https://github.com/python-poetry/poetry-core/pull/487)).
- `ParseConstraintError` is now raised on version and constraint parsing errors, and includes information on the package that caused the error ([#514](https://github.com/python-poetry/poetry-core/pull/514)).
- Fix an issue where invalid PEP 508 requirements were generated due to a missing space before semicolons ([#510](https://github.com/python-poetry/poetry-core/pull/510)).
- Fix an issue where relative paths were encoded into package requirements, instead of a file:// URL as required by PEP 508 ([#512](https://github.com/python-poetry/poetry-core/pull/512)).

### poetry-plugin-export ([`^1.2.0`](https://github.com/python-poetry/poetry-plugin-export/releases/tag/1.2.0))

- Ensure compatibility with Poetry 1.3.0. No functional changes.

### cleo ([`^2.0.0`](https://github.com/python-poetry/poetry-core/releases/tag/2.0.0))

- Fix an issue where shell completions had syntax errors ([#247](https://github.com/python-poetry/cleo/pull/247)).
- Fix an issue where not reading all the output of a command resulted in a "Broken pipe" error ([#165](https://github.com/python-poetry/cleo/pull/165)).
- Fix an issue where errors were not shown in non-verbose mode ([#166](https://github.com/python-poetry/cleo/pull/166)).


## [1.2.2] - 2022-10-10

### Added

- Add forward compatibility for lock file format 2.0, which will be used by Poetry 1.3 ([#6608](https://github.com/python-poetry/poetry/pull/6608)).

### Changed

- Allow `poetry lock` to re-generate the lock file when invalid or incompatible ([#6753](https://github.com/python-poetry/poetry/pull/6753)).

### Fixed

- Fix an issue where the deprecated JSON API was used to query PyPI for available versions of a package ([#6081](https://github.com/python-poetry/poetry/pull/6081)).
- Fix an issue where versions were escaped wrongly when building the wheel name ([#6476](https://github.com/python-poetry/poetry/pull/6476)).
- Fix an issue where the installation of dependencies failed if pip is a dependency and is updated in parallel to other dependencies ([#6582](https://github.com/python-poetry/poetry/pull/6582)).
- Fix an issue where the names of extras were not normalized according to PEP 685 ([#6541](https://github.com/python-poetry/poetry/pull/6541)).
- Fix an issue where sdist names were not normalized ([#6621](https://github.com/python-poetry/poetry/pull/6621)).
- Fix an issue where invalid constraints, which are ignored, were only reported in a debug message instead of a warning ([#6730](https://github.com/python-poetry/poetry/pull/6730)).
- Fix an issue where `poetry shell` was broken in git bash on Windows ([#6560](https://github.com/python-poetry/poetry/pull/6560)).

### Docs

- Rework the README and contribution docs ([#6552](https://github.com/python-poetry/poetry/pull/6552)).
- Fix for inconsistent docs for multiple-constraint dependencies ([#6604](https://github.com/python-poetry/poetry/pull/6604)).
- Rephrase plugin configuration ([#6557](https://github.com/python-poetry/poetry/pull/6557)).
- Add a note about publishable repositories to `publish` ([#6641](https://github.com/python-poetry/poetry/pull/6641)).
- Fix the path for lazy-loaded bash completion ([#6656](https://github.com/python-poetry/poetry/pull/6656)).
- Fix a reference to the invalid option `--require` ([#6672](https://github.com/python-poetry/poetry/pull/6672)).
- Add a PowerShell one-liner to the basic usage section ([#6683](https://github.com/python-poetry/poetry/pull/6683)).
- Fix the minimum poetry version in the example for plugins ([#6739](https://github.com/python-poetry/poetry/pull/6739)).

### poetry-core ([`1.3.2`](https://github.com/python-poetry/poetry-core/releases/tag/1.3.2))

- Add `3.11` to the list of available Python versions ([#477](https://github.com/python-poetry/poetry-core/pull/477)).
- Fix an issue where caret constraints of pre-releases with a major version of 0 resulted in an empty version range ([#475](https://github.com/python-poetry/poetry-core/pull/475)).

### poetry-plugin-export ([`^1.1.2`](https://github.com/python-poetry/poetry-plugin-export/releases/tag/1.1.2))

- Add support for exporting `constraints.txt` files ([#128](https://github.com/python-poetry/poetry-plugin-export/pull/128)).
- Fix an issue where a relative path passed via `-o` was not interpreted relative to the current working directory ([#130](https://github.com/python-poetry/poetry-plugin-export/pull/130)).


## [1.2.1] - 2022-09-16

### Changed

- Bump `poetry-core` to [`1.2.0`](https://github.com/python-poetry/poetry-core/releases/tag/1.2.0).
- Bump `poetry-plugin-export` to [`^1.0.7`](https://github.com/python-poetry/poetry-plugin-export/releases/tag/1.0.7).

### Fixed

- Fix an issue where `poetry cache clear` did not respect the `-n/--no-interaction` flag ([#6338](https://github.com/python-poetry/poetry/pull/6338)).
- Fix an issue where `poetry lock --no-update` updated dependencies from non-PyPI package sources ([#6335](https://github.com/python-poetry/poetry/pull/6335)).
- Fix a `poetry install` performance regression by falling back to internal pip ([#6062](https://github.com/python-poetry/poetry/pull/6062)).
- Fix an issue where a virtual environment was created unnecessarily when running `poetry export` ([#6282](https://github.com/python-poetry/poetry/pull/6282)).
- Fix an issue where `poetry lock --no-update` added duplicate hashes to the lock file ([#6389](https://github.com/python-poetry/poetry/pull/6389)).
- Fix an issue where `poetry install` fails because of missing hashes for `url` dependencies ([#6389](https://github.com/python-poetry/poetry/pull/6389)).
- Fix an issue where Poetry was not able to update pip in Windows virtual environments ([#6430](https://github.com/python-poetry/poetry/pull/6430)).
- Fix an issue where Poetry was not able to install releases that contained less common link types ([#5767](https://github.com/python-poetry/poetry/pull/5767)).
- Fix a `poetry lock` performance regression when checking non-PyPI sources for yanked versions ([#6442](https://github.com/python-poetry/poetry/pull/6442)).
- Fix an issue where `--no-cache` was not respected when running `poetry install` ([#6479](https://github.com/python-poetry/poetry/pull/6479)).
- Fix an issue where deprecation warnings for `--dev` were missing ([#6475](https://github.com/python-poetry/poetry/pull/6475)).
- Fix an issue where Git dependencies failed to clone when `insteadOf` was used in `.gitconfig` using the Dulwich Git client ([#6506](https://github.com/python-poetry/poetry/pull/6506)).
- Fix an issue where no cache entry is found when calling `poetry cache clear` with a non-normalized package name ([#6537](https://github.com/python-poetry/poetry/pull/6537)).
- Fix an invalid virtualenv constraint on Poetry ([#6402](https://github.com/python-poetry/poetry/pull/6402)).
- Fix outdated build system requirements for Poetry ([#6509](https://github.com/python-poetry/poetry/pull/6509)).

### Docs

- Add missing path segment to paths used by install.python-poetry.org ([#6311](https://github.com/python-poetry/poetry/pull/6311)).
- Add recommendations about how to install Poetry in a CI environment ([#6345](https://github.com/python-poetry/poetry/pull/6345)).
- Fix examples for `--with` and `--without` ([#6318](https://github.com/python-poetry/poetry/pull/6318)).
- Update configuration folder path for macOS ([#6395](https://github.com/python-poetry/poetry/pull/6395)).
- Improve the description of the `virtualenv.create` option ([#6460](https://github.com/python-poetry/poetry/pull/6460)).
- Clarify that `poetry install` removes dependencies of non-installed extras ([#6229](https://github.com/python-poetry/poetry/pull/6229)).
- Add a note about `pre-commit autoupdate` and Poetry's hooks ([#6497](https://github.com/python-poetry/poetry/pull/6497)).


## [1.2.0] - 2022-08-31

### Docs

- Added note about how to add a git dependency with a subdirectory ([#6218](https://github.com/python-poetry/poetry/pull/6218))
- Fixed several style issues in the docs ([#6254](https://github.com/python-poetry/poetry/pull/6254))
- Fixed outdated info about `--only` parameter ([#6263](https://github.com/python-poetry/poetry/pull/6263))


## [1.2.0rc2] - 2022-08-26

### Fixed

- Fixed an issue where virtual environments were created unnecessarily when running `poetry self` commands ([#6225](https://github.com/python-poetry/poetry/pull/6225))
- Ensure that packages' `pretty_name` are written to the lock file ([#6237](https://github.com/python-poetry/poetry/pull/6237))

### Improvements

- Improved the consistency of `Pool().remove_repository()` to make it easier to write poetry plugins ([#6214](https://github.com/python-poetry/poetry/pull/6214))

### Docs

- Removed mentions of Python 2.7 from docs ([#6234](https://github.com/python-poetry/poetry/pull/6234))
- Added note about the difference between groups and extras ([#6230](https://github.com/python-poetry/poetry/pull/6230))


## [1.2.0rc1] - 2022-08-22

### Added

- Added support for subdirectories in git dependencies ([#5172](https://github.com/python-poetry/poetry/pull/5172))
- Added support for yanked releases and files (PEP-592) ([#5841](https://github.com/python-poetry/poetry/pull/5841))
- Virtual environments can now be created even with empty project names ([#5856](https://github.com/python-poetry/poetry/pull/5856))
- Added support for `nushell` in `poetry shell` ([#6063](https://github.com/python-poetry/poetry/pull/6063))

### Changed

- Poetry now falls back to gather metadata for dependencies via pep517 if parsing `pyproject.toml` fails ([#5834](https://github.com/python-poetry/poetry/pull/5834))
- Replaced Poetry's helper method `canonicalize_name()` with `packaging.utils.canonicalize_name()` ([#6022](https://github.com/python-poetry/poetry/pull/6022))
- Removed code for the `export` command, which is now provided via plugin ([#6128](https://github.com/python-poetry/poetry/pull/6128))
- Extras and extras dependencies are now sorted in the lock file ([#6169](https://github.com/python-poetry/poetry/pull/6169))
- Removed deprecated (1.2-only) CLI options ([#6210](https://github.com/python-poetry/poetry/pull/6210))

### Fixed

- Fixed an issue where symlinks in the lock file were not resolved ([#5850](https://github.com/python-poetry/poetry/pull/5850))
- Fixed a `tomlkit` regression resulting in inconsistent line endings ([#5870](https://github.com/python-poetry/poetry/pull/5870))
- Fixed an issue where the `POETRY_PYPI_TOKEN_PYPI` environment variable wasn't respected ([#5911](https://github.com/python-poetry/poetry/pull/5911))
- Fixed an issue where neither Python nor a managed venv can be found, when using Python from MS Store ([#5931](https://github.com/python-poetry/poetry/pull/5931))
- Improved error message of `poetry publish` in the event of an upload error ([#6043](https://github.com/python-poetry/poetry/pull/6043))
- Fixed an issue where `poetry lock` fails without output ([#6058](https://github.com/python-poetry/poetry/pull/6058))
- Fixed an issue where Windows drive mappings break virtual environment names ([#6110](https://github.com/python-poetry/poetry/pull/6110))
- `tomlkit` versions with memory leak are now avoided ([#6160](https://github.com/python-poetry/poetry/pull/6160))
- Fixed an infinite loop in the solver ([#6178](https://github.com/python-poetry/poetry/pull/6178))
- Fixed an issue where latest version was used instead of locked one for vcs dependencies with extras ([#6185](https://github.com/python-poetry/poetry/pull/6185))

### Docs

- Document use of the `subdirectory` parameter ([#5949](https://github.com/python-poetry/poetry/pull/5949))
- Document suggested `tox` config for different use cases ([#6026](https://github.com/python-poetry/poetry/pull/6026))


## [1.1.15] - 2022-08-22

### Changed

- Poetry now fallback to gather metadata for dependencies via pep517 if parsing pyproject.toml fail ([#6206](https://github.com/python-poetry/poetry/pull/6206))
- Extras and extras dependencies are now sorted in lock file ([#6207](https://github.com/python-poetry/poetry/pull/6207))


## [1.2.0b3] - 2022-07-13

**Important**: This release fixes a critical issue that prevented hashes from being retrieved when locking dependencies,
due to a breaking change on PyPI JSON API (see [#5972](https://github.com/python-poetry/poetry/pull/5972)
and [the upstream change](https://github.com/pypi/warehouse/pull/11775) for more details).

After upgrading, you have to clear Poetry cache manually to get that feature working correctly again:

```bash
$ poetry cache clear pypi --all
```

### Added

- Added `--only-root` to `poetry install` to install a project without its
  dependencies ([#5783](https://github.com/python-poetry/poetry/pull/5783))

### Changed

- Improved user experience of `poetry init` ([#5838](https://github.com/python-poetry/poetry/pull/5838))
- Added default timeout for all HTTP requests, to avoid hanging
  requests ([#5881](https://github.com/python-poetry/poetry/pull/5881))
- Updated `poetry init` to better specify how to skip adding
  dependencies ([#5946](https://github.com/python-poetry/poetry/pull/5946))
- Updated Poetry repository names to avoid clashes with user-defined
  repositories ([#5910](https://github.com/python-poetry/poetry/pull/5910))

### Fixed

- Fixed an issue where extras where not handled if they did not match the case-sensitive name of the
  packages ([#4122](https://github.com/python-poetry/poetry/pull/4122))
- Fixed configuration of `experimental.system-git-client` option
  through `poetry config` ([#5818](https://github.com/python-poetry/poetry/pull/5818))
- Fixed uninstallation of git dependencies on Windows ([#5836](https://github.com/python-poetry/poetry/pull/5836))
- Fixed an issue where `~` was not correctly expanded
  in `virtualenvs.path` ([#5848](https://github.com/python-poetry/poetry/pull/5848))
- Fixed an issue where installing/locking dependencies would hang when setting an incorrect git
  repository ([#5880](https://github.com/python-poetry/poetry/pull/5880))
- Fixed an issue in `poetry publish` when keyring was not properly
  configured ([#5889](https://github.com/python-poetry/poetry/pull/5889))
- Fixed duplicated line output in console ([#5890](https://github.com/python-poetry/poetry/pull/5890))
- Fixed an issue where the same wheels where downloaded multiple times during
  installation ([#5871](https://github.com/python-poetry/poetry/pull/5871))
- Fixed an issue where dependencies hashes could not be retrieved when locking due to a breaking change on PyPI JSON
  API ([#5973](https://github.com/python-poetry/poetry/pull/5973))
- Fixed an issue where a dependency with non-requested extras could not be installed if it is requested with extras by
  another dependency ([#5770](https://github.com/python-poetry/poetry/pull/5770))
- Updated git backend to correctly read local/global git config when using dulwich as a git
  backend ([#5935](https://github.com/python-poetry/poetry/pull/5935))
- Fixed an issue where optional dependencies where not correctly exported when defining
  groups ([#5819](https://github.com/python-poetry/poetry/pull/5819))

### Docs

- Fixed configuration instructions for repositories
  specification ([#5809](https://github.com/python-poetry/poetry/pull/5809))
- Added a link to dependency specification
  from `pyproject.toml` ([#5815](https://github.com/python-poetry/poetry/pull/5815))
- Improved `zsh` autocompletion instructions ([#5859](https://github.com/python-poetry/poetry/pull/5859))
- Improved installation and update documentations ([#5857](https://github.com/python-poetry/poetry/pull/5857))
- Improved exact requirements documentation ([#5874](https://github.com/python-poetry/poetry/pull/5874))
- Added documentation for `@` operator ([#5822](https://github.com/python-poetry/poetry/pull/5822))
- Improved autocompletion documentation ([#5879](https://github.com/python-poetry/poetry/pull/5879))
- Improved `scripts` definition documentation ([#5884](https://github.com/python-poetry/poetry/pull/5884))


## [1.1.14] - 2022-07-08

### Fixed

- Fixed an issue where dependencies hashes could not be retrieved when locking due to a breaking change on PyPI JSON API ([#5973](https://github.com/python-poetry/poetry/pull/5973))


## [1.2.0b2] - 2022-06-07

### Added

- Added support for multiple-constraint direct origin dependencies with the same
  version ([#5715](https://github.com/python-poetry/poetry/pull/5715))
- Added support disabling TLS verification for custom package sources via `poetry config certificates.<repository>.cert false` ([#5719](https://github.com/python-poetry/poetry/pull/5719)
- Added new configuration (`virtualenvs.prompt`) to customize the prompt of the Poetry-managed virtual environment ([#5606](https://github.com/python-poetry/poetry/pull/5606))
- Added progress indicator to `download_file` (used when downloading dists) ([#5451](https://github.com/python-poetry/poetry/pull/5451))
- Added `--dry-run` to `poetry version` command ([#5603](https://github.com/python-poetry/poetry/pull/5603))
- Added `--why` to `poetry show` ([#5444](https://github.com/python-poetry/poetry/pull/5444))
- Added support for single page (html) repositories ([#5517](https://github.com/python-poetry/poetry/pull/5517))
- Added support for PEP 508 strings when adding
  dependencies via `poetry add` command ([#5554](https://github.com/python-poetry/poetry/pull/5554))
- Added `--no-cache` as a global option ([#5519](https://github.com/python-poetry/poetry/pull/5519))
- Added cert retrieval for HTTP requests made by Poetry ([#5320](https://github.com/python-poetry/poetry/pull/5320))
- Added `--skip-existing` to `poetry publish` ([#2812](https://github.com/python-poetry/poetry/pull/2812))
- Added `--all-extras` to `poetry install` ([#5452](https://github.com/python-poetry/poetry/pull/5452))
- Added new `poetry self` sub-commands to manage plugins and/or system environment packages, eg: keyring backends ([#5450](https://github.com/python-poetry/poetry/pull/5450))
- Added new configuration (`installer.no-binary`) to allow selection of non-binary distributions when installing a dependency ([#5609](https://github.com/python-poetry/poetry/pull/5609))

### Changed

- `poetry plugin` commands are now deprecated in favor of the more generic `poetry self`
  commands ([#5450](https://github.com/python-poetry/poetry/pull/5450))
- When creating new projects, Poetry no longer restricts README extensions to `md` and `rst` ([#5357](https://github.com/python-poetry/poetry/pull/5357))
- Changed the provider to allow fallback to installed packages ([#5704](https://github.com/python-poetry/poetry/pull/5704))
- Solver now correctly handles and prefers direct reference constraints (vcs, file etc.) over public version identifiers ([#5654](https://github.com/python-poetry/poetry/pull/5654))
- Changed the build script behavior to create an ephemeral build environment when a build script is
  specified ([#5401](https://github.com/python-poetry/poetry/pull/5401))
- Improved performance when determining PEP 517 metadata from sources ([#5601](https://github.com/python-poetry/poetry/pull/5601))
- Project package sources no longer need to be redefined as global repositories when configuring credentials ([#5563](https://github.com/python-poetry/poetry/pull/5563))
- Replaced external git command use with dulwich, in order to force the legacy behaviour set `experimental.system-git-client` configuration to `true` ([#5428](https://github.com/python-poetry/poetry/pull/5428))
- Improved http request handling for sources and multiple paths on same netloc ([#5518](https://github.com/python-poetry/poetry/pull/5518))
- Made `no-pip` and `no-setuptools` configuration explicit ([#5455](https://github.com/python-poetry/poetry/pull/5455))
- Improved application logging, use of `-vv` now provides more debug information ([#5503](https://github.com/python-poetry/poetry/pull/5503))
- Renamed implicit group `default` to `main` ([#5465](https://github.com/python-poetry/poetry/pull/5465))
- Replaced in-tree implementation of `poetry export`
  with `poetry-plugin-export` ([#5413](https://github.com/python-poetry/poetry/pull/5413))
- Changed the password manager behavior to use a `"null"` keyring when
  disabled ([#5251](https://github.com/python-poetry/poetry/pull/5251))
- Incremental improvement of Solver performance ([#5335](https://github.com/python-poetry/poetry/pull/5335))
- Newly created virtual environments on macOS now are excluded from Time Machine backups ([#4599](https://github.com/python-poetry/poetry/pull/4599))
- Poetry no longer raises an exception when a package is not found on PyPI ([#5698](https://github.com/python-poetry/poetry/pull/5698))
- Update `packaging` dependency to use major version 21, this change forces Poetry to drop support for managing Python 2.7 environments ([#4749](https://github.com/python-poetry/poetry/pull/4749))

### Fixed

- Fixed `poetry update --dry-run` to not modify `poetry.lock` ([#5718](https://github.com/python-poetry/poetry/pull/5718), [#3666](https://github.com/python-poetry/poetry/issues/3666), [#3766](https://github.com/python-poetry/poetry/issues/3766))
- Fixed [#5537](https://github.com/python-poetry/poetry/issues/5537) where export fails to resolve dependencies with more than one
  path ([#5688](https://github.com/python-poetry/poetry/pull/5688))
- Fixed an issue where the environment variables `POETRY_CONFIG_DIR` and `POETRY_CACHE_DIR` were not being respected ([#5672](https://github.com/python-poetry/poetry/pull/5672))
- Fixed [#3628](https://github.com/python-poetry/poetry/issues/3628) and [#4702](https://github.com/python-poetry/poetry/issues/4702) by handling invalid distributions
  gracefully ([#5645](https://github.com/python-poetry/poetry/pull/5645))
- Fixed an issue where the provider ignored subdirectory when merging and improve subdirectory support for vcs
  deps ([#5648](https://github.com/python-poetry/poetry/pull/5648))
- Fixed an issue where users could not select an empty choice when selecting
  dependencies ([#4606](https://github.com/python-poetry/poetry/pull/4606))
- Fixed an issue where `poetry init -n` crashes in a root directory ([#5612](https://github.com/python-poetry/poetry/pull/5612))
- Fixed an issue where Solver errors arise due to wheels having different Python
  constraints ([#5616](https://github.com/python-poetry/poetry/pull/5616))
- Fixed an issue where editable path dependencies using `setuptools` could not be correctly installed ([#5590](https://github.com/python-poetry/poetry/pull/5590))
- Fixed flicker when displaying executor operations ([#5556](https://github.com/python-poetry/poetry/pull/5556))
- Fixed an issue where the `poetry lock --no-update` only sorted by name and not by name and
  version ([#5446](https://github.com/python-poetry/poetry/pull/5446))
- Fixed an issue where the Solver fails when a dependency has multiple constrained dependency definitions for the same
  package ([#5403](https://github.com/python-poetry/poetry/pull/5403))
- Fixed an issue where dependency resolution takes a while because Poetry checks all possible combinations
  even markers are mutually exclusive ([#4695](https://github.com/python-poetry/poetry/pull/4695))
- Fixed incorrect version selector constraint ([#5500](https://github.com/python-poetry/poetry/pull/5500))
- Fixed an issue where `poetry lock --no-update` dropped
  packages ([#5435](https://github.com/python-poetry/poetry/pull/5435))
- Fixed an issue where packages were incorrectly grouped when
  exporting ([#5156](https://github.com/python-poetry/poetry/pull/5156))
- Fixed an issue where lockfile always updates when using private
  sources ([#5362](https://github.com/python-poetry/poetry/pull/5362))
- Fixed an issue where the solver did not account for selected package features ([#5305](https://github.com/python-poetry/poetry/pull/5305))
- Fixed an issue with console script execution of editable dependencies on Windows ([#3339](https://github.com/python-poetry/poetry/pull/3339))
- Fixed an issue where editable builder did not write PEP-610 metadata ([#5703](https://github.com/python-poetry/poetry/pull/5703))
- Fixed an issue where Poetry 1.1 lock files were incorrectly identified as not fresh ([#5458](https://github.com/python-poetry/poetry/pull/5458))

### Docs

- Updated plugin management commands ([#5450](https://github.com/python-poetry/poetry/pull/5450))
- Added the `--readme` flag to documentation ([#5357](https://github.com/python-poetry/poetry/pull/5357))
- Added example for multiple maintainers ([#5661](https://github.com/python-poetry/poetry/pull/5661))
- Updated documentation for issues [#4800](https://github.com/python-poetry/poetry/issues/4800), [#3709](https://github.com/python-poetry/poetry/issues/3709), [#3573](https://github.com/python-poetry/poetry/issues/3573), [#2211](https://github.com/python-poetry/poetry/issues/2211) and [#2414](https://github.com/python-poetry/poetry/pull/2414) ([#5656](https://github.com/python-poetry/poetry/pull/5656))
- Added `poetry.toml` note in configuration ([#5492](https://github.com/python-poetry/poetry/pull/5492))
- Add documentation for `poetry about`, `poetry help`, `poetrylist`, and the `--full-path` and `--all` options
  documentation ([#5664](https://github.com/python-poetry/poetry/pull/5664))
- Added more clarification to the `--why` flag ([#5653](https://github.com/python-poetry/poetry/pull/5653))
- Updated documentation to refer to PowerShell for Windows, including
  instructions ([#3978](https://github.com/python-poetry/poetry/pull/3978), [#5618](https://github.com/python-poetry/poetry/pull/5618))
- Added PEP 508 name requirement ([#5642](https://github.com/python-poetry/poetry/pull/5642))
- Added example for each section of pyproject.toml ([#5585](https://github.com/python-poetry/poetry/pull/5642))
- Added documentation for `--local` to fix issue [#5623](https://github.com/python-poetry/poetry/issues/5623) ([#5629](https://github.com/python-poetry/poetry/pull/5629))
- Added troubleshooting documentation for using proper quotation with
  ZSH ([#4847](https://github.com/python-poetry/poetry/pull/4847))
- Added information on git and basic http auth ([#5578](https://github.com/python-poetry/poetry/pull/5578))
- Removed ambiguity about PEP 440 and semver ([#5576](https://github.com/python-poetry/poetry/pull/5576))
- Removed Pipenv comparison ([#5561](https://github.com/python-poetry/poetry/pull/5561))
- Improved dependency group related documentation ([#5338](https://github.com/python-poetry/poetry/pull/5338))
- Added documentation for default directories used by Poetry ([#5391](https://github.com/python-poetry/poetry/pull/5301))
- Added warning about credentials preserved in shell history ([#5726](https://github.com/python-poetry/poetry/pull/5726))
- Improved documentation of the `readme` option, including multiple files and additional formats ([#5158](https://github.com/python-poetry/poetry/pull/5158))
- Improved contributing documentation ([#5708](https://github.com/python-poetry/poetry/pull/5708))
- Remove all references to `--dev-only` option ([#5771](https://github.com/python-poetry/poetry/pull/5771))


## [1.2.0b1] - 2022-03-17

### Fixed

- Fixed an issue where the system environment couldn't be detected ([#4406](https://github.com/python-poetry/poetry/pull/4406)).
- Fixed another issue where the system environment couldn't be detected ([#4433](https://github.com/python-poetry/poetry/pull/4433)).
- Replace deprecated requests parameter in uploader ([#4580](https://github.com/python-poetry/poetry/pull/4580)).
- Fix an issue where venv are detected as broken when using MSys2 on windows ([#4482](https://github.com/python-poetry/poetry/pull/4482)).
- Fixed an issue where the cache breaks on windows ([#4531](https://github.com/python-poetry/poetry/pull/4531)).
- Fixed an issue where a whitespace before a semicolon was missing on `poetry export` ([#4575](https://github.com/python-poetry/poetry/issues/4575)).
- Fixed an issue where markers were not correctly assigned to nested dependencies ([#3511](https://github.com/python-poetry/poetry/issues/3511)).
- Recognize one digit version in wheel filenames ([#3338](https://github.com/python-poetry/poetry/pull/3338)).
- Fixed an issue when `locale` is unset ([#4038](https://github.com/python-poetry/poetry/pull/4038)).
- Fixed an issue where the fallback to another interpreter didn't work ([#3475](https://github.com/python-poetry/poetry/pull/3475)).
- Merge any marker constraints into constraints with specific markers ([#4590](https://github.com/python-poetry/poetry/pull/4590)).
- Normalize path before hashing so that the generated venv name is independent of case on Windows ([#4813](https://github.com/python-poetry/poetry/pull/4813)).
- Fixed an issue where a dependency wasn't upgrade by using `@latest` on `poetry update` ([#4945](https://github.com/python-poetry/poetry/pull/4945)).
- Fixed an issue where conda envs in windows are always reported as broken([#5007](https://github.com/python-poetry/poetry/pull/5007)).
- Fixed an issue where Poetry doesn't find its own venv on `poetry self update` ([#5049](https://github.com/python-poetry/poetry/pull/5049)).
- Fix misuse of pretty_constraint ([#4932](https://github.com/python-poetry/poetry/pull/4932)).
- Fixed an issue where the reported python version used for venv creation wasn't correct ([#5086](https://github.com/python-poetry/poetry/pull/5086)).
- Fixed an issue where the searched package wasn't display in the interactive dialog of `poetry init` ([#5076](https://github.com/python-poetry/poetry/pull/5076)).
- Fixed an issue where Poetry raises an exception on `poetry show` when no lock files exists ([#5242](https://github.com/python-poetry/poetry/pull/5242)).
- Fixed an issue where Poetry crashes when optional `vcs_info.requested_version` in `direct_url.json` wasn't included ([#5274](https://github.com/python-poetry/poetry/pull/5274)).
- Fixed an issue where dependencies with extras were updated despite using `--no-update` ([#4618](https://github.com/python-poetry/poetry/pull/4618)).
- Fixed various places where poetry writes messages to stdout instead of stderr ([#4110](https://github.com/python-poetry/poetry/pull/4110), [#5179](https://github.com/python-poetry/poetry/pull/5179)).
- Ensured that when complete packages are created dependency inherits source and resolved refs from package ([#4604](https://github.com/python-poetry/poetry/pull/4604)).
- Ensured that when complete packages are created dependency inherits subdirectory from package if supported ([#4604](https://github.com/python-poetry/poetry/pull/4604)).
- Fixed an issue where `POETRY_EXPERIMENTAL_NEW_INSTALLER` needs to be set to an empty string to disable it ([#3811](https://github.com/python-poetry/poetry/pull/3811)).

### Added

- `poetry show <package>` now also shows which packages depend on it ([#2351](https://github.com/python-poetry/poetry/pull/2351)).
- The info dialog by `poetry about` now contains version information about installed poetry and poetry-core ([#5288](https://github.com/python-poetry/poetry/pull/5288)).
- Print error message when `poetry publish` fails ([#3549](https://github.com/python-poetry/poetry/pull/3549)).
- Added in info output to `poetry lock --check` ([#5081](https://github.com/python-poetry/poetry/pull/5081)).
- Added new argument `--all` for `poetry env remove` to delete all venv of a project at once ([#3212](https://github.com/python-poetry/poetry/pull/3212)).
- Added new argument `--without-urls` for `poetry export` to exclude source repository urls from the exported file ([#4763](https://github.com/python-poetry/poetry/pull/4763)).
- Added a new `installer.max-workers` property to the configuration ([#3516](https://github.com/python-poetry/poetry/pull/3516)).
- Added experimental option `virtualenvs.prefer-active-python` to detect current activated python ([#4852](https://github.com/python-poetry/poetry/pull/4852)).
- Added better windows shell support ([#5053](https://github.com/python-poetry/poetry/pull/5053)).

### Changed

- Drop python3.6 support ([#5055](https://github.com/python-poetry/poetry/pull/5055)).
- Exit with callable return code in generated script ([#4456](https://github.com/python-poetry/poetry/pull/4456)).
- Internal use of the `pep517` high level interfaces for package metadata inspections have been replaced with the `build` package. ([#5155](https://github.com/python-poetry/poetry/pull/5155)).
- Poetry now raises an error if the python version in the project environment is no longer compatible with the project ([#4520](https://github.com/python-poetry/poetry/pull/4520)).


## [1.1.13] - 2022-02-10

### Fixed

- Fixed an issue where envs in MSYS2 always reported as broken ([#4942](https://github.com/python-poetry/poetry/pull/4942))
- Fixed an issue where conda envs in windows are always reported as broken([#5008](https://github.com/python-poetry/poetry/pull/5008))
- Fixed an issue where Poetry doesn't find its own venv on `poetry self update` ([#5048](https://github.com/python-poetry/poetry/pull/5048))


## [1.1.12] - 2021-11-27

### Fixed

- Fixed broken caches on Windows due to `Path` starting with a slash ([#4549](https://github.com/python-poetry/poetry/pull/4549))
- Fixed `JSONDecodeError` when installing packages by updating `cachecontrol` version ([#4831](https://github.com/python-poetry/poetry/pull/4831))
- Fixed dropped markers in dependency walk ([#4686](https://github.com/python-poetry/poetry/pull/4686))


## [1.1.11] - 2021-10-04

### Fixed

- Fixed errors when installing packages on Python 3.10. ([#4592](https://github.com/python-poetry/poetry/pull/4592))
- Fixed an issue where the wrong `git` executable could be used on Windows. ([python-poetry/poetry-core#213](https://github.com/python-poetry/poetry-core/pull/213))
- Fixed an issue where the Python 3.10 classifier was not automatically added. ([python-poetry/poetry-core#215](https://github.com/python-poetry/poetry-core/pull/215))


## [1.1.10] - 2021-09-21

### Fixed

- Fixed an issue where non-sha256 hashes were not checked. ([#4529](https://github.com/python-poetry/poetry/pull/4529))


## [1.1.9] - 2021-09-18

### Fixed

- Fixed a security issue where file hashes were not checked prior to installation. ([#4420](https://github.com/python-poetry/poetry/pull/4420), [#4444](https://github.com/python-poetry/poetry/pull/4444), [python-poetry/poetry-core#193](https://github.com/python-poetry/poetry-core/pull/193))
- Fixed the detection of the system environment when the setting `virtualenvs.create` is deactivated. ([#4507](https://github.com/python-poetry/poetry/pull/4507))
- Fixed an issue where unsafe parameters could be passed to `git` commands. ([python-poetry/poetry-core#203](https://github.com/python-poetry/poetry-core/pull/203))
- Fixed an issue where the wrong `git` executable could be used on Windows. ([python-poetry/poetry-core#205](https://github.com/python-poetry/poetry-core/pull/205))


## [1.1.8] - 2021-08-19

### Fixed

- Fixed an error with repository prioritization when specifying secondary repositories. ([#4241](https://github.com/python-poetry/poetry/pull/4241))
- Fixed the detection of the system environment when the setting `virtualenvs.create` is deactivated. ([#4330](https://github.com/python-poetry/poetry/pull/4330), [#4407](https://github.com/python-poetry/poetry/pull/4407))
- Fixed the evaluation of relative path dependencies. ([#4246](https://github.com/python-poetry/poetry/pull/4246))
- Fixed environment detection for Python 3.10 environments. ([#4387](https://github.com/python-poetry/poetry/pull/4387))
- Fixed an error in the evaluation of `in/not in` markers ([python-poetry/poetry-core#189](https://github.com/python-poetry/poetry-core/pull/189))


## [1.2.0a2] - 2021-08-01

### Added

- Poetry now supports dependency groups. ([#4260](https://github.com/python-poetry/poetry/pull/4260))
- The `install` command now supports a `--sync` option to synchronize the environment with the lock file. ([#4336](https://github.com/python-poetry/poetry/pull/4336))

### Changed

- Improved the way credentials are retrieved to better support keyring backends. ([#4086](https://github.com/python-poetry/poetry/pull/4086))
- The `--remove-untracked` option of the `install` command is now deprecated in favor of the new `--sync` option. ([#4336](https://github.com/python-poetry/poetry/pull/4336))
- The user experience when installing dependency groups has been improved. ([#4336](https://github.com/python-poetry/poetry/pull/4336))

### Fixed

- Fixed performance issues when resolving dependencies. ([#3839](https://github.com/python-poetry/poetry/pull/3839))
- Fixed an issue where transitive dependencies of directory or VCS dependencies were not installed or otherwise removed. ([#4202](https://github.com/python-poetry/poetry/pull/4202))
- Fixed the behavior of the `init` command in non-interactive mode. ([#2899](https://github.com/python-poetry/poetry/pull/2899))
- Fixed the detection of the system environment when the setting `virtualenvs.create` is deactivated. ([#4329](https://github.com/python-poetry/poetry/pull/4329))
- Fixed the display of possible solutions for some common errors. ([#4332](https://github.com/python-poetry/poetry/pull/4332))


## [1.1.7] - 2021-06-25

**Note**: Lock files might need to be regenerated for the first fix below to take effect.
You can use `poetry lock` to do so **without** the `--no-update` option.

### Changed

- This release is compatible with the `install-poetry.py` installation script to ease the migration path from `1.1` releases to `1.2` releases. ([#4192](https://github.com/python-poetry/poetry/pull/4192))

### Fixed

- Fixed an issue where transitive dependencies of directory or VCS dependencies were not installed or otherwise removed. ([#4203](https://github.com/python-poetry/poetry/pull/4203))
- Fixed an issue where the combination of the `--tree` and `--no-dev` options for the show command was still displaying development dependencies. ([#3992](https://github.com/python-poetry/poetry/pull/3992))

## [1.2.0a1] - 2021-05-21

This release is the first testing release of the upcoming 1.2.0 version.

It **drops** support for Python 2.7 and 3.5.

### Added

- Poetry now supports a plugin system to alter or expand Poetry's functionality. ([#3733](https://github.com/python-poetry/poetry/pull/3733))
- Poetry now supports [PEP 610](https://www.python.org/dev/peps/pep-0610/). ([#3876](https://github.com/python-poetry/poetry/pull/3876))
- Several configuration options to better control the way virtual environments are created are now available. ([#3157](https://github.com/python-poetry/poetry/pull/3157), [#3711](https://github.com/python-poetry/poetry/pull/3711)).
- The `new` command now supports namespace packages. ([#2768](https://github.com/python-poetry/poetry/pull/2768))
- The `add` command now supports the `--editable` option to add packages in editable mode. ([#3940](https://github.com/python-poetry/poetry/pull/3940))

### Changed

- Python 2.7 and 3.5 are no longer supported. ([#3405](https://github.com/python-poetry/poetry/pull/3405))
- The usage of the `get-poetry.py` script is now deprecated and is replaced by the `install-poetry.py` script. ([#3706](https://github.com/python-poetry/poetry/pull/3706))
- Directory dependencies are now in non-develop mode by default. ([poetry-core#98](https://github.com/python-poetry/poetry-core/pull/98))
- Improved support for PEP 440 specific versions that do not abide by semantic versioning. ([poetry-core#140](https://github.com/python-poetry/poetry-core/pull/140))
- Improved the CLI experience and performance by migrating to the latest version of Cleo. ([#3618](https://github.com/python-poetry/poetry/pull/3618))
- Packages previously considered as unsafe (`pip`, `setuptools`, `wheels` and `distribute`) can now be managed as any other package. ([#2826](https://github.com/python-poetry/poetry/pull/2826))
- The `new` command now defaults to the Markdown format for README files. ([#2768](https://github.com/python-poetry/poetry/pull/2768))

### Fixed

- Fixed an error where command line options were not taken into account when using the `run` command. ([#3618](https://github.com/python-poetry/poetry/pull/3618))
- Fixed an error in the way custom repositories were resolved. ([#3406](https://github.com/python-poetry/poetry/pull/3406))


## [1.1.6] - 2021-04-14

### Fixed

- Fixed export format for path dependencies. ([#3121](https://github.com/python-poetry/poetry/pull/3121))
- Fixed errors caused by environment modification when executing some commands. ([#3253](https://github.com/python-poetry/poetry/pull/3253))
- Fixed handling of wheel files with single-digit versions. ([#3338](https://github.com/python-poetry/poetry/pull/3338))
- Fixed an error when handling single-digit Python markers. ([poetry-core#156](https://github.com/python-poetry/poetry-core/pull/156))
- Fixed dependency markers not being properly copied when changing the constraint leading to resolution errors. ([poetry-core#163](https://github.com/python-poetry/poetry-core/pull/163))
- Fixed an error where VCS dependencies were always updated. ([#3947](https://github.com/python-poetry/poetry/pull/3947))
- Fixed an error where the incorrect version of a package was locked when using environment markers. ([#3945](https://github.com/python-poetry/poetry/pull/3945))


## [1.1.5] - 2021-03-04

### Fixed

- Fixed an error in the `export` command when no lock file existed and a verbose flag was passed to the command. ([#3310](https://github.com/python-poetry/poetry/pull/3310))
- Fixed an error where the `pyproject.toml` was not reverted when using the `add` command. ([#3622](https://github.com/python-poetry/poetry/pull/3622))
- Fixed errors when using non-HTTPS indices. ([#3622](https://github.com/python-poetry/poetry/pull/3622))
- Fixed errors when handling simple indices redirection. ([#3622](https://github.com/python-poetry/poetry/pull/3622))
- Fixed errors when trying to handle newer wheels by using the latest version of `poetry-core` and `packaging`. ([#3677](https://github.com/python-poetry/poetry/pull/3677))
- Fixed an error when using some versions of `poetry-core` due to an incorrect import . ([#3696](https://github.com/python-poetry/poetry/pull/3696))


## [1.1.4] - 2020-10-23

### Added

- Added `installer.parallel` boolean flag (defaults to `true`) configuration to enable/disable parallel execution of operations when using the new installer. ([#3088](https://github.com/python-poetry/poetry/pull/3088))

### Changed

- When using system environments as an unprivileged user, user site and bin directories are created if they do not already exist. ([#3107](https://github.com/python-poetry/poetry/pull/3107))

### Fixed

- Fixed editable installation of poetry projects when using system environments. ([#3107](https://github.com/python-poetry/poetry/pull/3107))
- Fixed locking of nested extra activations. If you were affected by this issue, you will need to regenerate the lock file using `poetry lock --no-update`. ([#3229](https://github.com/python-poetry/poetry/pull/3229))
- Fixed prioritisation of non-default custom package sources. ([#3251](https://github.com/python-poetry/poetry/pull/3251))
- Fixed detection of installed editable packages when non-poetry managed `.pth` file exists. ([#3210](https://github.com/python-poetry/poetry/pull/3210))
- Fixed scripts generated by editable builder to use valid import statements. ([#3214](https://github.com/python-poetry/poetry/pull/3214))
- Fixed recursion error when locked dependencies contain cyclic dependencies. ([#3237](https://github.com/python-poetry/poetry/pull/3237))
- Fixed propagation of editable flag for VCS dependencies. ([#3264](https://github.com/python-poetry/poetry/pull/3264))


## [1.1.3] - 2020-10-14

### Changed

- Python version support deprecation warning is now written to `stderr`. ([#3131](https://github.com/python-poetry/poetry/pull/3131))

### Fixed

- Fixed `KeyError` when `PATH` is not defined in environment variables. ([#3159](https://github.com/python-poetry/poetry/pull/3159))
- Fixed error when using `config` command in a directory with an existing `pyproject.toml` without any Poetry configuration. ([#3172](https://github.com/python-poetry/poetry/pull/3172))
- Fixed incorrect inspection of package requirements when same dependency is specified multiple times with unique markers. ([#3147](https://github.com/python-poetry/poetry/pull/3147))
- Fixed `show` command to use already resolved package metadata. ([#3117](https://github.com/python-poetry/poetry/pull/3117))
- Fixed multiple issues with `export` command output when using `requirements.txt` format. ([#3119](https://github.com/python-poetry/poetry/pull/3119))


## [1.1.2] - 2020-10-06

### Changed

- Dependency installation of editable packages and all uninstall operations are now performed serially within their corresponding priority groups. ([#3099](https://github.com/python-poetry/poetry/pull/3099))
- Improved package metadata inspection of nested poetry projects within project path dependencies. ([#3105](https://github.com/python-poetry/poetry/pull/3105))

### Fixed

- Fixed export of `requirements.txt` when project dependency contains git dependencies. ([#3100](https://github.com/python-poetry/poetry/pull/3100))


## [1.1.1] - 2020-10-05

### Added

- Added `--no-update` option to `lock` command. ([#3034](https://github.com/python-poetry/poetry/pull/3034))

### Fixed

- Fixed resolution of packages with missing required extras. ([#3035](https://github.com/python-poetry/poetry/pull/3035))
- Fixed export of `requirements.txt` dependencies to include development dependencies. ([#3024](https://github.com/python-poetry/poetry/pull/3024))
- Fixed incorrect selection of unsupported binary distribution formats when selecting a package artifact to install. ([#3058](https://github.com/python-poetry/poetry/pull/3058))
- Fixed incorrect use of system executable when building package distributions via `build` command. ([#3056](https://github.com/python-poetry/poetry/pull/3056))
- Fixed errors in `init` command when specifying `--dependency` in non-interactive mode when a `pyproject.toml` file already exists. ([#3076](https://github.com/python-poetry/poetry/pull/3076))
- Fixed incorrect selection of configured source url when a publish repository url configuration with the same name already exists. ([#3047](https://github.com/python-poetry/poetry/pull/3047))
- Fixed dependency resolution issues when the same package is specified in multiple dependency extras. ([#3046](https://github.com/python-poetry/poetry/pull/3046))


## [1.1.0] - 2020-10-01

### Changed

- The `init` command will now use existing `pyproject.toml` if possible ([#2448](https://github.com/python-poetry/poetry/pull/2448)).
- Error messages when metadata information retrieval fails have been improved  ([#2997](https://github.com/python-poetry/poetry/pull/2997)).

### Fixed

- Fixed parsing of version constraint for `rc` prereleases ([#2978](https://github.com/python-poetry/poetry/pull/2978)).
- Fixed how some metadata information are extracted from `setup.cfg` files ([#2957](https://github.com/python-poetry/poetry/pull/2957)).
- Fixed return codes returned by the executor ([#2981](https://github.com/python-poetry/poetry/pull/2981)).
- Fixed whitespaces not being accepted for the list of extras when adding packages ([#2985](https://github.com/python-poetry/poetry/pull/2985)).
- Fixed repositories specified in the `pyproject.toml` file not being taken into account for authentication when downloading packages ([#2990](https://github.com/python-poetry/poetry/pull/2990)).
- Fixed permission errors when installing the root project if the `site-packages` directory is not writeable ([#3002](https://github.com/python-poetry/poetry/pull/3002)).
- Fixed environment marker propagation when exporting to the `requirements.txt` format ([#3002](https://github.com/python-poetry/poetry/pull/3002)).
- Fixed errors when paths in run command contained spaces ([#3015](https://github.com/python-poetry/poetry/pull/3015)).


## [1.1.0rc1] - 2020-09-25

### Changed

- The `virtualenvs.in-project` setting will now always be honored, if set explicitly, regardless of the presence of a `.venv` directory ([#2771](https://github.com/python-poetry/poetry/pull/2771)).
- Adding packages already present in the `pyproject.toml` file will no longer raise an error ([#2886](https://github.com/python-poetry/poetry/pull/2886)).
- Errors when authenticating against custom repositories will now be logged ([#2577](https://github.com/python-poetry/poetry/pull/2577)).

### Fixed

- Fixed an error on Python 3.5 when resolving URL dependencies ([#2954](https://github.com/python-poetry/poetry/pull/2954)).
- Fixed the `dependency` option of the `init` command being ignored ([#2587](https://github.com/python-poetry/poetry/pull/2587)).
- Fixed the `show` command displaying erroneous information following the changes in the lock file format ([#2967](https://github.com/python-poetry/poetry/pull/2967)).
- Fixed dependency resolution errors due to invalid python constraints propagation ([#2968](https://github.com/python-poetry/poetry/pull/2968)).


## [1.1.0b4] - 2020-09-23

### Changed

- When running under Python 2.7 on Windows, install command will be limited to one worker to mitigate threading issue ([#2941](https://github.com/python-poetry/poetry/pull/2941)).


## [1.1.0b3] - 2020-09-18

### Changed

- Improved the error reporting when HTTP error are encountered for legacy repositories ([#2459](https://github.com/python-poetry/poetry/pull/2459)).
- When displaying the name of packages retrieved from remote repositories, the original name will now be used ([#2305](https://github.com/python-poetry/poetry/pull/2305)).
- Failed package downloads will now be retried on connection errors ([#2813](https://github.com/python-poetry/poetry/pull/2813)).
- Path dependencies will now be installed as editable only when `develop` option is set to `true` ([#2887](https://github.com/python-poetry/poetry/pull/2887)).

### Fixed

- Fixed the detection of the type of installed packages ([#2722](https://github.com/python-poetry/poetry/pull/2722)).
- Fixed deadlocks when installing packages on systems not supporting non-ascii characters ([#2721](https://github.com/python-poetry/poetry/pull/2721)).
- Fixed handling of wildcard constraints for packages with prereleases only ([#2821](https://github.com/python-poetry/poetry/pull/2821)).
- Fixed dependencies of some packages not being discovered by ensuring we use the PEP-516 backend if specified ([#2810](https://github.com/python-poetry/poetry/pull/2810)).
- Fixed recursion errors when retrieving extras ([#2787](https://github.com/python-poetry/poetry/pull/2787)).
- Fixed `PyPI` always being displayed when publishing even for custom repositories ([#2905](https://github.com/python-poetry/poetry/pull/2905)).
- Fixed handling of packages extras when resolving dependencies ([#2887](https://github.com/python-poetry/poetry/pull/2887)).


## [1.1.0b2] - 2020-07-24

### Changed

- Added support for build scripts without the `setup.py` file generation in the editable builder ([#2718](https://github.com/python-poetry/poetry/pull/2718)).

### Fixed

- Fixed an error occurring when using older lock files ([#2717](https://github.com/python-poetry/poetry/pull/2717)).


## [1.1.0b1] - 2020-07-24

### Changed

- Virtual environments will now exclusively be built with `virtualenv` ([#2666](https://github.com/python-poetry/poetry/pull/2666)).
- Support for Python 2.7 and 3.5 is now officially deprecated and a warning message will be displayed ([#2683](https://github.com/python-poetry/poetry/pull/2683)).
- Improved metadata inspection of packages by using the PEP-517 build system ([#2632](https://github.com/python-poetry/poetry/pull/2632)).

### Fixed

- Fixed parallel tasks not being cancelled when the installation is interrupted or has failed ([#2656](https://github.com/python-poetry/poetry/pull/2656)).
- Fixed an error where the editable builder would not expose all packages ([#2664](https://github.com/python-poetry/poetry/pull/2656)).
- Fixed an error for Python 2.7 when a file could not be downloaded in the installer ([#2709](https://github.com/python-poetry/poetry/pull/2709)).
- Fixed the lock file `content-hash` value not being updated when using the `add` and `remove` commands ([#2710](https://github.com/python-poetry/poetry/pull/2710)).
- Fixed incorrect resolution errors being raised for packages with python requirements ([#2712](https://github.com/python-poetry/poetry/pull/2712)).
- Fixed an error causing the build log messages to no longer be displayed ([#2715](https://github.com/python-poetry/poetry/pull/2715)).


## [1.0.10] - 2020-07-21

### Changed

- The lock files are now versioned to ease transitions for lock file format changes, with warnings being displayed on incompatibility detection ([#2695](https://github.com/python-poetry/poetry/pull/2695)).
- The `init` and `new` commands will now provide hints on invalid given licenses ([#1634](https://github.com/python-poetry/poetry/pull/1634)).

### Fixed

- Fixed error messages when the authors specified in the `pyproject.toml` file are invalid ([#2525](https://github.com/python-poetry/poetry/pull/2525)).
- Fixed empty `.venv` directories being deleted ([#2064](https://github.com/python-poetry/poetry/pull/2064)).
- Fixed the `shell` command for `tcsh` shells ([#2583](https://github.com/python-poetry/poetry/pull/2583)).
- Fixed errors when installing directory or file dependencies in some cases ([#2582](https://github.com/python-poetry/poetry/pull/2582)).


## [1.1.0a3] - 2020-07-10

### Added

- New installer which provides a faster and better experience ([#2595](https://github.com/python-poetry/poetry/pull/2595)).

### Fixed

- Fixed resolution error when handling duplicate dependencies with environment markers ([#2622](https://github.com/python-poetry/poetry/pull/2622)).
- Fixed erroneous resolution errors when resolving packages to install ([#2625](https://github.com/python-poetry/poetry/pull/2625)).
- Fixed errors when detecting installed editable packages ([#2602](https://github.com/python-poetry/poetry/pull/2602)).


## [1.1.0a2] - 2020-06-26

Note that lock files generated with this release are not compatible with previous releases of Poetry.

### Added

- The `install` command now supports a `--remove-untracked` option to ensure only packages from the lock file are present in the environment ([#2172](https://github.com/python-poetry/poetry/pull/2172)).
- Some errors will now be provided with possible solutions and links to the documentation ([#2396](https://github.com/python-poetry/poetry/pull/2396)).

### Changed

- Editable installations of Poetry projects have been improved and are now faster ([#2360](https://github.com/python-poetry/poetry/pull/2360)).
- Improved the accuracy of the dependency resolver in case of dependencies with environment markers ([#2361](https://github.com/python-poetry/poetry/pull/2361))
- Environment markers of dependencies are no longer stored in the lock file ([#2361](https://github.com/python-poetry/poetry/pull/2361)).
- Improved the way connection errors are handled when publishing ([#2285](https://github.com/python-poetry/poetry/pull/2285)).

### Fixed

- Fixed errors when handling duplicate dependencies with environment markers ([#2342](https://github.com/python-poetry/poetry/pull/2342)).
- Fixed the detection of installed packages ([#2360](https://github.com/python-poetry/poetry/pull/2360)).


## [1.1.0a1] - 2020-03-27

This release **must** be downloaded via the `get-poetry.py` script and not via the `self update` command.

### Added

- Added a new `--dry-run` option to the `publish` command ([#2199](https://github.com/python-poetry/poetry/pull/2199)).

### Changed

- The core features of Poetry have been extracted in to a separate library: `poetry-core` ([#2212](https://github.com/python-poetry/poetry/pull/2212)).
- The build backend is no longer `poetry.masonry.api` but `poetry.core.masonry.api` which requires `poetry-core>=1.0.0a5` ([#2212](https://github.com/python-poetry/poetry/pull/2212)).
- The exceptions are now beautifully displayed in the terminal with various level of details depending on the verbosity ([2230](https://github.com/python-poetry/poetry/pull/2230)).


## [1.0.9] - 2020-06-09

### Fixed

- Fixed an issue where packages from custom indices where continuously updated ([#2525](https://github.com/python-poetry/poetry/pull/2525)).
- Fixed errors in the way Python environment markers were parsed and generated ([#2526](https://github.com/python-poetry/poetry/pull/2526)).


## [1.0.8] - 2020-06-05

### Fixed

- Fixed a possible error when installing the root package ([#2505](https://github.com/python-poetry/poetry/pull/2505)).
- Fixed an error where directory and VCS dependencies were not installed ([#2505](https://github.com/python-poetry/poetry/pull/2505)).


## [1.0.7] - 2020-06-05

### Fixed

- Fixed an error when trying to execute some packages `setup.py` file ([#2349](https://github.com/python-poetry/poetry/pull/2349)).


## [1.0.6] - 2020-06-05

### Changed

- The `self update` command has been updated in order to handle future releases of Poetry ([#2429](https://github.com/python-poetry/poetry/pull/2429)).

### Fixed

- Fixed an error were a new line was not written when displaying the virtual environment's path with `env info` ([#2196](https://github.com/python-poetry/poetry/pull/2196)).
- Fixed a misleading error message when the `packages` property was empty ([#2265](https://github.com/python-poetry/poetry/pull/2265)).
- Fixed shell detection by using environment variables ([#2147](https://github.com/python-poetry/poetry/pull/2147)).
- Fixed the removal of VCS dependencies ([#2239](https://github.com/python-poetry/poetry/pull/2239)).
- Fixed generated wheel ABI tags for Python 3.8 ([#2121](https://github.com/python-poetry/poetry/pull/2121)).
- Fixed a regression when building stub-only packages ([#2000](https://github.com/python-poetry/poetry/pull/2000)).
- Fixed errors when parsing PEP-440 constraints with whitespace ([#2347](https://github.com/python-poetry/poetry/pull/2347)).
- Fixed PEP 508 representation of VCS dependencies ([#2349](https://github.com/python-poetry/poetry/pull/2349)).
- Fixed errors when source distributions were read-only ([#1140](https://github.com/python-poetry/poetry/pull/1140)).
- Fixed dependency resolution errors and inconsistencies with directory, file and VCS dependencies ([#2398](https://github.com/python-poetry/poetry/pull/2398)).
- Fixed custom repositories information not being properly locked ([#2484](https://github.com/python-poetry/poetry/pull/2484)).


## [1.0.5] - 2020-02-29

### Fixed

- Fixed an error when building distributions if the `git` executable was not found ([#2105](https://github.com/python-poetry/poetry/pull/2105)).
- Fixed various errors when reading Poetry's TOML files by upgrading [tomlkit](https://github.com/sdispater/tomlkit).


## [1.0.4] - 2020-02-28

### Fixed

- Fixed the PyPI URL used when installing packages ([#2099](https://github.com/python-poetry/poetry/pull/2099)).
- Fixed errors when the author's name contains special characters ([#2006](https://github.com/python-poetry/poetry/pull/2006)).
- Fixed VCS excluded files detection when building wheels ([#1947](https://github.com/python-poetry/poetry/pull/1947)).
- Fixed packages detection when building sdists ([#1626](https://github.com/python-poetry/poetry/pull/1626)).
- Fixed the local `.venv` virtual environment not being displayed in `env list` ([#1762](https://github.com/python-poetry/poetry/pull/1762)).
- Fixed incompatibilities with the most recent versions of `virtualenv` ([#2096](https://github.com/python-poetry/poetry/pull/2096)).
- Fixed Poetry's own vendor dependencies being retrieved when updating dependencies ([#1981](https://github.com/python-poetry/poetry/pull/1981)).
- Fixed encoding of credentials in URLs ([#1911](https://github.com/python-poetry/poetry/pull/1911)).
- Fixed url constraints not being accepted in multi-constraints dependencies ([#2035](https://github.com/python-poetry/poetry/pull/2035)).
- Fixed an error where credentials specified via environment variables were not retrieved ([#2061](https://github.com/python-poetry/poetry/pull/2061)).
- Fixed an error where git dependencies referencing tags were not locked to the corresponding commit ([#1948](https://github.com/python-poetry/poetry/pull/1948)).
- Fixed an error when parsing packages `setup.py` files ([#2041](https://github.com/python-poetry/poetry/pull/2041)).
- Fixed an error when parsing some git URLs ([#2018](https://github.com/python-poetry/poetry/pull/2018)).


## [1.0.3] - 2020-01-31

### Fixed

- Fixed an error which caused the configuration environment variables (like `POETRY_HTTP_BASIC_XXX_PASSWORD`) to not be used ([#1909](https://github.com/python-poetry/poetry/pull/1909)).
- Fixed an error where the `--help` option was not working ([#1910](https://github.com/python-poetry/poetry/pull/1910)).
- Fixed an error where packages from private indices were not decompressed properly ([#1851](https://github.com/python-poetry/poetry/pull/1851)).
- Fixed an error where the version of some PEP-508-formatted wheel dependencies was not properly retrieved ([#1932](https://github.com/python-poetry/poetry/pull/1932)).
- Fixed internal regexps to avoid potential catastrophic backtracking errors ([#1913](https://github.com/python-poetry/poetry/pull/1913)).
- Fixed performance issues when custom indices were defined in the `pyproject.toml` file ([#1892](https://github.com/python-poetry/poetry/pull/1892)).
- Fixed the `get_requires_for_build_wheel()` function of `masonry.api` which wasn't returning the proper result ([#1875](https://github.com/python-poetry/poetry/pull/1875)).


## [1.0.2] - 2020-01-10

### Fixed

- Reverted a previous fix ([#1796](https://github.com/python-poetry/poetry/pull/1796)) which was causing errors for projects with file and/or directory dependencies ([#1865](https://github.com/python-poetry/poetry/pull/1865)).


## [1.0.1] - 2020-01-10

### Fixed

- Fixed an error in `env use` where the wrong Python executable was being used to check compatibility ([#1736](https://github.com/python-poetry/poetry/pull/1736)).
- Fixed an error where VCS dependencies were not properly categorized as development dependencies ([#1725](https://github.com/python-poetry/poetry/pull/1725)).
- Fixed an error where some shells would no longer be usable after using the `shell` command ([#1673](https://github.com/python-poetry/poetry/pull/1673)).
- Fixed an error where explicitly included files where not included in wheel distributions ([#1750](https://github.com/python-poetry/poetry/pull/1750)).
- Fixed an error where some Git dependencies url were not properly parsed ([#1756](https://github.com/python-poetry/poetry/pull/1756)).
- Fixed an error in the `env` commands on Windows if the path to the executable contained a space ([#1774](https://github.com/python-poetry/poetry/pull/1774)).
- Fixed several errors and UX issues caused by `keyring` on some systems ([#1788](https://github.com/python-poetry/poetry/pull/1788)).
- Fixed errors when trying to detect installed packages ([#1786](https://github.com/python-poetry/poetry/pull/1786)).
- Fixed an error when packaging projects where Python packages were not properly detected ([#1592](https://github.com/python-poetry/poetry/pull/1592)).
- Fixed an error where local file dependencies were exported as editable when using the `export` command ([#1840](https://github.com/python-poetry/poetry/pull/1840)).
- Fixed the way environment markers are propagated and evaluated when resolving dependencies ([#1829](https://github.com/python-poetry/poetry/pull/1829), [#1789](https://github.com/python-poetry/poetry/pull/1789)).
- Fixed an error in the PEP-508 compliant representation of directory and file dependencies ([#1796](https://github.com/python-poetry/poetry/pull/1796)).
- Fixed an error where invalid virtual environments would be silently used. T
Download .txt
gitextract_5_4n1xc3/

├── .cirrus.yml
├── .gitattributes
├── .github/
│   ├── ISSUE_TEMPLATE/
│   │   ├── ---bug-report.yml
│   │   ├── ---documentation.yml
│   │   ├── ---feature-request.yml
│   │   └── config.yml
│   ├── PULL_REQUEST_TEMPLATE.md
│   ├── actions/
│   │   ├── bootstrap-poetry/
│   │   │   └── action.yaml
│   │   └── poetry-install/
│   │       └── action.yaml
│   ├── dependabot.yml
│   ├── scripts/
│   │   └── backport.sh
│   └── workflows/
│       ├── .tests-matrix.yaml
│       ├── backport.yaml
│       ├── docs.yaml
│       ├── lock-threads.yaml
│       ├── release.yaml
│       └── tests.yaml
├── .gitignore
├── .pre-commit-config.yaml
├── .pre-commit-hooks.yaml
├── CHANGELOG.md
├── CITATION.cff
├── CODE_OF_CONDUCT.md
├── LICENSE
├── README.md
├── docs/
│   ├── _index.md
│   ├── basic-usage.md
│   ├── building-extension-modules.md
│   ├── cli.md
│   ├── community.md
│   ├── configuration.md
│   ├── contributing.md
│   ├── dependency-specification.md
│   ├── faq.md
│   ├── libraries.md
│   ├── managing-dependencies.md
│   ├── managing-environments.md
│   ├── plugins.md
│   ├── pre-commit-hooks.md
│   ├── pyproject.md
│   └── repositories.md
├── pyproject.toml
├── src/
│   └── poetry/
│       ├── __main__.py
│       ├── __version__.py
│       ├── config/
│       │   ├── __init__.py
│       │   ├── config.py
│       │   ├── config_source.py
│       │   ├── dict_config_source.py
│       │   ├── file_config_source.py
│       │   └── source.py
│       ├── console/
│       │   ├── __init__.py
│       │   ├── application.py
│       │   ├── command_loader.py
│       │   ├── commands/
│       │   │   ├── __init__.py
│       │   │   ├── about.py
│       │   │   ├── add.py
│       │   │   ├── build.py
│       │   │   ├── cache/
│       │   │   │   ├── __init__.py
│       │   │   │   ├── clear.py
│       │   │   │   └── list.py
│       │   │   ├── check.py
│       │   │   ├── command.py
│       │   │   ├── config.py
│       │   │   ├── debug/
│       │   │   │   ├── __init__.py
│       │   │   │   ├── info.py
│       │   │   │   ├── resolve.py
│       │   │   │   └── tags.py
│       │   │   ├── env/
│       │   │   │   ├── __init__.py
│       │   │   │   ├── activate.py
│       │   │   │   ├── info.py
│       │   │   │   ├── list.py
│       │   │   │   ├── remove.py
│       │   │   │   └── use.py
│       │   │   ├── env_command.py
│       │   │   ├── group_command.py
│       │   │   ├── init.py
│       │   │   ├── install.py
│       │   │   ├── installer_command.py
│       │   │   ├── lock.py
│       │   │   ├── new.py
│       │   │   ├── publish.py
│       │   │   ├── python/
│       │   │   │   ├── __init__.py
│       │   │   │   ├── install.py
│       │   │   │   ├── list.py
│       │   │   │   └── remove.py
│       │   │   ├── remove.py
│       │   │   ├── run.py
│       │   │   ├── search.py
│       │   │   ├── self/
│       │   │   │   ├── __init__.py
│       │   │   │   ├── add.py
│       │   │   │   ├── install.py
│       │   │   │   ├── lock.py
│       │   │   │   ├── remove.py
│       │   │   │   ├── self_command.py
│       │   │   │   ├── show/
│       │   │   │   │   ├── __init__.py
│       │   │   │   │   └── plugins.py
│       │   │   │   ├── sync.py
│       │   │   │   └── update.py
│       │   │   ├── show.py
│       │   │   ├── source/
│       │   │   │   ├── __init__.py
│       │   │   │   ├── add.py
│       │   │   │   ├── remove.py
│       │   │   │   └── show.py
│       │   │   ├── sync.py
│       │   │   ├── update.py
│       │   │   └── version.py
│       │   ├── events/
│       │   │   ├── __init__.py
│       │   │   └── console_events.py
│       │   ├── exceptions.py
│       │   └── logging/
│       │       ├── __init__.py
│       │       ├── filters.py
│       │       ├── formatters/
│       │       │   ├── __init__.py
│       │       │   ├── builder_formatter.py
│       │       │   └── formatter.py
│       │       ├── io_formatter.py
│       │       └── io_handler.py
│       ├── exceptions.py
│       ├── factory.py
│       ├── inspection/
│       │   ├── __init__.py
│       │   ├── info.py
│       │   └── lazy_wheel.py
│       ├── installation/
│       │   ├── __init__.py
│       │   ├── chef.py
│       │   ├── chooser.py
│       │   ├── executor.py
│       │   ├── installer.py
│       │   ├── operations/
│       │   │   ├── __init__.py
│       │   │   ├── install.py
│       │   │   ├── operation.py
│       │   │   ├── uninstall.py
│       │   │   └── update.py
│       │   └── wheel_installer.py
│       ├── json/
│       │   ├── __init__.py
│       │   └── schemas/
│       │       └── poetry.json
│       ├── layouts/
│       │   ├── __init__.py
│       │   ├── layout.py
│       │   └── src.py
│       ├── locations.py
│       ├── masonry/
│       │   ├── __init__.py
│       │   ├── api.py
│       │   └── builders/
│       │       ├── __init__.py
│       │       └── editable.py
│       ├── mixology/
│       │   ├── __init__.py
│       │   ├── assignment.py
│       │   ├── failure.py
│       │   ├── incompatibility.py
│       │   ├── incompatibility_cause.py
│       │   ├── partial_solution.py
│       │   ├── result.py
│       │   ├── set_relation.py
│       │   ├── term.py
│       │   └── version_solver.py
│       ├── packages/
│       │   ├── __init__.py
│       │   ├── dependency_package.py
│       │   ├── direct_origin.py
│       │   ├── locker.py
│       │   ├── package_collection.py
│       │   └── transitive_package_info.py
│       ├── plugins/
│       │   ├── __init__.py
│       │   ├── application_plugin.py
│       │   ├── base_plugin.py
│       │   ├── plugin.py
│       │   └── plugin_manager.py
│       ├── poetry.py
│       ├── publishing/
│       │   ├── __init__.py
│       │   ├── hash_manager.py
│       │   ├── publisher.py
│       │   └── uploader.py
│       ├── puzzle/
│       │   ├── __init__.py
│       │   ├── exceptions.py
│       │   ├── provider.py
│       │   ├── solver.py
│       │   └── transaction.py
│       ├── py.typed
│       ├── pyproject/
│       │   ├── __init__.py
│       │   └── toml.py
│       ├── repositories/
│       │   ├── __init__.py
│       │   ├── abstract_repository.py
│       │   ├── cached_repository.py
│       │   ├── exceptions.py
│       │   ├── http_repository.py
│       │   ├── installed_repository.py
│       │   ├── legacy_repository.py
│       │   ├── link_sources/
│       │   │   ├── __init__.py
│       │   │   ├── base.py
│       │   │   ├── html.py
│       │   │   └── json.py
│       │   ├── lockfile_repository.py
│       │   ├── parsers/
│       │   │   ├── __init__.py
│       │   │   ├── html_page_parser.py
│       │   │   └── pypi_search_parser.py
│       │   ├── pypi_repository.py
│       │   ├── repository.py
│       │   ├── repository_pool.py
│       │   └── single_page_repository.py
│       ├── toml/
│       │   ├── __init__.py
│       │   ├── exceptions.py
│       │   └── file.py
│       ├── utils/
│       │   ├── __init__.py
│       │   ├── _compat.py
│       │   ├── authenticator.py
│       │   ├── cache.py
│       │   ├── constants.py
│       │   ├── dependency_specification.py
│       │   ├── env/
│       │   │   ├── __init__.py
│       │   │   ├── base_env.py
│       │   │   ├── env_manager.py
│       │   │   ├── exceptions.py
│       │   │   ├── generic_env.py
│       │   │   ├── mock_env.py
│       │   │   ├── null_env.py
│       │   │   ├── python/
│       │   │   │   ├── __init__.py
│       │   │   │   ├── exceptions.py
│       │   │   │   ├── installer.py
│       │   │   │   ├── manager.py
│       │   │   │   └── providers.py
│       │   │   ├── script_strings.py
│       │   │   ├── site_packages.py
│       │   │   ├── system_env.py
│       │   │   └── virtual_env.py
│       │   ├── extras.py
│       │   ├── helpers.py
│       │   ├── isolated_build.py
│       │   ├── log_utils.py
│       │   ├── password_manager.py
│       │   ├── patterns.py
│       │   ├── pip.py
│       │   ├── threading.py
│       │   └── wheel.py
│       ├── vcs/
│       │   ├── __init__.py
│       │   └── git/
│       │       ├── __init__.py
│       │       ├── backend.py
│       │       └── system.py
│       └── version/
│           ├── __init__.py
│           └── version_selector.py
└── tests/
    ├── __init__.py
    ├── config/
    │   ├── __init__.py
    │   ├── test_config.py
    │   ├── test_config_source.py
    │   ├── test_dict_config_source.py
    │   ├── test_file_config_source.py
    │   └── test_source.py
    ├── conftest.py
    ├── console/
    │   ├── __init__.py
    │   ├── commands/
    │   │   ├── __init__.py
    │   │   ├── cache/
    │   │   │   ├── __init__.py
    │   │   │   ├── conftest.py
    │   │   │   ├── test_clear.py
    │   │   │   └── test_list.py
    │   │   ├── conftest.py
    │   │   ├── debug/
    │   │   │   ├── __init__.py
    │   │   │   ├── test_info.py
    │   │   │   └── test_resolve.py
    │   │   ├── env/
    │   │   │   ├── __init__.py
    │   │   │   ├── conftest.py
    │   │   │   ├── helpers.py
    │   │   │   ├── test_activate.py
    │   │   │   ├── test_info.py
    │   │   │   ├── test_list.py
    │   │   │   ├── test_remove.py
    │   │   │   └── test_use.py
    │   │   ├── python/
    │   │   │   ├── __init__.py
    │   │   │   ├── test_python_install.py
    │   │   │   ├── test_python_list.py
    │   │   │   └── test_python_remove.py
    │   │   ├── self/
    │   │   │   ├── __init__.py
    │   │   │   ├── conftest.py
    │   │   │   ├── fixtures/
    │   │   │   │   └── poetry-1.0.5-darwin.sha256sum
    │   │   │   ├── test_add_plugins.py
    │   │   │   ├── test_install.py
    │   │   │   ├── test_remove_plugins.py
    │   │   │   ├── test_self_command.py
    │   │   │   ├── test_show.py
    │   │   │   ├── test_show_plugins.py
    │   │   │   ├── test_sync.py
    │   │   │   ├── test_update.py
    │   │   │   └── utils.py
    │   │   ├── source/
    │   │   │   ├── __init__.py
    │   │   │   ├── conftest.py
    │   │   │   ├── test_add.py
    │   │   │   ├── test_remove.py
    │   │   │   └── test_show.py
    │   │   ├── test_about.py
    │   │   ├── test_add.py
    │   │   ├── test_build.py
    │   │   ├── test_check.py
    │   │   ├── test_config.py
    │   │   ├── test_init.py
    │   │   ├── test_install.py
    │   │   ├── test_lock.py
    │   │   ├── test_new.py
    │   │   ├── test_publish.py
    │   │   ├── test_remove.py
    │   │   ├── test_run.py
    │   │   ├── test_search.py
    │   │   ├── test_show.py
    │   │   ├── test_sync.py
    │   │   ├── test_update.py
    │   │   └── test_version.py
    │   ├── conftest.py
    │   ├── logging/
    │   │   ├── __init__.py
    │   │   ├── formatters/
    │   │   │   ├── __init__.py
    │   │   │   └── test_builder_formatter.py
    │   │   └── test_io_formatter.py
    │   ├── test_application.py
    │   ├── test_application_command_not_found.py
    │   ├── test_application_global_options.py
    │   ├── test_application_removed_commands.py
    │   ├── test_exceptions_console_message.py
    │   └── test_exections_poetry_runtime_error.py
    ├── fixtures/
    │   ├── bad_scripts_project/
    │   │   ├── no_colon/
    │   │   │   ├── README.rst
    │   │   │   ├── pyproject.toml
    │   │   │   └── simple_project/
    │   │   │       └── __init__.py
    │   │   └── too_many_colon/
    │   │       ├── README.rst
    │   │       ├── pyproject.toml
    │   │       └── simple_project/
    │   │           └── __init__.py
    │   ├── build_constraints/
    │   │   └── pyproject.toml
    │   ├── build_constraints_empty/
    │   │   └── pyproject.toml
    │   ├── build_system_requires_not_available/
    │   │   ├── README.rst
    │   │   ├── pyproject.toml
    │   │   └── simple_project/
    │   │       └── __init__.py
    │   ├── build_systems/
    │   │   ├── core_from_git/
    │   │   │   ├── README.md
    │   │   │   ├── pyproject.toml
    │   │   │   └── simple_project/
    │   │   │       └── __init__.py
    │   │   ├── core_in_range/
    │   │   │   ├── README.md
    │   │   │   ├── pyproject.toml
    │   │   │   └── simple_project/
    │   │   │       └── __init__.py
    │   │   ├── core_not_in_range/
    │   │   │   ├── README.md
    │   │   │   ├── pyproject.toml
    │   │   │   └── simple_project/
    │   │   │       └── __init__.py
    │   │   ├── has_build_script/
    │   │   │   ├── README.md
    │   │   │   ├── pyproject.toml
    │   │   │   └── simple_project/
    │   │   │       └── __init__.py
    │   │   ├── multiple_build_deps/
    │   │   │   ├── README.md
    │   │   │   ├── pyproject.toml
    │   │   │   └── simple_project/
    │   │   │       └── __init__.py
    │   │   ├── no_build_backend/
    │   │   │   ├── README.md
    │   │   │   ├── pyproject.toml
    │   │   │   └── simple_project/
    │   │   │       └── __init__.py
    │   │   ├── no_build_system/
    │   │   │   ├── README.md
    │   │   │   ├── pyproject.toml
    │   │   │   └── simple_project/
    │   │   │       └── __init__.py
    │   │   └── no_core/
    │   │       ├── README.md
    │   │       ├── pyproject.toml
    │   │       └── simple_project/
    │   │           └── __init__.py
    │   ├── complete.toml
    │   ├── deleted_directory_dependency/
    │   │   └── pyproject.toml
    │   ├── deleted_file_dependency/
    │   │   └── pyproject.toml
    │   ├── directory/
    │   │   ├── project_with_transitive_directory_dependencies/
    │   │   │   ├── project_with_transitive_directory_dependencies/
    │   │   │   │   └── __init__.py
    │   │   │   ├── pyproject.toml
    │   │   │   └── setup.py
    │   │   └── project_with_transitive_file_dependencies/
    │   │       ├── inner-directory-project/
    │   │       │   └── pyproject.toml
    │   │       ├── project_with_transitive_file_dependencies/
    │   │       │   └── __init__.py
    │   │       └── pyproject.toml
    │   ├── distributions/
    │   │   ├── demo-0.1.0-py2.py3-none-any.whl
    │   │   ├── demo-0.1.2-py2.py3-none-any.whl
    │   │   ├── demo_invalid_record-0.1.0-py2.py3-none-any.whl
    │   │   ├── demo_invalid_record2-0.1.0-py2.py3-none-any.whl
    │   │   ├── demo_metadata_version_23-0.1.0-py2.py3-none-any.whl
    │   │   ├── demo_metadata_version_24-0.1.0-py2.py3-none-any.whl
    │   │   ├── demo_metadata_version_299-0.1.0-py2.py3-none-any.whl
    │   │   ├── demo_metadata_version_unknown-0.1.0-py2.py3-none-any.whl
    │   │   └── demo_missing_dist_info-0.1.0-py2.py3-none-any.whl
    │   ├── excluded_subpackage/
    │   │   ├── README.rst
    │   │   ├── example/
    │   │   │   ├── __init__.py
    │   │   │   └── test/
    │   │   │       ├── __init__.py
    │   │   │       └── excluded.py
    │   │   └── pyproject.toml
    │   ├── extended_project/
    │   │   ├── README.rst
    │   │   ├── build.py
    │   │   ├── extended_project/
    │   │   │   └── __init__.py
    │   │   └── pyproject.toml
    │   ├── extended_project_without_setup/
    │   │   ├── README.rst
    │   │   ├── build.py
    │   │   ├── extended_project/
    │   │   │   └── __init__.py
    │   │   └── pyproject.toml
    │   ├── extended_with_no_setup/
    │   │   ├── README.md
    │   │   ├── build.py
    │   │   ├── extended/
    │   │   │   ├── __init__.py
    │   │   │   └── extended.c
    │   │   └── pyproject.toml
    │   ├── git/
    │   │   └── github.com/
    │   │       ├── demo/
    │   │       │   ├── demo/
    │   │       │   │   ├── demo/
    │   │       │   │   │   └── __init__.py
    │   │       │   │   └── pyproject.toml
    │   │       │   ├── namespace-package-one/
    │   │       │   │   ├── namespace_package/
    │   │       │   │   │   ├── __init__.py
    │   │       │   │   │   └── one/
    │   │       │   │   │       └── __init__.py
    │   │       │   │   └── setup.py
    │   │       │   ├── no-dependencies/
    │   │       │   │   ├── demo/
    │   │       │   │   │   └── __init__.py
    │   │       │   │   └── setup.py
    │   │       │   ├── no-version/
    │   │       │   │   ├── demo/
    │   │       │   │   │   └── __init__.py
    │   │       │   │   └── setup.py
    │   │       │   ├── non-canonical-name/
    │   │       │   │   ├── demo/
    │   │       │   │   │   └── __init__.py
    │   │       │   │   └── setup.py
    │   │       │   ├── poetry-plugin/
    │   │       │   │   ├── poetry_plugin/
    │   │       │   │   │   └── __init__.py
    │   │       │   │   └── pyproject.toml
    │   │       │   ├── poetry-plugin2/
    │   │       │   │   └── subdir/
    │   │       │   │       ├── poetry_plugin/
    │   │       │   │       │   └── __init__.py
    │   │       │   │       └── pyproject.toml
    │   │       │   ├── prerelease/
    │   │       │   │   ├── prerelease/
    │   │       │   │   │   └── __init__.py
    │   │       │   │   └── pyproject.toml
    │   │       │   ├── pyproject-demo/
    │   │       │   │   ├── demo/
    │   │       │   │   │   └── __init__.py
    │   │       │   │   └── pyproject.toml
    │   │       │   └── subdirectories/
    │   │       │       ├── one/
    │   │       │       │   ├── one/
    │   │       │       │   │   └── __init__.py
    │   │       │       │   └── pyproject.toml
    │   │       │       ├── one-copy/
    │   │       │       │   ├── one/
    │   │       │       │   │   └── __init__.py
    │   │       │       │   └── pyproject.toml
    │   │       │       └── two/
    │   │       │           ├── pyproject.toml
    │   │       │           └── two/
    │   │       │               └── __init__.py
    │   │       └── forked_demo/
    │   │           └── subdirectories/
    │   │               ├── one/
    │   │               │   ├── one/
    │   │               │   │   └── __init__.py
    │   │               │   └── pyproject.toml
    │   │               ├── one-copy/
    │   │               │   ├── one/
    │   │               │   │   └── __init__.py
    │   │               │   └── pyproject.toml
    │   │               └── two/
    │   │                   ├── pyproject.toml
    │   │                   └── two/
    │   │                       └── __init__.py
    │   ├── incompatible_lock/
    │   │   └── pyproject.toml
    │   ├── inspection/
    │   │   ├── demo/
    │   │   │   └── pyproject.toml
    │   │   ├── demo_no_setup_pkg_info_no_deps/
    │   │   │   ├── PKG-INFO
    │   │   │   └── pyproject.toml
    │   │   ├── demo_no_setup_pkg_info_no_deps_dynamic/
    │   │   │   ├── PKG-INFO
    │   │   │   └── pyproject.toml
    │   │   ├── demo_no_setup_pkg_info_no_deps_for_sure/
    │   │   │   ├── PKG-INFO
    │   │   │   └── pyproject.toml
    │   │   ├── demo_only_requires_txt.egg-info/
    │   │   │   ├── PKG-INFO
    │   │   │   └── requires.txt
    │   │   ├── demo_poetry_package/
    │   │   │   └── pyproject.toml
    │   │   └── demo_with_obsolete_egg_info/
    │   │       ├── demo-0.1.0.egg-info/
    │   │       │   ├── PKG-INFO
    │   │       │   └── requires.txt
    │   │       └── pyproject.toml
    │   ├── invalid_lock/
    │   │   └── pyproject.toml
    │   ├── invalid_pyproject/
    │   │   └── pyproject.toml
    │   ├── invalid_pyproject_dep_name/
    │   │   └── pyproject.toml
    │   ├── missing_directory_dependency/
    │   │   └── pyproject.toml
    │   ├── missing_extra_directory_dependency/
    │   │   └── pyproject.toml
    │   ├── missing_file_dependency/
    │   │   └── pyproject.toml
    │   ├── nameless_pyproject/
    │   │   └── pyproject.toml
    │   ├── no_name_project/
    │   │   ├── README.rst
    │   │   └── pyproject.toml
    │   ├── non_package_mode/
    │   │   └── pyproject.toml
    │   ├── old_lock/
    │   │   └── pyproject.toml
    │   ├── old_lock_path_dependency/
    │   │   ├── pyproject.toml
    │   │   └── quix/
    │   │       └── pyproject.toml
    │   ├── outdated_lock/
    │   │   └── pyproject.toml
    │   ├── private_pyproject/
    │   │   └── pyproject.toml
    │   ├── project_plugins/
    │   │   ├── my_application_plugin-1.0.dist-info/
    │   │   │   ├── METADATA
    │   │   │   └── entry_points.txt
    │   │   ├── my_application_plugin-2.0.dist-info/
    │   │   │   ├── METADATA
    │   │   │   └── entry_points.txt
    │   │   ├── my_other_plugin-1.0.dist-info/
    │   │   │   ├── METADATA
    │   │   │   └── entry_points.txt
    │   │   ├── pyproject.toml
    │   │   ├── some_lib-1.0.dist-info/
    │   │   │   └── METADATA
    │   │   └── some_lib-2.0.dist-info/
    │   │       └── METADATA
    │   ├── project_with_extras/
    │   │   ├── project_with_extras/
    │   │   │   └── __init__.py
    │   │   └── pyproject.toml
    │   ├── project_with_git_dev_dependency/
    │   │   └── pyproject.toml
    │   ├── project_with_local_dependencies/
    │   │   └── pyproject.toml
    │   ├── project_with_multi_constraints_dependency/
    │   │   ├── project/
    │   │   │   └── __init__.py
    │   │   └── pyproject.toml
    │   ├── project_with_nested_local/
    │   │   ├── bar/
    │   │   │   └── pyproject.toml
    │   │   ├── foo/
    │   │   │   └── pyproject.toml
    │   │   ├── pyproject.toml
    │   │   └── quix/
    │   │       └── pyproject.toml
    │   ├── project_with_setup/
    │   │   ├── my_package/
    │   │   │   └── __init__.py
    │   │   └── setup.py
    │   ├── project_with_setup_calls_script/
    │   │   ├── my_package/
    │   │   │   └── __init__.py
    │   │   ├── pyproject.toml
    │   │   └── setup.py
    │   ├── pypi_reference/
    │   │   └── pyproject.toml
    │   ├── sample_project/
    │   │   ├── README.rst
    │   │   └── pyproject.toml
    │   ├── scripts/
    │   │   ├── README.md
    │   │   ├── pyproject.toml
    │   │   └── scripts/
    │   │       ├── __init__.py
    │   │       ├── check_argv0.py
    │   │       ├── exit_code.py
    │   │       └── return_code.py
    │   ├── self_version_not_ok/
    │   │   └── pyproject.toml
    │   ├── self_version_not_ok_invalid_config/
    │   │   └── pyproject.toml
    │   ├── self_version_ok/
    │   │   └── pyproject.toml
    │   ├── simple_project/
    │   │   ├── LICENSE
    │   │   ├── README.rst
    │   │   ├── dist/
    │   │   │   └── simple_project-1.2.3-py2.py3-none-any.whl
    │   │   ├── pyproject.toml
    │   │   └── simple_project/
    │   │       └── __init__.py
    │   ├── simple_project_legacy/
    │   │   ├── LICENSE
    │   │   ├── README.rst
    │   │   ├── pyproject.toml
    │   │   └── simple_project/
    │   │       └── __init__.py
    │   ├── up_to_date_lock/
    │   │   └── pyproject.toml
    │   ├── up_to_date_lock_non_package/
    │   │   └── pyproject.toml
    │   ├── wheel_with_no_requires_dist/
    │   │   └── demo-0.1.0-py2.py3-none-any.whl
    │   ├── with-include/
    │   │   ├── LICENSE
    │   │   ├── README.rst
    │   │   ├── extra_dir/
    │   │   │   ├── README.md
    │   │   │   ├── __init__.py
    │   │   │   ├── sub_pkg/
    │   │   │   │   ├── __init__.py
    │   │   │   │   └── vcs_excluded.txt
    │   │   │   └── vcs_excluded.txt
    │   │   ├── for_wheel_only/
    │   │   │   └── __init__.py
    │   │   ├── my_module.py
    │   │   ├── notes.txt
    │   │   ├── package_with_include/
    │   │   │   └── __init__.py
    │   │   ├── pyproject.toml
    │   │   ├── src/
    │   │   │   └── src_package/
    │   │   │       └── __init__.py
    │   │   └── tests/
    │   │       └── __init__.py
    │   ├── with_conditional_path_deps/
    │   │   ├── demo_one/
    │   │   │   └── pyproject.toml
    │   │   ├── demo_two/
    │   │   │   └── pyproject.toml
    │   │   └── pyproject.toml
    │   ├── with_explicit_pypi_and_other/
    │   │   └── pyproject.toml
    │   ├── with_explicit_pypi_and_other_explicit/
    │   │   └── pyproject.toml
    │   ├── with_explicit_pypi_no_other/
    │   │   └── pyproject.toml
    │   ├── with_explicit_source/
    │   │   └── pyproject.toml
    │   ├── with_local_config/
    │   │   ├── README.rst
    │   │   ├── poetry.toml
    │   │   └── pyproject.toml
    │   ├── with_multiple_dist_dir/
    │   │   ├── README.rst
    │   │   ├── dist/
    │   │   │   └── simple_project-1.2.3-py2.py3-none-any.whl
    │   │   ├── other_dist/
    │   │   │   └── dist/
    │   │   │       └── simple_project-1.2.3-py2.py3-none-any.whl
    │   │   ├── pyproject.toml
    │   │   └── simple_project/
    │   │       └── __init__.py
    │   ├── with_multiple_readme_files/
    │   │   ├── README-1.rst
    │   │   ├── README-2.rst
    │   │   ├── my_package/
    │   │   │   └── __init__.py
    │   │   └── pyproject.toml
    │   ├── with_multiple_sources/
    │   │   └── pyproject.toml
    │   ├── with_multiple_sources_pypi/
    │   │   └── pyproject.toml
    │   ├── with_multiple_supplemental_sources/
    │   │   └── pyproject.toml
    │   ├── with_path_dependency/
    │   │   ├── bazz/
    │   │   │   └── pyproject.toml
    │   │   └── pyproject.toml
    │   ├── with_primary_source_explicit/
    │   │   └── pyproject.toml
    │   ├── with_primary_source_implicit/
    │   │   └── pyproject.toml
    │   ├── with_source/
    │   │   ├── README.rst
    │   │   └── pyproject.toml
    │   └── with_supplemental_source/
    │       └── pyproject.toml
    ├── helpers.py
    ├── inspection/
    │   ├── __init__.py
    │   ├── test_info.py
    │   └── test_lazy_wheel.py
    ├── installation/
    │   ├── __init__.py
    │   ├── conftest.py
    │   ├── fixtures/
    │   │   ├── extras-with-dependencies.test
    │   │   ├── extras.test
    │   │   ├── install-no-dev.test
    │   │   ├── no-dependencies.test
    │   │   ├── remove.test
    │   │   ├── update-with-lock.test
    │   │   ├── update-with-locked-extras.test
    │   │   ├── with-conditional-dependency.test
    │   │   ├── with-conflicting-dependency-extras-root.test
    │   │   ├── with-conflicting-dependency-extras-transitive.test
    │   │   ├── with-dependencies-differing-extras.test
    │   │   ├── with-dependencies-extras.test
    │   │   ├── with-dependencies-nested-extras.test
    │   │   ├── with-dependencies.test
    │   │   ├── with-directory-dependency-poetry-transitive.test
    │   │   ├── with-directory-dependency-poetry.test
    │   │   ├── with-directory-dependency-setuptools.test
    │   │   ├── with-duplicate-dependencies-update.test
    │   │   ├── with-duplicate-dependencies.test
    │   │   ├── with-exclusive-extras.test
    │   │   ├── with-file-dependency-transitive.test
    │   │   ├── with-file-dependency.test
    │   │   ├── with-multiple-updates.test
    │   │   ├── with-optional-dependencies.test
    │   │   ├── with-platform-dependencies.test
    │   │   ├── with-prereleases.test
    │   │   ├── with-pypi-repository.test
    │   │   ├── with-python-versions.test
    │   │   ├── with-same-version-url-dependencies.test
    │   │   ├── with-self-referencing-extras-all-deep.test
    │   │   ├── with-self-referencing-extras-all-top.test
    │   │   ├── with-self-referencing-extras-b-markers.test
    │   │   ├── with-self-referencing-extras-deep.test
    │   │   ├── with-self-referencing-extras-download-deep.test
    │   │   ├── with-self-referencing-extras-download-top.test
    │   │   ├── with-self-referencing-extras-install-deep.test
    │   │   ├── with-self-referencing-extras-install-download-deep.test
    │   │   ├── with-self-referencing-extras-install-download-top.test
    │   │   ├── with-self-referencing-extras-install-top.test
    │   │   ├── with-self-referencing-extras-nested-deep.test
    │   │   ├── with-self-referencing-extras-nested-top.test
    │   │   ├── with-self-referencing-extras-top.test
    │   │   ├── with-sub-dependencies.test
    │   │   ├── with-url-dependency.test
    │   │   ├── with-vcs-dependency-with-extras.test
    │   │   ├── with-vcs-dependency-without-ref.test
    │   │   └── with-wheel-dependency-no-requires-dist.test
    │   ├── test_chef.py
    │   ├── test_chooser.py
    │   ├── test_chooser_errors.py
    │   ├── test_executor.py
    │   ├── test_installer.py
    │   └── test_wheel_installer.py
    ├── integration/
    │   ├── __init__.py
    │   └── test_utils_vcs_git.py
    ├── json/
    │   ├── __init__.py
    │   ├── fixtures/
    │   │   ├── build_constraints.toml
    │   │   ├── self_invalid_plugin.toml
    │   │   ├── self_invalid_version.toml
    │   │   ├── self_valid.toml
    │   │   └── source/
    │   │       ├── complete_invalid_priority.toml
    │   │       ├── complete_invalid_url.toml
    │   │       └── complete_valid.toml
    │   └── test_schema.py
    ├── masonry/
    │   └── builders/
    │       ├── __init__.py
    │       ├── fixtures/
    │       │   └── excluded_subpackage/
    │       │       ├── README.rst
    │       │       ├── example/
    │       │       │   ├── __init__.py
    │       │       │   └── test/
    │       │       │       ├── __init__.py
    │       │       │       └── excluded.py
    │       │       └── pyproject.toml
    │       └── test_editable_builder.py
    ├── mixology/
    │   ├── __init__.py
    │   ├── helpers.py
    │   ├── test_incompatibility.py
    │   └── version_solver/
    │       ├── __init__.py
    │       ├── conftest.py
    │       ├── test_backtracking.py
    │       ├── test_basic_graph.py
    │       ├── test_dependency_cache.py
    │       ├── test_python_constraint.py
    │       ├── test_unsolvable.py
    │       └── test_with_lock.py
    ├── packages/
    │   ├── __init__.py
    │   ├── test_direct_origin.py
    │   ├── test_locker.py
    │   └── test_transitive_package_info.py
    ├── plugins/
    │   ├── __init__.py
    │   └── test_plugin_manager.py
    ├── publishing/
    │   ├── __init__.py
    │   ├── test_hash_manager.py
    │   ├── test_publisher.py
    │   └── test_uploader.py
    ├── puzzle/
    │   ├── __init__.py
    │   ├── conftest.py
    │   ├── test_provider.py
    │   ├── test_solver.py
    │   ├── test_solver_internals.py
    │   └── test_transaction.py
    ├── pyproject/
    │   ├── __init__.py
    │   ├── conftest.py
    │   ├── test_pyproject_toml.py
    │   └── test_pyproject_toml_file.py
    ├── repositories/
    │   ├── __init__.py
    │   ├── conftest.py
    │   ├── fixtures/
    │   │   ├── __init__.py
    │   │   ├── distribution_hashes.py
    │   │   ├── installed/
    │   │   │   ├── lib/
    │   │   │   │   └── python3.7/
    │   │   │   │       └── site-packages/
    │   │   │   │           ├── cleo-0.7.6.dist-info/
    │   │   │   │           │   └── METADATA
    │   │   │   │           ├── directory_pep_610-1.2.3.dist-info/
    │   │   │   │           │   ├── METADATA
    │   │   │   │           │   └── direct_url.json
    │   │   │   │           ├── editable-2.3.4.dist-info/
    │   │   │   │           │   └── METADATA
    │   │   │   │           ├── editable-src-dir-2.3.4.dist-info/
    │   │   │   │           │   └── METADATA
    │   │   │   │           ├── editable-src-dir.pth
    │   │   │   │           ├── editable-with-import-2.3.4.dist-info/
    │   │   │   │           │   └── METADATA
    │   │   │   │           ├── editable-with-import.pth
    │   │   │   │           ├── editable.pth
    │   │   │   │           ├── editable_directory_pep_610-1.2.3.dist-info/
    │   │   │   │           │   ├── METADATA
    │   │   │   │           │   └── direct_url.json
    │   │   │   │           ├── file_pep_610-1.2.3.dist-info/
    │   │   │   │           │   ├── METADATA
    │   │   │   │           │   └── direct_url.json
    │   │   │   │           ├── foo-0.1.0-py3.8.egg
    │   │   │   │           ├── git_pep_610-1.2.3.dist-info/
    │   │   │   │           │   ├── METADATA
    │   │   │   │           │   └── direct_url.json
    │   │   │   │           ├── git_pep_610_no_requested_version-1.2.3.dist-info/
    │   │   │   │           │   ├── METADATA
    │   │   │   │           │   └── direct_url.json
    │   │   │   │           ├── git_pep_610_subdirectory-1.2.3.dist-info/
    │   │   │   │           │   ├── METADATA
    │   │   │   │           │   └── direct_url.json
    │   │   │   │           ├── standard-1.2.3.dist-info/
    │   │   │   │           │   └── METADATA
    │   │   │   │           ├── standard.pth
    │   │   │   │           └── url_pep_610-1.2.3.dist-info/
    │   │   │   │               ├── METADATA
    │   │   │   │               └── direct_url.json
    │   │   │   ├── lib64/
    │   │   │   │   └── python3.7/
    │   │   │   │       └── site-packages/
    │   │   │   │           ├── bender-2.0.5.dist-info/
    │   │   │   │           │   └── METADATA
    │   │   │   │           ├── bender.pth
    │   │   │   │           └── lib64-2.3.4.dist-info/
    │   │   │   │               └── METADATA
    │   │   │   ├── src/
    │   │   │   │   ├── bender/
    │   │   │   │   │   └── bender.egg-info/
    │   │   │   │   │       └── PKG-INFO
    │   │   │   │   └── pendulum/
    │   │   │   │       └── pendulum.egg-info/
    │   │   │   │           ├── PKG-INFO
    │   │   │   │           └── requires.txt
    │   │   │   └── vendor/
    │   │   │       └── py3.7/
    │   │   │           └── attrs-19.3.0.dist-info/
    │   │   │               └── METADATA
    │   │   ├── legacy/
    │   │   │   ├── absolute.html
    │   │   │   ├── black.html
    │   │   │   ├── clikit.html
    │   │   │   ├── demo.html
    │   │   │   ├── discord-py.html
    │   │   │   ├── futures-partial-yank.html
    │   │   │   ├── futures.html
    │   │   │   ├── invalid-version.html
    │   │   │   ├── ipython.html
    │   │   │   ├── isort-metadata.html
    │   │   │   ├── isort.html
    │   │   │   ├── json/
    │   │   │   │   ├── _readme
    │   │   │   │   ├── absolute.json
    │   │   │   │   ├── demo.json
    │   │   │   │   ├── invalid-version.json
    │   │   │   │   ├── isort-metadata.json
    │   │   │   │   ├── jupyter.json
    │   │   │   │   ├── poetry-test-py2-py3-metadata-merge.json
    │   │   │   │   ├── relative.json
    │   │   │   │   └── sqlalchemy-legacy.json
    │   │   │   ├── jupyter.html
    │   │   │   ├── missing-version.html
    │   │   │   ├── pastel.html
    │   │   │   ├── poetry-test-py2-py3-metadata-merge.html
    │   │   │   ├── pytest-with-extra-packages.html
    │   │   │   ├── pytest.html
    │   │   │   ├── python-language-server.html
    │   │   │   ├── pyyaml.html
    │   │   │   ├── relative.html
    │   │   │   ├── sqlalchemy-legacy.html
    │   │   │   └── tomlkit.html
    │   │   ├── legacy.py
    │   │   ├── pypi.org/
    │   │   │   ├── dists/
    │   │   │   │   ├── mocked/
    │   │   │   │   │   ├── poetry_test_py2_py3_metadata_merge-0.1.0-py2-none-any.whl
    │   │   │   │   │   └── poetry_test_py2_py3_metadata_merge-0.1.0-py3-none-any.whl
    │   │   │   │   ├── poetry_core-1.5.0-py3-none-any.whl
    │   │   │   │   ├── poetry_core-2.0.1-py3-none-any.whl
    │   │   │   │   ├── setuptools-67.6.1-py3-none-any.whl
    │   │   │   │   └── wheel-0.40.0-py3-none-any.whl
    │   │   │   ├── generate.py
    │   │   │   ├── json/
    │   │   │   │   ├── attrs/
    │   │   │   │   │   └── 17.4.0.json
    │   │   │   │   ├── attrs.json
    │   │   │   │   ├── black/
    │   │   │   │   │   ├── 19.10b0.json
    │   │   │   │   │   └── 21.11b0.json
    │   │   │   │   ├── black.json
    │   │   │   │   ├── cleo/
    │   │   │   │   │   └── 1.0.0a5.json
    │   │   │   │   ├── cleo.json
    │   │   │   │   ├── clikit/
    │   │   │   │   │   └── 0.2.4.json
    │   │   │   │   ├── clikit.json
    │   │   │   │   ├── colorama/
    │   │   │   │   │   └── 0.3.9.json
    │   │   │   │   ├── colorama.json
    │   │   │   │   ├── discord-py/
    │   │   │   │   │   └── 2.0.0.json
    │   │   │   │   ├── discord-py.json
    │   │   │   │   ├── filecache/
    │   │   │   │   │   └── 0.81.json
    │   │   │   │   ├── filecache.json
    │   │   │   │   ├── funcsigs/
    │   │   │   │   │   └── 1.0.2.json
    │   │   │   │   ├── funcsigs.json
    │   │   │   │   ├── futures/
    │   │   │   │   │   └── 3.2.0.json
    │   │   │   │   ├── futures.json
    │   │   │   │   ├── hbmqtt/
    │   │   │   │   │   └── 0.9.6.json
    │   │   │   │   ├── hbmqtt.json
    │   │   │   │   ├── importlib-metadata/
    │   │   │   │   │   └── 1.7.0.json
    │   │   │   │   ├── importlib-metadata.json
    │   │   │   │   ├── ipython/
    │   │   │   │   │   ├── 4.1.0rc1.json
    │   │   │   │   │   ├── 5.7.0.json
    │   │   │   │   │   └── 7.5.0.json
    │   │   │   │   ├── ipython.json
    │   │   │   │   ├── isodate/
    │   │   │   │   │   └── 0.7.0.json
    │   │   │   │   ├── isodate.json
    │   │   │   │   ├── isort/
    │   │   │   │   │   └── 4.3.4.json
    │   │   │   │   ├── isort-metadata.json
    │   │   │   │   ├── isort.json
    │   │   │   │   ├── jupyter/
    │   │   │   │   │   └── 1.0.0.json
    │   │   │   │   ├── jupyter.json
    │   │   │   │   ├── mocked/
    │   │   │   │   │   ├── invalid-version-package.json
    │   │   │   │   │   ├── isort-metadata/
    │   │   │   │   │   │   └── 4.3.4.json
    │   │   │   │   │   ├── six-unknown-version/
    │   │   │   │   │   │   └── 1.11.0.json
    │   │   │   │   │   ├── six-unknown-version.json
    │   │   │   │   │   ├── with-extra-dependency/
    │   │   │   │   │   │   └── 0.12.4.json
    │   │   │   │   │   ├── with-extra-dependency.json
    │   │   │   │   │   ├── with-transitive-extra-dependency/
    │   │   │   │   │   │   └── 0.12.4.json
    │   │   │   │   │   └── with-transitive-extra-dependency.json
    │   │   │   │   ├── more-itertools/
    │   │   │   │   │   └── 4.1.0.json
    │   │   │   │   ├── more-itertools.json
    │   │   │   │   ├── pastel/
    │   │   │   │   │   └── 0.1.0.json
    │   │   │   │   ├── pastel.json
    │   │   │   │   ├── pluggy/
    │   │   │   │   │   └── 0.6.0.json
    │   │   │   │   ├── pluggy.json
    │   │   │   │   ├── poetry-core/
    │   │   │   │   │   ├── 1.5.0.json
    │   │   │   │   │   └── 2.0.1.json
    │   │   │   │   ├── poetry-core.json
    │   │   │   │   ├── py/
    │   │   │   │   │   └── 1.5.3.json
    │   │   │   │   ├── py.json
    │   │   │   │   ├── pylev/
    │   │   │   │   │   └── 1.3.0.json
    │   │   │   │   ├── pylev.json
    │   │   │   │   ├── pytest/
    │   │   │   │   │   ├── 3.5.0.json
    │   │   │   │   │   └── 3.5.1.json
    │   │   │   │   ├── pytest.json
    │   │   │   │   ├── python-language-server/
    │   │   │   │   │   └── 0.21.2.json
    │   │   │   │   ├── python-language-server.json
    │   │   │   │   ├── pyyaml/
    │   │   │   │   │   └── 3.13.0.json
    │   │   │   │   ├── pyyaml.json
    │   │   │   │   ├── requests/
    │   │   │   │   │   ├── 2.18.0.json
    │   │   │   │   │   ├── 2.18.1.json
    │   │   │   │   │   ├── 2.18.2.json
    │   │   │   │   │   ├── 2.18.3.json
    │   │   │   │   │   ├── 2.18.4.json
    │   │   │   │   │   └── 2.19.0.json
    │   │   │   │   ├── requests.json
    │   │   │   │   ├── setuptools/
    │   │   │   │   │   ├── 39.2.0.json
    │   │   │   │   │   └── 67.6.1.json
    │   │   │   │   ├── setuptools.json
    │   │   │   │   ├── six/
    │   │   │   │   │   └── 1.11.0.json
    │   │   │   │   ├── six.json
    │   │   │   │   ├── sqlalchemy/
    │   │   │   │   │   └── 1.2.12.json
    │   │   │   │   ├── sqlalchemy.json
    │   │   │   │   ├── toga/
    │   │   │   │   │   ├── 0.3.0.json
    │   │   │   │   │   ├── 0.3.0dev1.json
    │   │   │   │   │   ├── 0.3.0dev2.json
    │   │   │   │   │   └── 0.4.0.json
    │   │   │   │   ├── toga.json
    │   │   │   │   ├── tomlkit/
    │   │   │   │   │   ├── 0.5.2.json
    │   │   │   │   │   └── 0.5.3.json
    │   │   │   │   ├── tomlkit.json
    │   │   │   │   ├── twisted/
    │   │   │   │   │   └── 18.9.0.json
    │   │   │   │   ├── twisted.json
    │   │   │   │   ├── wheel/
    │   │   │   │   │   └── 0.40.0.json
    │   │   │   │   ├── wheel.json
    │   │   │   │   ├── zipp/
    │   │   │   │   │   └── 3.5.0.json
    │   │   │   │   └── zipp.json
    │   │   │   ├── metadata/
    │   │   │   │   ├── PyYAML-3.13-cp27-cp27m-win32.whl.metadata
    │   │   │   │   ├── PyYAML-3.13-cp27-cp27m-win_amd64.whl.metadata
    │   │   │   │   ├── PyYAML-3.13-cp34-cp34m-win32.whl.metadata
    │   │   │   │   ├── PyYAML-3.13-cp34-cp34m-win_amd64.whl.metadata
    │   │   │   │   ├── PyYAML-3.13-cp35-cp35m-win32.whl.metadata
    │   │   │   │   ├── PyYAML-3.13-cp35-cp35m-win_amd64.whl.metadata
    │   │   │   │   ├── PyYAML-3.13-cp36-cp36m-win32.whl.metadata
    │   │   │   │   ├── PyYAML-3.13-cp36-cp36m-win_amd64.whl.metadata
    │   │   │   │   ├── PyYAML-3.13-cp37-cp37m-win32.whl.metadata
    │   │   │   │   ├── PyYAML-3.13-cp37-cp37m-win_amd64.whl.metadata
    │   │   │   │   ├── attrs-17.4.0-py2.py3-none-any.whl.metadata
    │   │   │   │   ├── black-19.10b0-py36-none-any.whl.metadata
    │   │   │   │   ├── black-21.11b0-py3-none-any.whl.metadata
    │   │   │   │   ├── cleo-1.0.0a5-py3-none-any.whl.metadata
    │   │   │   │   ├── clikit-0.2.4-py2.py3-none-any.whl.metadata
    │   │   │   │   ├── colorama-0.3.9-py2.py3-none-any.whl.metadata
    │   │   │   │   ├── discord.py-2.0.0-py3-none-any.whl.metadata
    │   │   │   │   ├── filecache-0.81-py3-none-any.whl.metadata
    │   │   │   │   ├── funcsigs-1.0.2-py2.py3-none-any.whl.metadata
    │   │   │   │   ├── futures-3.2.0-py2-none-any.whl.metadata
    │   │   │   │   ├── importlib_metadata-1.7.0-py2.py3-none-any.whl.metadata
    │   │   │   │   ├── ipython-4.1.0rc1-py2.py3-none-any.whl.metadata
    │   │   │   │   ├── ipython-5.7.0-py2-none-any.whl.metadata
    │   │   │   │   ├── ipython-5.7.0-py3-none-any.whl.metadata
    │   │   │   │   ├── ipython-7.5.0-py3-none-any.whl.metadata
    │   │   │   │   ├── isodate-0.7.0-py3-none-any.whl.metadata
    │   │   │   │   ├── isort-4.3.4-py2-none-any.whl.metadata
    │   │   │   │   ├── isort-4.3.4-py3-none-any.whl.metadata
    │   │   │   │   ├── isort-metadata-4.3.4-py2-none-any.whl.metadata
    │   │   │   │   ├── isort-metadata-4.3.4-py3-none-any.whl.metadata
    │   │   │   │   ├── jupyter-1.0.0-py2.py3-none-any.whl.metadata
    │   │   │   │   ├── mocked/
    │   │   │   │   │   ├── with_extra_dependency-0.12.4-py3-none-any.whl.metadata
    │   │   │   │   │   └── with_transitive_extra_dependency-0.12.4-py3-none-any.whl.metadata
    │   │   │   │   ├── more_itertools-4.1.0-py2-none-any.whl.metadata
    │   │   │   │   ├── more_itertools-4.1.0-py3-none-any.whl.metadata
    │   │   │   │   ├── pastel-0.1.0-py3-none-any.whl.metadata
    │   │   │   │   ├── pluggy-0.6.0-py2-none-any.whl.metadata
    │   │   │   │   ├── pluggy-0.6.0-py3-none-any.whl.metadata
    │   │   │   │   ├── poetry_core-1.5.0-py3-none-any.whl.metadata
    │   │   │   │   ├── poetry_core-2.0.1-py3-none-any.whl.metadata
    │   │   │   │   ├── py-1.5.3-py2.py3-none-any.whl.metadata
    │   │   │   │   ├── pylev-1.3.0-py2.py3-none-any.whl.metadata
    │   │   │   │   ├── pytest-3.5.0-py2.py3-none-any.whl.metadata
    │   │   │   │   ├── pytest-3.5.1-py2.py3-none-any.whl.metadata
    │   │   │   │   ├── requests-2.18.0-py2.py3-none-any.whl.metadata
    │   │   │   │   ├── requests-2.18.1-py2.py3-none-any.whl.metadata
    │   │   │   │   ├── requests-2.18.2-py2.py3-none-any.whl.metadata
    │   │   │   │   ├── requests-2.18.3-py2.py3-none-any.whl.metadata
    │   │   │   │   ├── requests-2.18.4-py2.py3-none-any.whl.metadata
    │   │   │   │   ├── requests-2.19.0-py2.py3-none-any.whl.metadata
    │   │   │   │   ├── setuptools-39.2.0-py2.py3-none-any.whl.metadata
    │   │   │   │   ├── setuptools-67.6.1-py3-none-any.whl.metadata
    │   │   │   │   ├── six-1.11.0-py2.py3-none-any.whl.metadata
    │   │   │   │   ├── toga-0.3.0-py3-none-any.whl.metadata
    │   │   │   │   ├── toga-0.3.0.dev1-py3-none-any.whl.metadata
    │   │   │   │   ├── toga-0.3.0.dev2-py3-none-any.whl.metadata
    │   │   │   │   ├── toga-0.4.0-py3-none-any.whl.metadata
    │   │   │   │   ├── tomlkit-0.5.2-py2.py3-none-any.whl.metadata
    │   │   │   │   ├── tomlkit-0.5.3-py2.py3-none-any.whl.metadata
    │   │   │   │   ├── wheel-0.40.0-py3-none-any.whl.metadata
    │   │   │   │   └── zipp-3.5.0-py3-none-any.whl.metadata
    │   │   │   ├── search/
    │   │   │   │   ├── search-disallowed.html
    │   │   │   │   └── search.html
    │   │   │   └── stubbed/
    │   │   │       ├── Twisted-18.9.0.tar.bz2
    │   │   │       ├── attrs-17.4.0-py2.py3-none-any.whl
    │   │   │       ├── black-19.10b0-py36-none-any.whl
    │   │   │       ├── black-21.11b0-py3-none-any.whl
    │   │   │       ├── cleo-1.0.0a5-py3-none-any.whl
    │   │   │       ├── clikit-0.2.4-py2.py3-none-any.whl
    │   │   │       ├── colorama-0.3.9-py2.py3-none-any.whl
    │   │   │       ├── discord.py-2.0.0-py3-none-any.whl
    │   │   │       ├── futures-3.2.0-py2-none-any.whl
    │   │   │       ├── ipython-5.7.0-py2-none-any.whl
    │   │   │       ├── ipython-5.7.0-py3-none-any.whl
    │   │   │       ├── ipython-7.5.0-py3-none-any.whl
    │   │   │       ├── isodate-0.7.0-py3-none-any.whl
    │   │   │       ├── isort-4.3.4-py2-none-any.whl
    │   │   │       ├── isort-4.3.4-py3-none-any.whl
    │   │   │       ├── jupyter-1.0.0-py2.py3-none-any.whl
    │   │   │       ├── more_itertools-4.1.0-py2-none-any.whl
    │   │   │       ├── more_itertools-4.1.0-py3-none-any.whl
    │   │   │       ├── pastel-0.1.0-py3-none-any.whl
    │   │   │       ├── pluggy-0.6.0-py2-none-any.whl
    │   │   │       ├── pluggy-0.6.0-py3-none-any.whl
    │   │   │       ├── py-1.5.3-py2.py3-none-any.whl
    │   │   │       ├── pytest-3.5.0-py2.py3-none-any.whl
    │   │   │       ├── pytest-3.5.1-py2.py3-none-any.whl
    │   │   │       ├── requests-2.18.4-py2.py3-none-any.whl
    │   │   │       ├── six-1.11.0-py2.py3-none-any.whl
    │   │   │       ├── tomlkit-0.5.2-py2.py3-none-any.whl
    │   │   │       ├── tomlkit-0.5.3-py2.py3-none-any.whl
    │   │   │       └── zipp-3.5.0-py3-none-any.whl
    │   │   ├── pypi.py
    │   │   ├── python_hosted.py
    │   │   └── single-page/
    │   │       ├── jax_releases.html
    │   │       └── mmcv_torch_releases.html
    │   ├── link_sources/
    │   │   ├── __init__.py
    │   │   ├── test_base.py
    │   │   ├── test_html.py
    │   │   └── test_json.py
    │   ├── parsers/
    │   │   ├── __init__.py
    │   │   ├── test_html_page_parser.py
    │   │   └── test_pypi_search_parser.py
    │   ├── test_cached_repository.py
    │   ├── test_http_repository.py
    │   ├── test_installed_repository.py
    │   ├── test_legacy_repository.py
    │   ├── test_lockfile_repository.py
    │   ├── test_pypi_repository.py
    │   ├── test_repository.py
    │   ├── test_repository_pool.py
    │   └── test_single_page_repository.py
    ├── test_conftest.py
    ├── test_factory.py
    ├── test_helpers.py
    ├── types.py
    ├── utils/
    │   ├── __init__.py
    │   ├── conftest.py
    │   ├── env/
    │   │   ├── __init__.py
    │   │   ├── conftest.py
    │   │   ├── python/
    │   │   │   ├── __init__.py
    │   │   │   ├── test_manager.py
    │   │   │   ├── test_python_installer.py
    │   │   │   └── test_python_providers.py
    │   │   ├── test_env.py
    │   │   ├── test_env_manager.py
    │   │   ├── test_env_site_packages.py
    │   │   └── test_system_env.py
    │   ├── fixtures/
    │   │   └── pyproject.toml
    │   ├── test_authenticator.py
    │   ├── test_cache.py
    │   ├── test_dependency_specification.py
    │   ├── test_extras.py
    │   ├── test_helpers.py
    │   ├── test_isolated_build.py
    │   ├── test_log_utils.py
    │   ├── test_password_manager.py
    │   ├── test_patterns.py
    │   ├── test_pip.py
    │   ├── test_python_manager.py
    │   └── test_threading.py
    └── vcs/
        └── git/
            ├── conftest.py
            ├── git_fixture.py
            ├── test_backend.py
            └── test_system.py
Download .txt
Showing preview only (330K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (3284 symbols across 310 files)

FILE: src/poetry/config/config.py
  function boolean_validator (line 35) | def boolean_validator(val: str) -> bool:
  function boolean_normalizer (line 39) | def boolean_normalizer(val: str) -> bool:
  function int_normalizer (line 43) | def int_normalizer(val: str) -> int:
  function build_config_setting_validator (line 47) | def build_config_setting_validator(val: str) -> bool:
  function build_config_setting_normalizer (line 73) | def build_config_setting_normalizer(val: str) -> Mapping[str, str | Sequ...
  class PackageFilterPolicy (line 79) | class PackageFilterPolicy:
    method __post_init__ (line 83) | def __post_init__(self, policy: str | list[str] | None) -> None:
    method allows (line 90) | def allows(self, package_name: str) -> bool:
    method has_exact_package (line 100) | def has_exact_package(self, package_name: str) -> bool:
    method is_reserved (line 104) | def is_reserved(cls, name: str) -> bool:
    method normalize (line 108) | def normalize(cls, policy: str) -> list[str]:
    method validator (line 124) | def validator(cls, policy: str) -> bool:
  class Config (line 147) | class Config:
    method __init__ (line 184) | def __init__(self, use_environment: bool = True) -> None:
    method config (line 191) | def config(self) -> dict[str, Any]:
    method config_source (line 195) | def config_source(self) -> ConfigSource:
    method auth_config_source (line 199) | def auth_config_source(self) -> ConfigSource:
    method set_config_source (line 202) | def set_config_source(self, config_source: ConfigSource) -> Config:
    method set_auth_config_source (line 207) | def set_auth_config_source(self, config_source: ConfigSource) -> Config:
    method merge (line 212) | def merge(self, config: dict[str, Any]) -> None:
    method all (line 217) | def all(self) -> dict[str, Any]:
    method raw (line 237) | def raw(self) -> dict[str, Any]:
    method _get_environment_repositories (line 241) | def _get_environment_repositories() -> dict[str, dict[str, str]]:
    method _get_environment_build_config_settings (line 255) | def _get_environment_build_config_settings() -> Mapping[
    method repository_cache_directory (line 275) | def repository_cache_directory(self) -> Path:
    method artifacts_cache_directory (line 279) | def artifacts_cache_directory(self) -> Path:
    method virtualenvs_path (line 283) | def virtualenvs_path(self) -> Path:
    method python_installation_dir (line 290) | def python_installation_dir(self) -> Path:
    method installer_max_workers (line 297) | def installer_max_workers(self) -> int:
    method get (line 312) | def get(self, setting_name: str, default: Any = None) -> Any:
    method process (line 362) | def process(self, value: Any) -> Any:
    method _get_normalizer (line 379) | def _get_normalizer(name: str) -> Callable[[str], Any]:
    method create (line 413) | def create(cls, reload: bool = False) -> Config:

FILE: src/poetry/config/config_source.py
  class PropertyNotFoundError (line 21) | class PropertyNotFoundError(ValueError):
  class ConfigSource (line 25) | class ConfigSource(ABC):
    method get_property (line 27) | def get_property(self, key: str) -> Any: ...
    method add_property (line 30) | def add_property(self, key: str, value: Any) -> None: ...
    method remove_property (line 33) | def remove_property(self, key: str) -> None: ...
  class ConfigSourceMigration (line 37) | class ConfigSourceMigration:
    method dry_run (line 42) | def dry_run(self, config_source: ConfigSource, io: IO | None = None) -...
    method apply (line 67) | def apply(self, config_source: ConfigSource) -> None:
  function drop_empty_config_category (line 83) | def drop_empty_config_category(

FILE: src/poetry/config/dict_config_source.py
  class DictConfigSource (line 9) | class DictConfigSource(ConfigSource):
    method __init__ (line 10) | def __init__(self) -> None:
    method config (line 14) | def config(self) -> dict[str, Any]:
    method get_property (line 17) | def get_property(self, key: str) -> Any:
    method add_property (line 30) | def add_property(self, key: str, value: Any) -> None:
    method remove_property (line 44) | def remove_property(self, key: str) -> None:

FILE: src/poetry/config/file_config_source.py
  class FileConfigSource (line 23) | class FileConfigSource(ConfigSource):
    method __init__ (line 24) | def __init__(self, file: TOMLFile) -> None:
    method name (line 28) | def name(self) -> str:
    method file (line 32) | def file(self) -> TOMLFile:
    method get_property (line 35) | def get_property(self, key: str) -> Any:
    method add_property (line 49) | def add_property(self, key: str, value: Any) -> None:
    method remove_property (line 64) | def remove_property(self, key: str) -> None:
    method secure (line 86) | def secure(self) -> Iterator[TOMLDocument]:

FILE: src/poetry/config/source.py
  class Source (line 15) | class Source:
    method __post_init__ (line 22) | def __post_init__(self) -> None:
    method to_dict (line 26) | def to_dict(self) -> dict[str, str | bool]:
    method to_toml_table (line 36) | def to_toml_table(self) -> Table:

FILE: src/poetry/console/application.py
  function load_command (line 43) | def load_command(name: str) -> Callable[[], Command]:
  class Application (line 124) | class Application(BaseApplication):
    method __init__ (line 125) | def __init__(self) -> None:
    method _default_definition (line 146) | def _default_definition(self) -> Definition:
    method project_directory (line 189) | def project_directory(self) -> Path:
    method poetry (line 193) | def poetry(self) -> Poetry:
    method command_loader (line 209) | def command_loader(self) -> CommandLoader:
    method reset_poetry (line 214) | def reset_poetry(self) -> None:
    method create_io (line 217) | def create_io(
    method _run (line 247) | def _run(self, io: IO) -> int:
    method _error_write_command_suggestions (line 306) | def _error_write_command_suggestions(
    method _configure_global_options (line 324) | def _configure_global_options(self, io: IO) -> None:
    method _sort_global_options (line 356) | def _sort_global_options(self, io: IO) -> None:
    method _configure_run_command (line 416) | def _configure_run_command(self, io: IO) -> None:
    method _configure_io (line 506) | def _configure_io(self, io: IO) -> None:
    method register_command_loggers (line 511) | def register_command_loggers(
    method configure_env (line 563) | def configure_env(self, event: Event, event_name: str, _: EventDispatc...
    method configure_installer_for_event (line 589) | def configure_installer_for_event(
    method configure_installer_for_command (line 607) | def configure_installer_for_command(command: InstallerCommand, io: IO)...
    method _load_plugins (line 623) | def _load_plugins(self, io: IO) -> None:
  function main (line 641) | def main() -> int:

FILE: src/poetry/console/command_loader.py
  class CommandLoader (line 15) | class CommandLoader(FactoryCommandLoader):
    method register_factory (line 16) | def register_factory(

FILE: src/poetry/console/commands/about.py
  class AboutCommand (line 6) | class AboutCommand(Command):
    method handle (line 11) | def handle(self) -> int:

FILE: src/poetry/console/commands/add.py
  class AddCommand (line 29) | class AddCommand(InstallerCommand, InitCommand):
    method handle (line 127) | def handle(self) -> int:
    method get_existing_packages_from_input (line 421) | def get_existing_packages_from_input(
    method _hint_update_packages (line 441) | def _hint_update_packages(self) -> str:
    method notify_about_existing_packages (line 448) | def notify_about_existing_packages(self, existing_packages: list[str])...
    method _add_dependency_to_extras (line 457) | def _add_dependency_to_extras(

FILE: src/poetry/console/commands/build.py
  class BuildOptions (line 34) | class BuildOptions:
    method __post_init__ (line 40) | def __post_init__(self) -> None:
  class BuildHandler (line 46) | class BuildHandler:
    method __init__ (line 47) | def __init__(self, poetry: Poetry, env: Env, io: IO) -> None:
    method _build (line 52) | def _build(
    method _isolated_build (line 67) | def _isolated_build(
    method _requires_isolated_build (line 81) | def _requires_isolated_build(self) -> bool:
    method _get_builder (line 120) | def _get_builder(self) -> Callable[..., None]:
    method _has_build_backend_defined (line 126) | def _has_build_backend_defined(self) -> bool:
    method build (line 129) | def build(self, options: BuildOptions) -> int:
  class BuildCommand (line 162) | class BuildCommand(EnvCommand):
    method _prepare_config_settings (line 202) | def _prepare_config_settings(
    method _prepare_formats (line 229) | def _prepare_formats(fmt: str | None) -> list[str]:
    method handle (line 234) | def handle(self) -> int:

FILE: src/poetry/console/commands/cache/clear.py
  class CacheClearCommand (line 22) | class CacheClearCommand(Command):
    method handle (line 33) | def handle(self) -> int:

FILE: src/poetry/console/commands/cache/list.py
  class CacheListCommand (line 7) | class CacheListCommand(Command):
    method handle (line 11) | def handle(self) -> int:

FILE: src/poetry/console/commands/check.py
  class CheckCommand (line 18) | class CheckCommand(Command):
    method _validate_classifiers (line 39) | def _validate_classifiers(
    method _validate_readme (line 89) | def _validate_readme(self, readme: str | list[str], poetry_file: Path)...
    method _validate_dependencies_source (line 101) | def _validate_dependencies_source(self, config: dict[str, Any]) -> lis...
    method handle (line 132) | def handle(self) -> int:

FILE: src/poetry/console/commands/command.py
  class Command (line 16) | class Command(BaseCommand):
    method poetry (line 22) | def poetry(self) -> Poetry:
    method set_poetry (line 28) | def set_poetry(self, poetry: Poetry) -> None:
    method get_application (line 36) | def get_application(self) -> Application:
    method reset_poetry (line 43) | def reset_poetry(self) -> None:
    method option (line 46) | def option(self, name: str, default: Any = None) -> Any:

FILE: src/poetry/console/commands/config.py
  class ConfigCommand (line 46) | class ConfigCommand(Command):
    method unique_config_values (line 76) | def unique_config_values(self) -> dict[str, tuple[Any, Any]]:
    method handle (line 111) | def handle(self) -> int:
    method _handle_single_value (line 346) | def _handle_single_value(
    method _list_configuration (line 366) | def _list_configuration(
    method _migrate (line 400) | def _migrate(self) -> None:

FILE: src/poetry/console/commands/debug/info.py
  class DebugInfoCommand (line 10) | class DebugInfoCommand(Command):
    method handle (line 14) | def handle(self) -> int:

FILE: src/poetry/console/commands/debug/resolve.py
  class DebugResolveCommand (line 20) | class DebugResolveCommand(InitCommand):
    method handle (line 45) | def handle(self) -> int:

FILE: src/poetry/console/commands/debug/tags.py
  class DebugTagsCommand (line 6) | class DebugTagsCommand(EnvCommand):
    method handle (line 10) | def handle(self) -> int:

FILE: src/poetry/console/commands/env/activate.py
  class ShellNotSupportedError (line 19) | class ShellNotSupportedError(Exception):
  class EnvActivateCommand (line 23) | class EnvActivateCommand(EnvCommand):
    method handle (line 27) | def handle(self) -> int:
    method _get_activate_command (line 45) | def _get_activate_command(self, env: Env, shell: str) -> str:
    method _quote (line 67) | def _quote(activation_script: Path, shell: str) -> str:

FILE: src/poetry/console/commands/env/info.py
  class EnvInfoCommand (line 17) | class EnvInfoCommand(Command):
    method handle (line 28) | def handle(self) -> int:
    method _display_complete_info (line 52) | def _display_complete_info(self, env: Env) -> None:

FILE: src/poetry/console/commands/env/list.py
  class EnvListCommand (line 15) | class EnvListCommand(Command):
    method handle (line 23) | def handle(self) -> int:

FILE: src/poetry/console/commands/env/remove.py
  class EnvRemoveCommand (line 17) | class EnvRemoveCommand(Command):
    method handle (line 39) | def handle(self) -> int:

FILE: src/poetry/console/commands/env/use.py
  class EnvUseCommand (line 15) | class EnvUseCommand(Command):
    method handle (line 23) | def handle(self) -> int:

FILE: src/poetry/console/commands/env_command.py
  class EnvCommand (line 12) | class EnvCommand(Command):
    method __init__ (line 13) | def __init__(self) -> None:
    method env (line 20) | def env(self) -> Env:
    method set_env (line 24) | def set_env(self, env: Env) -> None:

FILE: src/poetry/console/commands/group_command.py
  class GroupCommand (line 19) | class GroupCommand(Command):
    method _group_dependency_options (line 21) | def _group_dependency_options() -> list[Option]:
    method non_optional_groups (line 47) | def non_optional_groups(self) -> set[str]:
    method default_group (line 56) | def default_group(self) -> str | None:
    method default_groups (line 66) | def default_groups(self) -> set[str]:
    method activated_groups (line 75) | def activated_groups(self) -> set[NormalizedName]:
    method project_with_activated_groups_only (line 112) | def project_with_activated_groups_only(self) -> ProjectPackage:
    method _validate_group_options (line 117) | def _validate_group_options(self, group_options: dict[str, set[str]]) ...

FILE: src/poetry/console/commands/init.py
  class InitCommand (line 33) | class InitCommand(Command):
    method __init__ (line 68) | def __init__(self) -> None:
    method handle (line 73) | def handle(self) -> int:
    method _init_pyproject (line 86) | def _init_pyproject(
    method _generate_choice_list (line 285) | def _generate_choice_list(
    method _determine_requirements (line 305) | def _determine_requirements(
    method _find_best_version_for_package (line 441) | def _find_best_version_for_package(
    method _parse_requirements (line 462) | def _parse_requirements(self, requirements: list[str]) -> list[dict[st...
    method _format_requirements (line 482) | def _format_requirements(self, requirements: list[dict[str, str]]) -> ...
    method _validate_author (line 499) | def _validate_author(author: str, default: str) -> str | None:
    method _validate_package (line 518) | def _validate_package(package: str | None) -> str | None:
    method _get_pool (line 524) | def _get_pool(self) -> RepositoryPool:

FILE: src/poetry/console/commands/install.py
  class InstallCommand (line 17) | class InstallCommand(InstallerCommand):
    method activated_groups (line 87) | def activated_groups(self) -> set[NormalizedName]:
    method _alternative_sync_command (line 94) | def _alternative_sync_command(self) -> str:
    method _with_synchronization (line 98) | def _with_synchronization(self) -> bool:
    method handle (line 109) | def handle(self) -> int:

FILE: src/poetry/console/commands/installer_command.py
  class InstallerCommand (line 16) | class InstallerCommand(GroupCommand, EnvCommand):
    method __init__ (line 17) | def __init__(self) -> None:
    method reset_poetry (line 23) | def reset_poetry(self) -> None:
    method installer (line 30) | def installer(self) -> Installer:
    method set_installer (line 34) | def set_installer(self, installer: Installer) -> None:
    method execute (line 37) | def execute(self, io: IO) -> int:

FILE: src/poetry/console/commands/lock.py
  class LockCommand (line 15) | class LockCommand(InstallerCommand):
    method handle (line 41) | def handle(self) -> int:

FILE: src/poetry/console/commands/new.py
  class NewCommand (line 17) | class NewCommand(InitCommand):
    method handle (line 60) | def handle(self) -> int:

FILE: src/poetry/console/commands/publish.py
  class PublishCommand (line 16) | class PublishCommand(Command):
    method handle (line 62) | def handle(self) -> int:

FILE: src/poetry/console/commands/python/__init__.py
  function get_request_title (line 4) | def get_request_title(request: str, implementation: str, free_threaded: ...

FILE: src/poetry/console/commands/python/install.py
  class PythonInstallCommand (line 26) | class PythonInstallCommand(Command):
    method handle (line 55) | def handle(self) -> int:

FILE: src/poetry/console/commands/python/list.py
  class PythonListCommand (line 23) | class PythonListCommand(Command):
    method handle (line 51) | def handle(self) -> int:

FILE: src/poetry/console/commands/python/remove.py
  class PythonRemoveCommand (line 24) | class PythonRemoveCommand(Command):
    method remove_python_installation (line 49) | def remove_python_installation(
    method handle (line 99) | def handle(self) -> int:

FILE: src/poetry/console/commands/remove.py
  class RemoveCommand (line 24) | class RemoveCommand(InstallerCommand):
    method handle (line 58) | def handle(self) -> int:
    method _remove_packages (line 187) | def _remove_packages(
    method _remove_references_to_group (line 215) | def _remove_references_to_group(

FILE: src/poetry/console/commands/run.py
  class RunCommand (line 17) | class RunCommand(EnvCommand):
    method handle (line 25) | def handle(self) -> int:
    method _module (line 40) | def _module(self) -> Module:
    method run_script (line 50) | def run_script(self, script: str | dict[str, str], args: list[str]) ->...
    method _warning_not_installed_script (line 90) | def _warning_not_installed_script(self, script: str) -> None:

FILE: src/poetry/console/commands/search.py
  class SearchCommand (line 15) | class SearchCommand(Command):
    method handle (line 23) | def handle(self) -> int:

FILE: src/poetry/console/commands/self/add.py
  class SelfAddCommand (line 17) | class SelfAddCommand(SelfCommand, AddCommand):
    method _hint_update_packages (line 36) | def _hint_update_packages(self) -> str:

FILE: src/poetry/console/commands/self/install.py
  class SelfInstallCommand (line 18) | class SelfInstallCommand(SelfCommand, InstallCommand):
    method activated_groups (line 38) | def activated_groups(self) -> set[NormalizedName]:
    method _alternative_sync_command (line 42) | def _alternative_sync_command(self) -> str:

FILE: src/poetry/console/commands/self/lock.py
  class SelfLockCommand (line 7) | class SelfLockCommand(SelfCommand, LockCommand):

FILE: src/poetry/console/commands/self/remove.py
  class SelfRemoveCommand (line 14) | class SelfRemoveCommand(SelfCommand, RemoveCommand):

FILE: src/poetry/console/commands/self/self_command.py
  class SelfCommand (line 30) | class SelfCommand(InstallerCommand):
    method get_default_system_pyproject_file (line 34) | def get_default_system_pyproject_file() -> Path:
    method system_pyproject (line 44) | def system_pyproject(self) -> Path:
    method reset_env (line 49) | def reset_env(self) -> None:
    method env (line 53) | def env(self) -> Env:
    method default_group (line 60) | def default_group(self) -> str:
    method activated_groups (line 64) | def activated_groups(self) -> set[NormalizedName]:
    method generate_system_pyproject (line 67) | def generate_system_pyproject(self) -> None:
    method reset_poetry (line 101) | def reset_poetry(self) -> None:
    method poetry (line 109) | def poetry(self) -> Poetry:
    method _system_project_handle (line 116) | def _system_project_handle(self) -> int:
    method reset (line 129) | def reset(self) -> None:
    method handle (line 137) | def handle(self) -> int:

FILE: src/poetry/console/commands/self/show/__init__.py
  class SelfShowCommand (line 17) | class SelfShowCommand(SelfCommand, ShowCommand):
    method activated_groups (line 41) | def activated_groups(self) -> set[NormalizedName]:

FILE: src/poetry/console/commands/self/show/plugins.py
  class PluginPackage (line 17) | class PluginPackage:
    method append (line 24) | def append(self, entry_point: metadata.EntryPoint) -> None:
  class SelfShowPluginsCommand (line 39) | class SelfShowPluginsCommand(SelfCommand):
    method _system_project_handle (line 51) | def _system_project_handle(self) -> int:

FILE: src/poetry/console/commands/self/sync.py
  class SelfSyncCommand (line 13) | class SelfSyncCommand(SelfInstallCommand):
    method _with_synchronization (line 34) | def _with_synchronization(self) -> bool:

FILE: src/poetry/console/commands/self/update.py
  class SelfUpdateCommand (line 20) | class SelfUpdateCommand(SelfCommand):
    method _system_project_handle (line 43) | def _system_project_handle(self) -> int:

FILE: src/poetry/console/commands/show.py
  function reverse_deps (line 32) | def reverse_deps(pkg: Package, repo: Repository) -> dict[str, str]:
  class OutputFormats (line 43) | class OutputFormats(str, Enum):
  class ShowCommand (line 48) | class ShowCommand(GroupCommand, EnvCommand):
    method handle (line 96) | def handle(self) -> int:
    method _lock_create_command (line 169) | def _lock_create_command(self) -> str:
    method _display_single_package_information (line 175) | def _display_single_package_information(
    method _display_packages_information (line 261) | def _display_packages_information(
    method _display_packages_tree_information (line 506) | def _display_packages_tree_information(
    method display_package_tree (line 519) | def display_package_tree(
    method _display_tree (line 568) | def _display_tree(
    method _write_tree_line (line 624) | def _write_tree_line(self, io: IO, line: str) -> None:
    method init_styles (line 633) | def init_styles(self, io: IO) -> None:
    method find_latest_package (line 641) | def find_latest_package(
    method get_update_status (line 670) | def get_update_status(self, latest: Package, package: Package) -> str:
    method get_installed_status (line 685) | def get_installed_status(

FILE: src/poetry/console/commands/source/add.py
  class SourceAddCommand (line 23) | class SourceAddCommand(Command):
    method handle (line 52) | def handle(self) -> int:

FILE: src/poetry/console/commands/source/remove.py
  class SourceRemoveCommand (line 16) | class SourceRemoveCommand(Command):
    method handle (line 27) | def handle(self) -> int:

FILE: src/poetry/console/commands/source/show.py
  class SourceShowCommand (line 16) | class SourceShowCommand(Command):
    method notify_implicit_pypi (line 29) | def notify_implicit_pypi(self) -> None:
    method handle (line 40) | def handle(self) -> int:

FILE: src/poetry/console/commands/sync.py
  class SyncCommand (line 13) | class SyncCommand(InstallCommand):
    method _with_synchronization (line 39) | def _with_synchronization(self) -> bool:

FILE: src/poetry/console/commands/update.py
  class UpdateCommand (line 22) | class UpdateCommand(InstallerCommand):
    method handle (line 50) | def handle(self) -> int:

FILE: src/poetry/console/commands/version.py
  class VersionCommand (line 21) | class VersionCommand(Command):
    method handle (line 54) | def handle(self) -> int:
    method increment_version (line 92) | def increment_version(

FILE: src/poetry/console/exceptions.py
  class PoetryConsoleError (line 19) | class PoetryConsoleError(CleoError):
  class GroupNotFoundError (line 23) | class GroupNotFoundError(PoetryConsoleError):
  class ConsoleMessage (line 28) | class ConsoleMessage:
    method stripped (line 43) | def stripped(self) -> str:
    method wrap (line 48) | def wrap(self, tag: str) -> ConsoleMessage:
    method indent (line 53) | def indent(self, indent: str) -> ConsoleMessage:
    method make_section (line 59) | def make_section(
  class PrettyCalledProcessError (line 76) | class PrettyCalledProcessError:
    method __post_init__ (line 103) | def __post_init__(self, exception: CalledProcessError, indent: str) ->...
  class PoetryRuntimeError (line 124) | class PoetryRuntimeError(PoetryConsoleError):
    method __init__ (line 129) | def __init__(
    method write (line 140) | def write(self, io: IO) -> None:
    method get_text (line 148) | def get_text(
    method __str__ (line 180) | def __str__(self) -> str:
    method create (line 184) | def create(
    method append (line 229) | def append(self, message: str | ConsoleMessage) -> PoetryRuntimeError:

FILE: src/poetry/console/logging/formatters/builder_formatter.py
  class BuilderLogFormatter (line 8) | class BuilderLogFormatter(Formatter):
    method format (line 9) | def format(self, msg: str) -> str:

FILE: src/poetry/console/logging/formatters/formatter.py
  class Formatter (line 7) | class Formatter(ABC):
    method format (line 9) | def format(self, msg: str) -> str: ...

FILE: src/poetry/console/logging/io_formatter.py
  class IOFormatter (line 19) | class IOFormatter(logging.Formatter):
    method format (line 27) | def format(self, record: LogRecord) -> str:
  function _log_prefix (line 50) | def _log_prefix(record: LogRecord) -> str:
  function _path_to_package (line 57) | def _path_to_package(path: Path) -> str | None:

FILE: src/poetry/console/logging/io_handler.py
  class IOHandler (line 14) | class IOHandler(logging.Handler):
    method __init__ (line 15) | def __init__(self, io: IO) -> None:
    method emit (line 20) | def emit(self, record: LogRecord) -> None:

FILE: src/poetry/exceptions.py
  class PoetryError (line 4) | class PoetryError(Exception):

FILE: src/poetry/factory.py
  class Factory (line 48) | class Factory(BaseFactory):
    method _ensure_valid_poetry_version (line 53) | def _ensure_valid_poetry_version(self, cwd: Path | None) -> None:
    method create_poetry (line 67) | def create_poetry(
    method create_pool (line 151) | def create_pool(
    method create_package_source (line 207) | def create_package_source(
    method create_legacy_pyproject_from_package (line 252) | def create_legacy_pyproject_from_package(cls, package: Package) -> TOM...
    method validate (line 358) | def validate(

FILE: src/poetry/inspection/info.py
  class PackageInfoError (line 45) | class PackageInfoError(ValueError):
    method __init__ (line 46) | def __init__(self, path: Path, *reasons: BaseException | str) -> None:
  class PackageInfo (line 51) | class PackageInfo:
    method __init__ (line 52) | def __init__(
    method cache_version (line 77) | def cache_version(self) -> str | None:
    method update (line 80) | def update(self, other: PackageInfo) -> PackageInfo:
    method asdict (line 90) | def asdict(self) -> dict[str, Any]:
    method load (line 106) | def load(cls, data: dict[str, Any]) -> PackageInfo:
    method to_package (line 116) | def to_package(
    method _requirements_from_distribution (line 219) | def _requirements_from_distribution(
    method _from_distribution (line 256) | def _from_distribution(
    method _from_sdist_file (line 290) | def _from_sdist_file(cls, path: Path) -> PackageInfo:
    method _find_dist_info (line 345) | def _find_dist_info(path: Path) -> Iterator[Path]:
    method from_metadata (line 361) | def from_metadata(cls, metadata: RawMetadata) -> PackageInfo:
    method from_metadata_directory (line 376) | def from_metadata_directory(cls, path: Path) -> PackageInfo | None:
    method from_package (line 409) | def from_package(cls, package: Package) -> PackageInfo:
    method _get_poetry_package (line 432) | def _get_poetry_package(path: Path) -> ProjectPackage | None:
    method from_directory (line 442) | def from_directory(cls, path: Path) -> PackageInfo:
    method from_sdist (line 472) | def from_sdist(cls, path: Path) -> PackageInfo:
    method from_wheel (line 486) | def from_wheel(cls, path: Path) -> PackageInfo:
    method from_bdist (line 499) | def from_bdist(cls, path: Path) -> PackageInfo:
    method from_path (line 515) | def from_path(cls, path: Path) -> PackageInfo:
  function get_pep517_metadata (line 528) | def get_pep517_metadata(path: Path) -> PackageInfo:

FILE: src/poetry/inspection/lazy_wheel.py
  class LazyWheelUnsupportedError (line 43) | class LazyWheelUnsupportedError(Exception):
  class HTTPRangeRequestUnsupportedError (line 47) | class HTTPRangeRequestUnsupportedError(LazyWheelUnsupportedError):
  class HTTPRangeRequestNotRespectedError (line 51) | class HTTPRangeRequestNotRespectedError(LazyWheelUnsupportedError):
  class UnsupportedWheelError (line 56) | class UnsupportedWheelError(LazyWheelUnsupportedError):
  class InvalidWheelError (line 60) | class InvalidWheelError(LazyWheelUnsupportedError):
    method __init__ (line 63) | def __init__(self, location: str, name: str) -> None:
    method __str__ (line 67) | def __str__(self) -> str:
  function metadata_from_wheel_url (line 71) | def metadata_from_wheel_url(
  class MergeIntervals (line 116) | class MergeIntervals:
    method __init__ (line 119) | def __init__(self, *, left: Iterable[int] = (), right: Iterable[int] =...
    method __repr__ (line 123) | def __repr__(self) -> str:
    method _merge (line 129) | def _merge(
    method minimal_intervals_covering (line 151) | def minimal_intervals_covering(
  class ReadOnlyIOWrapper (line 170) | class ReadOnlyIOWrapper(IO[bytes]):
    method __init__ (line 177) | def __init__(self, inner: IO[bytes]) -> None:
    method __enter__ (line 180) | def __enter__(self) -> Self:
    method __exit__ (line 184) | def __exit__(
    method __iter__ (line 192) | def __iter__(self) -> Iterator[bytes]:
    method __next__ (line 195) | def __next__(self) -> bytes:
    method mode (line 199) | def mode(self) -> str:
    method name (line 204) | def name(self) -> str:
    method seekable (line 208) | def seekable(self) -> bool:
    method close (line 212) | def close(self) -> None:
    method closed (line 217) | def closed(self) -> bool:
    method fileno (line 221) | def fileno(self) -> int:
    method flush (line 224) | def flush(self) -> None:
    method isatty (line 227) | def isatty(self) -> bool:
    method readable (line 230) | def readable(self) -> bool:
    method read (line 234) | def read(self, size: int = -1) -> bytes:
    method readline (line 243) | def readline(self, limit: int = -1) -> bytes:
    method readlines (line 247) | def readlines(self, hint: int = -1) -> list[bytes]:
    method seek (line 250) | def seek(self, offset: int, whence: int = 0) -> int:
    method tell (line 260) | def tell(self) -> int:
    method truncate (line 264) | def truncate(self, size: int | None = None) -> int:
    method writable (line 274) | def writable(self) -> bool:
    method write (line 278) | def write(self, s: Any) -> int:
    method writelines (line 281) | def writelines(self, lines: Iterable[Any]) -> None:
  class LazyFileOverHTTP (line 285) | class LazyFileOverHTTP(ReadOnlyIOWrapper):
    method __init__ (line 292) | def __init__(
    method __enter__ (line 308) | def __enter__(self) -> Self:
    method __exit__ (line 313) | def __exit__(
    method read (line 322) | def read(self, size: int = -1) -> bytes:
    method _uncached_headers (line 347) | def _uncached_headers(cls) -> dict[str, str]:
    method _setup_content (line 361) | def _setup_content(self) -> None:
    method _reset_content (line 386) | def _reset_content(self) -> None:
    method _content_length_from_head (line 401) | def _content_length_from_head(self) -> int:
    method _fetch_content_length (line 419) | def _fetch_content_length(self) -> int:
    method _stream_response (line 425) | def _stream_response(self, start: int, end: int) -> Response:
    method _fetch_content_range (line 446) | def _fetch_content_range(self, start: int, end: int) -> Iterator[bytes]:
    method _stay (line 457) | def _stay(self) -> Iterator[None]:
    method _ensure_downloaded (line 468) | def _ensure_downloaded(self, start: int, end: int) -> None:
  class LazyWheelOverHTTP (line 488) | class LazyWheelOverHTTP(LazyFileOverHTTP):
    method read_metadata (line 501) | def read_metadata(self, name: str) -> bytes:
    method _initial_chunk_length (line 509) | def _initial_chunk_length(cls) -> int:
    method _fetch_content_length (line 524) | def _fetch_content_length(self) -> int:
    method _parse_full_length_from_content_range (line 585) | def _parse_full_length_from_content_range(arg: str) -> int:
    method _try_initial_chunk_request (line 598) | def _try_initial_chunk_request(
    method _extract_content_length (line 647) | def _extract_content_length(
    method _prefetch_metadata (line 704) | def _prefetch_metadata(self, name: str) -> str:

FILE: src/poetry/installation/chef.py
  class ChefError (line 25) | class ChefError(Exception): ...
  class Chef (line 28) | class Chef:
    method __init__ (line 29) | def __init__(
    method prepare (line 36) | def prepare(
    method _prepare (line 65) | def _prepare(
    method _prepare_sdist (line 90) | def _prepare_sdist(
    method _should_prepare (line 129) | def _should_prepare(self, archive: Path) -> bool:
    method _is_wheel (line 133) | def _is_wheel(cls, archive: Path) -> bool:

FILE: src/poetry/installation/chooser.py
  class Chooser (line 30) | class Chooser:
    method __init__ (line 35) | def __init__(
    method choose_for (line 48) | def choose_for(self, package: Package) -> Link:
    method _no_links_found_error (line 125) | def _no_links_found_error(
    method _get_links (line 199) | def _get_links(self, package: Package) -> list[Link]:
    method _sort_key (line 268) | def _sort_key(
    method _is_link_hash_allowed_for_package (line 329) | def _is_link_hash_allowed_for_package(self, link: Link, package: Packa...

FILE: src/poetry/installation/executor.py
  function _package_get_name (line 56) | def _package_get_name(package: Package) -> str | None:
  class Executor (line 62) | class Executor:
    method __init__ (line 63) | def __init__(
    method installations_count (line 117) | def installations_count(self) -> int:
    method updates_count (line 121) | def updates_count(self) -> int:
    method removals_count (line 125) | def removals_count(self) -> int:
    method enabled (line 129) | def enabled(self) -> bool:
    method supports_fancy_output (line 132) | def supports_fancy_output(self) -> bool:
    method disable (line 135) | def disable(self) -> Executor:
    method dry_run (line 140) | def dry_run(self, dry_run: bool = True) -> Executor:
    method verbose (line 145) | def verbose(self, verbose: bool = True) -> Executor:
    method enable_bytecode_compilation (line 150) | def enable_bytecode_compilation(self, enable: bool = True) -> None:
    method execute (line 153) | def execute(self, operations: list[Operation]) -> int:
    method _write (line 250) | def _write(self, operation: Operation, line: str) -> None:
    method _execute_operation (line 268) | def _execute_operation(self, operation: Operation) -> None:
    method _do_execute_operation (line 409) | def _do_execute_operation(self, operation: Operation) -> int:
    method _increment_operations_count (line 443) | def _increment_operations_count(self, operation: Operation, executed: ...
    method run_pip (line 450) | def run_pip(self, *args: Any, **kwargs: Any) -> int:
    method get_operation_message (line 465) | def get_operation_message(
    method _display_summary (line 520) | def _display_summary(self, operations: list[Operation]) -> None:
    method _execute_install (line 553) | def _execute_install(self, operation: Install | Update) -> int:
    method _execute_update (line 560) | def _execute_update(self, operation: Install | Update) -> int:
    method _execute_uninstall (line 567) | def _execute_uninstall(self, operation: Uninstall) -> int:
    method _install (line 574) | def _install(self, operation: Install | Update) -> int:
    method _update (line 614) | def _update(self, operation: Install | Update) -> int:
    method _remove (line 617) | def _remove(self, package: Package) -> int:
    method _prepare_archive (line 632) | def _prepare_archive(
    method _prepare_git_archive (line 662) | def _prepare_git_archive(self, operation: Install | Update) -> Path:
    method _download (line 719) | def _download(self, operation: Install | Update) -> Path:
    method _download_link (line 736) | def _download_link(self, operation: Install | Update, link: Link) -> P...
    method _populate_hashes_dict (line 782) | def _populate_hashes_dict(self, archive: Path, package: Package) -> None:
    method _validate_archive_hash (line 788) | def _validate_archive_hash(archive: Path, package: Package) -> str:
    method _download_archive (line 809) | def _download_archive(
    method _should_write_operation (line 850) | def _should_write_operation(self, operation: Operation) -> bool:
    method _save_url_reference (line 855) | def _save_url_reference(self, operation: Operation) -> None:
    method _create_git_url_reference (line 894) | def _create_git_url_reference(self, package: Package) -> dict[str, Any]:
    method _create_url_url_reference (line 908) | def _create_url_url_reference(self, package: Package) -> dict[str, Any]:
    method _create_file_url_reference (line 913) | def _create_file_url_reference(self, package: Package) -> dict[str, Any]:
    method _create_directory_url_reference (line 922) | def _create_directory_url_reference(self, package: Package) -> dict[st...
    method _get_archive_info (line 934) | def _get_archive_info(self, package: Package) -> dict[str, Any]:

FILE: src/poetry/installation/installer.py
  class Installer (line 36) | class Installer:
    method __init__ (line 37) | def __init__(
    method executor (line 88) | def executor(self) -> Executor:
    method set_package (line 91) | def set_package(self, package: ProjectPackage) -> Installer:
    method set_locker (line 96) | def set_locker(self, locker: Locker) -> Installer:
    method run (line 101) | def run(self) -> int:
    method dry_run (line 115) | def dry_run(self, dry_run: bool = True) -> Installer:
    method is_dry_run (line 121) | def is_dry_run(self) -> bool:
    method requires_synchronization (line 124) | def requires_synchronization(
    method verbose (line 131) | def verbose(self, verbose: bool = True) -> Installer:
    method is_verbose (line 137) | def is_verbose(self) -> bool:
    method only_groups (line 140) | def only_groups(self, groups: Iterable[NormalizedName]) -> Installer:
    method update (line 145) | def update(self, update: bool = True) -> Installer:
    method skip_directory (line 150) | def skip_directory(self, skip_directory: bool = False) -> Installer:
    method lock (line 155) | def lock(self, update: bool = True) -> Installer:
    method is_updating (line 165) | def is_updating(self) -> bool:
    method execute_operations (line 168) | def execute_operations(self, execute: bool = True) -> Installer:
    method whitelist (line 174) | def whitelist(self, packages: Iterable[str]) -> Installer:
    method extras (line 179) | def extras(self, extras: list[str]) -> Installer:
    method _do_refresh (line 184) | def _do_refresh(self) -> int:
    method _do_install (line 216) | def _do_install(self) -> int:
    method _lock_fix_command (line 384) | def _lock_fix_command(self) -> str:
    method _write_lock_file (line 392) | def _write_lock_file(
    method _execute (line 404) | def _execute(self, operations: list[Operation]) -> int:
    method _get_installed (line 407) | def _get_installed(self) -> InstalledRepository:

FILE: src/poetry/installation/operations/install.py
  class Install (line 12) | class Install(Operation):
    method __init__ (line 13) | def __init__(
    method package (line 21) | def package(self) -> Package:
    method job_type (line 25) | def job_type(self) -> str:
    method __str__ (line 28) | def __str__(self) -> str:
    method __repr__ (line 34) | def __repr__(self) -> str:

FILE: src/poetry/installation/operations/operation.py
  class Operation (line 13) | class Operation(ABC):
    method __init__ (line 14) | def __init__(self, reason: str | None = None, priority: float = 0) -> ...
    method job_type (line 23) | def job_type(self) -> str: ...
    method reason (line 26) | def reason(self) -> str | None:
    method skipped (line 30) | def skipped(self) -> bool:
    method skip_reason (line 34) | def skip_reason(self) -> str | None:
    method priority (line 38) | def priority(self) -> float:
    method package (line 43) | def package(self) -> Package: ...
    method format_version (line 45) | def format_version(self, package: Package) -> str:
    method skip (line 49) | def skip(self, reason: str) -> Self:

FILE: src/poetry/installation/operations/uninstall.py
  class Uninstall (line 12) | class Uninstall(Operation):
    method __init__ (line 13) | def __init__(
    method package (line 24) | def package(self) -> Package:
    method job_type (line 28) | def job_type(self) -> str:
    method __str__ (line 31) | def __str__(self) -> str:
    method __repr__ (line 37) | def __repr__(self) -> str:

FILE: src/poetry/installation/operations/update.py
  class Update (line 12) | class Update(Operation):
    method __init__ (line 13) | def __init__(
    method initial_package (line 26) | def initial_package(self) -> Package:
    method target_package (line 30) | def target_package(self) -> Package:
    method package (line 34) | def package(self) -> Package:
    method job_type (line 38) | def job_type(self) -> str:
    method __str__ (line 41) | def __str__(self) -> str:
    method __repr__ (line 49) | def __repr__(self) -> str:

FILE: src/poetry/installation/wheel_installer.py
  class WheelDestination (line 32) | class WheelDestination(SchemeDictionaryDestination):
    method write_to_fs (line 35) | def write_to_fs(
  class WheelInstaller (line 68) | class WheelInstaller:
    method __init__ (line 69) | def __init__(self, env: Env) -> None:
    method enable_bytecode_compilation (line 85) | def enable_bytecode_compilation(self, enable: bool = True) -> None:
    method install (line 88) | def install(self, wheel: Path) -> None:

FILE: src/poetry/json/__init__.py
  function validate_object (line 13) | def validate_object(obj: dict[str, Any]) -> list[str]:

FILE: src/poetry/layouts/__init__.py
  function layout (line 10) | def layout(name: str) -> type[Layout]:

FILE: src/poetry/layouts/layout.py
  class Layout (line 61) | class Layout:
    method __init__ (line 62) | def __init__(
    method basedir (line 95) | def basedir(self) -> Path:
    method package_path (line 99) | def package_path(self) -> Path:
    method get_package_include (line 102) | def get_package_include(self) -> InlineTable | None:
    method create (line 125) | def create(
    method generate_project_content (line 139) | def generate_project_content(
    method _create_default (line 220) | def _create_default(self, path: Path, src: bool = True) -> None:
    method _create_readme (line 227) | def _create_readme(self, path: Path) -> Path:
    method _create_tests (line 233) | def _create_tests(path: Path) -> None:
    method _write_poetry (line 240) | def _write_poetry(self, path: Path) -> None:

FILE: src/poetry/layouts/src.py
  class SrcLayout (line 8) | class SrcLayout(Layout):
    method basedir (line 10) | def basedir(self) -> Path:

FILE: src/poetry/locations.py
  function data_dir (line 21) | def data_dir() -> Path:

FILE: src/poetry/masonry/builders/editable.py
  class EditableBuilder (line 44) | class EditableBuilder(Builder):
    method __init__ (line 45) | def __init__(self, poetry: Poetry, env: Env, io: IO) -> None:
    method build (line 52) | def build(self, target_dir: Path | None = None) -> Path:
    method _run_build_script (line 83) | def _run_build_script(self, build_script: str) -> None:
    method _setup_build (line 88) | def _setup_build(self) -> None:
    method _add_pth (line 107) | def _add_pth(self) -> list[Path]:
    method _add_scripts (line 142) | def _add_scripts(self) -> list[Path]:
    method _add_dist_info (line 216) | def _add_dist_info(self, added_files: list[Path]) -> None:
    method _get_file_hash (line 260) | def _get_file_hash(self, filepath: Path) -> str:
    method _debug (line 273) | def _debug(self, msg: str) -> None:

FILE: src/poetry/mixology/__init__.py
  function resolve_version (line 15) | def resolve_version(root: ProjectPackage, provider: Provider) -> SolverR...

FILE: src/poetry/mixology/assignment.py
  class Assignment (line 15) | class Assignment(Term):
    method __init__ (line 20) | def __init__(
    method decision_level (line 35) | def decision_level(self) -> int:
    method index (line 39) | def index(self) -> int:
    method cause (line 43) | def cause(self) -> Incompatibility | None:
    method decision (line 47) | def decision(cls, package: Package, decision_level: int, index: int) -...
    method derivation (line 51) | def derivation(
    method is_decision (line 61) | def is_decision(self) -> bool:

FILE: src/poetry/mixology/failure.py
  class SolveFailureError (line 15) | class SolveFailureError(Exception):
    method __init__ (line 16) | def __init__(self, incompatibility: Incompatibility) -> None:
    method message (line 20) | def message(self) -> str:
    method __str__ (line 23) | def __str__(self) -> str:
  class _Writer (line 27) | class _Writer:
    method __init__ (line 28) | def __init__(self, root: Incompatibility) -> None:
    method write (line 36) | def write(self) -> str:
    method _write (line 133) | def _write(
    method _visit (line 143) | def _visit(
    method _is_collapsible (line 269) | def _is_collapsible(self, incompatibility: Incompatibility) -> bool:
    method _is_single_line (line 293) | def _is_single_line(self, cause: ConflictCauseError) -> bool:
    method _count_derivations (line 298) | def _count_derivations(self, incompatibility: Incompatibility) -> None:

FILE: src/poetry/mixology/incompatibility.py
  class Incompatibility (line 21) | class Incompatibility:
    method __init__ (line 22) | def __init__(self, terms: list[Term], cause: IncompatibilityCauseError...
    method terms (line 80) | def terms(self) -> list[Term]:
    method cause (line 84) | def cause(self) -> IncompatibilityCauseError:
    method external_incompatibilities (line 88) | def external_incompatibilities(
    method is_failure (line 103) | def is_failure(self) -> bool:
    method __str__ (line 108) | def __str__(self) -> str:
    method and_to_string (line 206) | def and_to_string(
    method _try_requires_both (line 235) | def _try_requires_both(
    method _try_requires_through (line 284) | def _try_requires_through(
    method _try_requires_forbidden (line 365) | def _try_requires_forbidden(
    method _terse (line 422) | def _terse(self, term: Term, allow_every: bool = False) -> str:
    method _single_term_where (line 435) | def _single_term_where(self, callable: Callable[[Term], bool]) -> Term...
    method __repr__ (line 448) | def __repr__(self) -> str:

FILE: src/poetry/mixology/incompatibility_cause.py
  class IncompatibilityCauseError (line 10) | class IncompatibilityCauseError(Exception):
  class RootCauseError (line 16) | class RootCauseError(IncompatibilityCauseError):
  class NoVersionsCauseError (line 20) | class NoVersionsCauseError(IncompatibilityCauseError):
  class DependencyCauseError (line 24) | class DependencyCauseError(IncompatibilityCauseError):
  class ConflictCauseError (line 28) | class ConflictCauseError(IncompatibilityCauseError):
    method __init__ (line 34) | def __init__(self, conflict: Incompatibility, other: Incompatibility) ...
    method conflict (line 39) | def conflict(self) -> Incompatibility:
    method other (line 43) | def other(self) -> Incompatibility:
    method __str__ (line 46) | def __str__(self) -> str:
  class PythonCauseError (line 50) | class PythonCauseError(IncompatibilityCauseError):
    method __init__ (line 57) | def __init__(self, python_version: str, root_python_version: str) -> N...
    method python_version (line 62) | def python_version(self) -> str:
    method root_python_version (line 66) | def root_python_version(self) -> str:
  class PlatformCauseError (line 70) | class PlatformCauseError(IncompatibilityCauseError):
    method __init__ (line 76) | def __init__(self, platform: str) -> None:
    method platform (line 80) | def platform(self) -> str:

FILE: src/poetry/mixology/partial_solution.py
  class PartialSolution (line 17) | class PartialSolution:
    method __init__ (line 27) | def __init__(self) -> None:
    method decisions (line 56) | def decisions(self) -> list[Package]:
    method decision_level (line 60) | def decision_level(self) -> int:
    method attempted_solutions (line 64) | def attempted_solutions(self) -> int:
    method unsatisfied (line 68) | def unsatisfied(self) -> list[Dependency]:
    method decide (line 75) | def decide(self, package: Package) -> None:
    method derive (line 94) | def derive(
    method _assign (line 110) | def _assign(self, assignment: Assignment) -> None:
    method backtrack (line 117) | def backtrack(self, decision_level: int) -> None:
    method _register (line 143) | def _register(self, assignment: Assignment) -> None:
    method satisfier (line 170) | def satisfier(self, term: Term) -> Assignment:
    method satisfies (line 204) | def satisfies(self, term: Term) -> bool:
    method relation (line 207) | def relation(self, term: Term) -> str:

FILE: src/poetry/mixology/result.py
  class SolverResult (line 11) | class SolverResult:
    method __init__ (line 12) | def __init__(
    method packages (line 23) | def packages(self) -> list[Package]:
    method attempted_solutions (line 27) | def attempted_solutions(self) -> int:

FILE: src/poetry/mixology/set_relation.py
  class SetRelation (line 4) | class SetRelation:

FILE: src/poetry/mixology/term.py
  class Term (line 15) | class Term:
    method __init__ (line 23) | def __init__(self, dependency: Dependency, is_positive: bool) -> None:
    method inverse (line 30) | def inverse(self) -> Term:
    method dependency (line 34) | def dependency(self) -> Dependency:
    method constraint (line 38) | def constraint(self) -> VersionConstraint:
    method is_positive (line 41) | def is_positive(self) -> bool:
    method satisfies (line 44) | def satisfies(self, other: Term) -> bool:
    method _relation (line 53) | def _relation(self, other: Term) -> str:
    method _intersect (line 121) | def _intersect(self, other: Term) -> Term | None:
    method difference (line 153) | def difference(self, other: Term) -> Term | None:
    method _compatible_dependency (line 160) | def _compatible_dependency(self, other: Dependency) -> bool:
    method _non_empty_term (line 173) | def _non_empty_term(
    method __str__ (line 193) | def __str__(self) -> str:
    method __repr__ (line 197) | def __repr__(self) -> str:

FILE: src/poetry/mixology/version_solver.py
  class Preference (line 34) | class Preference(IntEnum):
  class DependencyCache (line 53) | class DependencyCache:
    method __init__ (line 62) | def __init__(self, provider: Provider) -> None:
    method _search_for (line 83) | def _search_for(
    method search_for (line 110) | def search_for(
    method clear_level (line 140) | def clear_level(self, level: int) -> None:
  class VersionSolver (line 147) | class VersionSolver:
    method __init__ (line 156) | def __init__(self, root: ProjectPackage, provider: Provider) -> None:
    method solution (line 169) | def solution(self) -> PartialSolution:
    method solve (line 172) | def solve(self) -> SolverResult:
    method _propagate (line 200) | def _propagate(self, package: str) -> None:
    method _propagate_incompatibility (line 244) | def _propagate_incompatibility(
    method _resolve_conflict (line 305) | def _resolve_conflict(self, incompatibility: Incompatibility) -> Incom...
    method _get_comp_key (line 450) | def _get_comp_key(self, dependency: Dependency) -> CompKey:
    method _choose_next (line 555) | def _choose_next(self, unsatisfied: list[Dependency]) -> Dependency:
    method _choose_package_version (line 561) | def _choose_package_version(self) -> str | None:
    method _result (line 623) | def _result(self) -> SolverResult:
    method _add_incompatibility (line 635) | def _add_incompatibility(self, incompatibility: Incompatibility) -> None:
    method _log (line 652) | def _log(self, text: str) -> None:

FILE: src/poetry/packages/dependency_package.py
  class DependencyPackage (line 13) | class DependencyPackage:
    method __init__ (line 14) | def __init__(self, dependency: Dependency, package: Package) -> None:
    method dependency (line 19) | def dependency(self) -> Dependency:
    method package (line 23) | def package(self) -> Package:
    method clone (line 26) | def clone(self) -> DependencyPackage:
    method with_features (line 29) | def with_features(self, features: Iterable[str]) -> DependencyPackage:
    method without_features (line 32) | def without_features(self) -> DependencyPackage:
    method __str__ (line 35) | def __str__(self) -> str:
    method __repr__ (line 38) | def __repr__(self) -> str:
    method __hash__ (line 41) | def __hash__(self) -> int:
    method __eq__ (line 44) | def __eq__(self, other: object) -> bool:

FILE: src/poetry/packages/direct_origin.py
  function _get_package_from_git (line 26) | def _get_package_from_git(
  class DirectOrigin (line 58) | class DirectOrigin:
    method __init__ (line 59) | def __init__(self, artifact_cache: ArtifactCache) -> None:
    method get_package_from_file (line 66) | def get_package_from_file(cls, file_path: Path) -> Package:
    method get_package_from_directory (line 87) | def get_package_from_directory(cls, directory: Path) -> Package:
    method _download_file (line 90) | def _download_file(self, url: str, dest: Path) -> None:
    method get_package_from_url (line 95) | def get_package_from_url(self, url: str) -> Package:
    method get_package_from_vcs (line 109) | def get_package_from_vcs(

FILE: src/poetry/packages/locker.py
  class Locker (line 55) | class Locker:
    method __init__ (line 72) | def __init__(self, lock: Path, pyproject_data: dict[str, Any]) -> None:
    method lock (line 79) | def lock(self) -> Path:
    method lock_data (line 83) | def lock_data(self) -> dict[str, Any]:
    method is_locked (line 89) | def is_locked(self) -> bool:
    method is_fresh (line 95) | def is_fresh(self) -> bool:
    method is_locked_groups_and_markers (line 126) | def is_locked_groups_and_markers(self) -> bool:
    method set_pyproject_data (line 133) | def set_pyproject_data(self, pyproject_data: dict[str, Any]) -> None:
    method set_local_config (line 137) | def set_local_config(self, local_config: dict[str, Any]) -> None:
    method locked_repository (line 147) | def locked_repository(self) -> LockfileRepository:
    method locked_packages (line 168) | def locked_packages(self) -> dict[Package, TransitivePackageInfo]:
    method set_lock_data (line 201) | def set_lock_data(
    method _compute_lock_data (line 213) | def _compute_lock_data(
    method _should_write (line 248) | def _should_write(self, lock: TOMLDocument) -> bool:
    method _write_lock_data (line 261) | def _write_lock_data(self, data: TOMLDocument) -> None:
    method _get_content_hash (line 292) | def _get_content_hash(self, *, with_dependency_groups: bool = True) ->...
    method _get_lock_data (line 343) | def _get_lock_data(self) -> dict[str, Any]:
    method _get_locked_package (line 387) | def _get_locked_package(
    method _lock_packages (line 495) | def _lock_packages(
    method _dump_package (line 518) | def _dump_package(

FILE: src/poetry/packages/package_collection.py
  class PackageCollection (line 15) | class PackageCollection(list[DependencyPackage]):
    method __init__ (line 16) | def __init__(
    method append (line 28) | def append(self, package: Package | DependencyPackage) -> None:

FILE: src/poetry/packages/transitive_package_info.py
  function group_sort_key (line 17) | def group_sort_key(group: NormalizedName) -> tuple[bool, NormalizedName]:
  class TransitivePackageInfo (line 22) | class TransitivePackageInfo:
    method get_marker (line 27) | def get_marker(self, groups: Iterable[NormalizedName]) -> BaseMarker:

FILE: src/poetry/plugins/application_plugin.py
  class ApplicationPlugin (line 13) | class ApplicationPlugin(BasePlugin):
    method commands (line 21) | def commands(self) -> list[type[Command]]:
    method activate (line 24) | def activate(self, application: Application) -> None:

FILE: src/poetry/plugins/base_plugin.py
  class BasePlugin (line 7) | class BasePlugin(ABC):
    method group (line 18) | def group(self) -> str:

FILE: src/poetry/plugins/plugin.py
  class Plugin (line 15) | class Plugin(BasePlugin):
    method activate (line 23) | def activate(self, poetry: Poetry, io: IO) -> None: ...

FILE: src/poetry/plugins/plugin_manager.py
  class PluginManager (line 45) | class PluginManager:
    method __init__ (line 50) | def __init__(self, group: str) -> None:
    method add_project_plugin_path (line 55) | def add_project_plugin_path(directory: Path) -> None:
    method ensure_project_plugins (line 72) | def ensure_project_plugins(cls, poetry: Poetry, io: IO) -> None:
    method load_plugins (line 75) | def load_plugins(self) -> None:
    method get_plugin_entry_points (line 81) | def get_plugin_entry_points(self) -> list[metadata.EntryPoint]:
    method activate (line 84) | def activate(self, *args: Any, **kwargs: Any) -> None:
    method _add_plugin (line 88) | def _add_plugin(self, plugin: Plugin) -> None:
    method _load_plugin_entry_point (line 96) | def _load_plugin_entry_point(self, ep: metadata.EntryPoint) -> None:
  class ProjectPluginCache (line 109) | class ProjectPluginCache:
    method __init__ (line 112) | def __init__(self, poetry: Poetry, io: IO) -> None:
    method _plugin_section (line 120) | def _plugin_section(self) -> dict[str, Any]:
    method _config (line 126) | def _config(self) -> dict[str, Any]:
    method ensure_plugins (line 135) | def ensure_plugins(self) -> None:
    method _is_fresh (line 255) | def _is_fresh(self) -> bool:
    method _install (line 264) | def _install(
    method _write_config (line 300) | def _write_config(self) -> None:
    method _ensure_cache_directory (line 310) | def _ensure_cache_directory(self) -> None:

FILE: src/poetry/poetry.py
  class Poetry (line 29) | class Poetry(BasePoetry):
    method __init__ (line 32) | def __init__(
    method pyproject (line 55) | def pyproject(self) -> PyProjectTOML:
    method file (line 60) | def file(self) -> TOMLFile:
    method locker (line 64) | def locker(self) -> Locker:
    method pool (line 68) | def pool(self) -> RepositoryPool:
    method config (line 72) | def config(self) -> Config:
    method disable_cache (line 76) | def disable_cache(self) -> bool:
    method build_constraints (line 80) | def build_constraints(self) -> Mapping[NormalizedName, list[Dependency]]:
    method set_locker (line 83) | def set_locker(self, locker: Locker) -> Poetry:
    method set_pool (line 88) | def set_pool(self, pool: RepositoryPool) -> Poetry:
    method set_config (line 93) | def set_config(self, config: Config) -> Poetry:
    method get_sources (line 98) | def get_sources(self) -> list[Source]:

FILE: src/poetry/publishing/hash_manager.py
  class Hexdigest (line 15) | class Hexdigest(NamedTuple):
  class HashManager (line 21) | class HashManager:
    method __init__ (line 22) | def __init__(self) -> None:
    method _md5_update (line 35) | def _md5_update(self, content: bytes) -> None:
    method _md5_hexdigest (line 39) | def _md5_hexdigest(self) -> str | None:
    method _blake_update (line 44) | def _blake_update(self, content: bytes) -> None:
    method _blake_hexdigest (line 48) | def _blake_hexdigest(self) -> str | None:
    method hash (line 53) | def hash(self, file: Path) -> None:
    method hexdigest (line 60) | def hexdigest(self) -> Hexdigest:

FILE: src/poetry/publishing/publisher.py
  class Publisher (line 21) | class Publisher:
    method __init__ (line 26) | def __init__(self, poetry: Poetry, io: IO, dist_dir: Path | None = Non...
    method files (line 34) | def files(self) -> list[Path]:
    method publish (line 37) | def publish(

FILE: src/poetry/publishing/uploader.py
  class UploadError (line 36) | class UploadError(Exception):
  class Uploader (line 40) | class Uploader:
    method __init__ (line 41) | def __init__(self, poetry: Poetry, io: IO, dist_dir: Path | None = Non...
    method user_agent (line 50) | def user_agent(self) -> str:
    method default_dist_dir (line 55) | def default_dist_dir(self) -> Path:
    method dist_dir (line 59) | def dist_dir(self) -> Path:
    method files (line 66) | def files(self) -> list[Path]:
    method version (line 70) | def version(self) -> str:
    method _files_and_version (line 74) | def _files_and_version(self) -> tuple[list[Path], str]:
    method auth (line 101) | def auth(self, username: str | None, password: str | None) -> None:
    method make_session (line 105) | def make_session(self) -> requests.Session:
    method get_auth (line 114) | def get_auth(self) -> tuple[str, str] | None:
    method upload (line 120) | def upload(
    method post_data (line 139) | def post_data(cls, file: Path) -> dict[str, Any]:
    method _upload (line 190) | def _upload(
    method _upload_file (line 200) | def _upload_file(
    method _register (line 286) | def _register(self, session: requests.Session, url: str) -> requests.R...
    method _prepare_data (line 307) | def _prepare_data(self, data: dict[str, Any]) -> list[tuple[str, str]]:
    method _get_type (line 319) | def _get_type(file: Path) -> Literal["bdist_wheel", "sdist"]:
    method _get_metadata (line 329) | def _get_metadata(file: Path) -> RawMetadata:
    method _is_file_exists_error (line 357) | def _is_file_exists_error(self, response: requests.Response) -> bool:

FILE: src/poetry/puzzle/exceptions.py
  class SolverProblemError (line 13) | class SolverProblemError(Exception):
    method __init__ (line 14) | def __init__(self, error: SolveFailureError) -> None:
    method error (line 20) | def error(self) -> SolveFailureError:
  class OverrideNeededError (line 24) | class OverrideNeededError(Exception):
    method __init__ (line 25) | def __init__(self, *overrides: dict[Package, dict[str, Dependency]]) -...
    method overrides (line 29) | def overrides(self) -> tuple[dict[Package, dict[str, Dependency]], ...]:

FILE: src/poetry/puzzle/provider.py
  class IncompatibleConstraintsError (line 63) | class IncompatibleConstraintsError(Exception):
    method __init__ (line 68) | def __init__(
  class Indicator (line 87) | class Indicator(ProgressIndicator):
    method context (line 92) | def context() -> Iterator[Callable[[str | None], None]]:
    method _formatter_context (line 100) | def _formatter_context(self) -> str:
    method _formatter_elapsed (line 106) | def _formatter_elapsed(self) -> str:
  class Provider (line 113) | class Provider:
    method __init__ (line 116) | def __init__(
    method pool (line 158) | def pool(self) -> RepositoryPool:
    method use_latest (line 162) | def use_latest(self) -> Collection[NormalizedName]:
    method _overrides_marker_intersection (line 166) | def _overrides_marker_intersection(self) -> BaseMarker:
    method _python_constraint (line 176) | def _python_constraint(self) -> VersionConstraint:
    method is_debugging (line 181) | def is_debugging(self) -> bool:
    method set_overrides (line 184) | def set_overrides(self, overrides: dict[Package, dict[str, Dependency]...
    method load_deferred (line 189) | def load_deferred(self, load_deferred: bool) -> None:
    method use_source_root (line 193) | def use_source_root(self, source_root: Path) -> Iterator[Provider]:
    method use_environment (line 203) | def use_environment(self, env: Env) -> Iterator[Provider]:
    method use_latest_for (line 221) | def use_latest_for(self, names: Collection[NormalizedName]) -> Iterato...
    method validate_package_for_dependency (line 230) | def validate_package_for_dependency(
    method search_for_direct_origin_dependency (line 240) | def search_for_direct_origin_dependency(self, dependency: Dependency) ...
    method search_for (line 278) | def search_for(self, dependency: Dependency) -> list[DependencyPackage]:
    method _search_for_vcs (line 315) | def _search_for_vcs(self, dependency: VCSDependency) -> Package:
    method _search_for_file (line 339) | def _search_for_file(self, dependency: FileDependency) -> Package:
    method _search_for_directory (line 350) | def _search_for_directory(self, dependency: DirectoryDependency) -> Pa...
    method _search_for_url (line 363) | def _search_for_url(self, dependency: URLDependency) -> Package:
    method _get_dependencies_with_overrides (line 378) | def _get_dependencies_with_overrides(
    method incompatibilities_for (line 400) | def incompatibilities_for(
    method _files_list_for_cmp (line 456) | def _files_list_for_cmp(files: Sequence[PackageFile]) -> list[str]:
    method complete_package (line 465) | def complete_package(
    method get_locked (line 775) | def get_locked(self, dependency: Dependency) -> DependencyPackage | None:
    method debug (line 796) | def debug(self, message: str, depth: int = 0) -> None:
    method _group_by_source (line 882) | def _group_by_source(
    method _merge_dependencies_by_constraint (line 902) | def _merge_dependencies_by_constraint(
    method _is_relevant_marker (line 930) | def _is_relevant_marker(
    method _resolve_overlapping_markers (line 949) | def _resolve_overlapping_markers(
    method _marker_values (line 1040) | def _marker_values(

FILE: src/poetry/puzzle/solver.py
  class Solver (line 50) | class Solver:
    method __init__ (line 51) | def __init__(
    method provider (line 76) | def provider(self) -> Provider:
    method use_environment (line 80) | def use_environment(self, env: Env) -> Iterator[None]:
    method solve (line 84) | def solve(
    method _progress (line 130) | def _progress(self) -> Iterator[None]:
    method _solve_in_compatibility_mode (line 145) | def _solve_in_compatibility_mode(
    method _solve (line 169) | def _solve(self) -> dict[Package, TransitivePackageInfo]:
    method _aggregate_solved_packages (line 184) | def _aggregate_solved_packages(
  class DFSNode (line 225) | class DFSNode:
    method __init__ (line 226) | def __init__(self, id: DFSNodeID, name: str, base_name: str) -> None:
    method reachable (line 231) | def reachable(self) -> Sequence[Self]:
    method visit (line 234) | def visit(self, parents: list[PackageNode]) -> None:
    method __str__ (line 237) | def __str__(self) -> str:
  function depth_first_search (line 241) | def depth_first_search(
  function dfs_visit (line 268) | def dfs_visit(
  class PackageNode (line 295) | class PackageNode(DFSNode):
    method __init__ (line 296) | def __init__(
    method reachable (line 327) | def reachable(self) -> Sequence[PackageNode]:
    method visit (line 357) | def visit(self, parents: list[PackageNode]) -> None:
  function aggregate_package_nodes (line 369) | def aggregate_package_nodes(
  function calculate_markers (line 390) | def calculate_markers(
  function merge_override_packages (line 444) | def merge_override_packages(
  function remove_other_from_marker (line 512) | def remove_other_from_marker(marker: BaseMarker, other: BaseMarker) -> B...
  function simplify_marker (line 525) | def simplify_marker(

FILE: src/poetry/puzzle/transaction.py
  class Transaction (line 20) | class Transaction:
    method __init__ (line 21) | def __init__(
    method get_solved_packages (line 41) | def get_solved_packages(self) -> dict[Package, TransitivePackageInfo]:
    method calculate_operations (line 45) | def calculate_operations(

FILE: src/poetry/pyproject/toml.py
  class PyProjectTOML (line 17) | class PyProjectTOML(BasePyProjectTOML):
    method __init__ (line 26) | def __init__(self, path: Path) -> None:
    method file (line 32) | def file(self) -> TOMLFile:
    method data (line 36) | def data(self) -> TOMLDocument:
    method save (line 45) | def save(self) -> None:
    method reload (line 60) | def reload(self) -> None:

FILE: src/poetry/repositories/abstract_repository.py
  class AbstractRepository (line 14) | class AbstractRepository(ABC):
    method __init__ (line 15) | def __init__(self, name: str) -> None:
    method name (line 19) | def name(self) -> str:
    method find_packages (line 23) | def find_packages(self, dependency: Dependency) -> list[Package]: ...
    method search (line 26) | def search(self, query: str | list[str]) -> list[Package]: ...
    method package (line 29) | def package(self, name: str, version: Version) -> Package: ...

FILE: src/poetry/repositories/cached_repository.py
  class CachedRepository (line 24) | class CachedRepository(Repository, ABC):
    method __init__ (line 27) | def __init__(
    method _get_release_info (line 36) | def _get_release_info(
    method get_release_info (line 40) | def get_release_info(self, name: NormalizedName, version: Version) -> ...
    method package (line 69) | def package(self, name: str, version: Version) -> Package:
    method forget (line 74) | def forget(self, name: str, version: Version) -> None:

FILE: src/poetry/repositories/exceptions.py
  class RepositoryError (line 4) | class RepositoryError(Exception):
  class PackageNotFoundError (line 8) | class PackageNotFoundError(Exception):
  class InvalidSourceError (line 12) | class InvalidSourceError(Exception):

FILE: src/poetry/repositories/http_repository.py
  class HTTPRepository (line 49) | class HTTPRepository(CachedRepository):
    method __init__ (line 50) | def __init__(
    method session (line 84) | def session(self) -> Authenticator:
    method url (line 88) | def url(self) -> str:
    method certificates (line 92) | def certificates(self) -> RepositoryCertificateConfig:
    method authenticated_url (line 96) | def authenticated_url(self) -> str:
    method _download (line 99) | def _download(
    method _cached_or_downloaded_file (line 111) | def _cached_or_downloaded_file(
    method _get_info_from_wheel (line 122) | def _get_info_from_wheel(self, link: Link) -> PackageInfo:
    method _get_info_from_sdist (line 165) | def _get_info_from_sdist(self, link: Link) -> PackageInfo:
    method _get_info_from_metadata (line 171) | def _get_info_from_metadata(self, link: Link) -> PackageInfo | None:
    method _get_info_from_links (line 204) | def _get_info_from_links(
    method _links_to_data (line 338) | def _links_to_data(self, links: list[Link], data: PackageInfo) -> dict...
    method calculate_sha256 (line 403) | def calculate_sha256(self, link: Link) -> str | None:
    method _get_response (line 431) | def _get_response(
    method _get_prefer_json_header (line 458) | def _get_prefer_json_header(self) -> dict[str, str]:
    method _is_json_response (line 465) | def _is_json_response(self, response: requests.Response) -> bool:
    method _get_page (line 471) | def _get_page(self, name: NormalizedName) -> LinkSource:

FILE: src/poetry/repositories/installed_repository.py
  class InstalledRepository (line 30) | class InstalledRepository(Repository):
    method __init__ (line 31) | def __init__(self, packages: Sequence[Package] | None = None) -> None:
    method add_package (line 35) | def add_package(self, package: Package, *, is_system_site: bool = Fals...
    method get_package_paths (line 41) | def get_package_paths(cls, env: Env, name: str) -> set[Path]:
    method get_package_vcs_properties_from_path (line 87) | def get_package_vcs_properties_from_path(cls, src: Path) -> tuple[str,...
    method is_vcs_package (line 94) | def is_vcs_package(cls, package: Path | Package, env: Env) -> bool:
    method _create_package_from_distribution (line 109) | def _create_package_from_distribution(
    method _create_package_from_pep610 (line 183) | def _create_package_from_pep610(
    method load (line 240) | def load(cls, env: Env, with_dependencies: bool = False) -> InstalledR...

FILE: src/poetry/repositories/legacy_repository.py
  class LegacyRepository (line 29) | class LegacyRepository(HTTPRepository):
    method __init__ (line 30) | def __init__(
    method package (line 50) | def package(self, name: str, version: Version) -> Package:
    method find_links_for_package (line 74) | def find_links_for_package(self, package: Package) -> list[Link]:
    method _find_packages (line 82) | def _find_packages(
    method _get_release_info (line 112) | def _get_release_info(
    method root_page (line 135) | def root_page(self) -> SimpleRepositoryRootPage:
    method search (line 150) | def search(self, query: str | list[str]) -> list[Package]:

FILE: src/poetry/repositories/link_sources/base.py
  class LinkSource (line 31) | class LinkSource:
    method __init__ (line 44) | def __init__(self, url: str) -> None:
    method url (line 48) | def url(self) -> str:
    method versions (line 51) | def versions(self, name: NormalizedName) -> Iterator[Version]:
    method packages (line 55) | def packages(self) -> Iterator[Package]:
    method links (line 63) | def links(self) -> Iterator[Link]:
    method link_package_data (line 69) | def link_package_data(cls, link: Link) -> Package | None:
    method links_for_version (line 99) | def links_for_version(
    method clean_link (line 104) | def clean_link(self, url: str) -> str:
    method yanked (line 110) | def yanked(self, name: NormalizedName, version: Version) -> str | bool:
    method _link_cache (line 125) | def _link_cache(self) -> LinkCache:
  class SimpleRepositoryRootPage (line 129) | class SimpleRepositoryRootPage:
    method search (line 134) | def search(self, query: str | list[str]) -> list[str]:
    method package_names (line 145) | def package_names(self) -> list[str]:

FILE: src/poetry/repositories/link_sources/html.py
  class HTMLPage (line 21) | class HTMLPage(LinkSource):
    method __init__ (line 22) | def __init__(self, url: str, content: str) -> None:
    method _link_cache (line 31) | def _link_cache(self) -> LinkCache:
  class SimpleRepositoryHTMLRootPage (line 72) | class SimpleRepositoryHTMLRootPage(SimpleRepositoryRootPage):
    method __init__ (line 81) | def __init__(self, content: str | None = None) -> None:
    method package_names (line 87) | def package_names(self) -> list[str]:

FILE: src/poetry/repositories/link_sources/json.py
  class SimpleJsonPage (line 20) | class SimpleJsonPage(LinkSource):
    method __init__ (line 23) | def __init__(self, url: str, content: dict[str, Any]) -> None:
    method _link_cache (line 28) | def _link_cache(self) -> LinkCache:
  class SimpleRepositoryJsonRootPage (line 70) | class SimpleRepositoryJsonRootPage(SimpleRepositoryRootPage):
    method __init__ (line 79) | def __init__(self, content: dict[str, Any]) -> None:
    method package_names (line 83) | def package_names(self) -> list[str]:

FILE: src/poetry/repositories/lockfile_repository.py
  class LockfileRepository (line 12) | class LockfileRepository(Repository):
    method __init__ (line 18) | def __init__(self) -> None:
    method has_package (line 21) | def has_package(self, package: Package) -> bool:

FILE: src/poetry/repositories/parsers/html_page_parser.py
  class HTMLPageParser (line 6) | class HTMLPageParser(HTMLParser):
    method __init__ (line 7) | def __init__(self) -> None:
    method handle_starttag (line 12) | def handle_starttag(self, tag: str, attrs: list[tuple[str, str | None]...

FILE: src/poetry/repositories/parsers/pypi_search_parser.py
  class Result (line 20) | class Result:
  class SearchResultParser (line 26) | class SearchResultParser(HTMLParser):
    method __init__ (line 29) | def __init__(self) -> None:
    method _match_class (line 37) | def _match_class(attrs: list[tuple[str, str | None]], name: str) -> bool:
    method handle_starttag (line 41) | def handle_starttag(self, tag: str, attrs: list[tuple[str, str | None]...
    method handle_data (line 62) | def handle_data(self, data: str) -> None:
    method handle_endtag (line 67) | def handle_endtag(self, tag: str) -> None:

FILE: src/poetry/repositories/pypi_repository.py
  class PyPiRepository (line 40) | class PyPiRepository(HTTPRepository):
    method __init__ (line 41) | def __init__(
    method search (line 61) | def search(self, query: str | list[str]) -> list[Package]:
    method get_package_info (line 96) | def get_package_info(self, name: NormalizedName) -> dict[str, Any]:
    method _find_packages (line 105) | def _find_packages(
    method _get_package_info (line 125) | def _get_package_info(self, name: NormalizedName) -> dict[str, Any]:
    method find_links_for_package (line 133) | def find_links_for_package(self, package: Package) -> list[Link]:
    method _get_release_info (line 146) | def _get_release_info(
    method _get_page (line 211) | def _get_page(self, name: NormalizedName) -> SimpleJsonPage:
    method _get (line 216) | def _get(
    method _get_yanked (line 244) | def _get_yanked(json_data: dict[str, Any]) -> str | bool:

FILE: src/poetry/repositories/repository.py
  class Repository (line 24) | class Repository(AbstractRepository):
    method __init__ (line 25) | def __init__(self, name: str, packages: Sequence[Package] | None = Non...
    method packages (line 33) | def packages(self) -> list[Package]:
    method find_packages (line 36) | def find_packages(self, dependency: Dependency) -> list[Package]:
    method has_package (line 67) | def has_package(self, package: Package) -> bool:
    method add_package (line 73) | def add_package(self, package: Package) -> None:
    method search (line 76) | def search(self, query: str | list[str]) -> list[Package]:
    method _find_packages (line 86) | def _find_packages(
    method _log (line 95) | def _log(self, msg: str, level: str = "info") -> None:
    method __len__ (line 99) | def __len__(self) -> int:
    method find_links_for_package (line 102) | def find_links_for_package(self, package: Package) -> list[Link]:
    method package (line 105) | def package(self, name: str, version: Version) -> Package:

FILE: src/poetry/repositories/repository_pool.py
  class Priority (line 24) | class Priority(IntEnum):
  class PrioritizedRepository (line 33) | class PrioritizedRepository:
  class RepositoryPool (line 38) | class RepositoryPool(AbstractRepository):
    method __init__ (line 39) | def __init__(
    method from_packages (line 58) | def from_packages(packages: list[Package], config: Config | None) -> R...
    method repositories (line 77) | def repositories(self) -> list[Repository]:
    method all_repositories (line 94) | def all_repositories(self) -> list[Repository]:
    method _sorted_repositories (line 98) | def _sorted_repositories(self) -> list[PrioritizedRepository]:
    method artifact_cache (line 104) | def artifact_cache(self) -> ArtifactCache:
    method has_primary_repositories (line 107) | def has_primary_repositories(self) -> bool:
    method _contains_priority (line 110) | def _contains_priority(self, priority: Priority) -> bool:
    method has_repository (line 115) | def has_repository(self, name: str) -> bool:
    method repository (line 118) | def repository(self, name: str) -> Repository:
    method get_priority (line 121) | def get_priority(self, name: str) -> Priority:
    method _get_prioritized_repository (line 124) | def _get_prioritized_repository(self, name: str) -> PrioritizedReposit...
    method add_repository (line 130) | def add_repository(
    method remove_repository (line 147) | def remove_repository(self, name: str) -> RepositoryPool:
    method package (line 155) | def package(
    method find_packages (line 168) | def find_packages(self, dependency: Dependency) -> list[Package]:
    method search (line 180) | def search(self, query: str | list[str]) -> list[Package]:
    method refresh (line 186) | def refresh(self, package: Package) -> Package:

FILE: src/poetry/repositories/single_page_repository.py
  class SinglePageRepository (line 14) | class SinglePageRepository(LegacyRepository):
    method _get_page (line 15) | def _get_page(self, name: NormalizedName) -> HTMLPage:

FILE: src/poetry/toml/exceptions.py
  class TOMLError (line 7) | class TOMLError(TOMLKitError, PoetryCoreError):

FILE: src/poetry/toml/file.py
  class TOMLFile (line 14) | class TOMLFile(BaseTOMLFile):
    method __init__ (line 15) | def __init__(self, path: Path) -> None:
    method path (line 20) | def path(self) -> Path:
    method exists (line 23) | def exists(self) -> bool:
    method read (line 26) | def read(self) -> TOMLDocument:
    method __str__ (line 36) | def __str__(self) -> str:

FILE: src/poetry/utils/_compat.py
  function decode (line 22) | def decode(string: bytes | str, encodings: list[str] | None = None) -> str:
  function encode (line 35) | def encode(string: str, encodings: list[str] | None = None) -> bytes:
  function getencoding (line 48) | def getencoding() -> str:
  function __getattr__ (line 55) | def __getattr__(name: str) -> object:

FILE: src/poetry/utils/authenticator.py
  class RepositoryCertificateConfig (line 43) | class RepositoryCertificateConfig:
    method create (line 49) | def create(
  class AuthenticatorRepositoryConfig (line 68) | class AuthenticatorRepositoryConfig:
    method __post_init__ (line 74) | def __post_init__(self) -> None:
    method certs (line 79) | def certs(self, config: Config) -> RepositoryCertificateConfig:
    method get_http_credentials (line 82) | def get_http_credentials(
  class Authenticator (line 100) | class Authenticator:
    method __init__ (line 101) | def __init__(
    method create_session (line 133) | def create_session(self) -> requests.Session:
    method get_session (line 149) | def get_session(self, url: str | None = None) -> requests.Session:
    method close (line 162) | def close(self) -> None:
    method __del__ (line 167) | def __del__(self) -> None:
    method delete_cache (line 170) | def delete_cache(self, url: str) -> None:
    method authenticated_url (line 174) | def authenticated_url(self, url: str) -> str:
    method request (line 188) | def request(
    method _get_backoff (line 273) | def _get_backoff(self, response: requests.Response | None, attempt: in...
    method get (line 281) | def get(self, url: str, **kwargs: Any) -> requests.Response:
    method head (line 284) | def head(self, url: str, **kwargs: Any) -> requests.Response:
    method post (line 288) | def post(self, url: str, **kwargs: Any) -> requests.Response:
    method _get_credentials_for_repository (line 291) | def _get_credentials_for_repository(
    method _get_credentials_for_url (line 305) | def _get_credentials_for_url(
    method get_credentials_for_git_url (line 329) | def get_credentials_for_git_url(self, url: str) -> HTTPAuthCredential:
    method get_credentials_for_url (line 342) | def get_credentials_for_url(self, url: str) -> HTTPAuthCredential:
    method get_pypi_token (line 367) | def get_pypi_token(self, name: str) -> str | None:
    method get_http_auth (line 370) | def get_http_auth(self, name: str) -> HTTPAuthCredential | None:
    method get_certs_for_repository (line 382) | def get_certs_for_repository(self, name: str) -> RepositoryCertificate...
    method configured_repositories (line 388) | def configured_repositories(self) -> dict[str, AuthenticatorRepository...
    method reset_credentials_cache (line 399) | def reset_credentials_cache(self) -> None:
    method add_repository (line 403) | def add_repository(self, name: str, url: str) -> None:
    method get_certs_for_url (line 407) | def get_certs_for_url(self, url: str) -> RepositoryCertificateConfig:
    method _get_repository_config_for_url (line 412) | def _get_repository_config_for_url(
    method _get_certs_for_url (line 453) | def _get_certs_for_url(self, url: str) -> RepositoryCertificateConfig:
  function get_default_authenticator (line 463) | def get_default_authenticator() -> Authenticator:

FILE: src/poetry/utils/cache.py
  function _expiration (line 41) | def _expiration(minutes: int) -> int:
  class CacheItem (line 58) | class CacheItem(Generic[T]):
    method expired (line 67) | def expired(self) -> bool:
  class FileCache (line 75) | class FileCache(Generic[T]):
    method __post_init__ (line 86) | def __post_init__(self) -> None:
    method get (line 92) | def get(self, key: str) -> T | None:
    method has (line 95) | def has(self, key: str) -> bool:
    method put (line 103) | def put(self, key: str, value: Any, minutes: int | None = None) -> None:
    method forget (line 119) | def forget(self, key: str) -> None:
    method flush (line 129) | def flush(self) -> None:
    method remember (line 135) | def remember(
    method _get_payload (line 151) | def _get_payload(self, key: str) -> T | None:
    method _path (line 173) | def _path(self, key: str) -> Path:
    method _serialize (line 179) | def _serialize(self, payload: CacheItem[T]) -> bytes:
    method _deserialize (line 184) | def _deserialize(self, data_raw: bytes) -> CacheItem[T]:
  class ArtifactCache (line 191) | class ArtifactCache:
    method __init__ (line 192) | def __init__(self, *, cache_dir: Path) -> None:
    method get_cache_directory_for_link (line 198) | def get_cache_directory_for_link(self, link: Link) -> Path:
    method _get_directory_from_hash (line 209) | def _get_directory_from_hash(self, key_parts: object) -> Path:
    method get_cache_directory_for_git (line 219) | def get_cache_directory_for_git(
    method get_cached_archive_for_link (line 229) | def get_cached_archive_for_link(
    method get_cached_archive_for_link (line 239) | def get_cached_archive_for_link(
    method get_cached_archive_for_link (line 248) | def get_cached_archive_for_link(
    method get_cached_archive_for_git (line 277) | def get_cached_archive_for_git(
    method _get_cached_archive (line 284) | def _get_cached_archive(
    method _get_cached_archives (line 334) | def _get_cached_archives(self, cache_dir: Path) -> list[Path]:

FILE: src/poetry/utils/dependency_specification.py
  function dependency_to_specification (line 32) | def dependency_to_specification(
  class RequirementsParser (line 59) | class RequirementsParser:
    method __init__ (line 60) | def __init__(
    method parse (line 71) | def parse(self, requirement: str) -> DependencySpec:
    method _parse_pep508 (line 98) | def _parse_pep508(self, requirement: str) -> DependencySpec | None:
    method _parse_git_url (line 114) | def _parse_git_url(self, requirement: str) -> DependencySpec | None:
    method _parse_url (line 140) | def _parse_url(self, requirement: str) -> DependencySpec | None:
    method _parse_path (line 155) | def _parse_path(self, requirement: str) -> DependencySpec | None:
    method _parse_simple (line 185) | def _parse_simple(

FILE: src/poetry/utils/env/__init__.py
  function ephemeral_environment (line 36) | def ephemeral_environment(
  function build_environment (line 52) | def build_environment(

FILE: src/poetry/utils/env/base_env.py
  class MarkerEnv (line 38) | class MarkerEnv(TypedDict):
  class Env (line 57) | class Env(ABC):
    method __init__ (line 62) | def __init__(self, path: Path, base: Path | None = None) -> None:
    method bin_dir (line 91) | def bin_dir(self) -> Path:
    method path (line 95) | def path(self) -> Path:
    method base (line 99) | def base(self) -> Path:
    method version_info (line 103) | def version_info(self) -> PythonVersion:
    method python_implementation (line 108) | def python_implementation(self) -> str:
    method python (line 113) | def python(self) -> Path:
    method marker_env (line 120) | def marker_env(self) -> MarkerEnv:
    method parent_env (line 124) | def parent_env(self) -> GenericEnv:
    method _find_python_executable (line 129) | def _find_python_executable(self) -> None:
    method _find_pip_executable (line 147) | def _find_pip_executable(self) -> None:
    method find_executables (line 160) | def find_executables(self) -> None:
    method get_embedded_wheel (line 164) | def get_embedded_wheel(self, distribution: str) -> Path:
    method pip_embedded (line 172) | def pip_embedded(self) -> Path:
    method pip (line 178) | def pip(self) -> Path:
    method platform (line 190) | def platform(self) -> str:
    method os (line 194) | def os(self) -> str:
    method site_packages (line 198) | def site_packages(self) -> SitePackages:
    method usersite (line 208) | def usersite(self) -> Path | None:
    method userbase (line 214) | def userbase(self) -> Path | None:
    method purelib (line 220) | def purelib(self) -> Path:
    method platlib (line 227) | def platlib(self) -> Path:
    method fallbacks (line 237) | def fallbacks(self) -> list[Path]:
    method set_paths (line 242) | def set_paths(
    method scheme_dict (line 273) | def scheme_dict(self) -> dict[str, str]:
    method _get_lib_dirs (line 325) | def _get_lib_dirs(self) -> list[Path]:
    method is_path_relative_to_lib (line 328) | def is_path_relative_to_lib(self, path: Path) -> bool:
    method sys_path (line 338) | def sys_path(self) -> list[str]: ...
    method paths (line 341) | def paths(self) -> dict[str, str]:
    method supported_tags (line 356) | def supported_tags(self) -> list[Tag]:
    method get_base_prefix (line 363) | def get_base_prefix(cls) -> Path:
    method get_marker_env (line 375) | def get_marker_env(self) -> MarkerEnv: ...
    method get_pip_command (line 377) | def get_pip_command(self, embedded: bool = False) -> list[str]:
    method get_supported_tags (line 384) | def get_supported_tags(self) -> list[Tag]: ...
    method get_paths (line 387) | def get_paths(self) -> dict[str, str]: ...
    method is_valid_for_marker (line 389) | def is_valid_for_marker(self, marker: BaseMarker) -> bool:
    method is_sane (line 393) | def is_sane(self) -> bool:
    method get_command_from_bin (line 399) | def get_command_from_bin(self, bin: str) -> list[str]:
    method run (line 407) | def run(self, bin: str, *args: str, **kwargs: Any) -> str:
    method run_pip (line 411) | def run_pip(self, *args: str, **kwargs: Any) -> str:
    method run_python_script (line 416) | def run_python_script(self, content: str, **kwargs: Any) -> str:
    method _run (line 435) | def _run(self, cmd: list[str], **kwargs: Any) -> str:
    method execute (line 457) | def execute(self, bin: str, *args: str, **kwargs: Any) -> int:
    method is_venv (line 470) | def is_venv(self) -> bool: ...
    method script_dirs (line 473) | def script_dirs(self) -> list[Path]:
    method _bin (line 483) | def _bin(self, bin: str) -> str:
    method __eq__ (line 510) | def __eq__(self, other: object) -> bool:
    method __repr__ (line 516) | def __repr__(self) -> str:

FILE: src/poetry/utils/env/env_manager.py
  class EnvsFile (line 48) | class EnvsFile(TOMLFile):
    method remove_section (line 65) | def remove_section(self, name: str, minor: str | None = None) -> str |...
  class EnvManager (line 86) | class EnvManager:
    method __init__ (line 95) | def __init__(self, poetry: Poetry, io: None | IO = None) -> None:
    method in_project_venv (line 100) | def in_project_venv(self) -> Path:
    method envs_file (line 105) | def envs_file(self) -> EnvsFile:
    method base_env_name (line 109) | def base_env_name(self) -> str:
    method activate (line 115) | def activate(self, python: str) -> Env:
    method deactivate (line 185) | def deactivate(self) -> None:
    method get (line 196) | def get(self, reload: bool = False) -> Env:
    method list (line 261) | def list(self, name: str | None = None) -> list[VirtualEnv]:
    method check_env_is_for_current_project (line 275) | def check_env_is_for_current_project(env: str, base_env_name: str) -> ...
    method remove (line 283) | def remove(self, python: str) -> Env:
    method use_in_project_venv (line 356) | def use_in_project_venv(self) -> bool:
    method in_project_venv_exists (line 363) | def in_project_venv_exists(self) -> bool:
    method create_venv (line 370) | def create_venv(
    method build_venv (line 517) | def build_venv(
    method remove_venv (line 575) | def remove_venv(cls, path: Path) -> None:
    method get_system_env (line 596) | def get_system_env(cls, naive: bool = False) -> Env:
    method get_base_prefix (line 617) | def get_base_prefix(cls) -> Path:
    method generate_env_name (line 629) | def generate_env_name(cls, name: str, cwd: str) -> str:

FILE: src/poetry/utils/env/exceptions.py
  class EnvError (line 12) | class EnvError(Exception):
  class IncorrectEnvError (line 16) | class IncorrectEnvError(EnvError):
    method __init__ (line 17) | def __init__(self, env_name: str) -> None:
  class EnvCommandError (line 22) | class EnvCommandError(EnvError):
    method __init__ (line 23) | def __init__(self, e: CalledProcessError) -> None:

FILE: src/poetry/utils/env/generic_env.py
  class GenericEnv (line 22) | class GenericEnv(VirtualEnv):
    method __init__ (line 23) | def __init__(
    method find_executables (line 30) | def find_executables(self) -> None:
    method get_paths (line 84) | def get_paths(self) -> dict[str, str]:
    method execute (line 90) | def execute(self, bin: str, *args: str, **kwargs: Any) -> int:
    method _run (line 102) | def _run(self, cmd: list[str], **kwargs: Any) -> str:
    method is_venv (line 105) | def is_venv(self) -> bool:

FILE: src/poetry/utils/env/mock_env.py
  class MockEnv (line 16) | class MockEnv(NullEnv):
    method __init__ (line 17) | def __init__(
    method platform (line 46) | def platform(self) -> str:
    method platform_machine (line 50) | def platform_machine(self) -> str:
    method os (line 54) | def os(self) -> str:
    method sys_path (line 58) | def sys_path(self) -> list[str]:
    method get_marker_env (line 64) | def get_marker_env(self) -> MarkerEnv:
    method is_venv (line 84) | def is_venv(self) -> bool:

FILE: src/poetry/utils/env/null_env.py
  class NullEnv (line 12) | class NullEnv(SystemEnv):
    method __init__ (line 13) | def __init__(
    method paths (line 25) | def paths(self) -> dict[str, str]:
    method _run (line 33) | def _run(self, cmd: list[str], **kwargs: Any) -> str:
    method execute (line 40) | def execute(self, bin: str, *args: str, **kwargs: Any) -> int:
    method _bin (line 47) | def _bin(self, bin: str) -> str:

FILE: src/poetry/utils/env/python/exceptions.py
  class PythonVersionError (line 4) | class PythonVersionError(Exception):
  class PythonVersionNotFoundError (line 8) | class PythonVersionNotFoundError(PythonVersionError):
    method __init__ (line 9) | def __init__(self, expected: str) -> None:
  class NoCompatiblePythonVersionFoundError (line 13) | class NoCompatiblePythonVersionFoundError(PythonVersionError):
    method __init__ (line 14) | def __init__(self, expected: str, given: str | None = None) -> None:
  class InvalidCurrentPythonVersionError (line 33) | class InvalidCurrentPythonVersionError(PythonVersionError):
    method __init__ (line 34) | def __init__(self, expected: str, given: str) -> None:

FILE: src/poetry/utils/env/python/installer.py
  class PythonInstallerError (line 31) | class PythonInstallerError(Exception):
  class PythonDownloadNotFoundError (line 35) | class PythonDownloadNotFoundError(PythonInstallerError, ValueError):
  class PythonInstallationError (line 39) | class PythonInstallationError(PythonInstallerError, ValueError):
  class PythonInstaller (line 44) | class PythonInstaller:
    method version (line 53) | def version(self) -> Version:
    method exists (line 68) | def exists(self) -> bool:
    method install (line 101) | def install(self) -> None:

FILE: src/poetry/utils/env/python/manager.py
  class PythonInfo (line 43) | class PythonInfo(NamedTuple):
  class Python (line 52) | class Python:
    method __init__ (line 54) | def __init__(self, *, python: findpython.PythonVersion) -> None: ...
    method __init__ (line 57) | def __init__(
    method __init__ (line 63) | def __init__(
    method find_all (line 85) | def find_all(cls) -> Iterator[Python]:
    method find_poetry_managed_pythons (line 95) | def find_poetry_managed_pythons(cls) -> Iterator[Python]:
    method find_all_versions (line 103) | def find_all_versions(
    method find_downloadable_versions (line 139) | def find_downloadable_versions(
    method python (line 170) | def python(self) -> findpython.PythonVersion:
    method name (line 174) | def name(self) -> str:
    method executable (line 178) | def executable(self) -> Path:
    method implementation (line 182) | def implementation(self) -> str:
    method free_threaded (line 186) | def free_threaded(self) -> bool:
    method major (line 190) | def major(self) -> int:
    method minor (line 194) | def minor(self) -> int:
    method patch (line 198) | def patch(self) -> int:
    method version (line 202) | def version(self) -> Version:
    method patch_version (line 206) | def patch_version(self) -> Version:
    method minor_version (line 214) | def minor_version(self) -> Version:
    method get_active_python (line 218) | def get_active_python(cls) -> Python | None:
    method get_system_python (line 245) | def get_system_python(cls) -> Python:
    method get_by_name (line 259) | def get_by_name(cls, python_name: str) -> Python | None:
    method get_preferred_python (line 271) | def get_preferred_python(cls, config: Config, io: IO | None = None) ->...
    method get_compatible_python (line 296) | def get_compatible_python(cls, poetry: Poetry, io: IO | None = None) -...

FILE: src/poetry/utils/env/python/providers.py
  class ShutilWhichPythonProvider (line 25) | class ShutilWhichPythonProvider(findpython.BaseProvider):  # type: ignor...
    method create (line 27) | def create(cls) -> Self | None:
    method find_pythons (line 30) | def find_pythons(self) -> Iterable[findpython.PythonVersion]:
    method find_python_by_name (line 36) | def find_python_by_name(cls, name: str) -> findpython.PythonVersion | ...
  class PoetryPythonPathProvider (line 43) | class PoetryPythonPathProvider(PathProvider):  # type: ignore[misc]
    method installation_dir (line 45) | def installation_dir(
    method _make_bin_paths (line 54) | def _make_bin_paths(cls, base: Path | None = None) -> list[Path]:
    method installation_bin_paths (line 84) | def installation_bin_paths(
    method create (line 92) | def create(cls) -> Self | None:

FILE: src/poetry/utils/env/site_packages.py
  class SitePackages (line 22) | class SitePackages:
    method __init__ (line 23) | def __init__(
    method path (line 45) | def path(self) -> Path:
    method purelib (line 49) | def purelib(self) -> Path:
    method platlib (line 53) | def platlib(self) -> Path:
    method candidates (line 57) | def candidates(self) -> list[Path]:
    method writable_candidates (line 61) | def writable_candidates(self) -> list[Path]:
    method make_candidates (line 73) | def make_candidates(
    method distributions (line 97) | def distributions(
    method find_distribution (line 108) | def find_distribution(
    method find_distribution_files_with_name (line 115) | def find_distribution_files_with_name(
    method find_distribution_direct_url_json_files (line 128) | def find_distribution_direct_url_json_files(
    method remove_distribution_files (line 137) | def remove_distribution_files(self, distribution_name: str) -> list[Pa...
    method _path_method_wrapper (line 158) | def _path_method_wrapper(
    method _path_method_wrapper (line 169) | def _path_method_wrapper(
    method _path_method_wrapper (line 179) | def _path_method_wrapper(
    method write_text (line 206) | def write_text(self, path: Path, *args: Any, **kwargs: Any) -> Path:
    method mkdir (line 212) | def mkdir(self, path: Path, *args: Any, **kwargs: Any) -> Path:
    method exists (line 218) | def exists(self, path: Path) -> bool:
    method find (line 224) | def find(

FILE: src/poetry/utils/env/system_env.py
  class SystemEnv (line 20) | class SystemEnv(Env):
    method python (line 26) | def python(self) -> Path:
    method sys_path (line 30) | def sys_path(self) -> list[str]:
    method get_paths (line 33) | def get_paths(self) -> dict[str, str]:
    method get_supported_tags (line 44) | def get_supported_tags(self) -> list[Tag]:
    method get_marker_env (line 47) | def get_marker_env(self) -> MarkerEnv:
    method is_venv (line 80) | def is_venv(self) -> bool:
    method _get_lib_dirs (line 83) | def _get_lib_dirs(self) -> list[Path]:

FILE: src/poetry/utils/env/virtual_env.py
  class VirtualEnv (line 30) | class VirtualEnv(Env):
    method __init__ (line 35) | def __init__(self, path: Path, base: Path | None = None) -> None:
    method sys_path (line 47) | def sys_path(self) -> list[str]:
    method get_supported_tags (line 52) | def get_supported_tags(self) -> list[Tag]:
    method get_marker_env (line 97) | def get_marker_env(self) -> MarkerEnv:
    method get_paths (line 105) | def get_paths(self) -> dict[str, str]:
    method is_venv (line 110) | def is_venv(self) -> bool:
    method is_sane (line 113) | def is_sane(self) -> bool:
    method _run (line 117) | def _run(self, cmd: list[str], **kwargs: Any) -> str:
    method get_temp_environ (line 121) | def get_temp_environ(
    method execute (line 144) | def execute(self, bin: str, *args: str, **kwargs: Any) -> int:
    method temp_environ (line 149) | def temp_environ(self) -> Iterator[None]:
    method _updated_path (line 157) | def _updated_path(self) -> str:
    method includes_system_site_packages (line 161) | def includes_system_site_packages(self) -> bool:
    method is_path_relative_to_lib (line 172) | def is_path_relative_to_lib(self, path: Path) -> bool:

FILE: src/poetry/utils/extras.py
  function get_extra_package_names (line 15) | def get_extra_package_names(

FILE: src/poetry/utils/helpers.py
  function directory (line 68) | def directory(path: Path) -> Iterator[Path]:
  function _on_rm_error (line 79) | def _on_rm_error(
  function _on_rm_error (line 86) | def _on_rm_error(
  function _on_rm_error (line 93) | def _on_rm_error(func: Callable[[str], None], path: str, exc_info: Any) ...
  function remove_directory (line 101) | def remove_directory(path: Path, force: bool = False) -> None:
  function merge_dicts (line 120) | def merge_dicts(d1: dict[str, Any], d2: dict[str, Any]) -> None:
  class HTTPRangeRequestSupportedError (line 128) | class HTTPRangeRequestSupportedError(Exception):
  function download_file (line 132) | def download_file(
  class Downloader (line 169) | class Downloader:
    method __init__ (line 170) | def __init__(
    method accepts_ranges (line 184) | def accepts_ranges(self) -> bool:
    method total_size (line 188) | def total_size(self) -> int:
    method _get (line 195) | def _get(self, start: int = 0) -> Response:
    method _iter_content_with_resume (line 210) | def _iter_content_with_resume(self, chunk_size: int) -> Iterator[bytes]:
    method download_with_progress (line 235) | def download_with_progress(self, chunk_size: int = 1024) -> Iterator[i...
  function get_package_version_display_string (line 245) | def get_package_version_display_string(
  function paths_csv (line 257) | def paths_csv(paths: list[Path]) -> str:
  function ensure_path (line 261) | def ensure_path(path: str | Path, is_directory: bool = False) -> Path:
  function is_dir_writable (line 273) | def is_dir_writable(path: Path, create: bool = False) -> bool:
  function pluralize (line 288) | def pluralize(count: int, word: str = "") -> str:
  function _get_win_folder_from_registry (line 294) | def _get_win_folder_from_registry(csidl_name: str) -> str:
  function _get_win_folder_with_ctypes (line 317) | def _get_win_folder_with_ctypes(csidl_name: str) -> str:
  function get_win_folder (line 348) | def get_win_folder(csidl_name: str) -> Path:
  function get_real_windows_path (line 362) | def get_real_windows_path(path: Path) -> Path:
  function get_file_hash (line 379) | def get_file_hash(path: Path, hash_name: str = "sha256") -> str:
  function get_highest_priority_hash_type (line 388) | def get_highest_priority_hash_type(
  function extractall (line 410) | def extractall(source: Path, dest: Path, zip: bool) -> None:

FILE: src/poetry/utils/isolated_build.py
  class IsolatedBuildBaseError (line 36) | class IsolatedBuildBaseError(Exception): ...
  class IsolatedBuildBackendError (line 39) | class IsolatedBuildBackendError(IsolatedBuildBaseError):
    method __init__ (line 40) | def __init__(self, source: Path, exception: BuildBackendException) -> ...
    method generate_message (line 45) | def generate_message(
    method __str__ (line 78) | def __str__(self) -> str:
  class IsolatedBuildInstallError (line 82) | class IsolatedBuildInstallError(IsolatedBuildBaseError):
    method __init__ (line 83) | def __init__(self, requirements: Collection[str], output: str, error: ...
    method requirements (line 95) | def requirements(self) -> Collection[str]:
  class IsolatedEnv (line 99) | class IsolatedEnv(BaseIsolatedEnv):
    method __init__ (line 100) | def __init__(self, env: Env, pool: RepositoryPool) -> None:
    method python_executable (line 105) | def python_executable(self) -> str:
    method make_extra_environ (line 108) | def make_extra_environ(self) -> dict[str, str]:
    method install (line 119) | def install(
  function isolated_builder (line 176) | def isolated_builder(

FILE: src/poetry/utils/log_utils.py
  function format_build_wheel_log (line 12) | def format_build_wheel_log(package: Package, env: Env) -> str:

FILE: src/poetry/utils/password_manager.py
  class PoetryKeyringError (line 23) | class PoetryKeyringError(Exception):
  class HTTPAuthCredential (line 28) | class HTTPAuthCredential:
  class PoetryKeyring (line 33) | class PoetryKeyring:
    method __init__ (line 41) | def __init__(self, namespace: str) -> None:
    method preflight_check (line 45) | def preflight_check(io: IO | None = None, config: Config | None = None...
    method get_credential (line 73) | def get_credential(
    method get_password (line 98) | def get_password(self, name: str, username: str) -> str | None:
    method set_password (line 111) | def set_password(self, name: str, username: str, password: str) -> None:
    method delete_password (line 124) | def delete_password(self, name: str, username: str) -> None:
    method get_entry_name (line 136) | def get_entry_name(self, name: str) -> str:
    method is_available (line 141) | def is_available(cls) -> bool:
  class PasswordManager (line 191) | class PasswordManager:
    method __init__ (line 192) | def __init__(self, config: Config) -> None:
    method use_keyring (line 196) | def use_keyring(self) -> bool:
    method keyring (line 200) | def keyring(self) -> PoetryKeyring:
    method warn_plaintext_credentials_stored (line 209) | def warn_plaintext_credentials_stored() -> None:
    method set_pypi_token (line 212) | def set_pypi_token(self, repo_name: str, token: str) -> None:
    method get_pypi_token (line 221) | def get_pypi_token(self, repo_name: str) -> str | None:
    method delete_pypi_token (line 240) | def delete_pypi_token(self, repo_name: str) -> None:
    method get_http_auth (line 248) | def get_http_auth(self, repo_name: str) -> HTTPAuthCredential:
    method set_http_password (line 258) | def set_http_password(self, repo_name: str, username: str, password: s...
    method delete_http_password (line 269) | def delete_http_password(self, repo_name: str) -> None:
    method get_credential (line 280) | def get_credential(

FILE: src/poetry/utils/pip.py
  function pip_install (line 15) | def pip_install(

FILE: src/poetry/utils/threading.py
  class AtomicCachedProperty (line 21) | class AtomicCachedProperty(functools.cached_property[T]):
    method __init__ (line 22) | def __init__(self, func: Callable[[C], T]) -> None:
    method __get__ (line 28) | def __get__(
    method __get__ (line 32) | def __get__(self, instance: object, owner: type[Any] | None = ...) -> ...
    method __get__ (line 34) | def __get__(
  function atomic_cached_property (line 52) | def atomic_cached_property(func: Callable[[C], T]) -> AtomicCachedProper...

FILE: src/poetry/utils/wheel.py
  class InvalidWheelNameError (line 19) | class InvalidWheelNameError(Exception):
  class Wheel (line 23) | class Wheel:
    method __init__ (line 24) | def __init__(self, filename: str) -> None:
    method get_minimum_supported_index (line 41) | def get_minimum_supported_index(self, tags: list[Tag]) -> int | None:
    method is_supported_by_environment (line 46) | def is_supported_by_environment(self, env: Env) -> bool:

FILE: src/poetry/vcs/git/backend.py
  function is_revision_sha (line 80) | def is_revision_sha(revision: str | None) -> bool:
  function peeled_tag (line 84) | def peeled_tag(ref: str | bytes) -> Ref:
  class GitRefSpec (line 91) | class GitRefSpec:
    method resolve (line 97) | def resolve(self, remote_refs: FetchPackResult, repo: Repo) -> None:
    method _normalise (line 104) | def _normalise(self, remote_refs: FetchPackResult, repo: Repo) -> None:
    method _set_head (line 148) | def _set_head(self, remote_refs: FetchPackResult, repo: Repo) -> None:
    method key (line 183) | def key(self) -> str:
    method is_sha (line 187) | def is_sha(self) -> bool:
    method is_ref (line 191) | def is_ref(self) -> bool:
    method is_sha_short (line 197) | def is_sha_short(self) -> bool:
  class GitRepoLocalInfo (line 202) | class GitRepoLocalInfo:
    method __post_init__ (line 207) | def __post_init__(self, repo: Repo | Path) -> None:
  class Git (line 213) | class Git:
    method as_repo (line 215) | def as_repo(repo: Path) -> Repo:
    method get_remote_url (line 219) | def get_remote_url(repo: Repo, remote: str = "origin") -> str:
    method get_revision (line 232) | def get_revision(repo: Repo) -> str:
    method info (line 237) | def info(cls, repo: Repo | Path) -> GitRepoLocalInfo:
    method get_name_from_source_url (line 241) | def get_name_from_source_url(url: str) -> str:
    method _fetch_remote_refs (line 245) | def _fetch_remote_refs(cls, url: str, local: Repo) -> FetchPackResult:
    method _clone_legacy (line 276) | def _clone_legacy(url: str, refspec: GitRefSpec, target: Path) -> Repo:
    method _clone (line 324) | def _clone(cls, url: str, refspec: GitRefSpec, target: Path) -> Repo:
    method _clone_submodules (line 442) | def _clone_submodules(cls, repo: Repo) -> None:
    method _get_submodules (line 461) | def _get_submodules(cls, repo: Repo) -> list[SubmoduleInfo]:
    method is_using_legacy_client (line 507) | def is_using_legacy_client() -> bool:
    method get_default_source_root (line 514) | def get_default_source_root() -> Path:
    method clone (line 520) | def clone(
  function urlpathjoin (line 589) | def urlpathjoin(base: str, path: str) -> str:
  class SubmoduleInfo (line 610) | class SubmoduleInfo:

FILE: src/poetry/vcs/git/system.py
  class SystemGit (line 16) | class SystemGit:
    method clone (line 18) | def clone(cls, repository: str, dest: Path) -> None:
    method checkout (line 24) | def checkout(cls, rev: str, target: Path | None = None) -> None:
    method run (line 29) | def run(*args: Any, **kwargs: Any) -> None:
    method _check_parameter (line 54) | def _check_parameter(parameter: str) -> None:

FILE: src/poetry/version/version_selector.py
  class VersionSelector (line 12) | class VersionSelector:
    method __init__ (line 13) | def __init__(self, pool: RepositoryPool) -> None:
    method find_best_candidate (line 16) | def find_best_candidate(

FILE: tests/config/test_config.py
  function get_options_based_on_normalizer (line 32) | def get_options_based_on_normalizer(normalizer: Normalizer) -> Iterator[...
  function test_config_get_default_value (line 48) | def test_config_get_default_value(config: Config, name: str, value: bool...
  function test_config_get_processes_depended_on_values (line 52) | def test_config_get_processes_depended_on_values(
  function generate_environment_variable_tests (line 58) | def generate_environment_variable_tests() -> Iterator[tuple[str, str, st...
  function test_config_get_from_environment_variable (line 85) | def test_config_get_from_environment_variable(
  function test_config_get_from_environment_variable_nested (line 97) | def test_config_get_from_environment_variable_nested(
  function test_config_expands_tilde_for_virtualenvs_path (line 118) | def test_config_expands_tilde_for_virtualenvs_path(
  function test_disabled_keyring_is_unavailable (line 125) | def test_disabled_keyring_is_unavailable(
  function test_config_get_from_environment_variable_build_config_settings (line 149) | def test_config_get_from_environment_variable_build_config_settings(

FILE: tests/config/test_config_source.py
  function test_drop_empty_config_category (line 48) | def test_drop_empty_config_category(
  function test_config_source_migration_rename_key (line 59) | def test_config_source_migration_rename_key() -> None:
  function test_config_source_migration_remove_key (line 85) | def test_config_source_migration_remove_key() -> None:
  function test_config_source_migration_unset_value (line 109) | def test_config_source_migration_unset_value() -> None:
  function test_config_source_migration_complex_migration (line 134) | def test_config_source_migration_complex_migration() -> None:

FILE: tests/config/test_dict_config_source.py
  function test_dict_config_source_add_property (line 9) | def test_dict_config_source_add_property() -> None:
  function test_dict_config_source_remove_property (line 25) | def test_dict_config_source_remove_property() -> None:
  function test_dict_config_source_get_property (line 47) | def test_dict_config_source_get_property() -> None:
  function test_dict_config_source_get_property_should_raise_if_not_found (line 62) | def test_dict_config_source_get_property_should_raise_if_not_found() -> ...

FILE: tests/config/test_file_config_source.py
  function test_file_config_source_add_property (line 17) | def test_file_config_source_add_property(tmp_path: Path) -> None:
  function test_file_config_source_remove_property (line 37) | def test_file_config_source_remove_property(tmp_path: Path) -> None:
  function test_file_config_source_get_property (line 62) | def test_file_config_source_get_property(tmp_path: Path) -> None:
  function test_file_config_source_get_property_should_raise_if_not_found (line 80) | def test_file_config_source_get_property_should_raise_if_not_found(

FILE: tests/config/test_source.py
  function test_source_to_table (line 34) | def test_source_to_table(source: Source, table_body: dict[str, str | boo...
  function test_source_default_is_primary (line 41) | def test_source_default_is_primary() -> None:
  function test_source_priority_as_string (line 53) | def test_source_priority_as_string(priority: str, expected_priority: Pri...

FILE: tests/conftest.py
  function pytest_addoption (line 98) | def pytest_addoption(parser: Parser) -> None:
  function pytest_configure (line 108) | def pytest_configure(config: PyTestConfig) -> None:
  class Config (line 118) | class Config(BaseConfig):
    method get (line 122) | def get(self, setting_name: str, default: Any = None) -> Any:
    method raw (line 128) | def raw(self) -> dict[str, Any]:
    method all (line 134) | def all(self) -> dict[str, Any]:
  class DummyBackend (line 141) | class DummyBackend(KeyringBackend):
    method __init__ (line 142) | def __init__(self) -> None:
    method priority (line 147) | def priority(self) -> float:
    method set_password (line 150) | def set_password(self, service: str, username: str, password: str) -> ...
    method get_password (line 153) | def get_password(self, service: str, username: str) -> str | None:
    method get_credential (line 156) | def get_credential(
    method delete_password (line 171) | def delete_password(self, service: str, username: str) -> None:
    method set_default_service_credential (line 175) | def set_default_service_credential(
  class LockedBackend (line 181) | class LockedBackend(KeyringBackend):
    method priority (line 183) | def priority(self) -> float:
    method set_password (line 186) | def set_password(self, service: str, username: str, password: str) -> ...
    method get_password (line 189) | def get_password(self, service: str, username: str) -> str | None:
    method get_credential (line 192) | def get_credential(
    method delete_password (line 199) | def delete_password(self, service: str, username: str) -> None:
  class ErroneousBackend (line 203) | class ErroneousBackend(FailKeyring):
    method priority (line 205) | def priority(self) -> float:
    method get_credential (line 208) | def get_credential(
  function poetry_keyring (line 217) | def poetry_keyring() -> PoetryKeyring:
  function dummy_keyring (line 222) | def dummy_keyring() -> DummyBackend:
  function with_simple_keyring (line 227) | def with_simple_keyring(dummy_keyring: DummyBackend) -> None:
  function with_fail_keyring (line 232) | def with_fail_keyring() -> None:
  function with_locked_keyring (line 237) | def with_locked_keyring() -> None:
  function with_erroneous_keyring (line 242) | def with_erroneous_keyring() -> None:
  function with_null_keyring (line 247) | def with_null_keyring() -> None:
  function with_chained_fail_keyring (line 254) | def with_chained_fail_keyring(mocker: MockerFixture) -> None:
  function with_chained_null_keyring (line 265) | def with_chained_null_keyring(mocker: MockerFixture) -> None:
  function config_cache_dir (line 278) | def config_cache_dir(tmp_path: Path) -> Path:
  function config_data_dir (line 285) | def config_data_dir(tmp_path: Path) -> Path:
  function config_virtualenvs_path (line 292) | def config_virtualenvs_path(config_cache_dir: Path) -> Path:
  function config_source (line 297) | def config_source(config_cache_dir: Path, config_data_dir: Path) -> Dict...
  function auth_config_source (line 306) | def auth_config_source() -> DictConfigSource:
  function config (line 313) | def config(
  function artifact_cache (line 332) | def artifact_cache(config: Config) -> ArtifactCache:
  function config_dir (line 337) | def config_dir(tmp_path: Path) -> Path:
  function mock_user_config_dir (line 344) | def mock_user_config_dir(mocker: MockerFixture, config_dir: Path) -> None:
  function environ (line 350) | def environ() -> Iterator[None]:
  function isolate_environ (line 356) | def isolate_environ() -> Iterator[None]:
  function git_mock (line 367) | def git_mock(mocker: MockerFixture, request: FixtureRequest) -> None:
  function http (line 380) | def http() -> Iterator[responses.RequestsMock]:
  function http_redirector (line 386) | def http_redirector(http: responses.RequestsMock) -> None:
  function project_root (line 393) | def project_root() -> Path:
  function fixture_base (line 398) | def fixture_base() -> Path:
  function fixture_dir (line 403) | def fixture_dir(fixture_base: Path) -> FixtureDirGetter:
  function tmp_venv (line 411) | def tmp_venv(tmp_path: Path) -> Iterator[VirtualEnv]:
  function installed (line 423) | def installed() -> InstalledRepository:
  function current_env (line 428) | def current_env() -> SystemEnv:
  function current_python (line 433) | def current_python(current_env: SystemEnv) -> PythonVersion:
  function default_python (line 438) | def default_python(current_python: PythonVersion) -> str:
  function repo (line 443) | def repo(http: responses.RequestsMock) -> TestRepository:
  function project_factory (line 449) | def project_factory(
  function create_package (line 530) | def create_package(repo: Repository) -> PackageFactory:
  function set_simple_log_formatter (line 609) | def set_simple_log_formatter() -> None:
  function fixture_copier (line 620) | def fixture_copier(fixture_base: Path, tmp_path: Path) -> FixtureCopier:
  function required_fixtures (line 640) | def required_fixtures() -> list[str]:
  function load_required_fixtures (line 645) | def load_required_fixtures(
  function venv_flags_default (line 653) | def venv_flags_default() -> dict[str, bool]:
  function disable_http_status_force_list (line 662) | def disable_http_status_force_list(mocker: MockerFixture) -> Iterator[No...
  function tmp_working_directory (line 668) | def tmp_working_directory(tmp_path: Path) -> Iterator[Path]:
  function tmp_session_working_directory (line 674) | def tmp_session_working_directory(tmp_path_factory: TempPathFactory) -> ...
  function set_project_context (line 681) | def set_project_context(
  function command_factory (line 699) | def command_factory() -> CommandFactory:
  function default_keyring (line 739) | def default_keyring(with_null_keyring: None) -> None:
  function system_env (line 744) | def system_env(tmp_path_factory: TempPathFactory, mocker: MockerFixture)...
  function mocked_pythons (line 766) | def mocked_pythons() -> list[findpython.PythonVersion]:
  function mocked_pythons_version_map (line 782) | def mocked_pythons_version_map() -> dict[str, findpython.PythonVersion]:
  function mock_findpython_find (line 805) | def mock_findpython_find(
  function mock_findpython_find_all (line 858) | def mock_findpython_find_all(
  function mocked_python_register (line 879) | def mocked_python_register(
  function without_mocked_findpython (line 940) | def without_mocked_findpython(
  function with_mocked_findpython (line 956) | def with_mocked_findpython(
  function with_no_active_python (line 980) | def with_no_active_python(mocker: MockerFixture) -> MagicMock:
  function mock_python_version (line 988) | def mock_python_version(mocker: MockerFixture) -> None:
  function mocked_poetry_managed_python_register (line 1024) | def mocked_poetry_managed_python_register(

FILE: tests/console/commands/cache/conftest.py
  function repository_cache_dir (line 19) | def repository_cache_dir(config: Config) -> Path:
  function repositories (line 24) | def repositories() -> list[str]:
  function repository_dirs (line 29) | def repository_dirs(
  function caches (line 40) | def caches(

FILE: tests/console/commands/cache/test_clear.py
  function tester (line 22) | def tester() -> ApplicationTester:
  function test_cache_clear_all (line 30) | def test_cache_clear_all(
  function test_cache_clear_all_one_cache (line 60) | def test_cache_clear_all_one_cache(
  function test_cache_clear_all_no_entries (line 87) | def test_cache_clear_all_no_entries(tester: ApplicationTester) -> None:
  function test_cache_clear_all_one_cache_no_entries (line 94) | def test_cache_clear_all_one_cache_no_entries(
  function test_cache_clear_missing_option (line 107) | def test_cache_clear_missing_option(
  function test_cache_clear_pkg (line 122) | def test_cache_clear_pkg(

FILE: tests/console/commands/cache/test_list.py
  function tester (line 18) | def tester(command_tester_factory: CommandTesterFactory) -> CommandTester:
  function test_cache_list (line 22) | def test_cache_list(
  function test_cache_list_empty (line 37) | def test_cache_list_empty(tester: CommandTester, repository_cache_dir: P...

FILE: tests/console/commands/conftest.py
  function init_basic_inputs (line 7) | def init_basic_inputs() -> str:
  function init_basic_toml (line 24) | def init_basic_toml() -> str:
  function init_basic_toml_no_readme (line 40) | def init_basic_toml_no_readme(init_basic_toml: str) -> str:
  function new_basic_toml (line 49) | def new_basic_toml() -> str:

FILE: tests/console/commands/debug/test_info.py
  function setup (line 22) | def setup(mocker: MockerFixture) -> None:
  function tester (line 40) | def tester(command_tester_factory: CommandTesterFactory) -> CommandTester:
  function test_debug_info_displays_complete_info (line 44) | def test_debug_info_displays_complete_info(tester: CommandTester) -> None:

FILE: tests/console/commands/debug/test_resolve.py
  function tester (line 19) | def tester(command_tester_factory: CommandTesterFactory) -> CommandTester:
  function __add_packages (line 24) | def __add_packages(repo: TestRepository) -> None:
  function test_debug_resolve_gives_resolution_results (line 36) | def test_debug_resolve_gives_resolution_results(tester: CommandTester) -...
  function test_debug_resolve_tree_option_gives_the_dependency_tree (line 51) | def test_debug_resolve_tree_option_gives_the_dependency_tree(
  function test_debug_resolve_git_dependency (line 68) | def test_debug_resolve_git_dependency(tester: CommandTester) -> None:

FILE: tests/console/commands/env/conftest.py
  function venv_name (line 20) | def venv_name(app: PoetryTestApplication) -> str:
  function venv_cache (line 28) | def venv_cache(tmp_path: Path) -> Path:
  function python_versions (line 35) | def python_versions() -> list[str]:
  function venvs_in_cache_config (line 40) | def venvs_in_cache_config(app: PoetryTestApplication, venv_cache: Path) ...
  function venvs_in_cache_dirs (line 45) | def venvs_in_cache_dirs(
  function venvs_in_project_dir (line 61) | def venvs_in_project_dir(app: PoetryTestApplication) -> Iterator[Path]:
  function venvs_in_project_dir_none (line 75) | def venvs_in_project_dir_none(app: PoetryTestApplication) -> Iterator[Pa...
  function venvs_in_project_dir_false (line 88) | def venvs_in_project_dir_false(app: PoetryTestApplication) -> Iterator[P...

FILE: tests/console/commands/env/helpers.py
  function build_venv (line 18) | def build_venv(path: Path | str, **_: Any) -> None:
  function check_output_wrapper (line 22) | def check_output_wrapper(

FILE: tests/console/commands/env/test_activate.py
  function tester (line 21) | def tester(command_tester_factory: CommandTesterFactory) -> CommandTester:
  function test_env_activate_prints_correct_script (line 37) | def test_env_activate_prints_correct_script(
  function test_env_activate_prints_correct_script_for_windows_shells (line 68) | def test_env_activate_prints_correct_script_for_windows_shells(
  function test_no_additional_output_in_verbose_mode (line 87) | def test_no_additional_output_in_verbose_mode(

FILE: tests/console/commands/env/test_info.py
  function setup (line 21) | def setup(mocker: MockerFixture) -> None:
  function tester (line 31) | def tester(command_tester_factory: CommandTesterFactory) -> CommandTester:
  function test_env_info_displays_complete_info (line 35) | def test_env_info_displays_complete_info(tester: CommandTester) -> None:
  function test_env_info_displays_path_only (line 57) | def test_env_info_displays_path_only(tester: CommandTester) -> None:
  function test_env_info_displays_executable_only (line 63) | def test_env_info_displays_executable_only(tester: CommandTester) -> None:

FILE: tests/console/commands/env/test_list.py
  function venv_activate_37 (line 22) | def venv_activate_37(venv_cache: Path, venv_name: str) -> None:
  function tester (line 30) | def tester(command_tester_factory: CommandTesterFactory) -> CommandTester:
  function test_none_activated (line 34) | def test_none_activated(
  function test_activated (line 46) | def test_activated(
  function test_in_project_venv (line 57) | def test_in_project_venv(
  function test_in_project_venv_no_explicit_config (line 65) | def test_in_project_venv_no_explicit_config(
  function test_in_project_venv_is_false (line 73) | def test_in_project_venv_is_false(

FILE: tests/console/commands/env/test_remove.py
  function tester (line 22) | def tester(command_tester_factory: CommandTesterFactory) -> CommandTester:
  function test_remove_by_python_version (line 26) | def test_remove_by_python_version(
  function test_remove_by_name (line 47) | def test_remove_by_name(
  function test_remove_all (line 68) | def test_remove_all(
  function test_remove_all_and_version (line 115) | def test_remove_all_and_version(
  function test_remove_multiple (line 129) | def test_remove_multiple(
  function test_remove_in_project (line 147) | def test_remove_in_project(tester: CommandTester, venvs_in_project_dir: ...
  function test_remove_in_project_all (line 158) | def test_remove_in_project_all(

FILE: tests/console/commands/env/test_use.py
  function setup (line 34) | def setup(mocker: MockerFixture) -> None:
  function mock_subprocess_calls (line 40) | def mock_subprocess_calls(
  function tester (line 54) | def tester(command_tester_factory: CommandTesterFactory) -> CommandTester:
  function test_activate_activates_non_existing_virtualenv_no_envs_file (line 58) | def test_activate_activates_non_existing_virtualenv_no_envs_file(
  function test_activate_does_not_activate_non_existing_virtualenv_with_unsupported_version (line 103) | def test_activate_does_not_activate_non_existing_virtualenv_with_unsuppo...
  function test_get_prefers_explicitly_activated_virtualenvs_over_env_var (line 129) | def test_get_prefers_explicitly_activated_virtualenvs_over_env_var(
  function test_get_prefers_explicitly_activated_non_existing_virtualenvs_over_env_var (line 160) | def test_get_prefers_explicitly_activated_non_existing_virtualenvs_over_...

FILE: tests/console/commands/python/test_python_install.py
  function mock_installer (line 25) | def mock_installer(mocker: MockerFixture) -> MagicMock:
  function tester (line 30) | def tester(command_tester_factory: CommandTesterFactory) -> CommandTester:
  function test_install_invalid_version (line 34) | def test_install_invalid_version(tester: CommandTester) -> None:
  function test_install_free_threaded_not_supported (line 41) | def test_install_free_threaded_not_supported(tester: CommandTester) -> N...
  function test_install_exists (line 51) | def test_install_exists(tester: CommandTester, mock_installer: MagicMock...
  function test_install_no_download (line 63) | def test_install_no_download(tester: CommandTester, mock_installer: Magi...
  function test_install_failure (line 78) | def test_install_failure(tester: CommandTester, mock_installer: MagicMoc...
  function test_install_corrupt (line 96) | def test_install_corrupt(
  function test_install_success (line 123) | def test_install_success(tester: CommandTester, mock_installer: MagicMoc...
  function test_install_reinstall (line 138) | def test_install_reinstall(tester: CommandTester, mock_installer: MagicM...
  function test_install_passes_options_to_installer (line 155) | def test_install_passes_options_to_installer(
  function test_install_free_threaded_via_trailing_t (line 178) | def test_install_free_threaded_via_trailing_t(

FILE: tests/console/commands/python/test_python_list.py
  function tester (line 23) | def tester(command_tester_factory: CommandTesterFactory) -> CommandTester:
  function test_list_no_versions (line 27) | def test_list_no_versions(tester: CommandTester) -> None:
  function test_list_all (line 33) | def test_list_all(tester: CommandTester) -> None:
  function test_list_invalid_version (line 44) | def test_list_invalid_version(tester: CommandTester) -> None:
  function test_list (line 51) | def test_list(
  function test_list_poetry_managed (line 75) | def test_list_poetry_managed(
  function test_list_version (line 111) | def test_list_version(
  function test_list_implementation (line 130) | def test_list_implementation(
  function test_list_free_threaded (line 146) | def test_list_free_threaded(

FILE: tests/console/commands/python/test_python_remove.py
  function tester (line 17) | def tester(command_tester_factory: CommandTesterFactory) -> CommandTester:
  function test_remove_invalid_version (line 21) | def test_remove_invalid_version(tester: CommandTester) -> None:
  function test_remove_version_not_precise_enough (line 28) | def test_remove_version_not_precise_enough(tester: CommandTester) -> None:
  function test_remove_version_no_installation (line 44) | def test_remove_version_no_installation(tester: CommandTester, config: C...
  function test_remove_version (line 51) | def test_remove_version(
  function test_remove_version_implementation (line 71) | def test_remove_version_implementation(
  function test_remove_version_free_threaded (line 96) | def test_remove_version_free_threaded(
  function test_remove_multiple_versions (line 129) | def test_remove_multiple_versions(

FILE: tests/console/commands/self/conftest.py
  function poetry_package (line 32) | def poetry_package() -> Package:
  function _patch_repos (line 37) | def _patch_repos(
  function pool (line 45) | def pool(repo: TestRepository) -> RepositoryPool:
  function create_pool_factory (line 49) | def create_pool_factory(
  function setup_mocks (line 67) | def setup_mocks(

FILE: tests/console/commands/self/test_add_plugins.py
  function tester (line 23) | def tester(command_tester_factory: CommandTesterFactory) -> CommandTester:
  function assert_plugin_add_result (line 27) | def assert_plugin_add_result(
  function test_add_no_constraint (line 40) | def test_add_no_constraint(
  function test_add_with_constraint (line 63) | def test_add_with_constraint(
  function test_add_with_git_constraint (line 86) | def test_add_with_git_constraint(
  function test_add_with_git_constraint_with_extras (line 111) | def test_add_with_git_constraint_with_extras(
  function test_add_with_git_constraint_with_subdirectory (line 150) | def test_add_with_git_constraint_with_subdirectory(
  function test_add_existing_plugin_warns_about_no_operation (line 175) | def test_add_existing_plugin_warns_about_no_operation(
  function test_add_existing_plugin_updates_if_requested (line 217) | def test_add_existing_plugin_updates_if_requested(
  function test_adding_a_plugin_can_update_poetry_dependencies_if_needed (line 265) | def test_adding_a_plugin_can_update_poetry_dependencies_if_needed(

FILE: tests/console/commands/self/test_install.py
  function command (line 17) | def command() -> str:
  function tester (line 22) | def tester(command_tester_factory: CommandTesterFactory, command: str) -...
  function test_self_install (line 45) | def test_self_install(
  function test_sync_deprecation (line 66) | def test_sync_deprecation(tester: CommandTester, sync: bool) -> None:

FILE: tests/console/commands/self/test_remove_plugins.py
  function tester (line 26) | def tester(command_tester_factory: CommandTesterFactory) -> CommandTester:
  function install_plugin (line 31) | def install_plugin(installed: Repository) -> None:
  function test_remove_installed_package (line 72) | def test_remove_installed_package(tester: CommandTester) -> None:
  function test_remove_installed_package_dry_run (line 92) | def test_remove_installed_package_dry_run(tester: CommandTester) -> None:

FILE: tests/console/commands/self/test_self_command.py
  function example_system_pyproject (line 15) | def example_system_pyproject() -> str:
  function test_generate_system_pyproject_trailing_newline (line 27) | def test_generate_system_pyproject_trailing_newline(
  function test_generate_system_pyproject_carriage_returns (line 41) | def test_generate_system_pyproject_carriage_returns(

FILE: tests/console/commands/self/test_show.py
  function tester (line 21) | def tester(command_tester_factory: CommandTesterFactory) -> CommandTester:
  function test_show_format (line 26) | def test_show_format(tester: CommandTester, options: str) -> None:
  function test_self_show_errors_without_lock_file (line 75) | def test_self_show_errors_without_lock_file(tester: CommandTester) -> None:

FILE: tests/console/commands/self/test_show_plugins.py
  class DoNothingPlugin (line 33) | class DoNothingPlugin(Plugin):
    method activate (line 34) | def activate(self, poetry: Poetry, io: IO) -> None:
  class EntryPoint (line 38) | class EntryPoint(metadata.EntryPoint):
    method load (line 39) | def load(self) -> type[BasePlugin]:
  function tester (line 47) | def tester(command_tester_factory: CommandTesterFactory) -> CommandTester:
  function plugin_package_requires_dist (line 52) | def plugin_package_requires_dist() -> list[str]:
  function plugin_package (line 57) | def plugin_package(plugin_package_requires_dist: list[str]) -> Package:
  function plugin_distro (line 67) | def plugin_distro(plugin_package: Package, tmp_path: Path) -> metadata.D...
  function entry_point_name (line 90) | def entry_point_name() -> str:
  function entry_point_values_by_group (line 95) | def entry_point_values_by_group() -> dict[str, list[str]]:
  function entry_points (line 100) | def entry_points(
  function mock_metadata_entry_points (line 133) | def mock_metadata_entry_points(
  function test_show_displays_installed_plugins (line 159) | def test_show_displays_installed_plugins(
  function test_show_displays_installed_plugins_with_multiple_plugins (line 185) | def test_show_displays_installed_plugins_with_multiple_plugins(
  function test_show_displays_installed_plugins_with_dependencies (line 211) | def test_show_displays_installed_plugins_with_dependencies(

FILE: tests/console/commands/self/test_sync.py
  function command (line 22) | def command() -> str:
  function test_sync_deprecation (line 27) | def test_sync_deprecation() -> None:
  function test_sync_option_not_available (line 31) | def test_sync_option_not_available(tester: CommandTester) -> None:
  function test_synced_installer (line 36) | def test_synced_installer(tester: CommandTester, mocker: MockerFixture) ...

FILE: tests/console/commands/self/test_update.py
  function setup (line 26) | def setup(mocker: MockerFixture, fixture_dir: FixtureDirGetter) -> None:
  function tester (line 39) | def tester(command_tester_factory: CommandTesterFactory) -> CommandTester:
  function test_self_update_can_update_from_recommended_installation (line 43) | def test_self_update_can_update_from_recommended_installation(

FILE: tests/console/commands/self/utils.py
  function get_self_command_dependencies (line 11) | def get_self_command_dependencies(locked: bool = True) -> Array | None:

FILE: tests/console/commands/source/conftest.py
  function source_one (line 18) | def source_one() -> Source:
  function source_two (line 23) | def source_two() -> Source:
  function source_primary (line 28) | def source_primary() -> Source:
  function source_supplemental (line 33) | def source_supplemental() -> Source:
  function source_explicit (line 42) | def source_explicit() -> Source:
  function source_pypi (line 49) | def source_pypi() -> Source:
  function source_pypi_explicit (line 54) | def source_pypi_explicit() -> Source:
  function source_existing (line 62) | def source_existing() -> Source:
  function poetry_without_poetry_section (line 110) | def poetry_without_poetry_section(project_factory: ProjectFactory) -> Po...
  function poetry_without_source (line 115) | def poetry_without_source(project_factory: ProjectFactory) -> Poetry:
  function poetry_with_source (line 120) | def poetry_with_source(project_factory: ProjectFactory) -> Poetry:
  function poetry_with_pypi (line 125) | def poetry_with_pypi(project_factory: ProjectFactory) -> Poetry:
  function poetry_with_pypi_and_other (line 130) | def poetry_with_pypi_and_other(project_factory: ProjectFactory) -> Poetry:
  function add_multiple_sources (line 135) | def add_multiple_sources(
  function add_all_source_types (line 147) | def add_all_source_types(

FILE: tests/console/commands/source/test_add.py
  function tester (line 21) | def tester(
  function assert_source_added (line 27) | def assert_source_added(
  function test_source_add_simple (line 47) | def test_source_add_simple(
  function test_source_add_simple_without_existing_sources (line 57) | def test_source_add_simple_without_existing_sources(
  function test_source_add_simple_without_existing_poetry_section (line 66) | def test_source_add_simple_without_existing_poetry_section(
  function test_source_add_supplemental (line 75) | def test_source_add_supplemental(
  function test_source_add_explicit (line 89) | def test_source_add_explicit(
  function test_source_add_error_no_url (line 99) | def test_source_add_error_no_url(tester: CommandTester) -> None:
  function test_source_add_error_pypi (line 108) | def test_source_add_error_pypi(tester: CommandTester) -> None:
  function test_source_add_pypi (line 117) | def test_source_add_pypi(
  function test_source_add_pypi_explicit (line 128) | def test_source_add_pypi_explicit(
  function test_source_add_existing_no_change_except_case_of_name (line 141) | def test_source_add_existing_no_change_except_case_of_name(
  function test_source_add_existing_updating (line 164) | def test_source_add_existing_updating(

FILE: tests/console/commands/source/test_remove.py
  function tester (line 17) | def tester(
  function tester_pypi (line 26) | def tester_pypi(
  function tester_pypi_and_other (line 34) | def tester_pypi_and_other(
  function test_source_remove_simple (line 42) | def test_source_remove_simple(
  function test_source_remove_pypi (line 64) | def test_source_remove_pypi(
  function test_source_remove_pypi_and_other (line 78) | def test_source_remove_pypi_and_other(
  function test_source_remove_error (line 98) | def test_source_remove_error(name: str, tester: CommandTester) -> None:

FILE: tests/console/commands/source/test_show.py
  function tester (line 19) | def tester(
  function tester_no_sources (line 28) | def tester_no_sources(
  function tester_pypi (line 36) | def tester_pypi(
  function tester_pypi_and_other (line 44) | def tester_pypi_and_other(
  function tester_all_types (line 52) | def tester_all_types(
  function test_source_show_simple (line 60) | def test_source_show_simple(tester: CommandTester) -> None:
  function test_source_show_one (line 83) | def test_source_show_one(
  function test_source_show_two (line 100) | def test_source_show_two(
  function test_source_show_given_priority (line 128) | def test_source_show_given_priority(
  function test_source_show_pypi (line 145) | def test_source_show_pypi(tester_pypi: CommandTester) -> None:
  function test_source_show_pypi_and_other (line 157) | def test_source_show_pypi_and_other(tester_pypi_and_other: CommandTester...
  function test_source_show_no_sources (line 174) | def test_source_show_no_sources(tester_no_sources: CommandTester) -> None:
  function test_source_show_no_sources_implicit_pypi (line 183) | def test_source_show_no_sources_implicit_pypi(
  function test_source_show_error (line 197) | def test_source_show_error(tester: CommandTester) -> None:

FILE: tests/console/commands/test_about.py
  function tester (line 15) | def tester(command_tester_factory: CommandTesterFactory) -> CommandTester:
  function test_about (line 19) | def test_about(tester: CommandTester) -> None:

FILE: tests/console/commands/test_add.py
  function config (line 44) | def config(config: Config) -> Config:
  function poetry_with_up_to_date_lockfile (line 51) | def poetry_with_up_to_date_lockfile(
  function poetry_with_path_dependency (line 64) | def poetry_with_path_dependency(
  function tester (line 78) | def tester(command_tester_factory: CommandTesterFactory) -> CommandTester:
  function repo_add_default_packages (line 83) | def repo_add_default_packages(repo: TestRepository) -> None:
  function test_add_no_constraint (line 119) | def test_add_no_constraint(app: PoetryTestApplication, tester: CommandTe...
  function test_add_local_version (line 147) | def test_add_local_version(app: PoetryTestApplication, tester: CommandTe...
  function test_add_non_package_mode_no_name (line 174) | def test_add_non_package_mode_no_name(
  function test_add_replace_by_constraint (line 194) | def test_add_replace_by_constraint(
  function test_add_no_constraint_editable_error (line 242) | def test_add_no_constraint_editable_error(
  function test_add_equal_constraint (line 265) | def test_add_equal_constraint(tester: CommandTester) -> None:
  function test_add_greater_constraint (line 285) | def test_add_greater_constraint(tester: CommandTester) -> None:
  function test_add_constraint_with_extras (line 307) | def test_add_constraint_with_extras(
  function test_add_constraint_dependencies (line 331) | def test_add_constraint_dependencies(tester: CommandTester) -> None:
  function test_add_with_markers (line 352) | def test_add_with_markers(app: PoetryTestApplication, tester: CommandTes...
  function test_add_git_constraint (line 364) | def test_add_git_constraint(
  function test_add_git_constraint_with_poetry (line 399) | def test_add_git_constraint_with_poetry(
  function test_add_git_constraint_with_extras (line 426) | def test_add_git_constraint_with_extras(
  function test_add_git_constraint_with_subdirectory (line 475) | def test_add_git_constraint_with_subdirectory(
  function test_add_git_ssh_constraint (line 513) | def test_add_git_ssh_constraint(
  function test_add_directory_constraint (line 561) | def test_add_directory_constraint(
  function test_add_to_new_group_keeps_existing_group (line 599) | def test_add_to_new_group_keeps_existing_group(
  function test_add_to_existing_group (line 637) | def test_add_to_existing_group(
  function test_add_to_group_with_latest_overwrite_existing (line 692) | def test_add_to_group_with_latest_overwrite_existing(
  function test_add_multiple_dependencies_to_dependency_group (line 732) | def test_add_multiple_dependencies_to_dependency_group(
  function test_add_to_group_uses_existing_legacy_group (line 756) | def test_add_to_group_uses_existing_legacy_group(
  function test_add_group_directory_constraint_mix_pep735 (line 794) | def test_add_group_directory_constraint_mix_pep735(
  function test_add_directory_with_poetry (line 833) | def test_add_directory_with_poetry(
  function test_add_file_constraint_wheel (line 863) | def test_add_file_constraint_wheel(
  function test_add_file_constraint_sdist (line 899) | def test_add_file_constraint_sdist(
  function test_add_constraint_with_extras_option (line 932) | def test_add_constraint_with_extras_option(
  function test_add_url_constraint_wheel (line 966) | def test_add_url_constraint_wheel(
  function test_add_url_constraint_wheel_with_extras (line 1006) | def test_add_url_constraint_wheel_with_extras(
  function test_add_constraint_with_optional (line 1069) | def test_add_constraint_with_optional(
  function test_add_constraint_with_optional_not_main_group (line 1136) | def test_add_constraint_with_optional_not_main_group(
  function test_add_constraint_with_python (line 1145) | def test_add_constraint_with_python(
  function test_add_constraint_with_platform (line 1174) | def test_add_constraint_with_platform(
  function test_add_constraint_with_source (line 1211) | def test_add_constraint_with_source(
  function test_add_constraint_with_source_that_does_not_exist (line 1259) | def test_add_constraint_with_source_that_does_not_exist(tester: CommandT...
  function test_add_constraint_not_found_with_source (line 1266) | def test_add_constraint_not_found_with_source(
  function test_add_to_section_that_does_not_exist_yet (line 1286) | def test_add_to_section_that_does_not_exist_yet(
  function test_add_creating_poetry_section_does_not_remove_existing_tools (line 1330) | def test_add_creating_poetry_section_does_not_remove_existing_tools(
  function test_add_to_dev_group (line 1357) | def test_add_to_dev_group(app: PoetryTestApplication, tester: CommandTes...
  function test_add_should_not_select_prereleases (line 1385) | def test_add_should_not_select_prereleases(
  function test_add_should_skip_when_adding_existing_package_with_no_constraint (line 1415) | def test_add_should_skip_when_adding_existing_package_with_no_constraint(
  function test_add_should_skip_when_adding_canonicalized_existing_package_with_no_constraint (line 1447) | def test_add_should_skip_when_adding_canonicalized_existing_package_with...
  function test_add_should_fail_circular_dependency (line 1478) | def test_add_should_fail_circular_dependency(
  function test_add_latest_should_strip_out_invalid_pep508_path (line 1490) | def test_add_latest_should_strip_out_invalid_pep508_path(
  function test_add_latest_should_not_create_duplicate_keys (line 1506) | def test_add_latest_should_not_create_duplicate_keys(
  function test_add_should_work_when_adding_existing_package_with_latest_constraint (line 1560) | def test_add_should_work_when_adding_existing_package_with_latest_constr...
  function test_add_chooses_prerelease_if_only_prereleases_are_available (line 1606) | def test_add_chooses_prerelease_if_only_prereleases_are_available(
  function test_add_prefers_stable_releases (line 1629) | def test_add_prefers_stable_releases(
  function test_add_with_lock (line 1653) | def test_add_with_lock(app: PoetryTestApplication, tester: CommandTester...
  function test_add_keyboard_interrupt_restore_content (line 1671) | def test_add_keyboard_interrupt_restore_content(
  function test_add_with_dry_run_keep_files_intact (line 1703) | def test_add_with_dry_run_keep_files_intact(
  function test_add_should_not_change_lock_file_when_dependency_installation_fail (line 1724) | def test_add_should_not_change_lock_file_when_dependency_installation_fail(
  function test_add_with_path_dependency_no_loopiness (line 1759) | def test_add_with_path_dependency_no_loopiness(
  function test_add_extras_are_parsed_and_included (line 1777) | def test_add_extras_are_parsed_and_included(
  function test_add_extras_only_accepts_one_package (line 1816) | def test_add_extras_only_accepts_one_package(
  function test_add_does_not_update_locked_dependencies (line 1837) | def test_add_does_not_update_locked_dependencies(
  function test_add_creates_dependencies_array_if_necessary (line 1874) | def test_add_creates_dependencies_array_if_necessary(
  function test_add_does_not_add_poetry_dependencies_if_not_necessary (line 1901) | def test_add_does_not_add_poetry_dependencies_if_not_necessary(
  function test_add_poetry_dependencies_if_necessary (line 1947) | def test_add_poetry_dependencies_if_necessary(

FILE: tests/console/commands/test_build.py
  function tmp_project_path (line 35) | def tmp_project_path(tmp_path: Path) -> Path:
  function tmp_poetry (line 40) | def tmp_poetry(tmp_project_path: Path, fixture_dir: FixtureDirGetter) ->...
  function tmp_tester (line 48) | def tmp_tester(
  function get_package_glob (line 54) | def get_package_glob(poetry: Poetry, local_version: str | None = None) -...
  function test_build_format_is_not_valid (line 63) | def test_build_format_is_not_valid(tmp_tester: CommandTester) -> None:
  function test_build_creates_packages_in_dist_directory_if_no_output_is_specified (line 69) | def test_build_creates_packages_in_dist_directory_if_no_output_is_specif...
  function test_build_with_local_version_label (line 81) | def test_build_with_local_version_label(
  function test_build_with_clean (line 98) | def test_build_with_clean(
  function test_build_with_clean_non_existing_output (line 111) | def test_build_with_clean_non_existing_output(
  function test_build_not_possible_in_non_package_mode (line 126) | def test_build_not_possible_in_non_package_mode(
  function test_build_with_multiple_readme_files (line 142) | def test_build_with_multiple_readme_files(
  function test_build_output_option (line 177) | def test_build_output_option(
  function test_build_relative_directory_src_layout (line 199) | def test_build_relative_directory_src_layout(
  function test_build_options_validate_formats (line 221) | def test_build_options_validate_formats() -> None:
  function test_prepare_config_settings (line 226) | def test_prepare_config_settings() -> None:
  function test_prepare_config_settings_raise_on_invalid_setting (line 240) | def test_prepare_config_settings_raise_on_invalid_setting() -> None:
  function test_prepare_formats (line 258) | def test_prepare_formats(fmt: str | None, expected_formats: list[str]) -...
  function test_requires_isolated_build (line 276) | def test_requires_isolated_build(
  function test_build_handler_build_isolated (line 288) | def test_build_handler_build_isolated(

FILE: tests/console/commands/test_check.py
  function poetry_simple_project (line 26) | def poetry_simple_project(set_project_context: SetProjectContext) -> Ite...
  function poetry_with_outdated_lockfile (line 32) | def poetry_with_outdated_lockfile(
  function poetry_with_up_to_date_lockfile (line 40) | def poetry_with_up_to_date_lockfile(
  function poetry_with_pypi_reference (line 48) | def poetry_with_pypi_reference(
  function poetry_with_invalid_pyproject (line 56) | def poetry_with_invalid_pyproject(
  function tester (line 64) | def tester(
  function test_check_valid (line 70) | def test_check_valid(tester: CommandTester) -> None:
  function test_check_valid_legacy (line 87) | def test_check_valid_legacy(
  function test_check_invalid_dep_name_same_as_project_name (line 143) | def test_check_invalid_dep_name_same_as_project_name(
  function test_check_invalid (line 162) | def test_check_invalid(
  function test_check_private (line 193) | def test_check_private(
  function test_check_non_package_mode (line 211) | def test_check_non_package_mode(
  function test_check_lock_missing (line 236) | def test_check_lock_missing(
  function test_check_lock_outdated (line 261) | def test_check_lock_outdated(
  function test_check_lock_up_to_date (line 286) | def test_check_lock_up_to_date(
  function test_check_does_not_error_on_pypi_reference (line 306) | def test_check_does_not_error_on_pypi_reference(
  function pyproject_with_readme_file (line 318) | def pyproject_with_readme_file(tmp_path: Path, request: pytest.FixtureRe...
  function test_check_readme_file_exists (line 349) | def test_check_readme_file_exists(
  function pyproject_with_empty_readme_file (line 379) | def pyproject_with_empty_readme_file(
  function test_check_project_readme_as_text (line 409) | def test_check_project_readme_as_text(
  function test_check_poetry_readme_multiple (line 434) | def test_check_poetry_readme_multiple(

FILE: tests/console/commands/test_config.py
  function tester (line 37) | def tester(command_tester_factory: CommandTesterFactory) -> CommandTester:
  function test_config_command_in_sync_with_config_class (line 41) | def test_config_command_in_sync_with_config_class() -> None:
  function test_show_config_with_local_config_file_empty (line 47) | def test_show_config_with_local_config_file_empty(
  function test_list_displays_default_value_if_not_set (line 59) | def test_list_displays_default_value_if_not_set(
  function test_list_displays_set_get_setting (line 92) | def test_list_displays_set_get_setting(
  function test_cannot_set_with_multiple_values (line 128) | def test_cannot_set_with_multiple_values(tester: CommandTester) -> None:
  function test_cannot_set_invalid_value (line 135) | def test_cannot_set_invalid_value(tester: CommandTester) -> None:
  function test_cannot_unset_with_value (line 142) | def test_cannot_unset_with_value(tester: CommandTester) -> None:
  function test_unset_setting (line 149) | def test_unset_setting(
  function test_unset_repo_setting (line 183) | def test_unset_repo_setting(
  function test_unset_value_not_exists (line 217) | def test_unset_value_not_exists(tester: CommandTester) -> None:
  function test_display_single_setting (line 231) | def test_display_single_setting(
  function test_display_single_local_setting (line 240) | def test_display_single_local_setting(
  function test_display_empty_repositories_setting (line 254) | def test_display_empty_repositories_setting(
  function test_unset_nonempty_repositories_section (line 275) | def test_unset_nonempty_repositories_section(
  function test_set_malformed_repositories_setting (line 286) | def test_set_malformed_repositories_setting(
  function test_display_undefined_setting (line 305) | def test_display_undefined_setting(
  function test_list_displays_set_get_local_setting (line 314) | def test_list_displays_set_get_local_setting(
  function test_list_must_not_display_sources_from_pyproject_toml (line 353) | def test_list_must_not_display_sources_from_pyproject_toml(
  function test_set_http_basic (line 396) | def test_set_http_basic(
  function test_unset_http_basic (line 408) | def test_unset_http_basic(
  function test_set_http_basic_unsuccessful_multiple_values (line 418) | def test_set_http_basic_unsuccessful_multiple_values(
  function test_set_pypi_token (line 427) | def test_set_pypi_token(
  function test_unset_pypi_token (line 436) | def test_unset_pypi_token(
  function test_set_pypi_token_unsuccessful_multiple_values (line 446) | def test_set_pypi_token_unsuccessful_multiple_values(
  function test_set_pypi_token_no_values (line 455) | def test_set_pypi_token_no_values(
  function test_set_client_cert (line 464) | def test_set_client_cert(
  function test_set_client_cert_unsuccessful_multiple_values (line 479) | def test_set_client_cert_unsuccessful_multiple_values(
  function test_set_cert (line 499) | def test_set_cert(
  function test_unset_cert (line 513) | def test_unset_cert(
  function test_config_installer_parallel (line 528) | def test_config_installer_parallel(
  function test_config_installer_binary_filter_config (line 570) | def test_config_installer_binary_filter_config(
  function test_config_solver_lazy_wheel (line 585) | def test_config_solver_lazy_wheel(
  function test_config_migrate (line 626) | def test_config_migrate(
  function test_config_migrate_local_config (line 655) | def test_config_migrate_local_config(tester: CommandTester, poetry: Poet...
  function test_config_migrate_local_config_should_raise_if_not_found (line 681) | def test_config_migrate_local_config_should_raise_if_not_found(
  function test_config_installer_build_config_settings (line 688) | def test_config_installer_build_config_settings(
  function test_config_installer_build_config_settings_bad_values (line 731) | def test_config_installer_build_config_settings_bad_values(
  function test_command_config_build_config_settings_get (line 746) | def test_command_config_build_config_settings_get(

FILE: tests/console/commands/test_init.py
  function source_dir (line 40) | def source_dir(tmp_path: Path) -> Iterator[Path]:
  function patches (line 50) | def patches(mocker: MockerFixture, source_dir: Path, repo: TestRepositor...
  function tester (line 59) | def tester(patches: None) -> CommandTester:
  function test_basic_interactive (line 64) | def test_basic_interactive(
  function test_noninteractive (line 71) | def test_noninteractive(
  function test_interactive_with_dependencies (line 108) | def test_interactive_with_dependencies(
  function test_interactive_with_dependencies_and_no_selection (line 170) | def test_interactive_with_dependencies_and_no_selection(
  function test_empty_license (line 211) | def test_empty_license(tester: CommandTester) -> None:
  function test_interactive_with_git_dependencies (line 239) | def test_interactive_with_git_dependencies(
  function _generate_choice_list_packages (line 312) | def _generate_choice_list_packages(request: FixtureRequest) -> list[Pack...
  function test_generate_choice_list (line 318) | def test_generate_choice_list(
  function test_interactive_with_git_dependencies_with_reference (line 334) | def test_interactive_with_git_dependencies_with_reference(
  function test_interactive_with_git_dependencies_and_other_name (line 382) | def test_interactive_with_git_dependencies_and_other_name(
  function test_interactive_with_directory_dependency (line 430) | def test_interactive_with_directory_dependency(
  function test_interactive_with_directory_dependency_and_other_name (line 484) | def test_interactive_with_directory_dependency_and_other_name(
  function test_interactive_with_file_dependency (line 539) | def test_interactive_with_file_dependency(
  function test_interactive_with_wrong_dependency_inputs (line 594) | def test_interactive_with_wrong_dependency_inputs(
  function test_python_option (line 642) | def test_python_option(tester: CommandTester) -> None:
  function test_predefined_dependency (line 670) | def test_predefined_dependency(tester: CommandTester, repo: TestReposito...
  function test_predefined_and_interactive_dependencies (line 704) | def test_predefined_and_interactive_dependencies(
  function test_predefined_dev_dependency (line 746) | def test_predefined_dev_dependency(tester: CommandTester, repo: TestRepo...
  function test_predefined_and_interactive_dev_dependencies (line 785) | def test_predefined_and_interactive_dev_dependencies(
  function test_predefined_all_options (line 833) | def test_predefined_all_options(tester: CommandTester, repo: TestReposit...
  function test_add_package_with_extras_and_whitespace (line 880) | def test_add_package_with_extras_and_whitespace(tester: CommandTester) -...
  function test_init_existing_pyproject_simple (line 891) | def test_init_existing_pyproject_simple(
  function test_init_existing_pyproject_consistent_linesep (line 911) | def test_init_existing_pyproject_consistent_linesep(
  function test_init_non_interactive_existing_pyproject_add_dependency (line 932) | def test_init_non_interactive_existing_pyproject_add_dependency(
  function test_init_existing_pyproject_with_build_system_fails (line 973) | def test_init_existing_pyproject_with_build_system_fails(
  function test_validate_package_valid (line 1005) | def test_validate_package_valid(name: str | None) -> None:
  function test_validate_package_invalid (line 1012) | def test_validate_package_invalid(name: str) -> None:
  function test_validate_author (line 1024) | def test_validate_author(author: str) -> None:
  function test_package_include (line 1043) | def test_package_include(
  function test_respect_use_poetry_python_on_init (line 1091) | def test_respect_use_poetry_python_on_init(
  function test_get_pool (line 1116) | def test_get_pool(mocker: MockerFixture, source_dir: Path) -> None:
  function test_init_does_not_create_project_structure_in_empty_directory (line 1130) | def test_init_does_not_create_project_structure_in_empty_directory(
  function test_init_does_not_create_project_structure_in_non_empty_directory (line 1158) | def test_init_does_not_create_project_structure_in_non_empty_directory(
  function test_init_adds_readme_key_when_readme_exists (line 1194) | def test_init_adds_readme_key_when_readme_exists(
  function test_init_does_not_add_readme_key_when_readme_missing (line 1207) | def test_init_does_not_add_readme_key_when_readme_missing(

FILE: tests/console/commands/test_install.py
  function command (line 67) | def command() -> str:
  function poetry (line 72) | def poetry(project_factory: ProjectFactory) -> Poetry:
  function tester (line 77) | def tester(
  function _project_factory (line 83) | def _project_factory(
  function test_group_options_are_passed_to_the_installer (line 121) | def test_group_options_are_passed_to_the_installer(
  function test_sync_option_is_passed_to_the_installer (line 163) | def test_sync_option_is_passed_to_the_installer(
  function test_compile_option_is_passed_to_the_installer (line 185) | def test_compile_option_is_passed_to_the_installer(
  function test_no_directory_is_passed_to_installer (line 204) | def test_no_directory_is_passed_to_installer(
  function test_no_all_extras_doesnt_populate_installer (line 222) | def test_no_all_extras_doesnt_populate_installer(
  function test_all_extras_populates_installer (line 236) | def test_all_extras_populates_installer(
  function test_extras_are_parsed_and_populate_installer (line 250) | def test_extras_are_parsed_and_populate_installer(
  function test_install_ensures_project_plugins (line 269) | def test_install_ensures_project_plugins(
  function test_extras_conflicts_all_extras (line 283) | def test_extras_conflicts_all_extras(
  function test_only_root_conflicts_with_without_only_all_groups (line 312) | def test_only_root_conflicts_with_without_only_all_groups(
  function test_all_groups_conflicts_with_only_with_without (line 339) | def test_all_groups_conflicts_with_only_with_without(
  function test_invalid_groups_with_without_only (line 371) | def test_invalid_groups_with_without_only(
  function test_dry_run_populates_installer (line 399) | def test_dry_run_populates_installer(
  function test_dry_run_does_not_build (line 414) | def test_dry_run_does_not_build(tester: CommandTester, mocker: MockerFix...
  function test_install_logs_output (line 426) | def test_install_logs_output(tester: CommandTester, mocker: MockerFixtur...
  function test_install_logs_output_decorated (line 440) | def test_install_logs_output_decorated(
  function test_install_warning_corrupt_root (line 464) | def test_install_warning_corrupt_root(
  function test_install_path_dependency_does_not_exist (line 503) | def test_install_path_dependency_does_not_exist(
  function test_install_extra_path_dependency_does_not_exist (line 523) | def test_install_extra_path_dependency_does_not_exist(
  function test_install_missing_directory_dependency_with_no_directory (line 543) | def test_install_missing_directory_dependency_with_no_directory(
  function test_non_package_mode_does_not_try_to_install_root (line 563) | def test_non_package_mode_does_not_try_to_install_root(

FILE: tests/console/commands/test_lock.py
  function source_dir (line 25) | def source_dir(tmp_path: Path) -> Path:
  function tester (line 30) | def tester(command_tester_factory: CommandTesterFactory) -> CommandTester:
  function _project_factory (line 34) | def _project_factory(
  function poetry_with_outdated_lockfile (line 51) | def poetry_with_outdated_lockfile(
  function poetry_with_up_to_date_lockfile (line 58) | def poetry_with_up_to_date_lockfile(
  function poetry_with_old_lockfile (line 65) | def poetry_with_old_lockfile(
  function poetry_with_nested_path_deps_old_lockfile (line 72) | def poetry_with_nested_path_deps_old_lockfile(
  function poetry_with_incompatible_lockfile (line 79) | def poetry_with_incompatible_lockfile(
  function poetry_with_invalid_lockfile (line 86) | def poetry_with_invalid_lockfile(
  function test_lock_does_not_update_if_not_necessary (line 92) | def test_lock_does_not_update_if_not_necessary(
  function test_lock_always_updates_path_dependencies (line 138) | def test_lock_always_updates_path_dependencies(
  function test_lock_path_dependency_does_not_exist (line 173) | def test_lock_path_dependency_does_not_exist(
  function test_lock_path_dependency_deleted_from_pyproject (line 201) | def test_lock_path_dependency_deleted_from_pyproject(
  function test_lock_with_incompatible_lockfile (line 224) | def test_lock_with_incompatible_lockfile(
  function test_lock_with_invalid_lockfile (line 255) | def test_lock_with_invalid_lockfile(

FILE: tests/console/commands/test_new.py
  function tester (line 27) | def tester(command_tester_factory: CommandTesterFactory) -> CommandTester:
  function verify_project_directory (line 31) | def verify_project_directory(
  function test_command_new (line 163) | def test_command_new(
  function test_command_new_with_readme (line 179) | def test_command_new_with_readme(
  function test_respect_use_poetry_python_on_new (line 209) | def test_respect_use_poetry_python_on_new(
  function test_basic_interactive_new (line 235) | def test_basic_interactive_new(
  function test_new_creates_structure_in_empty_existing_directory (line 244) | def test_new_creates_structure_in_empty_existing_directory(
  function test_new_with_dot_in_empty_directory (line 263) | def test_new_with_dot_in_empty_directory(tester: CommandTester, tmp_path...

FILE: tests/console/commands/test_publish.py
  function test_publish_not_possible_in_non_package_mode (line 26) | def test_publish_not_possible_in_non_package_mode(
  function test_publish_returns_non_zero_code_for_upload_errors (line 42) | def test_publish_returns_non_zero_code_for_upload_errors(
  function test_publish_returns_non_zero_code_for_connection_errors (line 65) | def test_publish_returns_non_zero_code_for_connection_errors(
  function test_publish_with_cert (line 84) | def test_publish_with_cert(
  function test_publish_with_client_cert (line 96) | def test_publish_with_client_cert(
  function test_publish_dry_run_skip_existing (line 115) | def test_publish_dry_run_skip_existing(
  function test_skip_existing_output (line 132) | def test_skip_existing_output(
  function test_publish_dist_dir_option (line 148) | def test_publish_dist_dir_option(
  function test_publish_dist_dir_and_build_options (line 183) | def test_publish_dist_dir_and_build_options(

FILE: tests/console/commands/test_remove.py
  function poetry_with_up_to_date_lockfile (line 35) | def poetry_with_up_to_date_lockfile(
  function tester (line 55) | def tester(command_tester_factory: CommandTesterFactory) -> CommandTester:
  function test_remove_from_project_and_poetry (line 59) | def test_remove_from_project_and_poetry(
  function test_remove_from_pep735_group_and_poetry_group (line 134) | def test_remove_from_pep735_group_and_poetry_group(
  function test_remove_without_specific_group_removes_from_all_groups (line 213) | def test_remove_without_specific_group_removes_from_all_groups(
  function test_remove_with_specific_group_removes_from_specific_groups (line 299) | def test_remove_with_specific_group_removes_from_specific_groups(
  function test_remove_does_not_keep_empty_groups (line 384) | def test_remove_does_not_keep_empty_groups(
  function test_remove_canonicalized_named_removes_dependency_correctly (line 454) | def test_remove_canonicalized_named_removes_dependency_correctly(
  function test_remove_package_does_not_exist (line 540) | def test_remove_package_does_not_exist(
  function test_remove_package_no_dependencies (line 557) | def test_remove_package_no_dependencies(
  function test_remove_command_should_not_write_changes_upon_installer_errors (line 578) | def test_remove_command_should_not_write_changes_upon_installer_errors(
  function test_remove_with_dry_run_keep_files_intact (line 601) | def test_remove_with_dry_run_keep_files_intact(
  function test_remove_performs_uninstall_op (line 624) | def test_remove_performs_uninstall_op(
  function test_remove_with_lock_does_not_perform_uninstall_op (line 653) | def test_remove_with_lock_does_not_perform_uninstall_op(
  function test_remove_from_nested_pep735_group_and_poetry_group (line 676) | def test_remove_from_nested_pep735_group_and_poetry_group(
  function test_remove_group_cleans_up_include_group_references (line 781) | def test_remove_group_cleans_up_include_group_references(

FILE: tests/console/commands/test_run.py
  function tester (line 26) | def tester(command_tester_factory: CommandTesterFactory) -> CommandTester:
  function patches (line 31) | def patches(mocker: MockerFixture, env: MockEnv) -> None:
  function poetry_with_scripts (line 36) | def poetry_with_scripts(
  function test_run_passes_all_args (line 48) | def test_run_passes_all_args(app_tester: ApplicationTester, env: MockEnv...
  function test_run_is_not_eager (line 53) | def test_run_is_not_eager(app_tester: ApplicationTester, env: MockEnv) -...
  function test_run_passes_args_after_run_before_command (line 62) | def test_run_passes_args_after_run_before_command(
  function test_run_passes_args_after_run_before_command_name_conflict (line 82) | def test_run_passes_args_after_run_before_command_name_conflict(
  function test_run_keeps_options_passed_before_command_args_combined_short_opts (line 100) | def test_run_keeps_options_passed_before_command_args_combined_short_opts(
  function test_run_keeps_options_passed_before_command_args (line 112) | def test_run_keeps_options_passed_before_command_args(
  function test_run_keeps_options_passed_before_command (line 124) | def test_run_keeps_options_passed_before_command(
  function test_run_has_helpful_error_when_command_not_found (line 136) | def test_run_has_helpful_error_when_command_not_found(
  function test_run_console_scripts_of_editable_dependencies_on_windows (line 165) | def test_run_console_scripts_of_editable_dependencies_on_windows(
  function test_run_script_exit_code (line 196) | def test_run_script_exit_code(
  function test_run_script_sys_argv0 (line 222) | def test_run_script_sys_argv0(

FILE: tests/console/commands/test_search.py
  function tester (line 48) | def tester(command_tester_factory: CommandTesterFactory) -> CommandTester:
  function clean_output (line 52) | def clean_output(text: str) -> str:
  function test_search (line 56) | def test_search(
  function test_search_empty_results (line 69) | def test_search_empty_results(
  function test_search_with_legacy_repository (line 83) | def test_search_with_legacy_repository(
  function test_search_only_legacy_repository (line 105) | def test_search_only_legacy_repository(
  function test_search_multiple_queries (line 126) | def test_search_multiple_queries(

FILE: tests/console/commands/test_show.py
  function tester (line 33) | def tester(command_tester_factory: CommandTesterFactory) -> CommandTester:
  function output_format_parametrize (line 40) | def output_format_parametrize(func: F) -> F:
  function test_show_basic_with_installed_packages (line 46) | def test_show_basic_with_installed_packages(
  function _configure_project_with_groups (line 146) | def _configure_project_with_groups(poetry: Poetry, installed: Repository...
  function test_show_basic_with_group_options (line 430) | def test_show_basic_with_group_options(
  function test_show_basic_with_installed_packages_single (line 448) | def test_show_basic_with_installed_packages_single(
  function test_show_basic_with_installed_packages_single_canonicalized (line 502) | def test_show_basic_with_installed_packages_single_canonicalized(
  function test_show_basic_with_not_installed_packages_non_decorated (line 560) | def test_show_basic_with_not_installed_packages_non_decorated(
  function test_show_basic_with_not_installed_packages_decorated (line 636) | def test_show_basic_with_not_installed_packages_decorated(
  function test_show_latest_non_decorated (line 693) | def test_show_latest_non_decorated(
  function test_show_latest_decorated (line 782) | def test_show_latest_decorated(
  function test_show_outdated (line 854) | def test_show_outdated(
  function test_show_outdated_with_only_up_to_date_packages (line 933) | def test_show_outdated_with_only_up_to_date_packages(
  function test_show_outdated_has_prerelease_but_not_allowed (line 981) | def test_show_outdated_has_prerelease_but_not_allowed(
  function test_show_outdated_has_prerelease_and_allowed (line 1065) | def test_show_outdated_has_prerelease_and_allowed(
  function test_show_outdated_formatting (line 1153) | def test_show_outdated_formatting(
  function test_show_outdated_local_dependencies (line 1252) | def test_show_outdated_local_dependencies(
  function test_show_outdated_git_dev_dependency (line 1387) | def test_show_outdated_git_dev_dependency(
  function test_show_outdated_no_dev_git_dev_dependency (line 1505) | def test_show_outdated_no_dev_git_dev_dependency(
  function test_show_hides_incompatible_package (line 1613) | def test_show_hides_incompatible_package(
  function test_show_all_shows_incompatible_package (line 1686) | def test_show_all_shows_incompatible_package(
  function test_show_hides_incompatible_package_with_duplicate (line 1762) | def test_show_hides_incompatible_package_with_duplicate(
  function test_show_all_shows_all_duplicates (line 1824) | def test_show_all_shows_all_duplicates(
  function test_show_tree (line 1892) | def test_show_tree(
  function test_show_tree_no_dev (line 1945) | def test_show_tree_no_dev(
  function test_show_tree_why_package (line 2012) | def test_show_tree_why_package(
  function test_show_tree_why (line 2072) | def test_show_tree_why(
  function test_show_why (line 2132) | def test_show_why(
  function test_show_required_by_deps (line 2226) | def test_show_required_by_deps(
  function test_show_entire_description_truncate (line 2316) | def test_show_entire_description_truncate(
  function test_show_errors_without_lock_file (line 2375) | def test_show_errors_without_lock_file(tester: CommandTester, poetry: Po...
  function test_show_dependency_installed_from_git_in_dev (line 2386) | def test_show_dependency_installed_from_git_in_dev(
  function test_url_dependency_is_not_outdated_by_repository_package (line 2461) | def test_url_dependency_is_not_outdated_by_repository_package(
  function test_show_top_level (line 2523) | def test_show_top_level(
  function test_show_top_level_with_explicitly_defined_dependency (line 2590) | def test_show_top_level_with_explicitly_defined_dependency(
  function test_show_top_level_with_extras (line 2666) | def test_show_top_level_with_extras(
  function test_show_error_top_level_with_tree (line 2749) | def test_show_error_top_level_with_tree(tester: CommandTester) -> None:
  function test_show_error_top_level_with_single_package (line 2756) | def test_show_error_top_level_with_single_package(tester: CommandTester)...
  function test_show_outdated_missing_directory_dependency (line 2772) | def test_show_outdated_missing_directory_dependency(
  function test_show_error_invalid_output_format (line 2795) | def test_show_error_invalid_output_format(
  function test_show_error_invalid_output_format_with_tree_option (line 2804) | def test_show_error_invalid_output_format_with_tree_option(

FILE: tests/console/commands/test_sync.py
  function command (line 22) | def command() -> str:
  function test_sync_option_is_passed_to_the_installer (line 27) | def test_sync_option_is_passed_to_the_installer() -> None:
  function test_sync_option_not_available (line 31) | def test_sync_option_not_available(tester: CommandTester) -> None:
  function test_synced_installer (line 36) | def test_synced_installer(tester: CommandTester, mocker: MockerFixture) ...

FILE: tests/console/commands/test_update.py
  function poetry_with_outdated_lockfile (line 22) | def poetry_with_outdated_lockfile(
  function test_update_with_dry_run_keep_files_intact (line 41) | def test_update_with_dry_run_keep_files_intact(
  function test_update_prints_operations (line 69) | def test_update_prints_operations(
  function test_update_sync_option_is_passed_to_the_installer (line 88) | def test_update_sync_option_is_passed_to_the_installer(
  function test_update_with_valid_package_name (line 105) | def test_update_with_valid_package_name(
  function test_update_with_non_normalized_package_name (line 126) | def test_update_with_non_normalized_package_name(
  function test_update_with_invalid_package_name_shows_error (line 148) | def test_update_with_invalid_package_name_shows_error(
  function test_update_with_multiple_invalid_package_names_shows_error (line 166) | def test_update_with_multiple_invalid_package_names_shows_error(
  function test_update_with_version_specifier_raises_error (line 196) | def test_update_with_version_specifier_raises_error(

FILE: tests/console/commands/test_version.py
  function command (line 20) | def command() -> VersionCommand:
  function tester (line 25) | def tester(command_tester_factory: CommandTesterFactory) -> CommandTester:
  function poetry_with_underscore (line 30) | def poetry_with_underscore(
  function test_increment_version (line 67) | def test_increment_version(
  function test_next_phase_version (line 86) | def test_next_phase_version(
  function test_version_show (line 92) | def test_version_show(tester: CommandTester) -> None:
  function test_version_show_with_underscore (line 97) | def test_version_show_with_underscore(
  function test_short_version_show (line 105) | def test_short_version_show(tester: CommandTester) -> None:
  function test_version_update (line 110) | def test_version_update(tester: CommandTester) -> None:
  function test_short_version_update (line 115) | def test_short_version_update(tester: CommandTester) -> None:
  function test_phase_version_update (line 120) | def test_phase_version_update(tester: CommandTester) -> None:
  function test_dry_run (line 127) | def test_dry_run(tester: CommandTester) -> None:

FILE: tests/console/conftest.py
  function env (line 38) | def env(tmp_path: Path) -> MockEnv:
  function setup (line 45) | def setup(
  function project_directory (line 84) | def project_directory() -> str:
  function poetry (line 89) | def poetry(
  function app (line 98) | def app(poetry: Poetry) -> PoetryTestApplication:
  function app_tester (line 106) | def app_tester(app: PoetryTestApplication) -> ApplicationTester:
  function executor (line 111) | def executor(poetry: Poetry, config: Config, env: MockEnv) -> TestExecutor:
  function command_tester_factory (line 116) | def command_tester_factory(
  function do_lock (line 163) | def do_lock(command_tester_factory: CommandTesterFactory, poetry: Poetry...

FILE: tests/console/logging/formatters/test_builder_formatter.py
  function test_builder_log_formatter (line 27) | def test_builder_log_formatter(input_msg: str, expected_output: str) -> ...

FILE: tests/console/logging/test_io_formatter.py
  function test_format (line 27) | def test_format(
  function test_log_prefix (line 48) | def test_log_prefix(
  function test_path_to_package (line 67) | def test_path_to_package(

FILE: tests/console/test_application.py
  class FooCommand (line 36) | class FooCommand(Command):
    method handle (line 41) | def handle(self) -> int:
  class AddCommandPlugin (line 47) | class AddCommandPlugin(ApplicationPlugin):
  function with_add_command_plugin (line 52) | def with_add_command_plugin(mocker: MockerFixture) -> None:
  function test_application_with_plugins (line 56) | def test_application_with_plugins(with_add_command_plugin: None) -> None:
  function test_application_with_plugins_disabled (line 66) | def test_application_with_plugins_disabled(with_add_command_plugin: None...
  function test_application_execute_plugin_command (line 76) | def test_application_execute_plugin_command(with_add_command_plugin: Non...
  function test_application_execute_plugin_command_with_plugins_disabled (line 86) | def test_application_execute_plugin_command_with_plugins_disabled(
  function test_application_project_plugins (line 101) | def test_application_project_plugins(
  function test_application_verify_source_cache_flag (line 137) | def test_application_verify_source_cache_flag(
  function test_application_verify_cache_flag_at_install (line 161) | def test_application_verify_cache_flag_at_install(
  function test_application_input_configuration_and_sorting (line 234) | def test_application_input_configuration_and_sorting(

FILE: tests/console/test_application_command_not_found.py
  function tester (line 17) | def tester() -> ApplicationTester:
  function test_application_command_not_found_messages (line 29) | def test_application_command_not_found_messages(
  function test_application_namespaced_command_not_found_messages (line 52) | def test_application_namespaced_command_not_found_messages(

FILE: tests/console/test_application_global_options.py
  class CheckProjectPathCommand (line 34) | class CheckProjectPathCommand(Command):
    method handle (line 39) | def handle(self) -> int:
  class EarlyPoetryAccessPlugin (line 48) | class EarlyPoetryAccessPlugin(ApplicationPlugin):
    method activate (line 51) | def activate(self, application: Application) -> None:
  function with_early_poetry_access_plugin (line 63) | def with_early_poetry_access_plugin(mocker: MockerFixture) -> None:
  function project_source_directory (line 68) | def project_source_directory(fixture_copier: FixtureCopier) -> Path:
  function relative_project_source_directory (line 73) | def relative_project_source_directory(project_source_directory: Path) ->...
  function tester (line 87) | def tester() -> ApplicationTester:
  function with_mocked_version_command (line 92) | def with_mocked_version_command(mocker: MockerFixture) -> None:
  function test_application_global_option_ensure_error_when_context_invalid (line 106) | def test_application_global_option_ensure_error_when_context_invalid(
  function test_application_global_option_position_does_not_matter (line 126) | def test_application_global_option_position_does_not_matter(
  function test_application_global_option_context_is_validated (line 157) | def test_application_global_option_context_is_validated(
  function test_application_with_context_parameters (line 177) | def test_application_with_context_parameters(
  function test_application_with_relative_project_parameter (line 200) | def test_application_with_relative_project_parameter(
  function test_application_with_relative_directory_parameter_and_early_poetry_access_plugin (line 229) | def test_application_with_relative_directory_parameter_and_early_poetry_...
  function test_application_io_options_are_set (line 255) | def test_application_io_options_are_set(

FILE: tests/console/test_application_removed_commands.py
  function tester (line 18) | def tester() -> ApplicationTester:
  function test_application_removed_command_default_message (line 22) | def test_application_removed_command_default_message(
  function test_application_removed_command_messages (line 39) | def test_application_removed_command_messages(

FILE: tests/console/test_exceptions_console_message.py
  function test_stripped_property (line 16) | def test_stripped_property(text: str, expected_stripped: str) -> None:
  function test_wrap (line 30) | def test_wrap(text: str, tag: str, expected: str) -> None:
  function test_indent (line 45) | def test_indent(text: str, indent: str, expected: str) -> None:
  function test_make_section (line 65) | def test_make_section(text: str, title: str, indent: str, expected: str)...

FILE: tests/console/test_exections_poetry_runtime_error.py
  function test_poetry_runtime_error_init (line 24) | def test_poetry_runtime_error_init(
  function test_poetry_runtime_error_get_text (line 80) | def test_poetry_runtime_error_get_text(
  function test_poetry_runtime_error_create (line 128) | def test_poetry_runtime_error_create(
  function test_poetry_runtime_error_append (line 144) | def test_poetry_runtime_error_append() -> None:

FILE: tests/fixtures/excluded_subpackage/example/test/excluded.py
  function test_version (line 6) | def test_version():

FILE: tests/fixtures/extended_project/build.py
  function build (line 7) | def build(setup_kwargs: dict[str, Any]):

FILE: tests/fixtures/extended_with_no_setup/build.py
  function build (line 14) | def build():

FILE: tests/fixtures/extended_with_no_setup/extended/extended.c
  function PyObject (line 4) | static PyObject *hello(PyObject *self) {
  type PyModuleDef (line 20) | struct PyModuleDef

FILE: tests/fixtures/git/github.com/demo/no-version/setup.py
  function read_version (line 9) | def read_version():

FILE: tests/fixtures/scripts/scripts/check_argv0.py
  function main (line 8) | def main() -> int:

FILE: tests/fixtures/scripts/scripts/exit_code.py
  function main (line 4) | def main() -> None:

FILE: tests/fixtures/scripts/scripts/return_code.py
  function main (line 4) | def main() -> int:

FILE: tests/helpers.py
  function get_package (line 57) | def get_package(
  function get_dependency (line 63) | def get_dependency(
  function copy_path (line 82) | def copy_path(source: Path, dest: Path) -> None:
  class MockDulwichRepo (line 94) | class MockDulwichRepo:
    method __init__ (line 95) | def __init__(self, root: Path | str, **__: Any) -> None:
    method head (line 98) | def head(self) -> bytes:
  function mock_clone (line 102) | def mock_clone(
  class TestExecutor (line 128) | class TestExecutor(Executor):
    method __init__ (line 132) | def __init__(self, *args: Any, **kwargs: Any) -> None:
    method installations (line 140) | def installations(self) -> list[Package]:
    method updates (line 144) | def updates(self) -> list[Package]:
    method removals (line 148) | def removals(self) -> list[Package]:
    method _do_execute_operation (line 151) | def _do_execute_operation(self, operation: Operation) -> int:
    method _execute_install (line 159) | def _execute_install(self, operation: Operation) -> int:
    method _execute_update (line 162) | def _execute_update(self, operation: Operation) -> int:
    method _execute_remove (line 165) | def _execute_remove(self, operation: Operation) -> int:
  class PoetryTestApplication (line 169) | class PoetryTestApplication(Application):
    method __init__ (line 170) | def __init__(self, poetry: Poetry) -> None:
    method reset_poetry (line 174) | def reset_poetry(self) -> None:
  class TestLocker (line 185) | class TestLocker(Locker):
    method __init__ (line 189) | def __init__(self, lock: Path, pyproject_data: dict[str, Any]) -> None:
    method write (line 194) | def write(self, write: bool = True) -> None:
    method is_locked (line 197) | def is_locked(self) -> bool:
    method locked (line 200) | def locked(self, is_locked: bool = True) -> TestLocker:
    method mock_lock_data (line 205) | def mock_lock_data(self, data: dict[str, Any]) -> None:
    method is_fresh (line 210) | def is_fresh(self) -> bool:
    method _write_lock_data (line 213) | def _write_lock_data(self, data: TOMLDocument) -> None:
  class TestRepository (line 222) | class TestRepository(Repository):
    method find_packages (line 223) | def find_packages(self, dependency: Dependency) -> list[Package]:
    method find_links_for_package (line 230) | def find_links_for_package(self, package: Package) -> list[Link]:
  function isolated_environment (line 240) | def isolated_environment(
  function make_entry_point_from_plugin (line 257) | def make_entry_point_from_plugin(
  function mock_metadata_entry_points (line 274) | def mock_metadata_entry_points(
  function flatten_dict (line 292) | def flatten_dict(obj: Mapping[str, Any], delimiter: str = ".") -> Mappin...
  function http_setup_redirect (line 322) | def http_setup_redirect(
  function switch_working_directory (line 343) | def switch_working_directory(path: Path, remove: bool = False) -> Iterat...
  function with_working_directory (line 357) | def with_working_directory(source: Path, target: Path | None = None) -> ...
  function set_keyring_backend (line 368) | def set_keyring_backend(backend: KeyringBackend) -> None:
  function pbs_installer_supported_arch (line 374) | def pbs_installer_supported_arch(architecture: str) -> bool:

FILE: tests/inspection/test_info.py
  function demo_sdist (line 35) | def demo_sdist(fixture_dir: FixtureDirGetter) -> Path:
  function demo_wheel (line 40) | def demo_wheel(fixture_dir: FixtureDirGetter) -> Path:
  function demo_wheel_metadata (line 45) | def demo_wheel_metadata(demo_wheel: Path) -> RawMetadata:
  function source_dir (line 52) | def source_dir(tmp_path: Path) -> Path:
  function demo_setup (line 59) | def demo_setup(source_dir: Path) -> Path:
  function demo_setup_cfg (line 72) | def demo_setup_cfg(source_dir: Path) -> Path:
  function demo_setup_complex (line 90) | def demo_setup_complex(source_dir: Path) -> Path:
  function demo_setup_complex_pep517_legacy (line 103) | def demo_setup_complex_pep517_legacy(demo_setup_complex: Path) -> Path:
  function demo_setup_complex_calls_script (line 112) | def demo_setup_complex_calls_script(
  function use_project_context (line 145) | def use_project_context(set_project_context: SetProjectContext) -> Itera...
  function demo_check_info (line 150) | def demo_check_info(info: PackageInfo, requires_dist: set[str] | None = ...
  function test_info_from_sdist (line 184) | def test_info_from_sdist(demo_sdist: Path) -> None:
  function test_info_from_sdist_no_pkg_info (line 191) | def test_info_from_sdist_no_pkg_info(fixture_dir: FixtureDirGetter) -> N...
  function test_info_from_wheel (line 199) | def test_info_from_wheel(demo_wheel: Path) -> None:
  function test_info_from_wheel_metadata_versions (line 207) | def test_info_from_wheel_metadata_versions(
  function test_info_from_wheel_metadata_version_unknown (line 225) | def test_info_from_wheel_metadata_version_unknown(
  function test_info_from_wheel_metadata (line 239) | def test_info_from_wheel_metadata(demo_wheel_metadata: RawMetadata) -> N...
  function test_info_from_wheel_metadata_incomplete (line 247) | def test_info_from_wheel_metadata_incomplete() -> None:
  function test_info_from_bdist (line 261) | def test_info_from_bdist(demo_wheel: Path) -> None:
  function test_info_from_poetry_directory (line 268) | def test_info_from_poetry_directory(fixture_dir: FixtureDirGetter) -> None:
  function test_info_from_poetry_directory_fallback_on_poetry_create_error (line 273) | def test_info_from_poetry_directory_fallback_on_poetry_create_error(
  function test_info_from_requires_txt (line 291) | def test_info_from_requires_txt(fixture_dir: FixtureDirGetter) -> None:
  function test_info_no_setup_pkg_info_no_deps (line 299) | def test_info_no_setup_pkg_info_no_deps(fixture_dir: FixtureDirGetter) -...
  function test_info_no_setup_pkg_info_no_deps_for_sure (line 309) | def test_info_no_setup_pkg_info_no_deps_for_sure(fixture_dir: FixtureDir...
  function test_info_no_setup_pkg_info_no_deps_dynamic (line 319) | def test_info_no_setup_pkg_info_no_deps_dynamic(fixture_dir: FixtureDirG...
  function test_info_setup_simple (line 329) | def test_info_setup_simple(mocker: MockerFixture, demo_setup: Path) -> N...
  function test_info_setup_complex (line 337) | def test_info_setup_complex(demo_setup_complex: Path) -> None:
  function test_info_setup_complex_pep517_error (line 342) | def test_info_setup_complex_pep517_error(
  function test_info_setup_complex_pep517_legacy (line 364) | def test_info_setup_complex_pep517_legacy(
  function test_info_setup_complex_calls_script (line 371) | def test_info_setup_complex_calls_script(demo_setup_complex_calls_script...
  function test_info_setup_missing_mandatory_should_trigger_pep517 (line 378) | def test_info_setup_missing_mandatory_should_trigger_pep517(
  function test_info_prefer_poetry_config_over_egg_info (line 396) | def test_info_prefer_poetry_config_over_egg_info(fixture_dir: FixtureDir...

FILE: tests/inspection/test_lazy_wheel.py
  class RequestCallbackFactory (line 35) | class RequestCallbackFactory(Protocol):
    method __call__ (line 36) | def __call__(
  class AssertMetadataFromWheelUrl (line 44) | class AssertMetadataFromWheelUrl(Protocol):
    method __call__ (line 45) | def __call__(
  class NegativeOffsetFailure (line 56) | class NegativeOffsetFailure(IntEnum):
  function build_head_response (line 62) | def build_head_response(
  function build_partial_response (line 71) | def build_partial_response(
  function handle_request_factory (line 115) | def handle_request_factory(
  function assert_metadata_from_wheel_url (line 184) | def assert_metadata_from_wheel_url(
  function test_metadata_from_wheel_url (line 244) | def test_metadata_from_wheel_url(
  function test_metadata_from_wheel_url_416_missing_content_range (line 278) | def test_metadata_from_wheel_url_416_missing_content_range(
  function test_metadata_from_wheel_url_with_redirect (line 308) | def test_metadata_from_wheel_url_with_redirect(
  function test_metadata_from_wheel_url_with_redirect_after_500 (line 318) | def test_metadata_from_wheel_url_with_redirect_after_500(
  function test_metadata_from_wheel_url_smaller_than_initial_chunk_size (line 336) | def test_metadata_from_wheel_url_smaller_than_initial_chunk_size(
  function test_metadata_from_wheel_url_range_requests_not_supported_one_request (line 365) | def test_metadata_from_wheel_url_range_requests_not_supported_one_request(
  function test_metadata_from_wheel_url_range_requests_not_supported_two_requests (line 392) | def test_metadata_from_wheel_url_range_requests_not_supported_two_requests(
  function test_metadata_from_wheel_url_range_requests_supported_but_not_respected (line 415) | def test_metadata_from_wheel_url_range_requests_supported_but_not_respec...
  function test_metadata_from_wheel_url_invalid_wheel (line 439) | def test_metadata_from_wheel_url_invalid_wheel(
  function test_metadata_from_wheel_url_handles_unexpected_errors (line 458) | def test_metadata_from_wheel_url_handles_unexpected_errors(

FILE: tests/installation/conftest.py
  function env (line 14) | def env() -> MockEnv:
  function pool (line 24) | def pool(legacy_repository_html: LegacyRepository) -> RepositoryPool:

FILE: tests/installation/test_chef.py
  function pool (line 32) | def pool(pypi_repository: PyPiRepository) -> RepositoryPool:
  function setup (line 41) | def setup(mocker: MockerFixture, pool: RepositoryPool) -> None:
  function test_prepare_sdist (line 45) | def test_prepare_sdist(
  function test_prepare_directory (line 63) | def test_prepare_directory(
  function test_prepare_directory_with_extensions (line 83) | def test_prepare_directory_with_extensions(
  function test_prepare_directory_editable (line 105) | def test_prepare_directory_editable(
  function test_prepare_directory_script (line 128) | def test_prepare_directory_script(

FILE: tests/installation/test_chooser.py
  function check_chosen_link_filename (line 32) | def check_chosen_link_filename(
  function test_chooser_chooses_universal_wheel_link_if_available (line 68) | def test_chooser_chooses_universal_wheel_link_if_available(
  function test_chooser_no_binary_policy (line 89) | def test_chooser_no_binary_policy(
  function test_chooser_only_binary_policy (line 112) | def test_chooser_only_binary_policy(
  function test_chooser_multiple_binary_policy (line 146) | def test_chooser_multiple_binary_policy(
  function test_chooser_chooses_specific_python_universal_wheel_link_if_available (line 167) | def test_chooser_chooses_specific_python_universal_wheel_link_if_available(
  function test_chooser_chooses_system_specific_wheel_link_if_available (line 178) | def test_chooser_chooses_system_specific_wheel_link_if_available(
  function test_chooser_chooses_sdist_if_no_compatible_wheel_link_is_available (line 196) | def test_chooser_chooses_sdist_if_no_compatible_wheel_link_is_available(
  function test_chooser_chooses_distributions_that_match_the_package_hashes (line 207) | def test_chooser_chooses_distributions_that_match_the_package_hashes(
  function test_chooser_chooses_yanked_if_no_others (line 242) | def test_chooser_chooses_yanked_if_no_others(
  function test_chooser_does_not_choose_yanked_if_others (line 275) | def test_chooser_does_not_choose_yanked_if_others(
  function test_chooser_throws_an_error_if_package_hashes_do_not_match (line 327) | def test_chooser_throws_an_error_if_package_hashes_do_not_match(
  function test_chooser_md5_remote_fallback_to_sha256_inline_calculation (line 365) | def test_chooser_md5_remote_fallback_to_sha256_inline_calculation(

FILE: tests/installation/test_chooser_errors.py
  function test_chooser_no_links_found_error (line 15) | def test_chooser_no_links_found_error(env: MockEnv, pool: RepositoryPool...

FILE: tests/installation/test_executor.py
  class Chef (line 55) | class Chef(BaseChef):
    method set_directory_wheel (line 60) | def set_directory_wheel(self, wheels: Path | list[Path]) -> None:
    method set_sdist_wheel (line 66) | def set_sdist_wheel(self, wheels: Path | list[Path]) -> None:
    method _prepare_sdist (line 72) | def _prepare_sdist(
    method _prepare (line 89) | def _prepare(
  function env (line 124) | def env(tmp_path: Path) -> MockEnv:
  function io (line 132) | def io() -> BufferedIO:
  function io_decorated (line 143) | def io_decorated() -> BufferedIO:
  function io_not_decorated (line 152) | def io_not_decorated() -> BufferedIO:
  function pool (line 159) | def pool(pypi_repository: PyPiRepository) -> RepositoryPool:
  function copy_wheel (line 169) | def copy_wheel(tmp_path: Path, fixture_dir: FixtureDirGetter) -> Callabl...
  function wheel (line 184) | def wheel(copy_wheel: Callable[[], Path]) -> Iterator[Path]:
  function test_execute_executes_a_batch_of_operations (line 193) | def test_execute_executes_a_batch_of_operations(
  function test_execute_build_config_settings_passed (line 284) | def test_execute_build_config_settings_passed(
  function test_execute_build_constraints_passed (line 371) | def test_execute_build_constraints_passed(
  function test_execute_prints_warning_for_yanked_package (line 474) | def test_execute_prints_warning_for_yanked_package(
  function test_execute_prints_warning_for_invalid_wheels (line 507) | def test_execute_prints_warning_for_invalid_wheels(
  function test_execute_shows_skipped_operations_if_verbose (line 566) | def test_execute_shows_skipped_operations_if_verbose(
  function test_execute_should_show_errors (line 594) | def test_execute_should_show_errors(
  function test_execute_works_with_ansi_output (line 621
Condensed preview — 949 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (3,963K chars).
[
  {
    "path": ".cirrus.yml",
    "chars": 1727,
    "preview": "tests_task:\n  # We only use Cirrus CI for FreeBSD at present; the rest of the task will assume FreeBSD.\n  freebsd_instan"
  },
  {
    "path": ".gitattributes",
    "chars": 95,
    "preview": "# Do not mess with line endings in metadata files or the hash will be wrong.\n*.metadata binary\n"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/---bug-report.yml",
    "chars": 3392,
    "preview": "name: \"\\U0001F41E Bug Report\"\nlabels: [\"kind/bug\", \"status/triage\"]\ndescription: \"Poetry not working the way it is docum"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/---documentation.yml",
    "chars": 1768,
    "preview": "name: \"\\U0001F4DA Documentation Issue\"\nlabels: [\"area/docs\", \"status/triage\"]\ndescription: \"Did you find errors, omissio"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/---feature-request.yml",
    "chars": 1593,
    "preview": "name: \"\\U0001F381 Feature Request\"\nlabels: [\"kind/feature\", \"status/triage\"]\ndescription: \"Want something new?\"\n\nbody:\n "
  },
  {
    "path": ".github/ISSUE_TEMPLATE/config.yml",
    "chars": 600,
    "preview": "# Ref: https://help.github.com/en/github/building-a-strong-community/configuring-issue-templates-for-your-repository#con"
  },
  {
    "path": ".github/PULL_REQUEST_TEMPLATE.md",
    "chars": 584,
    "preview": "# Pull Request Check List\n\nResolves: #issue-number-here\n\n<!-- This is just a reminder about the most common mistakes. Pl"
  },
  {
    "path": ".github/actions/bootstrap-poetry/action.yaml",
    "chars": 1914,
    "preview": "name: Bootstrap Poetry\ndescription: Configure the environment with the specified Python and Poetry version.\n\ninputs:\n  p"
  },
  {
    "path": ".github/actions/poetry-install/action.yaml",
    "chars": 1615,
    "preview": "name: Poetry Install\ndescription: Run `poetry install` with optional artifact and metadata caching\n\ninputs:\n  args:\n    "
  },
  {
    "path": ".github/dependabot.yml",
    "chars": 867,
    "preview": "version: 2\n\nupdates:\n  - package-ecosystem: \"github-actions\"\n    directory: \"/\"\n    schedule:\n      interval: \"weekly\"\n "
  },
  {
    "path": ".github/scripts/backport.sh",
    "chars": 9944,
    "preview": "#!/usr/bin/env bash\n#\n# Copyright 2024 Bjorn Neergaard\n#\n# This work is licensed under the terms of the MIT license.\n# F"
  },
  {
    "path": ".github/workflows/.tests-matrix.yaml",
    "chars": 4448,
    "preview": "# Reusable workflow consumed by tests.yaml; used to share a single matrix across jobs.\non:\n  workflow_call:\n    inputs:\n"
  },
  {
    "path": ".github/workflows/backport.yaml",
    "chars": 1226,
    "preview": "name: Backport\n\non:\n  pull_request_target:  # zizmor: ignore[dangerous-triggers]\n    types:\n      - closed\n      - label"
  },
  {
    "path": ".github/workflows/docs.yaml",
    "chars": 2830,
    "preview": "name: Documentation Preview\n\non:\n  pull_request:\n    # allow repository maintainers to modify and test workflow\n    path"
  },
  {
    "path": ".github/workflows/lock-threads.yaml",
    "chars": 1113,
    "preview": "name: Lock Threads\n\non:\n  schedule:\n    - cron: '0 0 * * *' # every day at midnight\n  workflow_dispatch:\n\nconcurrency:\n "
  },
  {
    "path": ".github/workflows/release.yaml",
    "chars": 1637,
    "preview": "name: Release\n\non:\n  release:\n    types: [published]\n\npermissions: {}\n\njobs:\n  build:\n    name: Build\n    runs-on: ubunt"
  },
  {
    "path": ".github/workflows/tests.yaml",
    "chars": 4300,
    "preview": "name: Tests\n\non:\n  push:\n  pull_request:\n  merge_group:\n\nconcurrency:\n  group: ${{ github.workflow }}-${{ github.head_re"
  },
  {
    "path": ".gitignore",
    "chars": 173,
    "preview": "*.pyc\n\n# Packages\n/dist/*\n\n# Unit test / coverage reports\n.coverage\n.pytest_cache\n\n.DS_Store\n.idea/*\n.python-version\n.vs"
  },
  {
    "path": ".pre-commit-config.yaml",
    "chars": 1160,
    "preview": "ci:\n  autofix_prs: false\n\nrepos:\n  - repo: https://github.com/pre-commit/pre-commit-hooks\n    rev: v6.0.0\n    hooks:\n   "
  },
  {
    "path": ".pre-commit-hooks.yaml",
    "chars": 652,
    "preview": "- id: poetry-check\n  name: poetry-check\n  description: run poetry check to validate config\n  entry: poetry check\n  langu"
  },
  {
    "path": "CHANGELOG.md",
    "chars": 190853,
    "preview": "# Change Log\n\n## [2.3.2] - 2026-02-01\n\n### Changed\n\n- Allow `dulwich>=1.0` ([#10701](https://github.com/python-poetry/po"
  },
  {
    "path": "CITATION.cff",
    "chars": 805,
    "preview": "cff-version: 1.2.0\ntitle: \"Poetry: Python packaging and dependency management made easy\"\nmessage: >-\n  If you use this s"
  },
  {
    "path": "CODE_OF_CONDUCT.md",
    "chars": 3352,
    "preview": "# Contributor Covenant Code of Conduct\n\n## Our Pledge\n\nIn the interest of fostering an open and welcoming environment, w"
  },
  {
    "path": "LICENSE",
    "chars": 1069,
    "preview": "Copyright (c) 2018-present Sébastien Eustace\n\nPermission is hereby granted, free of charge, to any person obtaining\na co"
  },
  {
    "path": "README.md",
    "chars": 5463,
    "preview": "# Poetry: Python packaging and dependency management made easy\n\n[![Poetry](https://img.shields.io/endpoint?url=https://p"
  },
  {
    "path": "docs/_index.md",
    "chars": 13660,
    "preview": "---\ntitle: \"Introduction\"\ndraft: false\ntype: docs\nlayout: \"single\"\n\nmenu:\n  docs:\n    weight: 0\n---\n\n# Introduction\n\nPoe"
  },
  {
    "path": "docs/basic-usage.md",
    "chars": 13257,
    "preview": "---\ntitle: \"Basic usage\"\ndraft: false\ntype: docs\nlayout: single\n\nmenu:\n  docs:\n    weight: 10\n---\n\n# Basic usage\n\nFor th"
  },
  {
    "path": "docs/building-extension-modules.md",
    "chars": 9874,
    "preview": "---\ntitle: \"Building extension modules\"\ndraft: false\ntype: docs\nlayout: single\n\nmenu:\n  docs:\n    weight: 125\n---\n\n# Bui"
  },
  {
    "path": "docs/cli.md",
    "chars": 43109,
    "preview": "---\ntitle: \"Commands\"\ndraft: false\ntype: docs\nlayout: single\n\nmenu:\n  docs:\n    weight: 30\n---\n\n\n# Commands\n\nYou've alre"
  },
  {
    "path": "docs/community.md",
    "chars": 654,
    "preview": "---\ntitle: \"Community\"\ndraft: false\ntype: docs\nlayout: single\n\nmenu:\n  docs:\n    weight: 105\n---\n\n# Community\n\n## Badge\n"
  },
  {
    "path": "docs/configuration.md",
    "chars": 19118,
    "preview": "---\ntitle: \"Configuration\"\ndraft: false\ntype: docs\nlayout: single\n\nmenu:\n  docs:\n    weight: 40\n---\n\n# Configuration\n\nPo"
  },
  {
    "path": "docs/contributing.md",
    "chars": 12970,
    "preview": "---\ntitle: \"Contributing to Poetry\"\ndraft: false\ntype: docs\nlayout: single\n\nmenu:\n  docs:\n    weight: 100\n\nnote: \"Are yo"
  },
  {
    "path": "docs/dependency-specification.md",
    "chars": 23213,
    "preview": "---\ntitle: \"Dependency specification\"\ndraft: false\ntype: docs\nlayout: single\n\nmenu:\n  docs:\n    weight: 70\n---\n\n# Depend"
  },
  {
    "path": "docs/faq.md",
    "chars": 16606,
    "preview": "---\ntitle: \"FAQ\"\ndraft: false\ntype: docs\nlayout: single\n\nmenu:\n  docs:\n    weight: 110\n---\n\n# FAQ\n\n### Why is the depend"
  },
  {
    "path": "docs/libraries.md",
    "chars": 4177,
    "preview": "---\ntitle: \"Libraries\"\ndraft: false\ntype: docs\nlayout: \"docs\"\n\nmenu:\n  docs:\n    weight: 20\n---\n\n\n# Libraries\n\nThis chap"
  },
  {
    "path": "docs/managing-dependencies.md",
    "chars": 7580,
    "preview": "---\ndraft: false\nlayout: single\nmenu:\n  docs:\n    weight: 11\ntitle: Managing dependencies\ntype: docs\n---\n\n\n# Managing de"
  },
  {
    "path": "docs/managing-environments.md",
    "chars": 5503,
    "preview": "---\ntitle: \"Managing environments\"\ndraft: false\ntype: docs\nlayout: \"docs\"\n\nmenu:\n  docs:\n    weight: 60\n---\n\n# Managing "
  },
  {
    "path": "docs/plugins.md",
    "chars": 8521,
    "preview": "---\ntitle: \"Plugins\"\ndraft: false\ntype: docs\nlayout: single\n\nmenu:\n  docs:\n    weight: 80\n---\n\n# Plugins\n\nPoetry support"
  },
  {
    "path": "docs/pre-commit-hooks.md",
    "chars": 5957,
    "preview": "---\ntitle: \"pre-commit hooks\"\ndraft: false\ntype: docs\nlayout: single\n\nmenu:\n  docs:\n    weight: 120\n---\n\n# pre-commit ho"
  },
  {
    "path": "docs/pyproject.md",
    "chars": 27025,
    "preview": "---\ntitle: \"The pyproject.toml file\"\ndraft: false\ntype: docs\nlayout: single\n\nmenu:\n  docs:\n    weight: 90\n---\n\n# The `py"
  },
  {
    "path": "docs/repositories.md",
    "chars": 20792,
    "preview": "---\ntitle: \"Repositories\"\ndraft: false\ntype: docs\nlayout: \"docs\"\n\nmenu:\n  docs:\n    weight: 50\n---\n\n# Repositories\n\nPoet"
  },
  {
    "path": "pyproject.toml",
    "chars": 5824,
    "preview": "[project]\nname = \"poetry\"\nversion = \"2.3.2\"\ndescription = \"Python dependency management and packaging made easy.\"\nrequir"
  },
  {
    "path": "src/poetry/__main__.py",
    "chars": 146,
    "preview": "from __future__ import annotations\n\nimport sys\n\n\nif __name__ == \"__main__\":\n    from poetry.console.application import m"
  },
  {
    "path": "src/poetry/__version__.py",
    "chars": 110,
    "preview": "from __future__ import annotations\n\nfrom importlib import metadata\n\n\n__version__ = metadata.version(\"poetry\")\n"
  },
  {
    "path": "src/poetry/config/__init__.py",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "src/poetry/config/config.py",
    "chars": 13873,
    "preview": "from __future__ import annotations\n\nimport dataclasses\nimport json\nimport logging\nimport os\nimport re\n\nfrom copy import "
  },
  {
    "path": "src/poetry/config/config_source.py",
    "chars": 2590,
    "preview": "from __future__ import annotations\n\nimport dataclasses\nimport json\n\nfrom abc import ABC\nfrom abc import abstractmethod\nf"
  },
  {
    "path": "src/poetry/config/dict_config_source.py",
    "chars": 1448,
    "preview": "from __future__ import annotations\n\nfrom typing import Any\n\nfrom poetry.config.config_source import ConfigSource\nfrom po"
  },
  {
    "path": "src/poetry/config/file_config_source.py",
    "chars": 2961,
    "preview": "from __future__ import annotations\n\nfrom contextlib import contextmanager\nfrom typing import TYPE_CHECKING\nfrom typing i"
  },
  {
    "path": "src/poetry/config/source.py",
    "chars": 1154,
    "preview": "from __future__ import annotations\n\nimport dataclasses\n\nfrom typing import TYPE_CHECKING\n\nfrom poetry.repositories.repos"
  },
  {
    "path": "src/poetry/console/__init__.py",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "src/poetry/console/application.py",
    "chars": 22324,
    "preview": "from __future__ import annotations\n\nimport argparse\nimport logging\n\nfrom contextlib import suppress\nfrom importlib impor"
  },
  {
    "path": "src/poetry/console/command_loader.py",
    "chars": 615,
    "preview": "from __future__ import annotations\n\nfrom typing import TYPE_CHECKING\n\nfrom cleo.exceptions import CleoLogicError\nfrom cl"
  },
  {
    "path": "src/poetry/console/commands/__init__.py",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "src/poetry/console/commands/about.py",
    "chars": 668,
    "preview": "from __future__ import annotations\n\nfrom poetry.console.commands.command import Command\n\n\nclass AboutCommand(Command):\n "
  },
  {
    "path": "src/poetry/console/commands/add.py",
    "chars": 17491,
    "preview": "from __future__ import annotations\n\nimport contextlib\n\nfrom typing import TYPE_CHECKING\nfrom typing import Any\nfrom typi"
  },
  {
    "path": "src/poetry/console/commands/build.py",
    "chars": 8027,
    "preview": "from __future__ import annotations\n\nimport dataclasses\n\nfrom importlib import metadata\nfrom pathlib import Path\nfrom typ"
  },
  {
    "path": "src/poetry/console/commands/cache/__init__.py",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "src/poetry/console/commands/cache/clear.py",
    "chars": 2817,
    "preview": "from __future__ import annotations\n\nimport os\n\nfrom typing import TYPE_CHECKING\nfrom typing import ClassVar\n\nfrom cleo.h"
  },
  {
    "path": "src/poetry/console/commands/cache/list.py",
    "chars": 634,
    "preview": "from __future__ import annotations\n\nfrom poetry.config.config import Config\nfrom poetry.console.commands.command import "
  },
  {
    "path": "src/poetry/console/commands/check.py",
    "chars": 7765,
    "preview": "from __future__ import annotations\n\nfrom typing import TYPE_CHECKING\nfrom typing import Any\nfrom typing import ClassVar\n"
  },
  {
    "path": "src/poetry/console/commands/command.py",
    "chars": 1294,
    "preview": "from __future__ import annotations\n\nfrom typing import TYPE_CHECKING\nfrom typing import Any\nfrom typing import ClassVar\n"
  },
  {
    "path": "src/poetry/console/commands/config.py",
    "chars": 15704,
    "preview": "from __future__ import annotations\n\nimport json\nimport re\n\nfrom pathlib import Path\nfrom typing import TYPE_CHECKING\nfro"
  },
  {
    "path": "src/poetry/console/commands/debug/__init__.py",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "src/poetry/console/commands/debug/info.py",
    "chars": 993,
    "preview": "from __future__ import annotations\n\nimport sys\n\nfrom pathlib import Path\n\nfrom poetry.console.commands.command import Co"
  },
  {
    "path": "src/poetry/console/commands/debug/resolve.py",
    "chars": 4700,
    "preview": "from __future__ import annotations\n\nfrom typing import TYPE_CHECKING\nfrom typing import ClassVar\n\nfrom cleo.helpers impo"
  },
  {
    "path": "src/poetry/console/commands/debug/tags.py",
    "chars": 532,
    "preview": "from __future__ import annotations\n\nfrom poetry.console.commands.env_command import EnvCommand\n\n\nclass DebugTagsCommand("
  },
  {
    "path": "src/poetry/console/commands/env/__init__.py",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "src/poetry/console/commands/env/activate.py",
    "chars": 2182,
    "preview": "from __future__ import annotations\n\nimport shlex\n\nfrom typing import TYPE_CHECKING\n\nimport shellingham\n\nfrom poetry.cons"
  },
  {
    "path": "src/poetry/console/commands/env/info.py",
    "chars": 2688,
    "preview": "from __future__ import annotations\n\nfrom typing import TYPE_CHECKING\nfrom typing import ClassVar\n\nfrom cleo.helpers impo"
  },
  {
    "path": "src/poetry/console/commands/env/list.py",
    "chars": 987,
    "preview": "from __future__ import annotations\n\nfrom typing import TYPE_CHECKING\nfrom typing import ClassVar\n\nfrom cleo.helpers impo"
  },
  {
    "path": "src/poetry/console/commands/env/remove.py",
    "chars": 2345,
    "preview": "from __future__ import annotations\n\nfrom typing import TYPE_CHECKING\nfrom typing import ClassVar\n\nfrom cleo.helpers impo"
  },
  {
    "path": "src/poetry/console/commands/env/use.py",
    "chars": 877,
    "preview": "from __future__ import annotations\n\nfrom typing import TYPE_CHECKING\nfrom typing import ClassVar\n\nfrom cleo.helpers impo"
  },
  {
    "path": "src/poetry/console/commands/env_command.py",
    "chars": 544,
    "preview": "from __future__ import annotations\n\nfrom typing import TYPE_CHECKING\n\nfrom poetry.console.commands.command import Comman"
  },
  {
    "path": "src/poetry/console/commands/group_command.py",
    "chars": 4438,
    "preview": "from __future__ import annotations\n\nfrom collections import defaultdict\nfrom typing import TYPE_CHECKING\n\nfrom cleo.help"
  },
  {
    "path": "src/poetry/console/commands/init.py",
    "chars": 18762,
    "preview": "from __future__ import annotations\n\nimport re\n\nfrom collections.abc import Mapping\nfrom contextlib import suppress\nfrom "
  },
  {
    "path": "src/poetry/console/commands/install.py",
    "chars": 8429,
    "preview": "from __future__ import annotations\n\nfrom typing import TYPE_CHECKING\nfrom typing import ClassVar\n\nfrom cleo.helpers impo"
  },
  {
    "path": "src/poetry/console/commands/installer_command.py",
    "chars": 1130,
    "preview": "from __future__ import annotations\n\nfrom typing import TYPE_CHECKING\n\nfrom poetry.console.commands.env_command import En"
  },
  {
    "path": "src/poetry/console/commands/lock.py",
    "chars": 1136,
    "preview": "from __future__ import annotations\n\nfrom typing import TYPE_CHECKING\nfrom typing import ClassVar\n\nfrom cleo.helpers impo"
  },
  {
    "path": "src/poetry/console/commands/new.py",
    "chars": 2864,
    "preview": "from __future__ import annotations\n\nfrom typing import TYPE_CHECKING\nfrom typing import ClassVar\n\nfrom cleo.helpers impo"
  },
  {
    "path": "src/poetry/console/commands/publish.py",
    "chars": 3445,
    "preview": "from __future__ import annotations\n\nfrom pathlib import Path\nfrom typing import TYPE_CHECKING\nfrom typing import ClassVa"
  },
  {
    "path": "src/poetry/console/commands/python/__init__.py",
    "chars": 263,
    "preview": "from __future__ import annotations\n\n\ndef get_request_title(request: str, implementation: str, free_threaded: bool) -> st"
  },
  {
    "path": "src/poetry/console/commands/python/install.py",
    "chars": 4611,
    "preview": "from __future__ import annotations\n\nfrom typing import TYPE_CHECKING\nfrom typing import ClassVar\n\nfrom cleo.helpers impo"
  },
  {
    "path": "src/poetry/console/commands/python/list.py",
    "chars": 4364,
    "preview": "from __future__ import annotations\n\nfrom typing import TYPE_CHECKING\nfrom typing import ClassVar\n\nfrom cleo.helpers impo"
  },
  {
    "path": "src/poetry/console/commands/python/remove.py",
    "chars": 3446,
    "preview": "from __future__ import annotations\n\nimport shutil\n\nfrom typing import TYPE_CHECKING\nfrom typing import ClassVar\n\nfrom cl"
  },
  {
    "path": "src/poetry/console/commands/remove.py",
    "chars": 10439,
    "preview": "from __future__ import annotations\n\nfrom typing import TYPE_CHECKING\nfrom typing import Any\nfrom typing import ClassVar\n"
  },
  {
    "path": "src/poetry/console/commands/run.py",
    "chars": 3364,
    "preview": "from __future__ import annotations\n\nfrom typing import TYPE_CHECKING\nfrom typing import ClassVar\n\nfrom cleo.helpers impo"
  },
  {
    "path": "src/poetry/console/commands/search.py",
    "chars": 1616,
    "preview": "from __future__ import annotations\n\nfrom typing import TYPE_CHECKING\nfrom typing import ClassVar\n\nfrom cleo.helpers impo"
  },
  {
    "path": "src/poetry/console/commands/self/__init__.py",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "src/poetry/console/commands/self/add.py",
    "chars": 1412,
    "preview": "from __future__ import annotations\n\nfrom typing import TYPE_CHECKING\nfrom typing import ClassVar\n\nfrom poetry.core.const"
  },
  {
    "path": "src/poetry/console/commands/self/install.py",
    "chars": 1354,
    "preview": "from __future__ import annotations\n\nfrom typing import TYPE_CHECKING\nfrom typing import ClassVar\n\nfrom packaging.utils i"
  },
  {
    "path": "src/poetry/console/commands/self/lock.py",
    "chars": 642,
    "preview": "from __future__ import annotations\n\nfrom poetry.console.commands.lock import LockCommand\nfrom poetry.console.commands.se"
  },
  {
    "path": "src/poetry/console/commands/self/remove.py",
    "chars": 772,
    "preview": "from __future__ import annotations\n\nfrom typing import TYPE_CHECKING\nfrom typing import ClassVar\n\nfrom poetry.console.co"
  },
  {
    "path": "src/poetry/console/commands/self/self_command.py",
    "chars": 5217,
    "preview": "from __future__ import annotations\n\nimport typing\n\nfrom pathlib import Path\nfrom typing import TYPE_CHECKING\nfrom typing"
  },
  {
    "path": "src/poetry/console/commands/self/show/__init__.py",
    "chars": 1440,
    "preview": "from __future__ import annotations\n\nfrom typing import TYPE_CHECKING\nfrom typing import ClassVar\n\nfrom cleo.helpers impo"
  },
  {
    "path": "src/poetry/console/commands/self/show/plugins.py",
    "chars": 3979,
    "preview": "from __future__ import annotations\n\nimport dataclasses\n\nfrom typing import TYPE_CHECKING\n\nfrom poetry.console.commands.s"
  },
  {
    "path": "src/poetry/console/commands/self/sync.py",
    "chars": 1043,
    "preview": "from __future__ import annotations\n\nfrom typing import TYPE_CHECKING\nfrom typing import ClassVar\n\nfrom poetry.console.co"
  },
  {
    "path": "src/poetry/console/commands/self/update.py",
    "chars": 2036,
    "preview": "from __future__ import annotations\n\nfrom typing import TYPE_CHECKING\nfrom typing import ClassVar\n\nfrom cleo.helpers impo"
  },
  {
    "path": "src/poetry/console/commands/show.py",
    "chars": 24014,
    "preview": "from __future__ import annotations\n\nimport json\nimport sys\n\nfrom enum import Enum\nfrom typing import TYPE_CHECKING\nfrom "
  },
  {
    "path": "src/poetry/console/commands/source/__init__.py",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "src/poetry/console/commands/source/add.py",
    "chars": 3812,
    "preview": "from __future__ import annotations\n\nfrom typing import TYPE_CHECKING\nfrom typing import Any\nfrom typing import ClassVar\n"
  },
  {
    "path": "src/poetry/console/commands/source/remove.py",
    "chars": 1280,
    "preview": "from __future__ import annotations\n\nfrom typing import TYPE_CHECKING\nfrom typing import ClassVar\n\nfrom cleo.helpers impo"
  },
  {
    "path": "src/poetry/console/commands/source/show.py",
    "chars": 2380,
    "preview": "from __future__ import annotations\n\nfrom typing import TYPE_CHECKING\nfrom typing import ClassVar\n\nfrom cleo.helpers impo"
  },
  {
    "path": "src/poetry/console/commands/sync.py",
    "chars": 1181,
    "preview": "from __future__ import annotations\n\nfrom typing import TYPE_CHECKING\nfrom typing import ClassVar\n\nfrom poetry.console.co"
  },
  {
    "path": "src/poetry/console/commands/update.py",
    "chars": 3197,
    "preview": "from __future__ import annotations\n\nimport re\n\nfrom typing import TYPE_CHECKING\nfrom typing import ClassVar\n\nfrom cleo.h"
  },
  {
    "path": "src/poetry/console/commands/version.py",
    "chars": 4259,
    "preview": "from __future__ import annotations\n\nfrom typing import TYPE_CHECKING\nfrom typing import Any\nfrom typing import ClassVar\n"
  },
  {
    "path": "src/poetry/console/events/__init__.py",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "src/poetry/console/events/console_events.py",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "src/poetry/console/exceptions.py",
    "chars": 7669,
    "preview": "from __future__ import annotations\n\nimport dataclasses\nimport shlex\n\nfrom dataclasses import InitVar\nfrom subprocess imp"
  },
  {
    "path": "src/poetry/console/logging/__init__.py",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "src/poetry/console/logging/filters.py",
    "chars": 99,
    "preview": "from __future__ import annotations\n\nimport logging\n\n\nPOETRY_FILTER = logging.Filter(name=\"poetry\")\n"
  },
  {
    "path": "src/poetry/console/logging/formatters/__init__.py",
    "chars": 336,
    "preview": "from __future__ import annotations\n\nfrom poetry.console.logging.formatters.builder_formatter import BuilderLogFormatter\n"
  },
  {
    "path": "src/poetry/console/logging/formatters/builder_formatter.py",
    "chars": 788,
    "preview": "from __future__ import annotations\n\nimport re\n\nfrom poetry.console.logging.formatters.formatter import Formatter\n\n\nclass"
  },
  {
    "path": "src/poetry/console/logging/formatters/formatter.py",
    "chars": 174,
    "preview": "from __future__ import annotations\n\nfrom abc import ABC\nfrom abc import abstractmethod\n\n\nclass Formatter(ABC):\n    @abst"
  },
  {
    "path": "src/poetry/console/logging/io_formatter.py",
    "chars": 2180,
    "preview": "from __future__ import annotations\n\nimport logging\nimport sys\nimport textwrap\n\nfrom pathlib import Path\nfrom typing impo"
  },
  {
    "path": "src/poetry/console/logging/io_handler.py",
    "chars": 702,
    "preview": "from __future__ import annotations\n\nimport logging\n\nfrom typing import TYPE_CHECKING\n\n\nif TYPE_CHECKING:\n    from loggin"
  },
  {
    "path": "src/poetry/exceptions.py",
    "chars": 76,
    "preview": "from __future__ import annotations\n\n\nclass PoetryError(Exception):\n    pass\n"
  },
  {
    "path": "src/poetry/factory.py",
    "chars": 13345,
    "preview": "from __future__ import annotations\n\nimport contextlib\nimport logging\nimport re\n\nfrom typing import TYPE_CHECKING\nfrom ty"
  },
  {
    "path": "src/poetry/inspection/__init__.py",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "src/poetry/inspection/info.py",
    "chars": 19411,
    "preview": "from __future__ import annotations\n\nimport contextlib\nimport functools\nimport glob\nimport logging\nimport tempfile\n\nfrom "
  },
  {
    "path": "src/poetry/inspection/lazy_wheel.py",
    "chars": 29798,
    "preview": "\"\"\"Lazy ZIP over HTTP\"\"\"\n\nfrom __future__ import annotations\n\nimport io\nimport logging\nimport re\n\nfrom bisect import bis"
  },
  {
    "path": "src/poetry/installation/__init__.py",
    "chars": 114,
    "preview": "from __future__ import annotations\n\nfrom poetry.installation.installer import Installer\n\n\n__all__ = [\"Installer\"]\n"
  },
  {
    "path": "src/poetry/installation/chef.py",
    "chars": 4136,
    "preview": "from __future__ import annotations\n\nimport tempfile\n\nfrom pathlib import Path\nfrom tempfile import TemporaryDirectory\nfr"
  },
  {
    "path": "src/poetry/installation/chooser.py",
    "chars": 13930,
    "preview": "from __future__ import annotations\n\nimport logging\nimport re\n\nfrom typing import TYPE_CHECKING\nfrom typing import Any\n\nf"
  },
  {
    "path": "src/poetry/installation/executor.py",
    "chars": 36066,
    "preview": "from __future__ import annotations\n\nimport csv\nimport functools\nimport itertools\nimport json\nimport threading\n\nfrom coll"
  },
  {
    "path": "src/poetry/installation/installer.py",
    "chars": 13696,
    "preview": "from __future__ import annotations\n\nfrom typing import TYPE_CHECKING\nfrom typing import cast\n\nfrom cleo.io.null_io impor"
  },
  {
    "path": "src/poetry/installation/operations/__init__.py",
    "chars": 262,
    "preview": "from __future__ import annotations\n\nfrom poetry.installation.operations.install import Install\nfrom poetry.installation."
  },
  {
    "path": "src/poetry/installation/operations/install.py",
    "chars": 906,
    "preview": "from __future__ import annotations\n\nfrom typing import TYPE_CHECKING\n\nfrom poetry.installation.operations.operation impo"
  },
  {
    "path": "src/poetry/installation/operations/operation.py",
    "chars": 1197,
    "preview": "from __future__ import annotations\n\nfrom abc import ABC\nfrom abc import abstractmethod\nfrom typing import TYPE_CHECKING\n"
  },
  {
    "path": "src/poetry/installation/operations/uninstall.py",
    "chars": 953,
    "preview": "from __future__ import annotations\n\nfrom typing import TYPE_CHECKING\n\nfrom poetry.installation.operations.operation impo"
  },
  {
    "path": "src/poetry/installation/operations/update.py",
    "chars": 1540,
    "preview": "from __future__ import annotations\n\nfrom typing import TYPE_CHECKING\n\nfrom poetry.installation.operations.operation impo"
  },
  {
    "path": "src/poetry/installation/wheel_installer.py",
    "chars": 4008,
    "preview": "from __future__ import annotations\n\nimport logging\nimport platform\nimport sys\n\nfrom pathlib import Path\nfrom typing impo"
  },
  {
    "path": "src/poetry/json/__init__.py",
    "chars": 977,
    "preview": "from __future__ import annotations\n\nimport json\n\nfrom importlib.resources import files\nfrom typing import Any\n\nimport fa"
  },
  {
    "path": "src/poetry/json/schemas/poetry.json",
    "chars": 12145,
    "preview": "{\n  \"$schema\": \"http://json-schema.org/draft-04/schema#\",\n  \"additionalProperties\": true,\n  \"type\": \"object\",\n  \"require"
  },
  {
    "path": "src/poetry/layouts/__init__.py",
    "chars": 310,
    "preview": "from __future__ import annotations\n\nfrom poetry.layouts.layout import Layout\nfrom poetry.layouts.src import SrcLayout\n\n\n"
  },
  {
    "path": "src/poetry/layouts/layout.py",
    "chars": 7641,
    "preview": "from __future__ import annotations\n\nimport importlib.metadata\n\nfrom pathlib import Path\nfrom typing import TYPE_CHECKING"
  },
  {
    "path": "src/poetry/layouts/src.py",
    "chars": 202,
    "preview": "from __future__ import annotations\n\nfrom pathlib import Path\n\nfrom poetry.layouts.layout import Layout\n\n\nclass SrcLayout"
  },
  {
    "path": "src/poetry/locations.py",
    "chars": 597,
    "preview": "from __future__ import annotations\n\nimport os\n\nfrom pathlib import Path\n\nfrom platformdirs import user_cache_path\nfrom p"
  },
  {
    "path": "src/poetry/masonry/__init__.py",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "src/poetry/masonry/api.py",
    "chars": 497,
    "preview": "from __future__ import annotations\n\nfrom poetry.core.masonry.api import build_sdist\nfrom poetry.core.masonry.api import "
  },
  {
    "path": "src/poetry/masonry/builders/__init__.py",
    "chars": 374,
    "preview": "from __future__ import annotations\n\nfrom poetry.core.masonry.builders.sdist import SdistBuilder\nfrom poetry.core.masonry"
  },
  {
    "path": "src/poetry/masonry/builders/editable.py",
    "chars": 9443,
    "preview": "from __future__ import annotations\n\nimport csv\nimport hashlib\nimport json\nimport os\n\nfrom base64 import urlsafe_b64encod"
  },
  {
    "path": "src/poetry/mixology/__init__.py",
    "chars": 467,
    "preview": "from __future__ import annotations\n\nfrom typing import TYPE_CHECKING\n\nfrom poetry.mixology.version_solver import Version"
  },
  {
    "path": "src/poetry/mixology/assignment.py",
    "chars": 1555,
    "preview": "from __future__ import annotations\n\nfrom typing import TYPE_CHECKING\n\nfrom poetry.mixology.term import Term\n\n\nif TYPE_CH"
  },
  {
    "path": "src/poetry/mixology/failure.py",
    "chars": 11850,
    "preview": "from __future__ import annotations\n\nfrom typing import TYPE_CHECKING\n\nfrom poetry.core.constraints.version import parse_"
  },
  {
    "path": "src/poetry/mixology/incompatibility.py",
    "chars": 15400,
    "preview": "from __future__ import annotations\n\nfrom typing import TYPE_CHECKING\n\nfrom poetry.mixology.incompatibility_cause import "
  },
  {
    "path": "src/poetry/mixology/incompatibility_cause.py",
    "chars": 1968,
    "preview": "from __future__ import annotations\n\nfrom typing import TYPE_CHECKING\n\n\nif TYPE_CHECKING:\n    from poetry.mixology.incomp"
  },
  {
    "path": "src/poetry/mixology/partial_solution.py",
    "chars": 7138,
    "preview": "from __future__ import annotations\n\nfrom typing import TYPE_CHECKING\n\nfrom poetry.mixology.assignment import Assignment\n"
  },
  {
    "path": "src/poetry/mixology/result.py",
    "chars": 676,
    "preview": "from __future__ import annotations\n\nfrom typing import TYPE_CHECKING\n\n\nif TYPE_CHECKING:\n    from poetry.core.packages.p"
  },
  {
    "path": "src/poetry/mixology/set_relation.py",
    "chars": 211,
    "preview": "from __future__ import annotations\n\n\nclass SetRelation:\n    \"\"\"\n    An enum of possible relationships between two sets.\n"
  },
  {
    "path": "src/poetry/mixology/term.py",
    "chars": 7417,
    "preview": "from __future__ import annotations\n\nimport functools\n\nfrom typing import TYPE_CHECKING\n\nfrom poetry.mixology.set_relatio"
  },
  {
    "path": "src/poetry/mixology/version_solver.py",
    "chars": 26644,
    "preview": "from __future__ import annotations\n\nimport collections\nimport functools\nimport time\n\nfrom enum import IntEnum\nfrom typin"
  },
  {
    "path": "src/poetry/packages/__init__.py",
    "chars": 273,
    "preview": "from __future__ import annotations\n\nfrom poetry.packages.dependency_package import DependencyPackage\nfrom poetry.package"
  },
  {
    "path": "src/poetry/packages/dependency_package.py",
    "chars": 1343,
    "preview": "from __future__ import annotations\n\nfrom typing import TYPE_CHECKING\n\n\nif TYPE_CHECKING:\n    from collections.abc import"
  },
  {
    "path": "src/poetry/packages/direct_origin.py",
    "chars": 3672,
    "preview": "from __future__ import annotations\n\nimport functools\n\nfrom pathlib import Path\nfrom typing import TYPE_CHECKING\n\nfrom po"
  },
  {
    "path": "src/poetry/packages/locker.py",
    "chars": 24948,
    "preview": "from __future__ import annotations\n\nimport json\nimport logging\nimport os\nimport re\nimport warnings\n\nfrom hashlib import "
  },
  {
    "path": "src/poetry/packages/package_collection.py",
    "chars": 897,
    "preview": "from __future__ import annotations\n\nfrom typing import TYPE_CHECKING\n\nfrom poetry.packages.dependency_package import Dep"
  },
  {
    "path": "src/poetry/packages/transitive_package_info.py",
    "chars": 986,
    "preview": "from __future__ import annotations\n\nfrom dataclasses import dataclass\nfrom typing import TYPE_CHECKING\n\nfrom poetry.core"
  },
  {
    "path": "src/poetry/plugins/__init__.py",
    "chars": 185,
    "preview": "from __future__ import annotations\n\nfrom poetry.plugins.application_plugin import ApplicationPlugin\nfrom poetry.plugins."
  },
  {
    "path": "src/poetry/plugins/application_plugin.py",
    "chars": 687,
    "preview": "from __future__ import annotations\n\nfrom typing import TYPE_CHECKING\n\nfrom poetry.plugins.base_plugin import BasePlugin\n"
  },
  {
    "path": "src/poetry/plugins/base_plugin.py",
    "chars": 424,
    "preview": "from __future__ import annotations\n\nfrom abc import ABC\nfrom abc import abstractmethod\n\n\nclass BasePlugin(ABC):\n    \"\"\"\n"
  },
  {
    "path": "src/poetry/plugins/plugin.py",
    "chars": 452,
    "preview": "from __future__ import annotations\n\nfrom abc import abstractmethod\nfrom typing import TYPE_CHECKING\n\nfrom poetry.plugins"
  },
  {
    "path": "src/poetry/plugins/plugin_manager.py",
    "chars": 11292,
    "preview": "from __future__ import annotations\n\nimport hashlib\nimport json\nimport logging\nimport shutil\nimport sys\n\nfrom functools i"
  },
  {
    "path": "src/poetry/poetry.py",
    "chars": 2830,
    "preview": "from __future__ import annotations\n\nfrom typing import TYPE_CHECKING\nfrom typing import Any\nfrom typing import cast\n\nfro"
  },
  {
    "path": "src/poetry/publishing/__init__.py",
    "chars": 112,
    "preview": "from __future__ import annotations\n\nfrom poetry.publishing.publisher import Publisher\n\n\n__all__ = [\"Publisher\"]\n"
  },
  {
    "path": "src/poetry/publishing/hash_manager.py",
    "chars": 1825,
    "preview": "from __future__ import annotations\n\nimport hashlib\nimport io\n\nfrom contextlib import suppress\nfrom typing import TYPE_CH"
  },
  {
    "path": "src/poetry/publishing/publisher.py",
    "chars": 2927,
    "preview": "from __future__ import annotations\n\nimport logging\n\nfrom typing import TYPE_CHECKING\n\nfrom poetry.publishing.uploader im"
  },
  {
    "path": "src/poetry/publishing/uploader.py",
    "chars": 13200,
    "preview": "from __future__ import annotations\n\nimport itertools\nimport tarfile\nimport zipfile\n\nfrom collections import defaultdict\n"
  },
  {
    "path": "src/poetry/puzzle/__init__.py",
    "chars": 99,
    "preview": "from __future__ import annotations\n\nfrom poetry.puzzle.solver import Solver\n\n\n__all__ = [\"Solver\"]\n"
  },
  {
    "path": "src/poetry/puzzle/exceptions.py",
    "chars": 788,
    "preview": "from __future__ import annotations\n\nfrom typing import TYPE_CHECKING\n\n\nif TYPE_CHECKING:\n    from poetry.core.packages.d"
  },
  {
    "path": "src/poetry/puzzle/provider.py",
    "chars": 43292,
    "preview": "from __future__ import annotations\n\nimport functools\nimport itertools\nimport logging\nimport re\nimport time\n\nfrom collect"
  },
  {
    "path": "src/poetry/puzzle/solver.py",
    "chars": 20289,
    "preview": "from __future__ import annotations\n\nimport functools\nimport time\n\nfrom collections import defaultdict\nfrom contextlib im"
  },
  {
    "path": "src/poetry/puzzle/transaction.py",
    "chars": 7842,
    "preview": "from __future__ import annotations\n\nfrom collections import defaultdict\nfrom typing import TYPE_CHECKING\nfrom typing imp"
  },
  {
    "path": "src/poetry/py.typed",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "src/poetry/pyproject/__init__.py",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "src/poetry/pyproject/toml.py",
    "chars": 1740,
    "preview": "from __future__ import annotations\n\nfrom typing import TYPE_CHECKING\n\nfrom poetry.core.pyproject.toml import PyProjectTO"
  },
  {
    "path": "src/poetry/repositories/__init__.py",
    "chars": 198,
    "preview": "from __future__ import annotations\n\nfrom poetry.repositories.repository import Repository\nfrom poetry.repositories.repos"
  },
  {
    "path": "src/poetry/repositories/abstract_repository.py",
    "chars": 749,
    "preview": "from __future__ import annotations\n\nfrom abc import ABC\nfrom abc import abstractmethod\nfrom typing import TYPE_CHECKING\n"
  },
  {
    "path": "src/poetry/repositories/cached_repository.py",
    "chars": 2596,
    "preview": "from __future__ import annotations\n\nfrom abc import ABC\nfrom abc import abstractmethod\nfrom typing import TYPE_CHECKING\n"
  },
  {
    "path": "src/poetry/repositories/exceptions.py",
    "chars": 178,
    "preview": "from __future__ import annotations\n\n\nclass RepositoryError(Exception):\n    pass\n\n\nclass PackageNotFoundError(Exception):"
  },
  {
    "path": "src/poetry/repositories/http_repository.py",
    "chars": 19459,
    "preview": "from __future__ import annotations\n\nimport functools\nimport hashlib\n\nfrom contextlib import contextmanager\nfrom contextl"
  },
  {
    "path": "src/poetry/repositories/installed_repository.py",
    "chars": 11259,
    "preview": "from __future__ import annotations\n\nimport itertools\nimport json\nimport logging\n\nfrom importlib import metadata\nfrom pat"
  },
  {
    "path": "src/poetry/repositories/legacy_repository.py",
    "chars": 4968,
    "preview": "from __future__ import annotations\n\nfrom contextlib import suppress\nfrom functools import cached_property\nfrom typing im"
  },
  {
    "path": "src/poetry/repositories/link_sources/__init__.py",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "src/poetry/repositories/link_sources/base.py",
    "chars": 4441,
    "preview": "from __future__ import annotations\n\nimport logging\nimport re\n\nfrom functools import cached_property\nfrom typing import T"
  },
  {
    "path": "src/poetry/repositories/link_sources/html.py",
    "chars": 3186,
    "preview": "from __future__ import annotations\n\nimport urllib.parse\n\nfrom collections import defaultdict\nfrom functools import cache"
  },
  {
    "path": "src/poetry/repositories/link_sources/json.py",
    "chars": 2911,
    "preview": "from __future__ import annotations\n\nimport urllib.parse\n\nfrom collections import defaultdict\nfrom functools import cache"
  },
  {
    "path": "src/poetry/repositories/lockfile_repository.py",
    "chars": 549,
    "preview": "from __future__ import annotations\n\nfrom typing import TYPE_CHECKING\n\nfrom poetry.repositories import Repository\n\n\nif TY"
  },
  {
    "path": "src/poetry/repositories/parsers/__init__.py",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "src/poetry/repositories/parsers/html_page_parser.py",
    "chars": 596,
    "preview": "from __future__ import annotations\n\nfrom html.parser import HTMLParser\n\n\nclass HTMLPageParser(HTMLParser):\n    def __ini"
  },
  {
    "path": "src/poetry/repositories/parsers/pypi_search_parser.py",
    "chars": 2546,
    "preview": "from __future__ import annotations\n\nimport functools\n\nfrom dataclasses import dataclass\nfrom html.parser import HTMLPars"
  },
  {
    "path": "src/poetry/repositories/pypi_repository.py",
    "chars": 8700,
    "preview": "from __future__ import annotations\n\nimport contextlib\nimport logging\n\nfrom typing import TYPE_CHECKING\nfrom typing impor"
  },
  {
    "path": "src/poetry/repositories/repository.py",
    "chars": 3821,
    "preview": "from __future__ import annotations\n\nimport logging\n\nfrom typing import TYPE_CHECKING\n\nfrom packaging.utils import canoni"
  },
  {
    "path": "src/poetry/repositories/repository_pool.py",
    "chars": 6500,
    "preview": "from __future__ import annotations\n\nimport enum\n\nfrom collections import OrderedDict\nfrom dataclasses import dataclass\nf"
  },
  {
    "path": "src/poetry/repositories/single_page_repository.py",
    "chars": 727,
    "preview": "from __future__ import annotations\n\nfrom typing import TYPE_CHECKING\n\nfrom poetry.repositories.exceptions import Package"
  },
  {
    "path": "src/poetry/toml/__init__.py",
    "chars": 157,
    "preview": "from __future__ import annotations\n\nfrom poetry.toml.exceptions import TOMLError\nfrom poetry.toml.file import TOMLFile\n\n"
  },
  {
    "path": "src/poetry/toml/exceptions.py",
    "chars": 190,
    "preview": "from __future__ import annotations\n\nfrom poetry.core.exceptions import PoetryCoreError\nfrom tomlkit.exceptions import TO"
  },
  {
    "path": "src/poetry/toml/file.py",
    "chars": 872,
    "preview": "from __future__ import annotations\n\nfrom typing import TYPE_CHECKING\n\nfrom tomlkit.toml_file import TOMLFile as BaseTOML"
  },
  {
    "path": "src/poetry/utils/__init__.py",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "src/poetry/utils/_compat.py",
    "chars": 1672,
    "preview": "from __future__ import annotations\n\nimport locale\nimport sys\nimport warnings\n\nfrom contextlib import suppress\n\n\nif sys.v"
  }
]

// ... and 749 more files (download for full content)

About this extraction

This page contains the full source code of the python-poetry/poetry GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 949 files (3.5 MB), approximately 975.4k tokens, and a symbol index with 3284 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!