Manhole server for the aio asyncio framework
Project description
Manhole server for the aio asyncio framework
Build status
Installation
Requires python >= 3.4
Install with:
pip install aio.manhole.server
Quick start - Manhole server
Save the following into a file “manhole.conf”
[server/my_manhole_server]
factory = aio.manhole.server.factory
port = 7373
Run with the aio run command
aio run -c manhole.conf
You should now be able to telnet into the running server on port 7373
aio.manhole.server usage
Configuration
Lets create a manhole configuration
>>> config = """ ... [aio] ... log_level = ERROR ... ... [server/server_name] ... factory = aio.manhole.server.factory ... port = 7373 ... ... """
>>> import sys >>> import io >>> import aiomanhole
>>> import aio.testing >>> import aio.app >>> from aio.app.runner import runner
When we run the manhole server, its accessible as “server_name” from aio.app.servers
>>> @aio.testing.run_forever(sleep=1) ... def run_manhole_server(config): ... yield from runner(['run'], config_string=config) ... ... def call_manhole(): ... print(aio.app.servers["server_name"]) ... aio.app.clear() ... ... return call_manhole
>>> run_manhole_server(config) <Server sockets=[<socket.socket ...laddr=('0.0.0.0', 7373)...>
Lets try calling the manhole server
>>> import asyncio >>> import telnetlib3
>>> @aio.testing.run_forever(sleep=1) ... def run_manhole_server(config): ... yield from runner(['run'], config_string=config) ... ... class TestTelnetClient(telnetlib3.TelnetClient): ... ... def data_received(self, data): ... print(data) ... ... def call_manhole(): ... loop = asyncio.get_event_loop() ... transport, protocol = yield from loop.create_connection( ... TestTelnetClient, "127.0.0.1", 7373) ... aio.app.clear() ... ... return call_manhole
>>> run_manhole_server(config) b'hello...\n>>> '
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.