Functions and classes for many purposes, that I use all the time in multiple programs.
I use SQLAlchemy and Pyramid a lot.
The library is hosted at https://github.com/nandoflorestan/bag
Previously, this library was hosted at http://code.google.com/p/bag
The library is tested on Python 2.6, 2.7, 3.3, 3.4 and 3.5.
For documentation on each module, please refer to its own docstrings.
This version was published with releaser.
Most important library contents
- bag.csv2 – The infamous csv Python module does not support unicode; problem solved.
- bag.spreadsheet – Import CSV and Excel spreadsheets based on headers on the first row. There is also a buffered CSV writer for outputting CSV in a web app.
- bag.email_validator – The ultimate functions for email validation and domain validation, as well as an email address harvester.
If you use the Pyramid web framework
- bag.web.pyramid.angular_csrf – Make Pyramid play ball with AngularJS to achieve CSRF protection.
- bag.web.pyramid.flash_msg – Advanced flash messages scheme for Pyramid.
- bag.web.pyramid.locale – Easily enable and disable locales, let users switch languages, and use the browser’s languages by default.
- bag.web.pyramid.nav – Simple web menu system (navigation).
- bag.web.pyramid.plugins_manager – Make your Pyramid app extensible through plugins.
- bag.web.exceptions – The Problem exception is good for throwing from a service layer, then caught in the view layer to be shown to the user. – Functions and base resources for context objects (Pyramid traversal).
- bag.web.pyramid.routes – Make Pyramid routes and the route_path() function available to JS in the client.
- bag.web.pyramid.genshi – Use the Genshi templating language with the Pyramid web framework. Though perhaps one might prefer Kajiki.
If you use SQLAlchemy
- bag.sqlalchemy.context – Convenient SQLAlchemy initialization, at last.
- bag.sqlalchemy.mediovaigel – Complete solution for database fixtures using SQLAlchemy.
- bag.sqlalchemy.testing – Fake objects for unit testing code that uses SQLAlchemy. Tests will run much faster because no database is accessed.
- bag.sqlalchemy.tricks – Various SQLAlchemy gimmicks, including a great base model class.
Less important library contents
- bag.bytes_box – Wraps an Image in another object that can instantiate it from a number of sources (bytes, files etc.) and then copy, resize or write it. The interface is experimental but seems to be very convenient.
- bag.check_rst – Verifies reStructuredText content for correctness.
- bag.console – Functions for user interaction at the console.
- bag.corrupt_image – Read image files and do something if they are corrupt.
- bag.file_existence_manager – Tools for finding duplicate files using hashes.
- bag.file_watcher – Watches a bunch of files and when one of them is modified, runs a callback. Also useful for reloading Python modules when they are altered.
- bag.log – Convenient logging initialization.
- bag.html – Encode and decode HTML and XML entities.
- bag.memoize – Memoize decorator with a LRU (least recently used) cache, which can take a keymaker function as an argument.
- bag.more_codecs – Got text in some weird encoding that Python doesn’t know? OK, use iconv to decode it.
- bag.show_progress – Don’t leave your user wondering if your program is hanging; print the progress every few seconds.
- bag.streams – Functions that use streams (open files).
- bag.text – Functions for working with unicode strings.
- bag.text.words – Contains lists of nouns and adjectives and can generate a random combination words – good for generating funny test data.
- bag.time – Functions to make it easier to work with datetimes. Includes a JSON encoder that supports time, datetime and Decimal.