Everett

Latest version: v3.4.0

Safety actively analyzes 682532 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 2 of 4

2.0.0

-----------------------

Backwards incompatible changes:

* This radically reduces the boilerplate required to define components. It also
improves the connections between things so it's easier to:

* determine the configuration required for a single component (taking into
account superclasses, overriding, etc)
* determine the runtime configuration for a component tree given a
configuration manager

Previously, components needed to subclass RequiredConfigMixin and provide a
"required_config" class attribute. Something like this::

from everett.component import RequiredConfigMixin, ConfigOptions

class SomeClass(RequiredConfigMixin):
required_config = ConfigOptions()
required_config.add_option(
"some_option",
default="42",
)

That's been slimmed down and now looks like this::

from everett.manager import Option

class SomeClass:
class Config:
some_option = Option(default="42")

That's much simpler and the underlying implementation code is less tangled
and complex, too.

If you used ``everett.component.RequiredConfigMixin`` or
``everett.component.ConfigOptions``, you'll need to update your classes.

If you didn't use those things, then you don't have to make any changes.

See the documentation on components for how it all works now.

* Changed the way configuration variables are referred to in configuration
error messages. Previously, I tried to use a general way "namespace=something
key=somethingelse" but that's confusing and won't match up with project
documentation.

I changed it to the convention used in the process environment and
env files. For example, ``FOO_BAR``.

If you use INI or YAML for configuration, you can specify a ``msg_builder``
argument when you build the ``ConfigManager`` and build error messages
tailored to your users.

Fixes:

* Switch to ``src/`` repository layout.

* Added type annotations and type checking during CI. (155)

* Standardized on f-strings across the codebase.

* Switched Sphinx theme.

* Update of documentation, fleshed out and simplified examples, cleaned up
language, reworked structure of API section (previously called Library or
some unhelpful thing like that), etc.

1.0.3

--------------------------

Backwards incompatible changes:

* Dropped support for Python 3.4. (96)

* Dropped support for Python 3.5. (116)

Fixes:

* Add support for Python 3.7. (68)

* Add support for Python 3.8. (102)

* Add support for Python 3.9. (117)

* Reformatted code with Black, added Makefile, switched to GitHub Actions.

* Fix ``get_runtime_config()`` to infer namespaces. (118)

* Fix ``RemovedInSphinx50Warning``. (115)

* Documentation fixes and clarifications.

1.0.2

---------------------------

Fixes:

* Improve documentation.

* Fix problems when there are nested ``BoundConfigs``. Now they work
correctly. (90)

* Add "meta" to options letting you declare additional data on the option
when you're adding it.

For example, this lets you do things like mark options as "secrets"
so that you know which ones to ``******`` out when logging your
configuration. (88)

1.0.1

-------------------------

Fixes:

* Fix documentation issues.

* Package missing ``everett.ext``. Thank you, dsblank! (84)

1.0.0

-------------------------

Backwards incompatible changes:

* Dropped support for Python 2.7. Everett no longer supports Python 2. (73)

* Dropped support for Python 3.3 and added support for Python 3.7. Thank you,
pjz! (68)

* Moved ``ConfigIniEnv`` to a different module. Now you need to import it
like this::

from everett.ext.inifile import ConfigIniEnv

(79)

Features:

* Everett now logs configuration discovery in the ``everett`` logger at the
``logging.DEBUG`` level. This is helpful for trouble-shooting some kinds of
issues. (74)

* Everett now has a YAML configuration environment. In order to use it, you
need to install its requirements::

$ pip install everett[yaml]

Then you can import it like this::

from everett.ext.yamlfile import ConfigYamlEnv

(72)

Fixes:

* Everett no longer requires ``configobj``--it's now optional. If you use
``ConfigIniEnv``, you can install it with::

$ pip install everett[ini]

(79)

* Fixed list parsing and file discovery in ConfigIniEnv so they match the
docs and are more consistent with other envs. Thank you, apollo13! (71)

* Added a ``.basic_config()`` for fast opinionated setup that uses the
process environment and a ``.env`` file in the current working directory.

* Switching to semver.

0.9

---------------------

Changed:

* Rewrite Sphinx extension. The extension is now in the ``everett.sphinxext``
module and the directive is now ``.. autocomponent::``. It generates better
documentation and it now indexes Everett components and options.

This is backwards-incompatible. You will need to update your Sphinx
configuration and documentation.

* Changed the ``HISTORY.rst`` structure.

* Changed the repr for ``everett.NO_VALUE`` to ``"NO_VALUE"``.

* ``InvalidValueError`` and ``ConfigurationMissingError`` now have
``namespace``, ``key``, and ``parser`` attributes allowing you to build your
own messages.

Fixed:

* Fix an example in the docs where the final key was backwards. Thank you, pjz!

Documentation fixes and updates.

Page 2 of 4

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.