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.2.tar.gz (5.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

poetry_shared_venv_plugin-0.2.2-py3-none-any.whl (6.2 kB view details)

Uploaded Python 3

File details

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

File metadata

File hashes

Hashes for poetry_shared_venv_plugin-0.2.2.tar.gz
Algorithm Hash digest
SHA256 07e071a7243a45abbe446b68a99fd98b41472321641cba707d2333131083a1bb
MD5 a8ce97ac23fedd00c85b07523ad45220
BLAKE2b-256 6b21094714a301d1ab45c0c814c9a928bc8cb1fdc822c24d2574cdd83bf0a889

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for poetry_shared_venv_plugin-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 00c7753167ff31acf13137d3ed3c6c4dc2b35d4dc980dfa2d3f4222939219f72
MD5 ae2547b11d73680727385e6d241fe493
BLAKE2b-256 9e70ca06f9911753c514f7d4e43cb715f1b663d0cca6242d858b1805d6f595ba

See more details on using hashes here.

Supported by

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