# -*- coding: utf-8 -*- from urlparse import urlparse from werkzeug import url_quote from flask import Markup class Extension(object): def __init__(self, name, author, description, github=None, bitbucket=None, docs=None, website=None, approved=False): self.name = name self.author = author self.description = Markup(description) self.github = github self.bitbucket = bitbucket self.docs = docs self.website = website self.approved = approved def to_json(self): rv = vars(self).copy() rv['description'] = unicode(rv['description']) return rv @property def pypi(self): return 'http://pypi.python.org/pypi/%s' % url_quote(self.name) @property def docserver(self): if self.docs: return urlparse(self.docs)[1] extensions = [ Extension('Flask-OAuth', 'Armin Ronacher', description='''

Adds OAuth support to Flask. ''', github='mitsuhiko/flask-oauth', docs='http://packages.python.org/Flask-OAuth/' ), Extension('Flask-OpenID', 'Armin Ronacher', description='''

Adds OpenID support to Flask. ''', github='mitsuhiko/flask-openid', docs='http://packages.python.org/Flask-OpenID/' ), Extension('Flask-Babel', 'Armin Ronacher', description='''

Adds i18n/l10n support to Flask, based on babel and pytz. ''', github='mitsuhiko/flask-babel', docs='http://packages.python.org/Flask-Babel/', approved=True ), Extension('Flask-SQLAlchemy', 'Armin Ronacher', description='''

Adds SQLAlchemy support to Flask. Quick and easy. ''', github='mitsuhiko/flask-sqlalchemy', docs='http://packages.python.org/Flask-SQLAlchemy/', approved=True ), Extension('Flask-XML-RPC', 'Matthew Frazier', description='''

Adds XML-RPC support to Flask. ''', bitbucket='leafstorm/flask-xml-rpc', docs='http://packages.python.org/Flask-XML-RPC/', approved=True ), Extension('Flask-CouchDB', 'Matthew Frazier', description='''

Adds CouchDB support to Flask. ''', bitbucket='leafstorm/flask-couchdb', docs='http://packages.python.org/Flask-CouchDB/', approved=True ), Extension('Flask-Uploads', 'Matthew Frazier', description='''

Flask-Uploads allows your application to flexibly and efficiently handle file uploading and serving the uploaded files. You can create different sets of uploads - one for document attachments, one for photos, etc. ''', bitbucket='leafstorm/flask-uploads', docs='http://packages.python.org/Flask-Uploads/', approved=True ), Extension('Flask-Themes', 'Matthew Frazier', description='''

Flask-Themes makes it easy for your application to support a wide range of appearances. ''', bitbucket='leafstorm/flask-themes', docs='http://packages.python.org/Flask-Themes/', approved=True ), Extension('Flask-CouchDBKit', 'Kridsada Thanabulpong', description='''

Adds CouchDBKit support to Flask. ''', github='sirn/flask-couchdbkit', docs='http://packages.python.org/Flask-CouchDBKit/' ), Extension('Flask-Genshi', 'Dag Odenhall', description='''

Adds support for the Genshi templating language to Flask applications. ''', github='dag/flask-genshi', docs='http://packages.python.org/Flask-Genshi/', approved=True ), Extension('Flask-Mail', 'Dan Jacob', description='''

Makes sending mails from Flask applications very easy and has also support for unittesting. ''', bitbucket='danjac/flask-mail', docs='http://packages.python.org/flask-mail/', approved=True ), Extension('Flask-WTF', 'Dan Jacob', description='''

Flask-WTF offers simple integration with WTForms. This integration includes optional CSRF handling for greater security. ''', bitbucket='danjac/flask-wtf', docs='http://packages.python.org/Flask-WTF/', approved=True ), Extension('Flask-Testing', 'Dan Jacob', description='''

The Flask-Testing extension provides unit testing utilities for Flask. ''', bitbucket='danjac/flask-testing', docs='http://packages.python.org/Flask-Testing/', approved=True ), Extension('Flask-Script', 'Dan Jacob', description='''

The Flask-Script extension provides support for writing external scripts in Flask. It uses argparse to parse command line arguments. ''', bitbucket='danjac/flask-script', docs='http://packages.python.org/Flask-Script/', approved=True ), Extension('flask-csrf', 'Steve Losh', description='''

A small Flask extension for adding CSRF protection. ''', docs='http://sjl.bitbucket.org/flask-csrf/', bitbucket='sjl/flask-csrf' ), Extension('flask-lesscss', 'Steve Losh', description='''

A small Flask extension that makes it easy to use LessCSS with your Flask application. ''', docs='http://sjl.bitbucket.org/flask-lesscss/', bitbucket='sjl/flask-lesscss' ), Extension('Flask-Creole', 'Ali Afshar', description='''

Creole parser filters for Flask. ''', docs='http://packages.python.org/Flask-Creole', bitbucket='aafshar/flask-creole-main', approved=True ), Extension('Flask-Cache', 'Thadeus Burgess', description='''

Adds cache support to your Flask application. ''', docs='http://packages.python.org/Flask-Cache', github='thadeusb/flask-cache', ), Extension('Flask-Principal', 'Ali Afshar', description='''

Identity management for Flask. ''', docs='http://packages.python.org/Flask-Principal', bitbucket='aafshar/flask-principal-main', approved=False ), Extension('Flask-Zen', 'Noah Kantrowitz', description='''

Flask-Zen allows you to use PyZen via Flask-Script commands. ''', docs='http://packages.python.org/Flask-Zen/', github='coderanger/flask-zen', approved=False ), Extension('Flask-Assets', u'Michael Elsdörfer', description='''

Integrates the webassets library with Flask, adding support for merging, minifying and compiling CSS and Javascript files. ''', docs='http://elsdoerfer.name/docs/flask-assets/', github='miracle2k/flask-assets', approved=False ), Extension('Flask-AutoIndex', 'Heungsub Lee', description='''

An extension that generates an index page for your Flask application automatically ''', docs='http://packages.python.org/Flask-AutoIndex/', github='sublee/flask-autoindex', approved=False ), Extension('Flask-Celery', 'Ask Solem', description='''

Celery integration for Flask ''', docs='http://ask.github.com/celery/', github='ask/flask-celery', approved=False ), Extension('Frozen-Flask', 'Simon Sapin', description='''

Freezes a Flask application into a set of static files. The result can be hosted without any server-side software other than a traditional web server. ''', docs='http://packages.python.org/Frozen-Flask/', github='SimonSapin/Frozen-Flask', approved=False ), Extension('Flask-FlatPages', 'Simon Sapin', description='''

Provides flat static pages to a Flask application, based on text files as opposed to a relational database. ''', docs='http://packages.python.org/Flask-FlatPages/', github='SimonSapin/Flask-FlatPages', approved=False ), Extension('Flask-FluidDB', 'Ali Afshar', description='''

FluidDB access for Flask. ''', docs='http://packages.python.org/Flask-FluidDB/', bitbucket='aafshar/flask-fluiddb-main', approved=False ), Extension('Flask-Gravatar', 'Zelenyak Aleksandr', description='''

Small extension for Flask to make using Gravatar easy. ''', docs='http://packages.python.org/Flask-Gravatar/', github='zzzsochi/Flask-Gravatar', approved=False ), Extension('Flask-HTMLBuilder', 'Zahari Petkov', description='''

Flask-HTMLBuilder is an extension that allows flexible and easy Python-only generation of HTML snippets and full HTML documents using a robust syntax. ''', docs='http://majorz.github.com/flask-htmlbuilder/', github='majorz/flask-htmlbuilder', approved=False ), Extension('Flask-MongoAlchemy', 'Francisco Souza', description='''

Add Flask support for MongoDB using MongoAlchemy. ''', docs='http://packages.python.org/Flask-MongoAlchemy/', github='cobrateam/flask-mongoalchemy', approved=False ), Extension('Flask-DebugToolbar', 'Michael van Tellingen', description='''

A port of the Django debug toolbar to Flask ''', docs='https://github.com/mvantellingen/flask-debugtoolbar', github='mvantellingen/flask-debugtoolbar', approved=False ) ] extensions.sort(key=lambda x: x.name.lower())