diff options
author | shmel1k <shmel1k@ydb.tech> | 2023-11-26 18:16:14 +0300 |
---|---|---|
committer | shmel1k <shmel1k@ydb.tech> | 2023-11-26 18:43:30 +0300 |
commit | b8cf9e88f4c5c64d9406af533d8948deb050d695 (patch) | |
tree | 218eb61fb3c3b96ec08b4d8cdfef383104a87d63 /contrib/python/Twisted/py3/twisted/application/strports.py | |
parent | 523f645a83a0ec97a0332dbc3863bb354c92a328 (diff) | |
download | ydb-b8cf9e88f4c5c64d9406af533d8948deb050d695.tar.gz |
add kikimr_configure
Diffstat (limited to 'contrib/python/Twisted/py3/twisted/application/strports.py')
-rw-r--r-- | contrib/python/Twisted/py3/twisted/application/strports.py | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/contrib/python/Twisted/py3/twisted/application/strports.py b/contrib/python/Twisted/py3/twisted/application/strports.py new file mode 100644 index 0000000000..3c96ee335d --- /dev/null +++ b/contrib/python/Twisted/py3/twisted/application/strports.py @@ -0,0 +1,83 @@ +# -*- test-case-name: twisted.test.test_strports -*- +# Copyright (c) Twisted Matrix Laboratories. +# See LICENSE for details. + +""" +Construct listening port services from a simple string description. + +@see: L{twisted.internet.endpoints.serverFromString} +@see: L{twisted.internet.endpoints.clientFromString} +""" +from typing import Optional, cast + +from twisted.application.internet import StreamServerEndpointService +from twisted.internet import endpoints, interfaces + + +def _getReactor() -> interfaces.IReactorCore: + from twisted.internet import reactor + + return cast(interfaces.IReactorCore, reactor) + + +def service( + description: str, + factory: interfaces.IProtocolFactory, + reactor: Optional[interfaces.IReactorCore] = None, +) -> StreamServerEndpointService: + """ + Return the service corresponding to a description. + + @param description: The description of the listening port, in the syntax + described by L{twisted.internet.endpoints.serverFromString}. + @type description: C{str} + + @param factory: The protocol factory which will build protocols for + connections to this service. + @type factory: L{twisted.internet.interfaces.IProtocolFactory} + + @rtype: C{twisted.application.service.IService} + @return: the service corresponding to a description of a reliable stream + server. + + @see: L{twisted.internet.endpoints.serverFromString} + """ + if reactor is None: + reactor = _getReactor() + + svc = StreamServerEndpointService( + endpoints.serverFromString(reactor, description), factory + ) + svc._raiseSynchronously = True + return svc + + +def listen( + description: str, factory: interfaces.IProtocolFactory +) -> interfaces.IListeningPort: + """ + Listen on a port corresponding to a description. + + @param description: The description of the connecting port, in the syntax + described by L{twisted.internet.endpoints.serverFromString}. + @type description: L{str} + + @param factory: The protocol factory which will build protocols on + connection. + @type factory: L{twisted.internet.interfaces.IProtocolFactory} + + @rtype: L{twisted.internet.interfaces.IListeningPort} + @return: the port corresponding to a description of a reliable virtual + circuit server. + + @see: L{twisted.internet.endpoints.serverFromString} + """ + from twisted.internet import reactor + + name, args, kw = endpoints._parseServer(description, factory) + return cast( + interfaces.IListeningPort, getattr(reactor, "listen" + name)(*args, **kw) + ) + + +__all__ = ["service", "listen"] |