##// END OF EJS Templates
pull-requests: optimize db transaction logic....
pull-requests: optimize db transaction logic. - we've been investigating this issue with locked pull-requests - the transactions arround audit-logs and state-lock seems to be fragile for long-running, and exception prone setups - this change tries to make use of few snapshot transactions to prevent a long ones, and actually try to recover on failed audit-log calls.

File last commit:

r3912:9bf26830 default
r4712:412d5d47 stable
Show More
interfaces.py
73 lines | 1.3 KiB | text/x-python | PythonLexer
packages: vendor authomatic to provide bitbucket oath2 capabilities....
r3912 # -*- coding: utf-8 -*-
"""
Interfaces
^^^^^^^^^^
If you want to implement framework specific extras, use these abstract
classes as bases:
"""
import abc
class BaseSession(object):
"""
Abstract class for custom session implementations.
"""
__metaclass__ = abc.ABCMeta
@abc.abstractmethod
def save(self):
"""
Called only once per request.
Should implement a mechanism for setting the the session
**cookie** and saving the session **data** to storage.
"""
@abc.abstractmethod
def __setitem__(self, key, value):
"""
Same as :meth:`dict.__setitem__`.
"""
@abc.abstractmethod
def __getitem__(self, key):
"""
Same as :meth:`dict.__getitem__`.
"""
@abc.abstractmethod
def __delitem__(self, key):
"""
Same as :meth:`dict.__delitem__`.
"""
@abc.abstractmethod
def get(self, key):
"""
Same as :meth:`dict.get`.
"""
class BaseConfig(object):
"""
Abstract class for :doc:`config` implementations.
"""
__metaclass__ = abc.ABCMeta
@abc.abstractmethod
def get(self, key):
"""
Same as :attr:`dict.get`.
"""
@abc.abstractmethod
def values(self):
"""
Same as :meth:`dict.values`.
"""