Skip to main content

A loader implementing the PasteDeploy syntax to be used by plaster.

Project description

https://img.shields.io/pypi/v/plaster_pastedeploy.svg https://img.shields.io/travis/Pylons/plaster_pastedeploy/master.svg

plaster_pastedeploy is a plaster plugin that provides a plaster.Loader that can parse ini files according to the standard set by PasteDeploy. It supports the wsgi plaster protocol, implementing the plaster.protocols.IWSGIProtocol interface.

Usage

Applications should use plaster_pastedeploy to load settings from named sections in a configuration source (usually a file).

  • Please look at the documentation for plaster on how to integrate this loader into your application.

  • Please look at the documentation for PasteDeploy on the specifics of the supported INI file format.

Most applications will want to use plaster.get_loader(uri, protocols=['wsgi']) to get this loader. It then exposes get_wsgi_app, get_wsgi_app_settings, get_wsgi_filter and get_wsgi_server.

import plaster

loader = plaster.get_loader('development.ini', protocols=['wsgi'])
# to get any section out of the config file
settings = loader.get_settings('app:main')

# to get settings for a WSGI app
app_config = loader.get_wsgi_app_settings()  # defaults to main

# to get an actual WSGI app
app = loader.get_wsgi_app()  # defaults to main

# to get a filter and compose it with an app
filter = loader.get_wsgi_filter('filt')
app = filter(app)

# to get a WSGI server
server = loader.get_wsgi_server()  # defaults to main

# to start the WSGI server
server(app)

Any plaster.PlasterURL options are forwarded as defaults to the loader. Some examples are below:

  • development.ini#myapp

  • development.ini?http_port=8080#main

  • pastedeploy+ini:///path/to/development.ini

  • pastedeploy+ini://development.ini#foo

  • egg:MyApp?debug=false#foo

0.6 (2018-07-11)

0.5 (2018-03-29)

  • Removed environment variable support entirely for now. The feature requires bugfixes upstream in PasteDeploy which have not been done yet and this was breaking people’s environments so it is gone for now. See https://github.com/Pylons/plaster_pastedeploy/pull/15

0.4.2 (2017-11-20)

0.4.1 (2017-07-10)

0.4 (2017-07-09)

  • Fix get_settings for an arbitrary section to follow the same rules as PasteDeploy with regards to the handling of defaults. The goal of this package is to be compliant with PasteDeploy’s format for all sections in the file such that there are no surprising format changes in various sections.

    Supported added for set default_foo = bar and get foo = default_foo syntax to override a default value and to pull a default value into the settings, respectively. In the above example the value foo = bar would be returned. Any other defaults not pulled into the section via either interpolation or the get syntax will be ignored.

    See https://github.com/Pylons/plaster_pastedeploy/pull/6

  • Inject environment variables into the defaults automatically. These will be available for interpolation as ENV_<foo>. For example if environment variable APP_DEBUG=true then %(ENV_APP_DEBUG)s will work within the ini file. See https://github.com/Pylons/plaster_pastedeploy/pull/7

  • get_settings and get_wsgi_app_settings both return only the local config now. However, the returned object has a global_conf attribute containing the defaults as well as a loader attribute pointing at the loader instance. See https://github.com/Pylons/plaster_pastedeploy/pull/8

0.3.2 (2017-07-01)

0.3.1 (2017-06-02)

  • Recognize the pastedeploy+egg scheme as an egg type.

0.3 (2017-06-02)

0.2.1 (2017-03-29)

  • Fix a bug in 0.2 in which an exception was raised for an invalid section if the a non-config-file-based protocol was used.

0.2 (2017-03-29)

  • No longer raise plaster.NoSectionError exceptions. Empty dictionaries are returned for missing sections and a user should check get_sections for the list of valid sections.

0.1 (2017-03-27)

  • Initial release.

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

plaster_pastedeploy-0.6.tar.gz (20.1 kB view details)

Uploaded Source

Built Distribution

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

plaster_pastedeploy-0.6-py2.py3-none-any.whl (7.8 kB view details)

Uploaded Python 2Python 3

File details

Details for the file plaster_pastedeploy-0.6.tar.gz.

File metadata

File hashes

Hashes for plaster_pastedeploy-0.6.tar.gz
Algorithm Hash digest
SHA256 c231130cb86ae414084008fe1d1797db7e61dc5eaafb5e755de21387c27c6fae
MD5 ad1ff568631801276a109e035d165ae0
BLAKE2b-256 3fe76a6833158d2038ec40085433308a1e164fd1dac595513f6dd556d5669bb8

See more details on using hashes here.

File details

Details for the file plaster_pastedeploy-0.6-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for plaster_pastedeploy-0.6-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 71e29b0ab90df8343bca5f0debe4706f0f8147308a78922c8c26e8252809bce4
MD5 f18b4319dd1f792106f0692a656c2484
BLAKE2b-256 d9e2de7cd499923dbf6aacc9b243f262817bfea3ffbbd4dcc5847e1aaec817a7

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