Skip to main content

poetry-source-env

PyPI - Python Version PyPI GitHub release (latest SemVer) PyPI - License Code style: Black

poetry-source-env is a Poetry plugin that lets you define private package sources for your project without exposing their URLs in pyproject.toml. It can load package source definitions from environment variables and expand environment variables in the tool.poetry.source section of pyproject.toml.

This plugin is intended as a workaround for python-poetry/poetry#5958 and will be deprecated if comparable functionality is ever implemented in Poetry itself.

Note that poetry-source-env cannot resolve repositories when installing other Poetry plugins (Poetry does not load plugins when running poetry self commands). If you need a python-poetry/poetry#5958 workaround for installing Poetry plugins, see https://github.com/python-poetry/poetry/issues/5958#issuecomment-1479183720.

Installation

poetry self add poetry-source-env

Usage

Normally, you would define a package source in pyproject.toml like this:

[[tool.poetry.source]]
name = "foo"
url = "https://foo.bar/simple"
priority = "supplemental"

With poetry-source-env, you can define this source via environment variables, similar to how you can already configure publishable repositories:

export POETRY_REPOSITORIES_FOO_URL=https://foo.bar/simple
export POETRY_REPOSITORIES_FOO_PRIORITY=supplemental

If you prefer to keep the source defined in pyproject.toml, you can opt to conceal its name or URL, in whole or in part, behind environment variables:

export FOO_INDEX_NAME="foo"
export FOO_INDEX_URL="https://foo.bar/simple"
[[tool.poetry.source]]
name = "${FOO_INDEX_NAME}"
url = "${FOO_INDEX_URL}"
priority = "supplemental"

If your source requires authentication, Poetry already supports defining its credentials via environment variables:

export POETRY_HTTP_BASIC_FOO_USERNAME=celsiusnarhwal
export POETRY_HTTP_BASIC_FOO_PASSWORD=superdupersecret

Configuration

poetry-source-env's behavior can be configured via the tool.poetry-source-env section of pyproject.toml.

Supported configuration options include:

Name Type Description Required? Default
prefix string The prefix which poetry-source-env should expect source-defining environment variables to use. Has no effect if env is false. No POETRY_REPOSITORIES_
env boolean Whether to read package source definitions from environment variables. No true
toml boolean Whether to expand environment variables in the tool.poetry.source section of pyproject.toml. No true

License

poetry-source-env is licensed under the MIT License.

Metadata

Release files for poetry-source-env 2.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for poetry-source-env 2.0.1
File Size Uploaded
poetry_source_env-2.0.1.tar.gz 3.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for poetry-source-env 2.0.1
File Interpreter ABI Platform
poetry_source_env-2.0.1-py3-none-any.whl Python 3 none any Details

Total release size: 8.8 kB

Release files / poetry_source_env-2.0.1.tar.gz

Download URL poetry_source_env-2.0.1.tar.gz
Size 3.9 kB
Tags Source
SHA-256 checksum
How to use checksums
5f39b8a1f15170a838303ed0f62d8989c8f45ebfd9b2c887083d08745210c287
BLAKE2b-256 checksum
How to use checksums
e32f10d1b6ab92e7f5ed6b778cd1eef80f215ad539cc4531019d63edf1386718
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.5.1 CPython/3.11.1 Linux/5.15.0-1039-azure

Release files / poetry_source_env-2.0.1-py3-none-any.whl

Download URL poetry_source_env-2.0.1-py3-none-any.whl
Size 4.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
345b80aad0ab689de01227174c4f3421605b96a40a78797c6534b90ae92e7e13
BLAKE2b-256 checksum
How to use checksums
3c4b03b55d997f25b926654cd2cf6a0549ff264b184f774752dfda45cc1d7623
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.5.1 CPython/3.11.1 Linux/5.15.0-1039-azure

Release history Release notifications | RSS feed

This release

2.0.1 This release

2 release files

2.0.0

2 release files

1.1.1

2 release files

1.1.0

2 release files

1.0.1

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page