mentortools/libs/: http-tools-intern-revva-3.1.54203 metadata and description

Simple index

author Mike Orlov
author_email m.orlov@technokert.ru
classifiers
  • Programming Language :: Python :: 3
  • Programming Language :: Python :: 3.11
description_content_type text/markdown
requires_dist
  • aiohttp (>=3.8.3,<4.0.0)
  • async-tools-abm (>=1.0.53967,<2.0.0)
  • dynamic-types-abm (>=1.0.53968,<2.0.0)
  • init-helpers-abm (>=1.0.53965,<2.0.0)
  • multidict (>=5.1.0,<6.0.0)
  • yarl (>=1.6.3,<2.0.0)
requires_python >=3.11,<4.0
File Tox results History
http_tools_intern_revva-3.1.54203-py3-none-any.whl
Size
27 KB
Type
Python Wheel
Python
3
http_tools_intern_revva-3.1.54203.tar.gz
Size
16 KB
Type
Source

Http tools

Async http server as component

Usage:

import asyncio
import aiohttp

from http_tools import HttpServer, SerializableAnswer

async def amain():
    server: HttpServer = HttpServer(HttpServer.Config('localhost', port=8080))
    server.register_handler('/echo', lambda x: SerializableAnswer(x.key_value_arguments))
    session = aiohttp.ClientSession()
    try:
        await server._on_start()
        response = await session.get('http://localhost:8080/echo', params={'test': 'passed'})
        answer = await response.json()
        assert answer['result']['test'] == 'passed'

    finally:
        await session.close()
        await server._on_stop()

asyncio.run(amain())