aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/python/Twisted/py3/twisted/application/strports.py
diff options
context:
space:
mode:
authorshmel1k <shmel1k@ydb.tech>2023-11-26 18:16:14 +0300
committershmel1k <shmel1k@ydb.tech>2023-11-26 18:43:30 +0300
commitb8cf9e88f4c5c64d9406af533d8948deb050d695 (patch)
tree218eb61fb3c3b96ec08b4d8cdfef383104a87d63 /contrib/python/Twisted/py3/twisted/application/strports.py
parent523f645a83a0ec97a0332dbc3863bb354c92a328 (diff)
downloadydb-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.py83
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"]