Skip to main content

Manhole server for the aio asyncio framework

Build status

https://travis-ci.org/phlax/aio.manhole.server.svg?branch=master

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>>> '

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

aio.manhole.server-0.0.2.tar.gz (3.1 kB view details)

Uploaded Source

File details

Details for the file aio.manhole.server-0.0.2.tar.gz.

File metadata

File hashes

Hashes for aio.manhole.server-0.0.2.tar.gz
Algorithm Hash digest
SHA256 0c85edc251a759441c93ba23a4b38dc4b96e954991d783ef2b06c36c517c35a3
MD5 a150a965507597ca53fede997120d9cf
BLAKE2b-256 bf9197150fee8d29b027dac8abf5f6f97af7cf6c514801ff0388b0c569420a4e

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.0.2 This release

1 file

0.0.1

1 file

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page