Skip to main content

Poetry Plugin for Bundling Local Dependencies

Project description

Poetry Shared Venv Plugin

SonarCloud Status

Vulnerabilities Bugs Code Smells Technical Debt Lines of Code

Maintainability Rating Reliability Rating Security Rating Quality Gate Status

Centralize your monorepo submodules in a single virtual environment.

Motivation

In a monorepo-style project with multiple poetry projects in the same repository, and each project has its own virtual environment, installing dependencies can be a time-consuming task, especially when the dependencies are shared among the projects.

The IDEs also have a hard time switching between them as you navigate through the codebase.

This plugin aims to solve this problem by centralizing the virtual environments in a single directory, very similar to how yarn workspaces works.

Install

poetry self add poetry-shared-venv-plugin

Usage

  1. Create a pyproject.toml file in the root of your repository.
  2. Add the shared-venv section to the pyproject.toml file.
[tool.poetry]
name = "demo"
version = "0.1.0"
description = "Python workspace"
authors = []
package-mode = false

[tool.poetry.dependencies]
python = "^3.12"

[tool.shared-venv]
enabled = true
root = true
include = [
    "packages/**"
]

3. Add your packages to the packages directory. (or any other directory you want)

Now, when you run the poetry commands to add, update or remove the dependencies, the plugin will install them in the shared virtual environment in the root of the repository, but it will still generate the poetry.lock file in the package directory as usual.

The root poetry.lock file will be generated in the root of the repository.

Contributing

Change Log

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

poetry_shared_venv_plugin-0.2.0.tar.gz (5.4 kB view details)

Uploaded Source

Built Distribution

File details

Details for the file poetry_shared_venv_plugin-0.2.0.tar.gz.

File metadata

File hashes

Hashes for poetry_shared_venv_plugin-0.2.0.tar.gz
Algorithm Hash digest
SHA256 6fe7fe64684553caa7207d37c4ba0d04542bfeacb95934329bab3bc45ab29721
MD5 b129a8cedb725429230c7767f431ab8f
BLAKE2b-256 61cb02b579af513d311c1086887954ee9dcf3a567471548122eb63ffa17147c7

See more details on using hashes here.

File details

Details for the file poetry_shared_venv_plugin-0.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for poetry_shared_venv_plugin-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f9bb5a39d1e8886c9329d070773d8bd9fc57a61d1ac5ecc91703fef7a71ea0b9
MD5 21d1c411201b5ae882a95535e9af4661
BLAKE2b-256 99bbfc738a88a5f090810f9e2d2fd509dc78def6c25d24b4c024cef31ec127f3

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page