Metadata-Version: 2.1
Name: poetry-dotenv
Version: 0.2.4
Summary: poetry-dotenv - is the plugin that automatically loads environment variables from a dotenv file into the environment before poetry commands are run.
Home-page: https://github.com/volopivoshenko/poetry-dotenv
License: MIT
Keywords: python,pypi,poetry,plugin,plugins,poetry-plugin,poetry-plugins,env,dotenv,cross-platform,hacktoberfest
Author: Volodymyr Pivoshenko
Author-email: volodymyr.pivoshenko@gmail.com
Maintainer: Volodymyr Pivoshenko
Maintainer-email: volodymyr.pivoshenko@gmail.com
Requires-Python: >=3.7,<3.11
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Other Environment
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Information Technology
Classifier: License :: OSI Approved :: MIT License
Classifier: Natural Language :: English
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: Software Development
Classifier: Topic :: Software Development :: Libraries
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Dist: poetry (>=1.2.2,<2.0.0)
Project-URL: Documentation, https://github.com/volopivoshenko/poetry-dotenv
Project-URL: Issues, https://github.com/volopivoshenko/poetry-dotenv/issues
Project-URL: Repository, https://github.com/volopivoshenko/poetry-dotenv
Project-URL: Releases, https://github.com/volopivoshenko/poetry-dotenv/releases
Project-URL: Say Thanks!, https://www.buymeacoffee.com/volopivoshenko
Description-Content-Type: text/markdown

<div align="center">
    <a href="https://pypi.org/project/poetry-dotenv">
        <img alt="logo" src="https://github.com/volopivoshenko/poetry-dotenv/blob/main/docs/static/assets/logo.svg?raw=True" height=200>
    </a>
</div>

<p align="center">
    <a href="https://opensource.org/licenses/MIT">
        <img alt="license" src="https://img.shields.io/pypi/l/poetry-dotenv?logo=opensourceinitiative">
    </a>
    <a href="https://pypi.org/project/poetry-dotenv">
        <img alt="python" src="https://img.shields.io/pypi/pyversions/poetry-dotenv?logo=python">
    </a>
    <a href="https://pypi.org/project/poetry-dotenv">
        <img alt="pypi" src="https://img.shields.io/pypi/v/poetry-dotenv?logo=pypi">
    </a>
    <a href="https://github.com/volopivoshenko/poetry-dotenv/releases">
        <img alt="release" src="https://img.shields.io/github/v/release/volopivoshenko/poetry-dotenv?logo=github">
    </a>
    <a href="https://www.sphinx-doc.org/en/master">
        <img alt="sphinx" src="https://img.shields.io/badge/made_with-Sphinx-1f425f.svg?logo=readthedocs">
    </a>
    <a href="https://numpydoc.readthedocs.io/en/latest/format.html">
        <img alt="numpydoc" src="https://img.shields.io/badge/docstrings-numpy-1f425f.svg?logo=numpy">
    </a>
</p>

<p align="center">
    <a href="https://github.com/psf/black">
        <img alt="black" src="https://img.shields.io/badge/code_style-black-black.svg?logo=windowsterminal">
    </a>
    <a href="https://pycqa.github.io/isort/index.html">
        <img alt="isort" src="https://img.shields.io/badge/imports-isort-black.svg?logo=windowsterminal">
    </a>
    <a href="https://wemake-python-stylegui.de/en/latest/index.html">
        <img alt="wemake" src="https://img.shields.io/badge/style-wemake-black.svg?logo=windowsterminal">
    </a>
    <a href="https://mypy.readthedocs.io/en/stable/index.html">
        <img alt="mypy" src="https://img.shields.io/badge/mypy-checked-success.svg?logo=python">
    </a>
    <a href="https://github.com/pyupio/safety">
        <img alt="safety" src="https://img.shields.io/badge/safety-checked-success.svg?logo=windowsterminal">
    </a>
    <a href="https://github.com/semantic-release/semantic-release">
        <img alt="semantic_release" src="https://img.shields.io/badge/semantic_release-angular-e10079?logo=semantic-release">
    </a>
</p>

<p align="center">
    <a href="https://github.com/dependabot">
        <img alt="dependabot" src="https://img.shields.io/badge/dependabot-enable-success?logo=Dependabot">
    </a>
    <a href="https://github.com/volopivoshenko/poetry-dotenv/actions/workflows/integration.yaml">
        <img alt="integration" src="https://img.shields.io/github/workflow/status/volopivoshenko/poetry-dotenv/CI?label=CI&logo=github">
    </a>
    <a href="https://github.com/volopivoshenko/poetry-dotenv/actions/workflows/deployment.yaml">
        <img alt="deployment" src="https://img.shields.io/github/workflow/status/volopivoshenko/poetry-dotenv/CD?label=CD&logo=github">
    </a>
    <a href="https://github.com/volopivoshenko/poetry-dotenv/actions/workflows/codeql.yaml">
        <img alt="codeql" src="https://img.shields.io/github/workflow/status/volopivoshenko/poetry-dotenv/CodeQL?label=codeQL&logo=github">
    </a>
    <a href="https://pypi.org/project/poetry-dotenv">
        <img alt="wheel" src="https://img.shields.io/pypi/wheel/poetry-dotenv?logo=pypi">
    </a>
</p>

<p align="center">
    <a href="https://codecov.io/gh/volopivoshenko/poetry-dotenv">
        <img alt="coverage" src="https://img.shields.io/codecov/c/gh/volopivoshenko/poetry-dotenv?logo=codecov&token=yyck08xfTN"/>
    </a>
    <a href="https://codeclimate.com/github/volopivoshenko/poetry-dotenv/maintainability">
        <img alt="codeclimate" src="https://img.shields.io/codeclimate/maintainability/volopivoshenko/poetry-dotenv?logo=codeclimate">
    </a>
    <a href="https://pypi.org/project/poetry-dotenv">
        <img alt="downloads" src="https://img.shields.io/pypi/dm/poetry-dotenv?logo=pypi">
    </a>
    <a href="https://github.com/volopivoshenko/poetry-dotenv/">
        <img alt="stars" src="https://img.shields.io/github/stars/volopivoshenko/poetry-dotenv?logo=github">
    </a>
</p>

<p align="center">
    <a href="https://github.com/volopivoshenko/poetry-dotenv/issues">
        <img alt="issues" src="https://img.shields.io/github/issues/volopivoshenko/poetry-dotenv?logo=github">
    </a>
    <a href="https://github.com/volopivoshenko/poetry-dotenv/issues">
        <img alt="issues" src="https://img.shields.io/github/issues-closed/volopivoshenko/poetry-dotenv?logo=github">
    </a>
    <a href="https://github.com/volopivoshenko/poetry-dotenv/pulls">
        <img alt="pr" src="https://img.shields.io/github/issues-pr/volopivoshenko/poetry-dotenv?logo=github">
    </a>
    <a href="https://github.com/volopivoshenko/poetry-dotenv/pulls">
        <img alt="pr" src="https://img.shields.io/github/issues-pr-closed/volopivoshenko/poetry-dotenv?logo=github">
    </a>
    <a href="https://github.com/volopivoshenko/poetry-dotenv/graphs/contributors">
        <img alt="contributors" src="https://img.shields.io/github/contributors/volopivoshenko/poetry-dotenv?logo=github">
    </a>
    <a href="https://github.com/volopivoshenko/poetry-dotenv/commits/main">
        <img alt="commit" src="https://img.shields.io/github/last-commit/volopivoshenko/poetry-dotenv?logo=github">
    </a>
</p>

<p align="center">
    <a href="https://www.buymeacoffee.com/volopivoshenko" target="_blank">
        <img alt="buymeacoffee" src="https://img.shields.io/badge/buy_me_-a_coffee-ff6964?logo=buymeacoffee">
    </a>
</p>

- [Overview](#overview)
- [Installation](#installation)
- [Usage](#usage)

# Overview

`poetry-dotenv` - is the plugin that automatically loads environment variables from a dotenv file into the environment before `poetry` commands are run.

**This plugin doesn't have any dependencies, but therefore it also supports features that `python-dotenv` supports (e.g. templates, interpolating variables using `POSIX` variable expansions etc).**

# Installation

```bash
poetry self add poetry-dotenv
```

# Usage

By default, plugin will load the `.env` file from the current working directory or "higher directories".

To prevent ``poetry`` from loading the dotenv file, set the ``POETRY_DONT_LOAD_DOTENV`` environment variable.

If your dotenv file is located in a different path or has a different name you may set the ``POETRY_DOTENV_LOCATION`` environment variable.

```dotenv
# .env
DB__HOST=localhost
DB__DBNAME=prod
DB__USER=admin
DB__PASSWORD=admin
DB__ENGINE=postgresql://${DB__USER}:${DB__PASSWORD}@${DB__HOST}/${DB__DBNAME}
```

```dotenv
# .env.dev
DB__HOST=localhost
DB__DBNAME=dev
DB__USER=root
DB__PASSWORD=root
DB__ENGINE=postgresql://${DB__USER}:${DB__PASSWORD}@${DB__HOST}/${DB__DBNAME}
```

```python
# main.py
if __name__ == "__main__":
    try:
        print(f"Host: {os.environ['DB__HOST']!r}")
        print(f"Name: {os.environ['DB__DBNAME']!r}")
        print(f"Username: {os.environ['DB__USER']!r}")
        print(f"Password: {os.environ['DB__PASSWORD']!r}")
        print(f"Engine: {os.environ['DB__ENGINE']!r}")

    except KeyError:
        print("Environment variables not set!")
```

```bash
poetry run -vvv python main.py

export POETRY_DOTENV_LOCATION=.env.dev && poetry run -vvv python main.py

export POETRY_DONT_LOAD_DOTENV=1 && poetry run -vvv python main.py
```

![example](https://raw.githubusercontent.com/volopivoshenko/poetry-dotenv/main/docs/static/assets/example.gif)

