Hackfut Security File Manager
Current Path:
/opt/alt/python27/lib/python2.7/site-packages/paste
opt
/
alt
/
python27
/
lib
/
python2.7
/
site-packages
/
paste
/
📁
..
📁
auth
📄
cascade.py
(4.4 KB)
📄
cascade.pyc
(4.37 KB)
📄
cascade.pyo
(4.37 KB)
📄
cgiapp.py
(9.37 KB)
📄
cgiapp.pyc
(8.35 KB)
📄
cgiapp.pyo
(8.14 KB)
📄
cgitb_catcher.py
(3.66 KB)
📄
cgitb_catcher.pyc
(3.76 KB)
📄
cgitb_catcher.pyo
(3.76 KB)
📄
config.py
(4.21 KB)
📄
config.pyc
(5.16 KB)
📄
config.pyo
(5.16 KB)
📁
cowbell
📁
debug
📄
errordocument.py
(13.45 KB)
📄
errordocument.pyc
(12.77 KB)
📄
errordocument.pyo
(12.77 KB)
📁
evalexception
📁
exceptions
📄
fileapp.py
(13.29 KB)
📄
fileapp.pyc
(13.04 KB)
📄
fileapp.pyo
(12.91 KB)
📄
fixture.py
(56.63 KB)
📄
fixture.py.stdlib
(56.71 KB)
📄
fixture.pyc
(59.3 KB)
📄
fixture.pyo
(57.08 KB)
📄
flup_session.py
(3.85 KB)
📄
flup_session.pyc
(3.87 KB)
📄
flup_session.pyo
(3.87 KB)
📄
gzipper.py
(3.61 KB)
📄
gzipper.pyc
(4.47 KB)
📄
gzipper.pyo
(4.47 KB)
📄
httpexceptions.py
(23.65 KB)
📄
httpexceptions.pyc
(27.71 KB)
📄
httpexceptions.pyo
(26.98 KB)
📄
httpheaders.py
(42.08 KB)
📄
httpheaders.pyc
(44.21 KB)
📄
httpheaders.pyo
(42.94 KB)
📄
httpserver.py
(54.36 KB)
📄
httpserver.pyc
(47.52 KB)
📄
httpserver.pyo
(46.87 KB)
📄
lint.py
(14.65 KB)
📄
lint.pyc
(17.47 KB)
📄
lint.pyo
(13.45 KB)
📄
modpython.py
(7.79 KB)
📄
modpython.pyc
(8.74 KB)
📄
modpython.pyo
(8.74 KB)
📄
pony.py
(2.23 KB)
📄
pony.pyc
(2.69 KB)
📄
pony.pyo
(2.69 KB)
📄
progress.py
(7.97 KB)
📄
progress.pyc
(9.2 KB)
📄
progress.pyo
(9.2 KB)
📄
proxy.py
(9.94 KB)
📄
proxy.pyc
(8.58 KB)
📄
proxy.pyo
(8.58 KB)
📄
recursive.py
(14.32 KB)
📄
recursive.pyc
(17.72 KB)
📄
recursive.pyo
(17.4 KB)
📄
registry.py
(21.67 KB)
📄
registry.pyc
(22.4 KB)
📄
registry.pyo
(22.4 KB)
📄
reloader.py
(5.87 KB)
📄
reloader.pyc
(5.99 KB)
📄
reloader.pyo
(5.99 KB)
📄
request.py
(13.81 KB)
📄
request.pyc
(13.74 KB)
📄
request.pyo
(13.64 KB)
📄
response.py
(7.48 KB)
📄
response.pyc
(9.25 KB)
📄
response.pyo
(9.16 KB)
📄
session.py
(11.07 KB)
📄
session.pyc
(11.77 KB)
📄
session.pyo
(11.77 KB)
📄
transaction.py
(4.26 KB)
📄
transaction.pyc
(5.72 KB)
📄
transaction.pyo
(5.72 KB)
📄
translogger.py
(4.7 KB)
📄
translogger.pyc
(4.27 KB)
📄
translogger.pyo
(4.27 KB)
📄
url.py
(14.28 KB)
📄
url.pyc
(18.15 KB)
📄
url.pyo
(18.15 KB)
📄
urlmap.py
(8.82 KB)
📄
urlmap.pyc
(9.54 KB)
📄
urlmap.pyo
(9.4 KB)
📄
urlparser.py
(25.8 KB)
📄
urlparser.pyc
(22.14 KB)
📄
urlparser.pyo
(21.97 KB)
📁
util
📄
wsgilib.py
(19.66 KB)
📄
wsgilib.pyc
(21.71 KB)
📄
wsgilib.pyo
(21.66 KB)
📄
wsgiwrappers.py
(21.65 KB)
📄
wsgiwrappers.pyc
(23.88 KB)
📄
wsgiwrappers.pyo
(23.88 KB)
Editing: transaction.py
# (c) 2005 Ian Bicking and contributors; written for Paste (http://pythonpaste.org) # Licensed under the MIT license: http://www.opensource.org/licenses/mit-license.php # (c) 2005 Clark C. Evans # This module is part of the Python Paste Project and is released under # the MIT License: http://www.opensource.org/licenses/mit-license.php """ Middleware related to transactions and database connections. At this time it is very basic; but will eventually sprout all that two-phase commit goodness that I don't need. .. note:: This is experimental, and will change in the future. """ from paste.httpexceptions import HTTPException from wsgilib import catch_errors class TransactionManagerMiddleware(object): def __init__(self, application): self.application = application def __call__(self, environ, start_response): environ['paste.transaction_manager'] = manager = Manager() # This makes sure nothing else traps unexpected exceptions: environ['paste.throw_errors'] = True return catch_errors(self.application, environ, start_response, error_callback=manager.error, ok_callback=manager.finish) class Manager(object): def __init__(self): self.aborted = False self.transactions = [] def abort(self): self.aborted = True def error(self, exc_info): self.aborted = True self.finish() def finish(self): for trans in self.transactions: if self.aborted: trans.rollback() else: trans.commit() class ConnectionFactory(object): """ Provides a callable interface for connecting to ADBAPI databases in a WSGI style (using the environment). More advanced connection factories might use the REMOTE_USER and/or other environment variables to make the connection returned depend upon the request. """ def __init__(self, module, *args, **kwargs): #assert getattr(module,'threadsaftey',0) > 0 self.module = module self.args = args self.kwargs = kwargs # deal with database string quoting issues self.quote = lambda s: "'%s'" % s.replace("'","''") if hasattr(self.module,'PgQuoteString'): self.quote = self.module.PgQuoteString def __call__(self, environ=None): conn = self.module.connect(*self.args, **self.kwargs) conn.__dict__['module'] = self.module conn.__dict__['quote'] = self.quote return conn def BasicTransactionHandler(application, factory): """ Provides a simple mechanism for starting a transaction based on the factory; and for either committing or rolling back the transaction depending on the result. It checks for the response's current status code either through the latest call to start_response; or through a HTTPException's code. If it is a 100, 200, or 300; the transaction is committed; otherwise it is rolled back. """ def basic_transaction(environ, start_response): conn = factory(environ) environ['paste.connection'] = conn should_commit = [500] def finalizer(exc_info=None): if exc_info: if isinstance(exc_info[1], HTTPException): should_commit.append(exc_info[1].code) if should_commit.pop() < 400: conn.commit() else: try: conn.rollback() except: # TODO: check if rollback has already happened return conn.close() def basictrans_start_response(status, headers, exc_info = None): should_commit.append(int(status.split(" ")[0])) return start_response(status, headers, exc_info) return catch_errors(application, environ, basictrans_start_response, finalizer, finalizer) return basic_transaction __all__ = ['ConnectionFactory', 'BasicTransactionHandler'] if '__main__' == __name__ and False: from pyPgSQL import PgSQL factory = ConnectionFactory(PgSQL, database="testing") conn = factory() curr = conn.cursor() curr.execute("SELECT now(), %s" % conn.quote("B'n\\'gles")) (time, bing) = curr.fetchone() print bing, time
Upload File
Create Folder