Add pylint configuration file (pylintrc) and do_pylint.sh script which runs pylint checkers on Melange code using pylintrc file as config. do_pylint.sh as default shows additional information like reports, TODOs, code similarities and unused imports, but you can run it in silent mode (--silent) which disables all of that. The only problem with unused imports in pylint right now is that it doesn't work in the situation described in last example at http://code.google.com/p/soc/wiki/PythonStyleGuide#Packages, so sometimes we get unused import soc when we actually shouldn't. However this can be fixed by writing pylint plugins (our own checkers) in future.
Patch by: Pawel Solyga
Review by: to-be-reviewed
from django.db import transaction
class TransactionMiddleware(object):
"""
Transaction middleware. If this is enabled, each view function will be run
with commit_on_response activated - that way a save() doesn't do a direct
commit, the commit is done when a successful response is created. If an
exception happens, the database is rolled back.
"""
def process_request(self, request):
"""Enters transaction management"""
transaction.enter_transaction_management()
transaction.managed(True)
def process_exception(self, request, exception):
"""Rolls back the database and leaves transaction management"""
if transaction.is_dirty():
transaction.rollback()
transaction.leave_transaction_management()
def process_response(self, request, response):
"""Commits and leaves transaction management."""
if transaction.is_managed():
if transaction.is_dirty():
transaction.commit()
transaction.leave_transaction_management()
return response