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

Uploaded Source

Built Distribution

File details

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

File metadata

File hashes

Hashes for poetry_shared_venv_plugin-0.1.0.tar.gz
Algorithm Hash digest
SHA256 4ee006ae754b3c0aaadf16c0e59bb323a2a53d7bf446ff68435a0ff12b9343c1
MD5 5b2dae2a06dce53627c531cb5aed58bc
BLAKE2b-256 94f0914cfc87d3ff6e6d4cfa1d27405ce848f061e66f7095d5306ff1b21411ae

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for poetry_shared_venv_plugin-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 8b4f570f8cb269397411b7c011a4452162a6e643721bb157dc401c852af6430d
MD5 fb5de03730371499ab95374646fa9f1b
BLAKE2b-256 ec7a78d16e15d283db122244657fd38bca95f1dc75cdfe636374853d00ca5131

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