changeset 64:c1a9403e5d21

stubs Ignore-this: d755514360cce384effcd7a78b4657ed
author Drew Perttula <drewp@bigasterisk.com>
date Fri, 31 May 2019 21:39:02 +0000
parents a3718b297d16
children 9bc9de580033
files stubs/autobahn/__init__.pyi stubs/autobahn/twisted/__init__.pyi stubs/autobahn/twisted/websocket.pyi stubs/autobahn/util.pyi stubs/autobahn/websocket/__init__.pyi stubs/autobahn/websocket/compress.pyi stubs/autobahn/websocket/compress_base.pyi stubs/autobahn/websocket/compress_bzip2.pyi stubs/autobahn/websocket/compress_deflate.pyi stubs/autobahn/websocket/interfaces.pyi stubs/autobahn/websocket/protocol.pyi stubs/autobahn/websocket/test/__init__.pyi stubs/autobahn/websocket/test/test_websocket.pyi stubs/autobahn/websocket/test/test_websocket_url.pyi stubs/autobahn/websocket/types.pyi stubs/autobahn/websocket/utf8validator.pyi stubs/autobahn/websocket/util.pyi stubs/autobahn/websocket/xormasker.pyi stubs/twisted/internet/__init__.pyi
diffstat 17 files changed, 901 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/stubs/autobahn/twisted/websocket.pyi	Fri May 31 21:39:02 2019 +0000
@@ -0,0 +1,70 @@
+# Stubs for autobahn.twisted.websocket (Python 3)
+#
+# NOTE: This dynamically typed stub was automatically generated by stubgen.
+
+import twisted.internet.protocol
+from autobahn.websocket import protocol
+from autobahn.websocket.interfaces import IWebSocketClientAgent
+from typing import Any, Optional
+
+def create_client_agent(reactor: Any): ...
+
+class _TwistedWebSocketClientAgent(IWebSocketClientAgent):
+    def __init__(self, reactor: Any) -> None: ...
+    def open(self, transport_config: Any, options: Any, protocol_class: Optional[Any] = ...): ...
+
+class WebSocketAdapterProtocol(twisted.internet.protocol.Protocol):
+    peer: str = ...
+    log: Any = ...
+    def connectionMade(self) -> None: ...
+    def connectionLost(self, reason: Any) -> None: ...
+    def dataReceived(self, data: Any) -> None: ...
+    def registerProducer(self, producer: Any, streaming: Any) -> None: ...
+    def unregisterProducer(self) -> None: ...
+
+class WebSocketServerProtocol(WebSocketAdapterProtocol, protocol.WebSocketServerProtocol):
+    log: Any = ...
+    def get_channel_id(self, channel_id_type: str = ...): ...
+
+class WebSocketClientProtocol(WebSocketAdapterProtocol, protocol.WebSocketClientProtocol):
+    log: Any = ...
+    def startTLS(self) -> None: ...
+    def get_channel_id(self, channel_id_type: str = ...): ...
+
+class WebSocketAdapterFactory: ...
+
+class WebSocketServerFactory(WebSocketAdapterFactory, protocol.WebSocketServerFactory, twisted.internet.protocol.ServerFactory):
+    reactor: Any = ...
+    def __init__(self, *args: Any, **kwargs: Any) -> None: ...
+
+class WebSocketClientFactory(WebSocketAdapterFactory, protocol.WebSocketClientFactory, twisted.internet.protocol.ClientFactory):
+    reactor: Any = ...
+    contextFactory: Any = ...
+    def __init__(self, *args: Any, **kwargs: Any) -> None: ...
+
+class WrappingWebSocketAdapter:
+    def onConnect(self, requestOrResponse: Any): ...
+    def onOpen(self) -> None: ...
+    def onMessage(self, payload: Any, isBinary: Any) -> None: ...
+    def onClose(self, wasClean: Any, code: Any, reason: Any) -> None: ...
+    def write(self, data: Any) -> None: ...
+    def writeSequence(self, data: Any) -> None: ...
+    def loseConnection(self) -> None: ...
+    def getPeer(self): ...
+    def getHost(self): ...
+
+class WrappingWebSocketServerProtocol(WrappingWebSocketAdapter, WebSocketServerProtocol): ...
+class WrappingWebSocketClientProtocol(WrappingWebSocketAdapter, WebSocketClientProtocol): ...
+
+class WrappingWebSocketServerFactory(WebSocketServerFactory):
+    def __init__(self, factory: Any, url: Any, reactor: Optional[Any] = ..., enableCompression: bool = ..., autoFragmentSize: int = ..., subprotocol: Optional[Any] = ...) -> None: ...
+    def buildProtocol(self, addr: Any): ...
+    def startFactory(self) -> None: ...
+    def stopFactory(self) -> None: ...
+
+class WrappingWebSocketClientFactory(WebSocketClientFactory):
+    def __init__(self, factory: Any, url: Any, reactor: Optional[Any] = ..., enableCompression: bool = ..., autoFragmentSize: int = ..., subprotocol: Optional[Any] = ...) -> None: ...
+    def buildProtocol(self, addr: Any): ...
+
+def connectWS(factory: Any, contextFactory: Optional[Any] = ..., timeout: int = ..., bindAddress: Optional[Any] = ...): ...
+def listenWS(factory: Any, contextFactory: Optional[Any] = ..., backlog: int = ..., interface: str = ...): ...
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/stubs/autobahn/util.pyi	Fri May 31 21:39:02 2019 +0000
@@ -0,0 +1,56 @@
+# Stubs for autobahn.util (Python 3)
+#
+# NOTE: This dynamically typed stub was automatically generated by stubgen.
+
+from typing import Any, Optional
+
+def public(obj: Any): ...
+def encode_truncate(text: Any, limit: Any, encoding: str = ..., return_encoded: bool = ...): ...
+def xor(d1: Any, d2: Any): ...
+def utcstr(ts: Optional[Any] = ...): ...
+def utcnow(): ...
+
+class IdGenerator:
+    def __init__(self) -> None: ...
+    def next(self): ...
+    def __next__(self): ...
+
+def rid(): ...
+def id(): ...
+def newid(length: int = ...): ...
+def generate_token(char_groups: Any, chars_per_group: Any, chars: Optional[Any] = ..., sep: Optional[Any] = ..., lower_case: bool = ...): ...
+def generate_activation_code(): ...
+def generate_user_password(): ...
+def generate_serial_number(): ...
+def rtime(): ...
+
+class Stopwatch:
+    def __init__(self, start: bool = ...) -> None: ...
+    def elapsed(self): ...
+    def pause(self): ...
+    def resume(self): ...
+    def stop(self): ...
+
+class Tracker:
+    tracker: Any = ...
+    tracked: Any = ...
+    def __init__(self, tracker: Any, tracked: Any) -> None: ...
+    def track(self, key: Any) -> None: ...
+    def diff(self, start_key: Any, end_key: Any, formatted: bool = ...): ...
+    def absolute(self, key: Any): ...
+    def __getitem__(self, key: Any): ...
+    def __iter__(self): ...
+
+class EqualityMixin:
+    def __eq__(self, other: Any): ...
+    def __ne__(self, other: Any): ...
+
+class ObservableMixin:
+    def set_valid_events(self, valid_events: Optional[Any] = ...) -> None: ...
+    def on(self, event: Any, handler: Any) -> None: ...
+    def off(self, event: Optional[Any] = ..., handler: Optional[Any] = ...) -> None: ...
+    def fire(self, event: Any, *args: Any, **kwargs: Any): ...
+
+class _LazyHexFormatter:
+    obj: Any = ...
+    def __init__(self, obj: Any) -> None: ...
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/stubs/autobahn/websocket/__init__.pyi	Fri May 31 21:39:02 2019 +0000
@@ -0,0 +1,6 @@
+# Stubs for autobahn.websocket (Python 3)
+#
+# NOTE: This dynamically typed stub was automatically generated by stubgen.
+
+from autobahn.websocket.interfaces import IWebSocketChannel as IWebSocketChannel
+from autobahn.websocket.types import ConnectionAccept as ConnectionAccept, ConnectionDeny as ConnectionDeny, ConnectionRequest as ConnectionRequest, ConnectionResponse as ConnectionResponse, IncomingMessage as IncomingMessage, Message as Message, OutgoingMessage as OutgoingMessage
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/stubs/autobahn/websocket/compress.pyi	Fri May 31 21:39:02 2019 +0000
@@ -0,0 +1,10 @@
+# Stubs for autobahn.websocket.compress (Python 3)
+#
+# NOTE: This dynamically typed stub was automatically generated by stubgen.
+
+from autobahn.websocket.compress_base import PerMessageCompress as PerMessageCompress, PerMessageCompressOffer as PerMessageCompressOffer, PerMessageCompressOfferAccept as PerMessageCompressOfferAccept, PerMessageCompressResponse as PerMessageCompressResponse, PerMessageCompressResponseAccept as PerMessageCompressResponseAccept
+from autobahn.websocket.compress_bzip2 import PerMessageBzip2 as PerMessageBzip2, PerMessageBzip2Offer as PerMessageBzip2Offer, PerMessageBzip2OfferAccept as PerMessageBzip2OfferAccept, PerMessageBzip2Response as PerMessageBzip2Response, PerMessageBzip2ResponseAccept as PerMessageBzip2ResponseAccept
+from autobahn.websocket.compress_deflate import PerMessageDeflate as PerMessageDeflate, PerMessageDeflateOffer as PerMessageDeflateOffer, PerMessageDeflateOfferAccept as PerMessageDeflateOfferAccept, PerMessageDeflateResponse as PerMessageDeflateResponse, PerMessageDeflateResponseAccept as PerMessageDeflateResponseAccept
+from typing import Any
+
+PERMESSAGE_COMPRESSION_EXTENSION: Any
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/stubs/autobahn/websocket/compress_base.pyi	Fri May 31 21:39:02 2019 +0000
@@ -0,0 +1,9 @@
+# Stubs for autobahn.websocket.compress_base (Python 3)
+#
+# NOTE: This dynamically typed stub was automatically generated by stubgen.
+
+class PerMessageCompressOffer: ...
+class PerMessageCompressOfferAccept: ...
+class PerMessageCompressResponse: ...
+class PerMessageCompressResponseAccept: ...
+class PerMessageCompress: ...
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/stubs/autobahn/websocket/compress_bzip2.pyi	Fri May 31 21:39:02 2019 +0000
@@ -0,0 +1,58 @@
+# Stubs for autobahn.websocket.compress_bzip2 (Python 3)
+#
+# NOTE: This dynamically typed stub was automatically generated by stubgen.
+
+from autobahn.websocket.compress_base import PerMessageCompress, PerMessageCompressOffer, PerMessageCompressOfferAccept, PerMessageCompressResponse, PerMessageCompressResponseAccept
+from typing import Any, Optional
+
+class PerMessageBzip2Mixin:
+    EXTENSION_NAME: str = ...
+    COMPRESS_LEVEL_PERMISSIBLE_VALUES: Any = ...
+
+class PerMessageBzip2Offer(PerMessageCompressOffer, PerMessageBzip2Mixin):
+    @classmethod
+    def parse(cls, params: Any): ...
+    accept_max_compress_level: Any = ...
+    request_max_compress_level: Any = ...
+    def __init__(self, accept_max_compress_level: bool = ..., request_max_compress_level: int = ...) -> None: ...
+    def get_extension_string(self): ...
+    def __json__(self): ...
+
+class PerMessageBzip2OfferAccept(PerMessageCompressOfferAccept, PerMessageBzip2Mixin):
+    offer: Any = ...
+    request_max_compress_level: Any = ...
+    compress_level: Any = ...
+    def __init__(self, offer: Any, request_max_compress_level: int = ..., compress_level: Optional[Any] = ...) -> None: ...
+    def get_extension_string(self): ...
+    def __json__(self): ...
+
+class PerMessageBzip2Response(PerMessageCompressResponse, PerMessageBzip2Mixin):
+    @classmethod
+    def parse(cls, params: Any): ...
+    client_max_compress_level: Any = ...
+    server_max_compress_level: Any = ...
+    def __init__(self, client_max_compress_level: Any, server_max_compress_level: Any) -> None: ...
+    def __json__(self): ...
+
+class PerMessageBzip2ResponseAccept(PerMessageCompressResponseAccept, PerMessageBzip2Mixin):
+    response: Any = ...
+    compress_level: Any = ...
+    def __init__(self, response: Any, compress_level: Optional[Any] = ...) -> None: ...
+    def __json__(self): ...
+
+class PerMessageBzip2(PerMessageCompress, PerMessageBzip2Mixin):
+    DEFAULT_COMPRESS_LEVEL: int = ...
+    @classmethod
+    def create_from_response_accept(cls, is_server: Any, accept: Any): ...
+    @classmethod
+    def create_from_offer_accept(cls, is_server: Any, accept: Any): ...
+    server_max_compress_level: Any = ...
+    client_max_compress_level: Any = ...
+    def __init__(self, is_server: Any, server_max_compress_level: Any, client_max_compress_level: Any) -> None: ...
+    def __json__(self): ...
+    def start_compress_message(self) -> None: ...
+    def compress_message_data(self, data: Any): ...
+    def end_compress_message(self): ...
+    def start_decompress_message(self) -> None: ...
+    def decompress_message_data(self, data: Any): ...
+    def end_decompress_message(self) -> None: ...
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/stubs/autobahn/websocket/compress_deflate.pyi	Fri May 31 21:39:02 2019 +0000
@@ -0,0 +1,75 @@
+# Stubs for autobahn.websocket.compress_deflate (Python 3)
+#
+# NOTE: This dynamically typed stub was automatically generated by stubgen.
+
+from autobahn.websocket.compress_base import PerMessageCompress, PerMessageCompressOffer, PerMessageCompressOfferAccept, PerMessageCompressResponse, PerMessageCompressResponseAccept
+from typing import Any, Optional
+
+class PerMessageDeflateMixin:
+    EXTENSION_NAME: str = ...
+    WINDOW_SIZE_PERMISSIBLE_VALUES: Any = ...
+    MEM_LEVEL_PERMISSIBLE_VALUES: Any = ...
+
+class PerMessageDeflateOffer(PerMessageCompressOffer, PerMessageDeflateMixin):
+    @classmethod
+    def parse(cls, params: Any): ...
+    accept_no_context_takeover: Any = ...
+    accept_max_window_bits: Any = ...
+    request_no_context_takeover: Any = ...
+    request_max_window_bits: Any = ...
+    def __init__(self, accept_no_context_takeover: bool = ..., accept_max_window_bits: bool = ..., request_no_context_takeover: bool = ..., request_max_window_bits: int = ...) -> None: ...
+    def get_extension_string(self): ...
+    def __json__(self): ...
+
+class PerMessageDeflateOfferAccept(PerMessageCompressOfferAccept, PerMessageDeflateMixin):
+    offer: Any = ...
+    request_no_context_takeover: Any = ...
+    request_max_window_bits: Any = ...
+    no_context_takeover: Any = ...
+    window_bits: Any = ...
+    mem_level: Any = ...
+    max_message_size: Any = ...
+    def __init__(self, offer: Any, request_no_context_takeover: bool = ..., request_max_window_bits: int = ..., no_context_takeover: Optional[Any] = ..., window_bits: Optional[Any] = ..., mem_level: Optional[Any] = ..., max_message_size: Optional[Any] = ...) -> None: ...
+    def get_extension_string(self): ...
+    def __json__(self): ...
+
+class PerMessageDeflateResponse(PerMessageCompressResponse, PerMessageDeflateMixin):
+    @classmethod
+    def parse(cls, params: Any): ...
+    client_max_window_bits: Any = ...
+    client_no_context_takeover: Any = ...
+    server_max_window_bits: Any = ...
+    server_no_context_takeover: Any = ...
+    def __init__(self, client_max_window_bits: Any, client_no_context_takeover: Any, server_max_window_bits: Any, server_no_context_takeover: Any) -> None: ...
+    def __json__(self): ...
+
+class PerMessageDeflateResponseAccept(PerMessageCompressResponseAccept, PerMessageDeflateMixin):
+    response: Any = ...
+    no_context_takeover: Any = ...
+    window_bits: Any = ...
+    mem_level: Any = ...
+    max_message_size: Any = ...
+    def __init__(self, response: Any, no_context_takeover: Optional[Any] = ..., window_bits: Optional[Any] = ..., mem_level: Optional[Any] = ..., max_message_size: Optional[Any] = ...) -> None: ...
+    def __json__(self): ...
+
+class PerMessageDeflate(PerMessageCompress, PerMessageDeflateMixin):
+    DEFAULT_WINDOW_BITS: Any = ...
+    DEFAULT_MEM_LEVEL: int = ...
+    @classmethod
+    def create_from_response_accept(cls, is_server: Any, accept: Any): ...
+    @classmethod
+    def create_from_offer_accept(cls, is_server: Any, accept: Any): ...
+    server_no_context_takeover: Any = ...
+    client_no_context_takeover: Any = ...
+    server_max_window_bits: Any = ...
+    client_max_window_bits: Any = ...
+    mem_level: Any = ...
+    max_message_size: Any = ...
+    def __init__(self, is_server: Any, server_no_context_takeover: Any, client_no_context_takeover: Any, server_max_window_bits: Any, client_max_window_bits: Any, mem_level: Any, max_message_size: Optional[Any] = ...) -> None: ...
+    def __json__(self): ...
+    def start_compress_message(self) -> None: ...
+    def compress_message_data(self, data: Any): ...
+    def end_compress_message(self): ...
+    def start_decompress_message(self) -> None: ...
+    def decompress_message_data(self, data: Any): ...
+    def end_decompress_message(self) -> None: ...
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/stubs/autobahn/websocket/interfaces.pyi	Fri May 31 21:39:02 2019 +0000
@@ -0,0 +1,79 @@
+# Stubs for autobahn.websocket.interfaces (Python 3)
+#
+# NOTE: This dynamically typed stub was automatically generated by stubgen.
+
+import abc
+from typing import Any, Optional
+
+class IWebSocketClientAgent(metaclass=abc.ABCMeta):
+    def open(self, transport_config: Any, options: Any, protocol_class: Optional[Any] = ...) -> None: ...
+
+class IWebSocketServerChannelFactory(metaclass=abc.ABCMeta):
+    @abc.abstractmethod
+    def __init__(self, url: Optional[Any] = ..., protocols: Optional[Any] = ..., server: Optional[Any] = ..., headers: Optional[Any] = ..., externalPort: Optional[Any] = ...): ...
+    @abc.abstractmethod
+    def setSessionParameters(self, url: Optional[Any] = ..., protocols: Optional[Any] = ..., server: Optional[Any] = ..., headers: Optional[Any] = ..., externalPort: Optional[Any] = ...) -> Any: ...
+    @abc.abstractmethod
+    def setProtocolOptions(self, versions: Optional[Any] = ..., webStatus: Optional[Any] = ..., utf8validateIncoming: Optional[Any] = ..., maskServerFrames: Optional[Any] = ..., requireMaskedClientFrames: Optional[Any] = ..., applyMask: Optional[Any] = ..., maxFramePayloadSize: Optional[Any] = ..., maxMessagePayloadSize: Optional[Any] = ..., autoFragmentSize: Optional[Any] = ..., failByDrop: Optional[Any] = ..., echoCloseCodeReason: Optional[Any] = ..., openHandshakeTimeout: Optional[Any] = ..., closeHandshakeTimeout: Optional[Any] = ..., tcpNoDelay: Optional[Any] = ..., perMessageCompressionAccept: Optional[Any] = ..., autoPingInterval: Optional[Any] = ..., autoPingTimeout: Optional[Any] = ..., autoPingSize: Optional[Any] = ..., serveFlashSocketPolicy: Optional[Any] = ..., flashSocketPolicy: Optional[Any] = ..., allowedOrigins: Optional[Any] = ..., allowNullOrigin: bool = ..., maxConnections: Optional[Any] = ..., trustXForwardedFor: int = ...) -> Any: ...
+    @abc.abstractmethod
+    def resetProtocolOptions(self) -> Any: ...
+
+class IWebSocketClientChannelFactory(metaclass=abc.ABCMeta):
+    @abc.abstractmethod
+    def __init__(self, url: Optional[Any] = ..., origin: Optional[Any] = ..., protocols: Optional[Any] = ..., useragent: Optional[Any] = ..., headers: Optional[Any] = ..., proxy: Optional[Any] = ...): ...
+    @abc.abstractmethod
+    def setSessionParameters(self, url: Optional[Any] = ..., origin: Optional[Any] = ..., protocols: Optional[Any] = ..., useragent: Optional[Any] = ..., headers: Optional[Any] = ..., proxy: Optional[Any] = ...) -> Any: ...
+    @abc.abstractmethod
+    def setProtocolOptions(self, version: Optional[Any] = ..., utf8validateIncoming: Optional[Any] = ..., acceptMaskedServerFrames: Optional[Any] = ..., maskClientFrames: Optional[Any] = ..., applyMask: Optional[Any] = ..., maxFramePayloadSize: Optional[Any] = ..., maxMessagePayloadSize: Optional[Any] = ..., autoFragmentSize: Optional[Any] = ..., failByDrop: Optional[Any] = ..., echoCloseCodeReason: Optional[Any] = ..., serverConnectionDropTimeout: Optional[Any] = ..., openHandshakeTimeout: Optional[Any] = ..., closeHandshakeTimeout: Optional[Any] = ..., tcpNoDelay: Optional[Any] = ..., perMessageCompressionOffers: Optional[Any] = ..., perMessageCompressionAccept: Optional[Any] = ..., autoPingInterval: Optional[Any] = ..., autoPingTimeout: Optional[Any] = ..., autoPingSize: Optional[Any] = ...) -> Any: ...
+    @abc.abstractmethod
+    def resetProtocolOptions(self) -> Any: ...
+
+class IWebSocketChannel(metaclass=abc.ABCMeta):
+    @abc.abstractmethod
+    def onConnect(self, request_or_response: Any) -> Any: ...
+    @abc.abstractmethod
+    def onConnecting(self, transport_details: Any) -> Any: ...
+    @abc.abstractmethod
+    def onOpen(self) -> Any: ...
+    @abc.abstractmethod
+    def sendMessage(self, payload: Any, isBinary: Any) -> Any: ...
+    @abc.abstractmethod
+    def onMessage(self, payload: Any, isBinary: Any) -> Any: ...
+    @abc.abstractmethod
+    def sendClose(self, code: Optional[Any] = ..., reason: Optional[Any] = ...) -> Any: ...
+    @abc.abstractmethod
+    def onClose(self, wasClean: Any, code: Any, reason: Any) -> Any: ...
+    @abc.abstractmethod
+    def sendPing(self, payload: Optional[Any] = ...) -> Any: ...
+    @abc.abstractmethod
+    def onPing(self, payload: Any) -> Any: ...
+    @abc.abstractmethod
+    def sendPong(self, payload: Optional[Any] = ...) -> Any: ...
+    @abc.abstractmethod
+    def onPong(self, payload: Any) -> Any: ...
+
+class IWebSocketChannelFrameApi(IWebSocketChannel, metaclass=abc.ABCMeta):
+    @abc.abstractmethod
+    def onMessageBegin(self, isBinary: Any) -> Any: ...
+    @abc.abstractmethod
+    def onMessageFrame(self, payload: Any) -> Any: ...
+    @abc.abstractmethod
+    def onMessageEnd(self) -> Any: ...
+    @abc.abstractmethod
+    def beginMessage(self, isBinary: bool = ..., doNotCompress: bool = ...) -> Any: ...
+    @abc.abstractmethod
+    def sendMessageFrame(self, payload: Any, sync: bool = ...) -> Any: ...
+    @abc.abstractmethod
+    def endMessage(self) -> Any: ...
+
+class IWebSocketChannelStreamingApi(IWebSocketChannelFrameApi, metaclass=abc.ABCMeta):
+    @abc.abstractmethod
+    def onMessageFrameBegin(self, length: Any) -> Any: ...
+    @abc.abstractmethod
+    def onMessageFrameData(self, payload: Any) -> Any: ...
+    @abc.abstractmethod
+    def onMessageFrameEnd(self) -> Any: ...
+    @abc.abstractmethod
+    def beginMessageFrame(self, length: Any) -> Any: ...
+    @abc.abstractmethod
+    def sendMessageFrameData(self, payload: Any, sync: bool = ...) -> Any: ...
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/stubs/autobahn/websocket/protocol.pyi	Fri May 31 21:39:02 2019 +0000
@@ -0,0 +1,325 @@
+# Stubs for autobahn.websocket.protocol (Python 3)
+#
+# NOTE: This dynamically typed stub was automatically generated by stubgen.
+
+from autobahn.util import ObservableMixin
+from typing import Any, Optional
+
+xrange = range
+
+class TrafficStats:
+    def __init__(self) -> None: ...
+    outgoingOctetsWireLevel: int = ...
+    outgoingOctetsWebSocketLevel: int = ...
+    outgoingOctetsAppLevel: int = ...
+    outgoingWebSocketFrames: int = ...
+    outgoingWebSocketMessages: int = ...
+    incomingOctetsWireLevel: int = ...
+    incomingOctetsWebSocketLevel: int = ...
+    incomingOctetsAppLevel: int = ...
+    incomingWebSocketFrames: int = ...
+    incomingWebSocketMessages: int = ...
+    preopenOutgoingOctetsWireLevel: int = ...
+    preopenIncomingOctetsWireLevel: int = ...
+    def reset(self) -> None: ...
+    def __json__(self): ...
+
+class FrameHeader:
+    opcode: Any = ...
+    fin: Any = ...
+    rsv: Any = ...
+    length: Any = ...
+    mask: Any = ...
+    def __init__(self, opcode: Any, fin: Any, rsv: Any, length: Any, mask: Any) -> None: ...
+
+class Timings:
+    def __init__(self) -> None: ...
+    def track(self, key: Any) -> None: ...
+    def diff(self, startKey: Any, endKey: Any, formatted: bool = ...): ...
+    def __getitem__(self, key: Any): ...
+    def __iter__(self): ...
+
+class WebSocketProtocol(ObservableMixin):
+    peer: str = ...
+    SUPPORTED_SPEC_VERSIONS: Any = ...
+    SUPPORTED_PROTOCOL_VERSIONS: Any = ...
+    SPEC_TO_PROTOCOL_VERSION: Any = ...
+    PROTOCOL_TO_SPEC_VERSION: Any = ...
+    DEFAULT_SPEC_VERSION: int = ...
+    MESSAGE_TYPE_TEXT: int = ...
+    MESSAGE_TYPE_BINARY: int = ...
+    STATE_CLOSED: int = ...
+    STATE_CONNECTING: int = ...
+    STATE_CLOSING: int = ...
+    STATE_OPEN: int = ...
+    STATE_PROXY_CONNECTING: int = ...
+    SEND_STATE_GROUND: int = ...
+    SEND_STATE_MESSAGE_BEGIN: int = ...
+    SEND_STATE_INSIDE_MESSAGE: int = ...
+    SEND_STATE_INSIDE_MESSAGE_FRAME: int = ...
+    CLOSE_STATUS_CODE_NORMAL: int = ...
+    CLOSE_STATUS_CODE_GOING_AWAY: int = ...
+    CLOSE_STATUS_CODE_PROTOCOL_ERROR: int = ...
+    CLOSE_STATUS_CODE_UNSUPPORTED_DATA: int = ...
+    CLOSE_STATUS_CODE_RESERVED1: int = ...
+    CLOSE_STATUS_CODE_NULL: int = ...
+    CLOSE_STATUS_CODE_ABNORMAL_CLOSE: int = ...
+    CLOSE_STATUS_CODE_INVALID_PAYLOAD: int = ...
+    CLOSE_STATUS_CODE_POLICY_VIOLATION: int = ...
+    CLOSE_STATUS_CODE_MESSAGE_TOO_BIG: int = ...
+    CLOSE_STATUS_CODE_MANDATORY_EXTENSION: int = ...
+    CLOSE_STATUS_CODE_INTERNAL_ERROR: int = ...
+    CLOSE_STATUS_CODE_SERVICE_RESTART: int = ...
+    CLOSE_STATUS_CODE_TRY_AGAIN_LATER: int = ...
+    CLOSE_STATUS_CODE_UNASSIGNED1: int = ...
+    CLOSE_STATUS_CODE_TLS_HANDSHAKE_FAILED: int = ...
+    CLOSE_STATUS_CODES_ALLOWED: Any = ...
+    CONFIG_ATTRS_COMMON: Any = ...
+    CONFIG_ATTRS_SERVER: Any = ...
+    CONFIG_ATTRS_CLIENT: Any = ...
+    is_closed: Any = ...
+    is_open: Any = ...
+    def __init__(self) -> None: ...
+    def onOpen(self) -> None: ...
+    message_is_binary: Any = ...
+    message_data: Any = ...
+    message_data_total_length: int = ...
+    def onMessageBegin(self, isBinary: Any) -> None: ...
+    frame_length: Any = ...
+    frame_data: Any = ...
+    wasMaxMessagePayloadSizeExceeded: bool = ...
+    wasMaxFramePayloadSizeExceeded: bool = ...
+    def onMessageFrameBegin(self, length: Any) -> None: ...
+    def onMessageFrameData(self, payload: Any) -> None: ...
+    def onMessageFrameEnd(self) -> None: ...
+    def onMessageFrame(self, payload: Any) -> None: ...
+    def onMessageEnd(self) -> None: ...
+    def onMessage(self, payload: Any, isBinary: Any) -> None: ...
+    def onPing(self, payload: Any) -> None: ...
+    def onPong(self, payload: Any) -> None: ...
+    def onClose(self, wasClean: Any, code: Any, reason: Any) -> None: ...
+    remoteCloseCode: Any = ...
+    remoteCloseReason: Any = ...
+    closeHandshakeTimeoutCall: Any = ...
+    wasClean: bool = ...
+    serverConnectionDropTimeoutCall: Any = ...
+    def onCloseFrame(self, code: Any, reasonRaw: Any): ...
+    wasNotCleanReason: str = ...
+    wasServerConnectionDropTimeout: bool = ...
+    def onServerConnectionDropTimeout(self) -> None: ...
+    openHandshakeTimeoutCall: Any = ...
+    wasOpenHandshakeTimeout: bool = ...
+    def onOpenHandshakeTimeout(self) -> None: ...
+    wasCloseHandshakeTimeout: bool = ...
+    def onCloseHandshakeTimeout(self) -> None: ...
+    autoPingTimeoutCall: Any = ...
+    def onAutoPingTimeout(self) -> None: ...
+    droppedByMe: bool = ...
+    state: Any = ...
+    def dropConnection(self, abort: bool = ...) -> None: ...
+    trackTimings: Any = ...
+    trackedTimings: Any = ...
+    def setTrackTimings(self, enable: Any) -> None: ...
+    def logRxOctets(self, data: Any) -> None: ...
+    def logTxOctets(self, data: Any, sync: Any) -> None: ...
+    def logRxFrame(self, frameHeader: Any, payload: Any) -> None: ...
+    def logTxFrame(self, frameHeader: Any, payload: Any, repeatLength: Any, chopsize: Any, sync: Any) -> None: ...
+    def consumeData(self) -> None: ...
+    def processProxyConnect(self) -> None: ...
+    def processHandshake(self) -> None: ...
+    def sendData(self, data: Any, sync: bool = ..., chopsize: Optional[Any] = ...) -> None: ...
+    def sendPreparedMessage(self, preparedMsg: Any) -> None: ...
+    current_frame_masker: Any = ...
+    data: Any = ...
+    current_frame: Any = ...
+    def processData(self): ...
+    control_frame_data: Any = ...
+    inside_message: bool = ...
+    utf8validateIncomingCurrentMessage: bool = ...
+    utf8validateLast: Any = ...
+    def onFrameBegin(self) -> None: ...
+    def onFrameData(self, payload: Any): ...
+    def onFrameEnd(self): ...
+    autoPingPending: Any = ...
+    autoPingPendingCall: Any = ...
+    def processControlFrame(self): ...
+    def sendFrame(self, opcode: Any, payload: bytes = ..., fin: bool = ..., rsv: int = ..., mask: Optional[Any] = ..., payload_len: Optional[Any] = ..., chopsize: Optional[Any] = ..., sync: bool = ...) -> None: ...
+    def sendPing(self, payload: Optional[Any] = ...) -> None: ...
+    def sendPong(self, payload: Optional[Any] = ...) -> None: ...
+    closedByMe: Any = ...
+    localCloseCode: Any = ...
+    localCloseReason: Any = ...
+    def sendCloseFrame(self, code: Optional[Any] = ..., reasonUtf8: Optional[Any] = ..., isReply: bool = ...) -> None: ...
+    def sendClose(self, code: Optional[Any] = ..., reason: Optional[Any] = ...) -> None: ...
+    send_message_opcode: Any = ...
+    send_state: Any = ...
+    send_compressed: bool = ...
+    def beginMessage(self, isBinary: bool = ..., doNotCompress: bool = ...) -> None: ...
+    send_message_frame_length: Any = ...
+    send_message_frame_mask: Any = ...
+    send_message_frame_masker: Any = ...
+    def beginMessageFrame(self, length: Any) -> None: ...
+    def sendMessageFrameData(self, payload: Any, sync: bool = ...): ...
+    def endMessage(self) -> None: ...
+    def sendMessageFrame(self, payload: Any, sync: bool = ...) -> None: ...
+    def sendMessage(self, payload: Any, isBinary: bool = ..., fragmentSize: Optional[Any] = ..., sync: bool = ..., doNotCompress: bool = ...) -> None: ...
+
+class PreparedMessage:
+    payload: Any = ...
+    binary: Any = ...
+    doNotCompress: Any = ...
+    payloadHybi: Any = ...
+    def __init__(self, payload: Any, isBinary: Any, applyMask: Any, doNotCompress: Any) -> None: ...
+
+class WebSocketFactory:
+    def prepareMessage(self, payload: Any, isBinary: bool = ..., doNotCompress: bool = ...): ...
+
+class WebSocketServerProtocol(WebSocketProtocol):
+    log: Any = ...
+    CONFIG_ATTRS: Any = ...
+    def onConnect(self, request: Any) -> None: ...
+    def processProxyConnect(self) -> None: ...
+    http_request_data: Any = ...
+    peer: Any = ...
+    http_request_uri: Any = ...
+    http_request_path: Any = ...
+    http_request_params: Any = ...
+    http_request_host: Any = ...
+    websocket_version: Any = ...
+    websocket_protocols: Any = ...
+    websocket_origin: str = ...
+    websocket_extensions: Any = ...
+    data: Any = ...
+    wasServingFlashSocketPolicyFile: bool = ...
+    def processHandshake(self): ...
+    websocket_protocol_in_use: Any = ...
+    websocket_extensions_in_use: Any = ...
+    http_response_data: Any = ...
+    state: Any = ...
+    openHandshakeTimeoutCall: Any = ...
+    inside_message: bool = ...
+    current_frame: Any = ...
+    autoPingPendingCall: Any = ...
+    def succeedHandshake(self, res: Any): ...
+    wasNotCleanReason: Any = ...
+    def failHandshake(self, reason: Any, code: int = ..., responseHeaders: Optional[Any] = ...) -> None: ...
+    def sendHttpErrorResponse(self, code: Any, reason: Any, responseHeaders: Optional[Any] = ...) -> None: ...
+    def sendHtml(self, html: Any) -> None: ...
+    def sendRedirect(self, url: Any) -> None: ...
+    def sendServerStatus(self, redirectUrl: Optional[Any] = ..., redirectAfter: int = ...) -> None: ...
+
+class WebSocketServerFactory(WebSocketFactory):
+    log: Any = ...
+    protocol: Any = ...
+    isServer: bool = ...
+    logOctets: bool = ...
+    logFrames: bool = ...
+    trackTimings: bool = ...
+    countConnections: int = ...
+    def __init__(self, url: Optional[Any] = ..., protocols: Optional[Any] = ..., server: Any = ..., headers: Optional[Any] = ..., externalPort: Optional[Any] = ...) -> None: ...
+    url: Any = ...
+    isSecure: Any = ...
+    host: Any = ...
+    port: Any = ...
+    resource: Any = ...
+    path: Any = ...
+    params: Any = ...
+    protocols: Any = ...
+    server: Any = ...
+    headers: Any = ...
+    externalPort: Any = ...
+    def setSessionParameters(self, url: Optional[Any] = ..., protocols: Optional[Any] = ..., server: Optional[Any] = ..., headers: Optional[Any] = ..., externalPort: Optional[Any] = ...) -> None: ...
+    versions: Any = ...
+    webStatus: bool = ...
+    utf8validateIncoming: bool = ...
+    requireMaskedClientFrames: bool = ...
+    maskServerFrames: bool = ...
+    applyMask: bool = ...
+    maxFramePayloadSize: int = ...
+    maxMessagePayloadSize: int = ...
+    autoFragmentSize: int = ...
+    failByDrop: bool = ...
+    echoCloseCodeReason: bool = ...
+    openHandshakeTimeout: int = ...
+    closeHandshakeTimeout: int = ...
+    tcpNoDelay: bool = ...
+    serveFlashSocketPolicy: bool = ...
+    flashSocketPolicy: str = ...
+    perMessageCompressionAccept: Any = ...
+    autoPingInterval: int = ...
+    autoPingTimeout: int = ...
+    autoPingSize: int = ...
+    allowedOrigins: Any = ...
+    allowedOriginsPatterns: Any = ...
+    allowNullOrigin: bool = ...
+    maxConnections: int = ...
+    trustXForwardedFor: int = ...
+    def resetProtocolOptions(self) -> None: ...
+    def setProtocolOptions(self, versions: Optional[Any] = ..., webStatus: Optional[Any] = ..., utf8validateIncoming: Optional[Any] = ..., maskServerFrames: Optional[Any] = ..., requireMaskedClientFrames: Optional[Any] = ..., applyMask: Optional[Any] = ..., maxFramePayloadSize: Optional[Any] = ..., maxMessagePayloadSize: Optional[Any] = ..., autoFragmentSize: Optional[Any] = ..., failByDrop: Optional[Any] = ..., echoCloseCodeReason: Optional[Any] = ..., openHandshakeTimeout: Optional[Any] = ..., closeHandshakeTimeout: Optional[Any] = ..., tcpNoDelay: Optional[Any] = ..., perMessageCompressionAccept: Optional[Any] = ..., autoPingInterval: Optional[Any] = ..., autoPingTimeout: Optional[Any] = ..., autoPingSize: Optional[Any] = ..., serveFlashSocketPolicy: Optional[Any] = ..., flashSocketPolicy: Optional[Any] = ..., allowedOrigins: Optional[Any] = ..., allowNullOrigin: bool = ..., maxConnections: Optional[Any] = ..., trustXForwardedFor: Optional[Any] = ...) -> None: ...
+    def getConnectionCount(self): ...
+
+class WebSocketClientProtocol(WebSocketProtocol):
+    log: Any = ...
+    CONFIG_ATTRS: Any = ...
+    def onConnecting(self, transport_details: Any) -> None: ...
+    def onConnect(self, response: Any) -> None: ...
+    def startProxyConnect(self) -> None: ...
+    data: Any = ...
+    state: Any = ...
+    def processProxyConnect(self): ...
+    def failProxyConnect(self, reason: Any) -> None: ...
+    def startHandshake(self): ...
+    http_response_data: Any = ...
+    websocket_extensions_in_use: Any = ...
+    websocket_protocol_in_use: Any = ...
+    openHandshakeTimeoutCall: Any = ...
+    inside_message: bool = ...
+    current_frame: Any = ...
+    websocket_version: Any = ...
+    autoPingPendingCall: Any = ...
+    def processHandshake(self): ...
+    wasNotCleanReason: Any = ...
+    def failHandshake(self, reason: Any) -> None: ...
+
+class WebSocketClientFactory(WebSocketFactory):
+    log: Any = ...
+    protocol: Any = ...
+    isServer: bool = ...
+    logOctets: bool = ...
+    logFrames: bool = ...
+    trackTimings: bool = ...
+    def __init__(self, url: Optional[Any] = ..., origin: Optional[Any] = ..., protocols: Optional[Any] = ..., useragent: Any = ..., headers: Optional[Any] = ..., proxy: Optional[Any] = ...) -> None: ...
+    url: Any = ...
+    isSecure: Any = ...
+    host: Any = ...
+    port: Any = ...
+    resource: Any = ...
+    path: Any = ...
+    params: Any = ...
+    origin: Any = ...
+    protocols: Any = ...
+    useragent: Any = ...
+    headers: Any = ...
+    proxy: Any = ...
+    def setSessionParameters(self, url: Optional[Any] = ..., origin: Optional[Any] = ..., protocols: Optional[Any] = ..., useragent: Optional[Any] = ..., headers: Optional[Any] = ..., proxy: Optional[Any] = ...) -> None: ...
+    version: Any = ...
+    utf8validateIncoming: bool = ...
+    acceptMaskedServerFrames: bool = ...
+    maskClientFrames: bool = ...
+    applyMask: bool = ...
+    maxFramePayloadSize: int = ...
+    maxMessagePayloadSize: int = ...
+    autoFragmentSize: int = ...
+    failByDrop: bool = ...
+    echoCloseCodeReason: bool = ...
+    serverConnectionDropTimeout: int = ...
+    openHandshakeTimeout: int = ...
+    closeHandshakeTimeout: int = ...
+    tcpNoDelay: bool = ...
+    perMessageCompressionOffers: Any = ...
+    perMessageCompressionAccept: Any = ...
+    autoPingInterval: int = ...
+    autoPingTimeout: int = ...
+    autoPingSize: int = ...
+    def resetProtocolOptions(self) -> None: ...
+    def setProtocolOptions(self, version: Optional[Any] = ..., utf8validateIncoming: Optional[Any] = ..., acceptMaskedServerFrames: Optional[Any] = ..., maskClientFrames: Optional[Any] = ..., applyMask: Optional[Any] = ..., maxFramePayloadSize: Optional[Any] = ..., maxMessagePayloadSize: Optional[Any] = ..., autoFragmentSize: Optional[Any] = ..., failByDrop: Optional[Any] = ..., echoCloseCodeReason: Optional[Any] = ..., serverConnectionDropTimeout: Optional[Any] = ..., openHandshakeTimeout: Optional[Any] = ..., closeHandshakeTimeout: Optional[Any] = ..., tcpNoDelay: Optional[Any] = ..., perMessageCompressionOffers: Optional[Any] = ..., perMessageCompressionAccept: Optional[Any] = ..., autoPingInterval: Optional[Any] = ..., autoPingTimeout: Optional[Any] = ..., autoPingSize: Optional[Any] = ...) -> None: ...
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/stubs/autobahn/websocket/test/__init__.pyi	Fri May 31 21:39:02 2019 +0000
@@ -0,0 +1,4 @@
+# Stubs for autobahn.websocket.test (Python 3)
+#
+# NOTE: This dynamically typed stub was automatically generated by stubgen.
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/stubs/autobahn/websocket/test/test_websocket.pyi	Fri May 31 21:39:02 2019 +0000
@@ -0,0 +1,34 @@
+# Stubs for autobahn.websocket.test.test_websocket (Python 3)
+#
+# NOTE: This dynamically typed stub was automatically generated by stubgen.
+
+from twisted.trial import unittest
+from typing import Any
+
+def create_client_frame(b64patch: Any, **kwargs: Any): ...
+
+mock_handshake_client: bytes
+mock_handshake_server: bytes
+
+class TestDeflate(unittest.TestCase):
+    def test_max_size(self) -> None: ...
+    def test_no_max_size(self) -> None: ...
+
+class TestClient(unittest.TestCase):
+    factory: Any = ...
+    proto: Any = ...
+    transport: Any = ...
+    def setUp(self) -> None: ...
+    def tearDown(self) -> None: ...
+    def test_missing_reason_raw(self) -> None: ...
+    def test_unclean_timeout_client(self) -> None: ...
+
+class TestPing(unittest.TestCase):
+    factory: Any = ...
+    proto: Any = ...
+    transport: Any = ...
+    def setUp(self) -> None: ...
+    def tearDown(self) -> None: ...
+    def test_unclean_timeout(self) -> None: ...
+    def test_auto_pingpong_timeout(self) -> None: ...
+    def test_auto_ping_got_pong(self) -> None: ...
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/stubs/autobahn/websocket/test/test_websocket_url.pyi	Fri May 31 21:39:02 2019 +0000
@@ -0,0 +1,38 @@
+# Stubs for autobahn.websocket.test.test_websocket_url (Python 3)
+#
+# NOTE: This dynamically typed stub was automatically generated by stubgen.
+
+import unittest
+
+class TestCreateWsUrl(unittest.TestCase):
+    def test_create_url01(self) -> None: ...
+    def test_create_url02(self) -> None: ...
+    def test_create_url03(self) -> None: ...
+    def test_create_url04(self) -> None: ...
+    def test_create_url05(self) -> None: ...
+    def test_create_url06(self) -> None: ...
+    def test_create_url07(self) -> None: ...
+    def test_create_url08(self) -> None: ...
+    def test_create_url09(self) -> None: ...
+    def test_create_url10(self) -> None: ...
+    def test_create_url11(self) -> None: ...
+    def test_create_url12(self) -> None: ...
+    def test_create_url13(self) -> None: ...
+    def test_create_url14(self) -> None: ...
+    def test_create_url15(self) -> None: ...
+
+class TestParseWsUrl(unittest.TestCase):
+    def test_parse_url01(self) -> None: ...
+    def test_parse_url02(self) -> None: ...
+    def test_parse_url03(self) -> None: ...
+    def test_parse_url04(self) -> None: ...
+    def test_parse_url05(self) -> None: ...
+    def test_parse_url06(self) -> None: ...
+    def test_parse_url07(self) -> None: ...
+    def test_parse_url08(self) -> None: ...
+    def test_parse_url09(self) -> None: ...
+    def test_parse_url10(self) -> None: ...
+    def test_parse_url11(self) -> None: ...
+    def test_parse_url12(self) -> None: ...
+    def test_parse_url13(self) -> None: ...
+    def test_parse_url14(self) -> None: ...
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/stubs/autobahn/websocket/types.pyi	Fri May 31 21:39:02 2019 +0000
@@ -0,0 +1,80 @@
+# Stubs for autobahn.websocket.types (Python 3)
+#
+# NOTE: This dynamically typed stub was automatically generated by stubgen.
+
+from typing import Any, Optional
+
+class ConnectionRequest:
+    peer: Any = ...
+    headers: Any = ...
+    host: Any = ...
+    path: Any = ...
+    params: Any = ...
+    version: Any = ...
+    origin: Any = ...
+    protocols: Any = ...
+    extensions: Any = ...
+    def __init__(self, peer: Any, headers: Any, host: Any, path: Any, params: Any, version: Any, origin: Any, protocols: Any, extensions: Any) -> None: ...
+    def __json__(self): ...
+
+class ConnectingRequest:
+    host: Any = ...
+    port: Any = ...
+    resource: Any = ...
+    headers: Any = ...
+    useragent: Any = ...
+    origin: Any = ...
+    protocols: Any = ...
+    def __init__(self, host: Optional[Any] = ..., port: Optional[Any] = ..., resource: Optional[Any] = ..., headers: Optional[Any] = ..., useragent: Optional[Any] = ..., origin: Optional[Any] = ..., protocols: Optional[Any] = ...) -> None: ...
+    def __json__(self): ...
+
+class TransportDetails:
+    peer: Any = ...
+    is_secure: Any = ...
+    secure_channel_id: Any = ...
+    def __init__(self, peer: Any, is_secure: Any, secure_channel_id: Any) -> None: ...
+    def __json__(self): ...
+
+class ConnectionResponse:
+    peer: Any = ...
+    headers: Any = ...
+    version: Any = ...
+    protocol: Any = ...
+    extensions: Any = ...
+    def __init__(self, peer: Any, headers: Any, version: Any, protocol: Any, extensions: Any) -> None: ...
+    def __json__(self): ...
+
+class ConnectionAccept:
+    subprotocol: Any = ...
+    headers: Any = ...
+    def __init__(self, subprotocol: Optional[Any] = ..., headers: Optional[Any] = ...) -> None: ...
+
+class ConnectionDeny(Exception):
+    BAD_REQUEST: int = ...
+    FORBIDDEN: int = ...
+    NOT_FOUND: int = ...
+    NOT_ACCEPTABLE: int = ...
+    REQUEST_TIMEOUT: int = ...
+    INTERNAL_SERVER_ERROR: int = ...
+    NOT_IMPLEMENTED: int = ...
+    SERVICE_UNAVAILABLE: int = ...
+    code: Any = ...
+    reason: Any = ...
+    def __init__(self, code: Any, reason: Optional[Any] = ...) -> None: ...
+
+class Message: ...
+
+class IncomingMessage(Message):
+    payload: Any = ...
+    is_binary: Any = ...
+    def __init__(self, payload: Any, is_binary: bool = ...) -> None: ...
+
+class OutgoingMessage(Message):
+    payload: Any = ...
+    is_binary: Any = ...
+    skip_compress: Any = ...
+    def __init__(self, payload: Any, is_binary: bool = ..., skip_compress: bool = ...) -> None: ...
+
+class Ping:
+    payload: Any = ...
+    def __init__(self, payload: Optional[Any] = ...) -> None: ...
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/stubs/autobahn/websocket/utf8validator.pyi	Fri May 31 21:39:02 2019 +0000
@@ -0,0 +1,18 @@
+# Stubs for autobahn.websocket.utf8validator (Python 3)
+#
+# NOTE: This dynamically typed stub was automatically generated by stubgen.
+
+from typing import Any
+from wsaccel.utf8validator import Utf8Validator as Utf8Validator
+
+class Utf8Validator:
+    def __init__(self) -> None: ...
+    def decode(self, b: Any): ...
+    def reset(self) -> None: ...
+    def validate(self, ba: Any): ...
+
+class Utf8Validator:
+    def __init__(self) -> None: ...
+    def decode(self, b: Any): ...
+    def reset(self) -> None: ...
+    def validate(self, ba: Any): ...
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/stubs/autobahn/websocket/util.pyi	Fri May 31 21:39:02 2019 +0000
@@ -0,0 +1,8 @@
+# Stubs for autobahn.websocket.util (Python 3)
+#
+# NOTE: This dynamically typed stub was automatically generated by stubgen.
+
+from typing import Any, Optional
+
+def create_url(hostname: Any, port: Optional[Any] = ..., isSecure: bool = ..., path: Optional[Any] = ..., params: Optional[Any] = ...): ...
+def parse_url(url: Any): ...
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/stubs/autobahn/websocket/xormasker.pyi	Fri May 31 21:39:02 2019 +0000
@@ -0,0 +1,27 @@
+# Stubs for autobahn.websocket.xormasker (Python 3)
+#
+# NOTE: This dynamically typed stub was automatically generated by stubgen.
+
+from typing import Any, Optional
+from wsaccel.xormask import createXorMasker
+
+create_xor_masker = createXorMasker
+xrange = range
+
+class XorMaskerNull:
+    def __init__(self, mask: Optional[Any] = ...) -> None: ...
+    def pointer(self): ...
+    def reset(self) -> None: ...
+    def process(self, data: Any): ...
+
+class XorMaskerSimple:
+    def __init__(self, mask: Any) -> None: ...
+    def pointer(self): ...
+    def reset(self) -> None: ...
+    def process(self, data: Any): ...
+
+class XorMaskerShifted1:
+    def __init__(self, mask: Any) -> None: ...
+    def pointer(self): ...
+    def reset(self) -> None: ...
+    def process(self, data: Any): ...
--- a/stubs/twisted/internet/__init__.pyi	Fri May 31 06:46:41 2019 +0000
+++ b/stubs/twisted/internet/__init__.pyi	Fri May 31 21:39:02 2019 +0000
@@ -4,9 +4,11 @@
 
 from typing import Any, Optional
 from .interfaces import IDelayedCall, IAddress, IListeningPort
-    
+import twisted.internet.protocol
+
 class ReactorType: # abridged
-    def listenTCP(self, port: Any, factory: Any, backlog: int = ..., interface: str = ...) -> IListeningPort: ...
+    def listenTCP(self, port: int, factory: twisted.internet.protocol.ServerFactory, backlog: Optional[int] =50, interface: str = ...) -> IListeningPort: ...
+    def connectTCP(self, host :bytes, port: int, factory: twisted.internet.protocol.ClientFactory, timeout: Optional[float] = 30): ...
     def seconds(self) -> None: ...
     def callLater(self, delay: Any, callable: Any, *args: Any, **kw: Any) -> IDelayedCall: ...
     def getDelayedCalls(self) -> None: ...