CHANGES¶
0.13 (2016-12-23)¶
- Add a Sentinel class, used for the
NOT_FOUND
object. - Upload universal wheels to pypi during release.
- make
directive_name
property available onDirective
instances.
0.12 (2016-10-04)¶
Breaking changes: previously you defined new directives using the
App.directive
directive. This would lead to import confusion: you have to 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 of
private_action_class
should 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 the
app_class_arg
class attribute toTrue
on an action, then anapp_class
is passed along toperform
,identifier
, etc. This way you can affect the app class directly instead of just its underlying configuration in theconfig
attribute.Similarly if you set the
app_class_arg
attributeTrue
on a factory class, it is passed in.Add a
clean
method to theApp
class. You can override this to introduce your own cleanup policy for aspects of the class that are not contained in theconfig
attribute.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:
autocommit
was removed from the Dectate API. Rely on thecommit
class method of theApp
class instead for a more explicit alternative. - Removed:
auto_query_tool
was removed from the Dectate API. Usequery_tool(App.commit())
instead. - Fix
repr
of 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 the
Action
andComposite
classes. - 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 for
autocommit
andauto_query_tool
.
0.10 (2016-04-25)¶
- Deprecated The
autocommit
function is deprecated. Rely on thecommit
class method of theApp
class instead for a more explicit alternative. - Deprecated The
auto_query_tool
function is deprecated. Rely ondectate.query_tool(MyApp.commit())
instead. Since the commit method returns an iterable ofApp
classes that are required to commit the app class it is invoked on, this returns the right information. topological_sort
function is exposed as the public API.- A
commit
class method onApp
classes. - Report on inconsistent uses of factories between different directives’
config
settings as well asfactory_arguments
for 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. If
factory_arguments
were 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 of
query_tool
so 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_tool
work better. - Introduce
auto_query_tool
which 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 in
factory_arguments
are also created during config creation.
0.8 (2016-04-12)¶
- Document how to refer to builtins in Python 3.
- Expose
is_committed
method onApp
subclasses.
0.7 (2016-04-11)¶
- Fix a few documentation issues.
- Expose
convert_dotted_name
and document it. - Implement new
convert_bool
. - Allow use of directive name instead of Action subclass as argument to Query.
- A
query_app
function which is especially helpful when writing tests for the query tool – it takes unconverted filter arguments. - Use newer version of
with_metaclass
from six. - Expose
NOT_FOUND
and document it. - Introduce a new
filter_get_value
method you can implement if the normal attribute getting andfilter_name
are 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 change The signature of
commit
has changed. Just pass in one or more arguments you want to commit instead of a list. See #8.
0.4 (2016-04-01)¶
- Expose
code_info
attribute for action. Thepath
in 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 use
config
,before
orafter
after in an action class ifgroup_class
is set. - Raise a DirectiveReportError if a DirectiveError is raised in a
composite
actions
method.
0.3 (2016-03-30)¶
- Document
importscan
package that can be used in combination with this one. - Introduced
factory_arguments
feature onconfig
factories, 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 a
dectate.sphinxext
module 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.