Cement CLI Application Framework for Python 0.7.2dev - Testers Welcome
drks — Sat, 2010-03-06 11:06
Hello hello. I've spent quite a bit of time cleaning up The Cement CLI Application Framework and pushing it closer to a one-point-oh release. For the most part I'm completely happy with the code, but I know there will be some things that pop up. Also, before a true 1.0 release I really need to add test cases. Dunnnn dunnnnnnnnnn.
The 0.7 development branch is quite an improvement to the previous stable, and is also very close to becoming the next stable after a bit more testing. I've added a few enhancements to the layout of a generated application making it easier for new comers to understand what their working with. Json support has been enhanced by switching to using jsonpickle. Plugin support got a lot of enhancements, and is now less like a plugin framework than it is simply a way of making code optionally loadable. Taking a plugin and making it part of the core code (or vice versa) is now just a matter of adding or removing a single line of code.
I've spent a bit of time in the documentation and feel that it is nearly 90% where it needs to be with regards to covering 'the full picture' from the perspective of someone who knows nothing of the project.
The following is the full ChangeLog:
0.7.2 - Mar 06, 2010
-----------------------------------------------------------------------------
+ Branching to portland, API incompatible changes.
+ Namespace config dictionaries are overwritten by [namespace] section of
primary applications configuration files. Meaning, a namespace called
'example' reads configurations from [example] in the applications config
files. Additionally, Plugin configs can now exist in main application
configs under [plugin], as well as the typical plugins.d directory.
+ Added new 'bootstrap' directory where all application setup happens for
each namespace, and refactored 'plugins' around this bootstrap layout.
Along with that, discarded the 'plugins' directory. Plugins are now
simply optional namespaces.
+ Plugins can now be enabled by the [root] 'enabled_plugins' list, or under
a [plugin] config by setting 'enable_plugin=true'.
+ All namespace configs are merged into the root config object as an
embedded dictionary.
+ cli_opts and cli_args are now passed to the controllers __init__ rather
than to each function.
+ Added default exception classes for new projects.
+ Use jsonpickle instead of straight json.
+ Moved appmain.py/config.py to new 'core' directory.
+ Updated documentation a lot!
+ Changed register_hook to a class decorator, and added 'name' parameter to
override the name of the hook to register too (still uses name of func
otherwise).Check out the latest documentation and download the latest development release. Any and all feedback is very welcome.
RSS Feed
Post new comment