Skip to main content

Pyramid Autoenv

Project description

Build Status Coverage Status Pypi Version Python Version

Pyramid auto env

A pyramid library to help overwrite ini configs with environment variables.

Getting Started

These instructions will help you install library and use its features.

Installing

pip install pyramid-auto-env

Running the tests

Install test dependencies

pip install -e ".[test]"

Run test

pytest

Using

Replacing the mail.password of the inifile with environment variable

INI FILE

###
# app configuration
# https://docs.pylonsproject.org/projects/pyramid/en/latest/narr/environment.html
###

[app:main]
use = egg:myproject

pyramid.reload_templates = true
pyramid.debug_authorization = false
pyramid.debug_notfound = false
pyramid.debug_routematch = false
pyramid.default_locale_name = en
pyramid.includes =
    pyramid_debugtoolbar

mail.password = local

# By default, the toolbar only appears for clients from IP addresses
# '127.0.0.1' and '::1'.
# debugtoolbar.hosts = 127.0.0.1 ::1

###
# wsgi server configuration
###

[server:main]
use = egg:waitress#main
listen = localhost:6543

###
# logging configuration
# https://docs.pylonsproject.org/projects/pyramid/en/latest/narr/logging.html
###

[loggers]
keys = root, pyramid_auto_env

[handlers]
keys = console

[formatters]
keys = generic

[logger_root]
level = INFO
handlers = console

[logger_pyramid_auto_env]
level = INFO
handlers = console
qualname = pyramid_auto_env
propagate = 0

[handler_console]
class = StreamHandler
args = (sys.stderr,)
level = NOTSET
formatter = generic

[formatter_generic]
format = %(asctime)s %(levelname)-5.5s [%(name)s:%(lineno)s][%(threadName)s] %(message)s

ENVIRONMENT

export MYPROJ_MAIL_PASSWORD = S3kr3t

CODE

from pyramid.config import Configurator
from pyramid_auto_env import get_env_or_ini

@autoenv_settings(prefix='myproj')
def main(global_config, **settings):
    """ This function returns a Pyramid WSGI application.
    """
    config = Configurator(settings=settings)
    config.include('pyramid_jinja2')
    config.add_static_view('static', 'static', cache_max_age=3600)
    config.add_route('home', '/')
    config.scan()
    return config.make_wsgi_app()

ENVVAR Format

The environment variable lookup will search for <prefix.upper()>_<settings_name.upper().replace(['.-', '_'])>

Examples (prefix=MYPROJ):

host.url -> MYPROJ_HOST_URL
mail-smtp -> MYPROJ_MAIL_SMTP
my.project.super-secret -> MYPROJ_MY_PROJECT_SUPER_SECRET

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

pyramid_auto_env-0.1.1.tar.gz (3.5 kB view details)

Uploaded Source

File details

Details for the file pyramid_auto_env-0.1.1.tar.gz.

File metadata

  • Download URL: pyramid_auto_env-0.1.1.tar.gz
  • Upload date:
  • Size: 3.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.19.1 setuptools/40.4.3 requests-toolbelt/0.8.0 tqdm/4.26.0 CPython/3.6.3

File hashes

Hashes for pyramid_auto_env-0.1.1.tar.gz
Algorithm Hash digest
SHA256 9745a57d10baefd51daa0a66c2078f072f0b1fd3f633a723824b7f9433237180
MD5 f7f602f3cfbe89eb22007343b3cbf87a
BLAKE2b-256 2434e55888bc3126b179b3b2d9cb32129f0da65361dc232589c904209895210f

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