more public API

This commit is contained in:
Tobias Oberstein
2015-09-16 16:45:52 +02:00
parent f9a6922e33
commit a53f0f1217
3 changed files with 102 additions and 37 deletions

View File

@@ -26,43 +26,61 @@
from __future__ import absolute_import
from autobahn.wamp.uri import Pattern
from autobahn.wamp.types import \
SessionDetails, \
CloseDetails, \
RegisterOptions, \
CallOptions, \
CallDetails, \
CallResult, \
SubscribeOptions, \
PublishOptions, \
EventDetails
from autobahn.wamp.exception import \
Error, \
SessionNotReady, \
SerializationError, \
ProtocolError, \
TransportLost, \
ApplicationError
from autobahn.wamp.interfaces import \
ICaller, \
ICallee, \
IPublisher, \
ISubscriber
from autobahn.wamp.uri import \
error, \
register, \
subscribe
def register(uri):
"""
Decorator for WAMP procedure endpoints.
"""
def decorate(f):
assert(callable(f))
if not hasattr(f, '_wampuris'):
f._wampuris = []
f._wampuris.append(Pattern(uri, Pattern.URI_TARGET_ENDPOINT))
return f
return decorate
__all__ = (
'SessionDetails',
'CloseDetails',
'RegisterOptions',
'CallOptions',
'CallDetails',
'CallResult',
'SubscribeOptions',
'PublishOptions',
'EventDetails',
'Error',
'SessionNotReady',
'SerializationError',
'ProtocolError',
'TransportLost',
'ApplicationError',
def subscribe(uri):
"""
Decorator for WAMP event handlers.
"""
def decorate(f):
assert(callable(f))
if not hasattr(f, '_wampuris'):
f._wampuris = []
f._wampuris.append(Pattern(uri, Pattern.URI_TARGET_HANDLER))
return f
return decorate
'ICaller',
'ICallee',
'IPublisher',
'ISubscriber',
def error(uri):
"""
Decorator for WAMP error classes.
"""
def decorate(cls):
assert(issubclass(cls, Exception))
if not hasattr(cls, '_wampuris'):
cls._wampuris = []
cls._wampuris.append(Pattern(uri, Pattern.URI_TARGET_EXCEPTION))
return cls
return decorate
'error',
'register',
'subscribe',
)

View File

@@ -26,7 +26,7 @@
from __future__ import absolute_import
from autobahn.wamp import error
from autobahn.wamp.uri import error
__all__ = (
'Error',

View File

@@ -24,11 +24,19 @@
#
###############################################################################
from __future__ import absolute_import
import re
import six
from autobahn.wamp.types import SubscribeOptions
__all__ = ('Pattern',)
__all__ = (
'Pattern',
'register',
'subscribe',
'error',
)
class Pattern(object):
@@ -215,3 +223,42 @@ class Pattern(object):
:rtype: bool
"""
return self._target == Pattern.URI_TARGET_EXCEPTION
def register(uri):
"""
Decorator for WAMP procedure endpoints.
"""
def decorate(f):
assert(callable(f))
if not hasattr(f, '_wampuris'):
f._wampuris = []
f._wampuris.append(Pattern(uri, Pattern.URI_TARGET_ENDPOINT))
return f
return decorate
def subscribe(uri):
"""
Decorator for WAMP event handlers.
"""
def decorate(f):
assert(callable(f))
if not hasattr(f, '_wampuris'):
f._wampuris = []
f._wampuris.append(Pattern(uri, Pattern.URI_TARGET_HANDLER))
return f
return decorate
def error(uri):
"""
Decorator for WAMP error classes.
"""
def decorate(cls):
assert(issubclass(cls, Exception))
if not hasattr(cls, '_wampuris'):
cls._wampuris = []
cls._wampuris.append(Pattern(uri, Pattern.URI_TARGET_EXCEPTION))
return cls
return decorate