Pythonic Software Framework
edbob is a Pythonic software framework, released under the GNU Affero General Public License.
It aims to be “environment-neutral” in that it can assist with development for console, web, or GUI applications. Pay only for what you eat; however all of its functionality combined may be considered a “full stack” of sorts.
Install the software with:
$ pip install edbob
Built-in help can be seen with:
$ edbob help
- Allow config file to prevent logging configuration from happening.
Some random things required in production at MaMa Jean’s…
Specifically this is known to replace occurrences of e.g. edbob.User with a more standard (properly imported) reference to User.
- Removed setup.cfg file.
- Changed some logging instances from INFO to DEBUG.
- Updated repr() output for model classes.
- [bug] Secured daemon PID files. They are no longer readable or writeable (whoops) by anyone other than the user who owns the process.
- [feature] Added --progress argument to command system.
- [general] Added initial Fabric script.
- [feature] Overhauled file monitors. Added the “process existing” (defaults to true) and “stop on error” (defaults to false) features to both Linux and Win32 file monitors. Both features may be overridden in config. The Linux file monitor was rewritten as an edbob.daemon.Daemon class.
- [feature] Added StrippingFieldRenderer.
- [general] Some style tweaks.
- [bug] Fixed graft() function when called with module reference.
- [feature] Added “sqlerror” tween which, in combination with pyramid_tm, can allow Pyramid apps to gracefully handle database server restarts. Any transaction which fails due to a disconnection from the server may be attempted more than once. The assumption is that the second attempt will succeed, since the underlying connection pool will have been invalidated upon the first failure.
- [feature] Added PHONE_TYPE enumeration.
- [general] Added some __unicode__() methods to database models.
- [bug] Fixed CSS in the progress.mako template.
- [feature] Improved the load_spec() function so that it raises an InvalidSpec exception if the spec doesn’t contain exactly one colon.
- [bug] Fixed bug where creating a new Role with the UI would use default permissions of the Guest role. Now the default permissions are empty.
- [bug] Fixed User.roles UI so that the Guest role is never shown.
- [feature] Added capture_output() function to win32 module. This is a convenience function which works around an issue when attempting to capture output from a command when the calling application is a Windows GUI app which was launched via the Windows console (DOS terminal).
- [feature] Updated User and Role management views for Pyramid apps.
- [feature] Added a view which allows a user to change his/her password from within Pyramid web apps.
- [general] Tweaked styles for form validation errors.
- [general] Added convenience subclass of formencode.Schema.
- [general] Split CSS styles into base.css and layout.css, since really they serve different purposes.
- [feature] Added overwriting_move() convenience function.
- [feature] Added the ability to specify a Mako template for use when generating error emails. Templates may be referenced in the config file using either a resource path or an absolute file path. If no template is specified, the plain text fallback will be used. The content_type of the email is also configurable (defaults to 'text/html' if a Mako template is used; 'text/plain' otherwise).
- [feature] Added ability to configure path to the PID file used by file monitor daemons running on Linux. This was necessary to allow multiple daemons to run on the same machine.
- [general] Added active_extensions stubs to alembic migration script template.
- [general] Updated pyramid user views and templates. These were sorely out of date.
- [feature] Added engine_from_config() function to edbob.sqlalchemy module. This was done to provide awareness of the poolclass parameter to engine configuration.
- [feature] Added display() method to AutocompleteView. This allows overriding the display text for autocomplete results, in the event that str(result) isn’t good enough.
- [bug] Fixed request.has_perm() function so that it can check for permissions on the “guest” role, in the event a user is not logged in.
- Add alembic/*.py to MANIFEST.in.
- Various progress tweaks.
- Add OrderedDict import to util module.
- Add alembic to db dependencies.
- Fix alembic env.py template.
- Slight overhaul of init() system; added edbob.init_modules() function.
- Added read_service() method to AppConfigParser class, for use with Windows services.
- Added generic Service class to edbob.win32 module. (File monitor now inherits from it.)
- Tweaked edbob.db initialization somewhat. (Base.metadata no longer binds to edbob.db.engine.)
- Fixed guest role bug in edbob.db.auth.has_permission() function.
- Added “automagical” enumeration support for database extensions.
- Added EMAIL_PREFERENCE enum to contact database extension.
- Tweaked edbob.pyramid.includeme().
- Tweaked people Pyramid views.
- Added edbob.daemon module.
- edbob.pyramid.Session uses sessionmaker() instead of edbob.db.Session.
- edbob.pyramid.includeme() now configures pyramid_beaker directly.
- edbob.pyramid.includeme() now configures auth/auth policies directly.
- Pyramid progress indicator added.
- edbob.pyramid.Session added to global template render context.
- request.get_referrer() method added (removed edbob.pyramid.util module).
- request.get_setting() and request.save_setting() methods added.
- Grid.column_header() now supports title attribute.
- Grid.editable support added.
- Template / style tweaks.
- text argument to disable_button() JS function is now optional.
- Forbidden view flash message no longer duplicated when multiple redirects occur.
- CrudView class improved to support various workflow needs (e.g. post-delete procesing).
- Extra renderer keyword args support added to GridView class.
- SearchableAlchemyGridView class improved to support various workflow needs (e.g. obtaining an unsorted query).
- Fixed file monitor on Linux.
- Added pyramid_exclog dependency for Pyramid apps.
- Added beaker and pyramid_exclog settings to scaffold INI files.
- Added edbob.files.locking_copy() function.
- Added file lock support to Linux file monitor.
- Fix MANIFEST.in to include jQuery UI theme.
- Add alembic stuff to scaffold.
- Overhaul Pyramid templates and styles.
- Fix current_time() in sqlalchemy module.
- Improve web redirection on user logout.
- Move database extension to subdir in scaffold.
- Add BooleanSearchFilter class.
- Overhaul CRUD form (create CrudView class).
- Add get_referer() in pyramid.util module.
- Overhaul file monitor Windows service.
- Fix reStructuredText in changelog.
- Clean up edbob.init(); fix call in Pyramid app scaffold.
- Add grant_permission() function to edbob.db.auth.
- Overhaul Grid, GridView classes in edbob.pyramid.
- Restructure edbob.pyramid.forms.formalchemy.
- Tweak Pyramid templates.
- Add core_schema_installed() function to edbob.db.util.
- Add generic autocomplete template.
- Overhaul edbob.time.
- Add contact database extension; moved Person to it.
- Improve CrudView class.
- Add get_user_dir(), get_user_file() methods to AppConfigParser.
- Add DosFile class (for writing DOS files) to edbob.files.
- Add jQuery smoothness CSS to static folder.
- Add edbob.errors (overrides sys.excepthook).
- Add debug logging to edbob.filemon.win32_server; made it call sys.excepthook() when actions fail.
- Changed py-bcrypt requirement to py-bcrypt-w32 when running on Win32.
- Removed explicit INFO level from basic_logging() function.
- Tweaked logging and initialization semantics for shell command.
- Added “foo” views and templates to Pyramid scaffold.
- Added edbob.pyramid.forms.FieldSet.allow_continue attribute.
- Made sort keyword optional for grids.
- Added edbob.pyramid.views.Crud class.
- Added edbob.pyramid.views.GridView class.
- Added “Guest” role to auth / permissions framework.
- Added edbob.pyramid.forms.formalchemy.AutocompleteFieldRenderer class.
- Added edbob.Object.__str__() method.
- Added edbob.sqlalchemy.current_time() function to provide UTC timestamp as a default field value.
- Added pyramid_tm tween to Pyramid apps.
- Tweaked login, object index and CRUD templates.
- Added file monitor for Linux.
- Fixed MANIFEST.in file.
- Added edbob.csv module.
- Tweaked logging configuration and initialization semantics.
- Fixed call to sleep() in filemon service.
- Various tweaks to Pyramid code.
- Add win32.send_data_to_printer() function.
- Various tweaks to Pyramid code.
- Initial version