Skip to main content

Environment manager with multi-env parsing

Project description

🛠️ Envyro: Environment Configuration Simplified

Envyro is a modern configuration format and CLI tool for managing environment variables across multiple environments like dev, prod, stage, and local. It uses a custom .envyro format that supports nesting, multi-env inline values, and structured scoping.


🔍 Features

1. 🔄 Convert .envyro to .env

Generate traditional .env files for a specific environment by parsing a structured .envyro file.

Command:

envyro export --env dev

2. 📤 Export Environment Variables to Shell

Directly export variables to your current shell environment for a given environment.

Command:

source <(envyro export --env dev --shell)

3. 📦 Split .envyro into Multiple .env Files

Break a single .envyro file into multiple .env files like .env.dev, .env.prod, etc.

Command:

envyro split

🧪 Example .envyro Format

[envs]
environments = prod, dev, stage, local
default = dev

[app]
name = "MyApp"
version = [prod]:1.0.0 [dev]:0.1.0 [stage]:0.2.0 [local]:0.3.0
description = "Unified app config"
author = "John Doe"

[db]
host = [prod]:prod-db.example.com [*]:localhost
port = 5432
user = [prod]:prod_user [*]:local_user
password = [prod]:prod_pass [*]:dev_pass

[aws.s3]
bucket = [prod]:prod-bucket [dev]:dev-bucket [stage]:stage-bucket [local]:local-bucket
region = [*]:us-east-1

[aws.sns]
topic = [prod]:arn:aws:sns:us-west-1:123456789012:prod-topic [dev]:arn:aws:sns:us-west-2:123456789012:dev-topic

🧠 Advantages of .envyro

  • ✅ Supports nesting like [aws.s3], [db.connection]
  • Single-file config for all environments
  • ✅ Allows default ([*]) and environment-specific values
  • ✅ Cleaner and more maintainable than multiple .env files
  • ✅ Easy to convert into .env, .yaml, or Python dict

🧰 Installation

You can install envyro as a local tool (coming soon as a CLI tool). For now, clone and run manually.

git clone https://github.com/your-org/envyro
cd envyro
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
python main.py

👨‍💻 Author

Made with ❤️ by Manmeet Kohli, was there a need ? Don't know....


📜 License

MIT License

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

envyro-0.2.0.tar.gz (26.1 MB view details)

Uploaded Source

Built Distribution

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

envyro-0.2.0-py3-none-any.whl (7.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: envyro-0.2.0.tar.gz
  • Upload date:
  • Size: 26.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.12

File hashes

Hashes for envyro-0.2.0.tar.gz
Algorithm Hash digest
SHA256 209326be6ef940826eafe269a96d7d13adcaa95661517b741f9c90fea8bc79e6
MD5 ab71b5518573fa30d8c01edd1fde37d7
BLAKE2b-256 bed1255e398a46cb1017486de7cab85b73a78a77096640f79e45704163244ad6

See more details on using hashes here.

File details

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

File metadata

  • Download URL: envyro-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 7.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.12

File hashes

Hashes for envyro-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2178e34d79e92147453289b43327b628f707a5b224e6777863d3c9fa66cf9897
MD5 68ddfd248fe789edafae574e41ca588b
BLAKE2b-256 f15caefbc15664c3112227731bfc7d544fb8a21b4040b247a484e2b33831754a

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