- Minor release to cleanup README.
- Drop support for Python 2.7, 3.4, 3.5, 3.6.
- Add support for Python 3.8, 3.9, 3.10.
- Blackify the codebase.
- Switch CI to Github Actions.
- Support Python 3.7.
- Depend on
pastedeploy >= 2.0
to enforce new behavior when overriding defaults. Default values passed into the loader will now override values in the[DEFAULT]
section. See #17
- Change
setup_logging
to invokelogging.config.fileConfig
withdisable_existing_loggers=False
to avoid disabling any loggers that were imported prior to configuration of the logging system. See #16
- 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 #15
- Fix
ConfigDict.copy
so that it works. See #14
- Disable environment variable support on Python 2. PasteDeploy does not support escaping the contents on Python 2 which means any variable with a value of the format %(foo)s would break the parser. Because this is implicit behavior it was deemed too error prone to support. See #10
- Escape environment variables such that their contents are not subject to interpolation. See #10
- Invoke
logging.basicConfig
whensetup_logging
is called and the config file doesn't contain any logging setup or the URI is using theegg:
protocol. See #11
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
andget foo = default_foo
syntax to override a default value and to pull a default value into the settings, respectively. In the above example the valuefoo = bar
would be returned. Any other defaults not pulled into the section via either interpolation or theget
syntax will be ignored.See #6
Inject environment variables into the defaults automatically. These will be available for interpolation as
ENV_<foo>
. For example if environment variableAPP_DEBUG=true
then%(ENV_APP_DEBUG)s
will work within the ini file. See #7get_settings
andget_wsgi_app_settings
both return only the local config now. However, the returned object has aglobal_conf
attribute containing the defaults as well as aloader
attribute pointing at the loader instance. See #8
- Resolve an issue in which
NoSectionError
would not be properly caught on Python 2.7 if theconfigparser
module was installed from PyPI. See #5
- Recognize the
pastedeploy+egg
scheme as anegg
type.
- Drop the
ini
scheme and replace withfile+ini
andpastedeploy
. Also renameini+pastedeploy
andegg+pastedeploy
topastedeploy+ini
andpastedeploy+egg
respectively. See #4
- 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.
- No longer raise
plaster.NoSectionError
exceptions. Empty dictionaries are returned for missing sections and a user should checkget_sections
for the list of valid sections.
- Initial release.