Package: dectate
Dectate: a configuration engine for Python frameworksDectate is a powerful configuration engine for Python frameworks.Read the docsIt is used byMorepath.Build StatusCHANGES0.14 (2020-01-29)Removed: Removed support for Python 2.You have to upgrade to Python 3 if you want to use this version.Dropped support for Python 3.3.Added support for Python 3.5, 3.6, 3.7, 3.8 and PyPy 3.6.Make Python 3.7 the default testing environment.Don’t compute expensive logging information if logging is disabled.Add integration for the Black code formatter.0.13 (2016-12-23)Add a Sentinel class, used for theNOT_FOUNDobject.Upload universal wheels to pypi during release.makedirective_nameproperty available onDirectiveinstances.0.12 (2016-10-04)Breaking changes: previously you defined new directives using theApp.directivedirective. This would lead to import confusion: youhaveto import the modules that define directives before you can actually
use them, even though you’ve already imported your app class.In this version of Dectate we’ve changed the way you define directives.
Instead of:class MyApp(dectate.App):
    pass

@MyApp.directive('foo')
class FooAction(dectate.Action):
   ...You now write this:class FooAction(directive.Action)
    ...

class MyApp(dectate.App):
    foo = directive(FooAction)So, you define the directives directly on the app class that needs
them.Uses ofprivate_action_classshould be replaced by an underscored
directive definition:class MyApp(dectate.App):
   _my_private_thing = directive(PrivateAction)Use the same Git ignore file used in other Morepath projects.If you set theapp_class_argclass attribute toTrueon an
action, then anapp_classis passed along toperform,identifier, etc. This way you can affect the app class directly
instead of just its underlying configuration in theconfigattribute.Similarly if you set theapp_class_argattributeTrueon a
factory class, it is passed in.Add acleanmethod to theAppclass. You can override this
to introduce your own cleanup policy for aspects of the class that are
not contained in theconfigattribute.We now use virtualenv and pip instead of buildout to set up the
development environment. The development documentation has been
updated accordingly.Include doctests in Tox and Travis.0.11 (2016-07-18)Removed:autocommitwas removed from the Dectate API. Rely
on thecommitclass method of theAppclass instead for a
more explicit alternative.Removed:auto_query_toolwas removed from the Dectate API.
Usequery_tool(App.commit())instead.Fixreprof directives so that you can at least see their name.the execution order of filters is now reproducible, to ensure
consistent test coverage reports.Use abstract base classes from the standard library for theActionandCompositeclasses.Use feature detection instead of version detection to ensure Python
2/3 compatibility.Increased test coverage.Set up Travis CI and Coverall as continuous integration services for
quality assurance purposes.Add support for Python 3.3 and 3.5.Make Python 3.5 the default testing environment.0.10.2 (2016-04-26)If nothing is found for an app in the query tool, don’t mention it
in the output so as to avoid cluttering the results.Fix a major bug in the query tool where if an app resulted in no
results, any subsequent apps weren’t even searched.0.10.1 (2016-04-26)Create proper deprecation warnings instead of plain warnings forautocommitandauto_query_tool.0.10 (2016-04-25)DeprecatedTheautocommitfunction is deprecated. Rely on
thecommitclass method of theAppclass instead for a more
explicit alternative.DeprecatedTheauto_query_toolfunction is deprecated. Rely
ondectate.query_tool(MyApp.commit())instead. Since the commit
method returns an iterable ofAppclasses that are required to
commit the app class it is invoked on, this returns the right
information.topological_sortfunction is exposed as the public API.Acommitclass method onAppclasses.Report on inconsistent uses of factories between different directives’configsettings as well asfactory_argumentsfor registries. This
prevents bugs where a new directive introduces the wrong factory for
an existing directive.Expanded internals documentation.0.9.1 (2016-04-19)Fix a subtle bug introduced in the last release. Iffactory_argumentswere in use with a config name only created in
that context, it was not properly cleaned up, which in some cases
can make a commit of a subclass get the same config object as that
of the base class.0.9 (2016-04-19)Change the behavior ofquery_toolso that if it cannot find an
action class for the directive name the query result is empty
instead of making this an error. This makesauto_query_toolwork
better.Introduceauto_query_toolwhich uses the automatically found
app classes as the default app classes to query.Fix tests that use__builtin__that were failing on Python 3.Dependencies only listed infactory_argumentsare also created
during config creation.0.8 (2016-04-12)Document how to refer to builtins in Python 3.Exposeis_committedmethod onAppsubclasses.0.7 (2016-04-11)Fix a few documentation issues.Exposeconvert_dotted_nameand document it.Implement newconvert_bool.Allow use of directive name instead of Action subclass as argument
to Query.Aquery_appfunction which is especially helpful when writing
tests for the query tool – it takes unconverted filter arguments.Use newer version ofwith_metaclassfrom six.ExposeNOT_FOUNDand document it.Introduce a newfilter_get_valuemethod you can implement if the
normal attribute getting andfilter_nameare not enough.0.6 (2016-04-06)Introduce a query system for actions and a command-line tool that
lets you query actions.0.5 (2016-04-04)Breaking changeThe signature ofcommithas changed. Just
pass in one or more arguments you want to commit instead of a list. See
#8.0.4 (2016-04-01)Exposecode_infoattribute for action. Thepathin
particular can be useful in implementing a directive such as
Morepath’stemplate_directory. Expose it for composite too.Report a few more errors; you cannot useconfig,beforeorafterafter in an action class ifgroup_classis set.Raise a DirectiveReportError if a DirectiveError is raised in a
compositeactionsmethod.0.3 (2016-03-30)Documentimportscanpackage that can be used in combination with
this one.Introducedfactory_argumentsfeature onconfigfactories,
which can be used to create dependency relationships between
configuration.Fix a bug where config items were not always properly reused. Now
only the first one in the action class dependency order is used, and
it is not recreated.0.2 (2016-03-29)Remove clear_autocommit as it was useless during testing anyway.
In tests just use explicit commit.Add adectate.sphinxextmodule that can be plugged into Sphinx
so that directives are documented properly.Document how Dectate deals with double imports.0.1 (2016-03-29)Initial public release.