Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/nandoflorestan/bag

A Python library for several purposes
https://github.com/nandoflorestan/bag

library pyramid-framework python python3 sqlalchemy web

Last synced: 3 months ago
JSON representation

A Python library for several purposes

Awesome Lists containing this project

README

        

===========
bag library
===========

**bag** contains code for many purposes, which I find myself reusing in
multiple programs -- so this code must be version-controlled.
I use SQLAlchemy and Pyramid a lot.

**Documentation** is at http://docs.nando.audio/bag/latest/

The code is at
https://github.com/nandoflorestan/bag
where you can do your bug reports and pull requests.

This version of **bag** was published with
`releaser `_.

Most important library contents
===============================

- `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.
- `bag.pathlib_complement `_
-- A Path subclass that does what pathlib doesn't do.
- `bag.subcommand `_
-- Use argh to dispatch to subcommands with their command-line arguments.
- `bag.web.burla `_
-- Powerful URL generation independent of web frameworks, working in Python and in the client (Javascript) too. Also provided is `Pyramid integration for it `_.
- `bag.web.transecma `_
-- Complete solution for javascript internationalization. Compatible with
jquery templates. Includes
`transecma.js `_.
- `bag.web.flash_msg` has been removed in favor of a better module in the
`kerno `_ library. It defines
a rich class for UI messages to be stored in the HTTP session.

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.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.pyramid.resources `_
- `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.

If you use SQLAlchemy
=====================

- `bag.sqlalchemy.context `_
-- Convenient SQLAlchemy initialization, at last.
- `bag.sqlalchemy.mediovaigel `_ -- Complete solution for database fixtures using SQLAlchemy.
- `bag.sqlalchemy.tricks `_
-- Various SQLAlchemy gimmicks, including a great base model class.

Commands
========

- `delete_old_branches `_
-- Deletes git branches that have already been merged onto the current branch.
Optionally, filter the branches by age (in days).
- `reorder_po `_
-- Reorders .po files (usually after transifex messes up the order of the
translations in them) so the diff is always readable.
- `replace_text `_
-- A simple command to replace text in many files, without worrying
about regular expressions.

Less important library contents
===============================

- `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.log `_
-- Convenient logging initialization.
- **bag.html** -- Encode and decode HTML and XML entities.
- **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.