1"""
2::
3
4         #####    #####             ####
5        ##   ##  ##   ##           ##             ####
6        ##  ##   ##  ##           ##                 #
7        #####    #####   ##   ##  ##               ##
8        ##  ##   ##       ## ##   ##                 #
9        ##   ##  ##        ###    ##              ###
10        ##   ##  ##        ##      #####
11     -------------------- ## ------------------------------------------
12                         ##
13
14Remote Python Call (RPyC)
15Licensed under the MIT license (see `LICENSE` file)
16
17A transparent, symmetric and light-weight RPC and distributed computing
18library for python.
19
20Usage::
21
22    >>> import rpyc
23    >>> c = rpyc.connect_by_service("SERVICENAME")
24    >>> print c.root.some_function(1, 2, 3)
25
26Classic-style usage::
27
28    >>> import rpyc
29    >>> # `hostname` is assumed to be running a slave-service server
30    >>> c = rpyc.classic.connect("hostname")
31    >>> print c.execute("x = 5")
32    None
33    >>> print c.eval("x + 2")
34    7
35    >>> print c.modules.os.listdir(".")       #doctest: +ELLIPSIS
36    [...]
37    >>> print c.modules["xml.dom.minidom"].parseString("<a/>")   #doctest: +ELLIPSIS
38    <xml.dom.minidom.Document instance at ...>
39    >>> f = c.builtin.open("foobar.txt", "rb")     #doctest: +SKIP
40    >>> print f.read(100)     #doctest: +SKIP
41    ...
42
43"""
44# flake8: noqa: F401
45from rpyc.core import (SocketStream, TunneledSocketStream, PipeStream, Channel,
46                       Connection, Service, BaseNetref, AsyncResult, GenericException,
47                       AsyncResultTimeout, VoidService, SlaveService, MasterService, ClassicService)
48from rpyc.utils.factory import (connect_stream, connect_channel, connect_pipes,
49                                connect_stdpipes, connect, ssl_connect, discover, connect_by_service, connect_subproc,
50                                connect_thread, ssh_connect)
51from rpyc.utils.helpers import async_, timed, buffiter, BgServingThread, restricted
52from rpyc.utils import classic
53from rpyc.version import version as __version__
54
55from rpyc.lib import setup_logger, spawn
56from rpyc.utils.server import OneShotServer, ThreadedServer, ThreadPoolServer, ForkingServer
57
58__author__ = "Tomer Filiba (tomerfiliba@gmail.com)"
59
60globals()['async'] = async_     # backward compatibility
61