Generalize naming of module dispatch decorator factory

This commit is contained in:
Brett Sun 2016-12-06 10:15:13 +01:00 committed by Sylvain Bellemare
parent eda1c1bf55
commit c9766b5e92
3 changed files with 11 additions and 11 deletions

View File

@ -6,14 +6,14 @@ import rethinkdb as r
from bigchaindb import backend, util from bigchaindb import backend, util
from bigchaindb.common import exceptions from bigchaindb.common import exceptions
from bigchaindb.backend.utils import make_module_dispatch_registrar from bigchaindb.backend.utils import module_dispatch_registrar
from bigchaindb.backend.rethinkdb.connection import RethinkDBConnection from bigchaindb.backend.rethinkdb.connection import RethinkDBConnection
READ_MODE = 'majority' READ_MODE = 'majority'
WRITE_DURABILITY = 'hard' WRITE_DURABILITY = 'hard'
register_query = make_module_dispatch_registrar(backend.query) register_query = module_dispatch_registrar(backend.query)
@register_query(RethinkDBConnection) @register_query(RethinkDBConnection)

View File

@ -6,12 +6,12 @@ import rethinkdb as r
from bigchaindb import backend from bigchaindb import backend
from bigchaindb.common import exceptions from bigchaindb.common import exceptions
from bigchaindb.backend.utils import make_module_dispatch_registrar from bigchaindb.backend.utils import module_dispatch_registrar
from bigchaindb.backend.rethinkdb.connection import RethinkDBConnection from bigchaindb.backend.rethinkdb.connection import RethinkDBConnection
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
register_schema = make_module_dispatch_registrar(backend.schema) register_schema = module_dispatch_registrar(backend.schema)
@register_schema(RethinkDBConnection) @register_schema(RethinkDBConnection)

View File

@ -1,9 +1,9 @@
class BackendModuleDispatchRegisterError(Exception): class ModuleDispatchRegistrationError(Exception):
"""Raised when there is a problem registering dispatched functions for a """Raised when there is a problem registering dispatched functions for a
backend module""" module"""
def make_module_dispatch_registrar(module): def module_dispatch_registrar(module):
def dispatch_wrapper(obj_type): def dispatch_wrapper(obj_type):
def wrapper(func): def wrapper(func):
func_name = func.__name__ func_name = func.__name__
@ -11,10 +11,10 @@ def make_module_dispatch_registrar(module):
dispatch_registrar = getattr(module, func_name) dispatch_registrar = getattr(module, func_name)
return dispatch_registrar.register(obj_type)(func) return dispatch_registrar.register(obj_type)(func)
except AttributeError as ex: except AttributeError as ex:
raise BackendModuleDispatchRegisterError( raise ModuleDispatchRegistrationError(
("'{module}' does not contain a single-dispatchable " ("`{module}` does not contain a single-dispatchable "
"function named '{func}'. The backend being used has not " "function named `{func}`. The module being registered "
"been implemented correctly!").format( "was not implemented correctly!").format(
func=func_name, module=module.__name__)) from ex func=func_name, module=module.__name__)) from ex
return wrapper return wrapper
return dispatch_wrapper return dispatch_wrapper