Skip to main content

Modest utility collection for development with AIOHTTP framework.

Project description

Read The Docs build Release MIT License Python version support PyPI downloads count GitHub continuous integration

Modest utility collection for development with AIOHTTP framework.

Documentation

https://aiohttp-things.readthedocs.io

Installation

Installing aiohttp-things with pip:

pip install aiohttp-things

Simple example

Example of AIOHTTP application

import json
import uuid
import aiohttp_things as ahth
from aiohttp import web


def safe_json_value(value):
    try:
        json.dumps(value)
        return value
    except (TypeError, OverflowError):
        return str(value)


class Base(web.View, ahth.JSONMixin, ahth.PrimaryKeyMixin):
    async def get(self):
        self.context['Type of primary key'] = safe_json_value(type(self.pk))
        self.context['Value of primary key'] = safe_json_value(self.pk)
        return await self.finalize_response()


class IntegerExample(Base):
    pk_adapter = int


class UUIDExample(Base):
    pk_adapter = uuid.UUID


UUID = '[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}'
ROUTES = [
    web.view('/integer/{pk:[0-9]+}', IntegerExample),
    web.view(f'/uuid/{{pk:{UUID}}}', UUIDExample),
]


async def app_factory():
    app = web.Application()
    app.add_routes(ROUTES)
    return app


if __name__ == '__main__':
    web.run_app(app_factory())

Examples HTTP requests and response

  • http://0.0.0.0:8080/integer/1

    {
      "Type of primary key": "<class 'int'>",
      "Value of primary key": 1
    }
  • http://0.0.0.0:8080/integer/9999999999999

    {
      "Type of primary key": "<class 'int'>",
      "Value of primary key": 9999999999999
    }
  • http://0.0.0.0:8080/integer/a352da04-c1af-4a44-8a94-c37f8f37b2bc

    404: Not Found
  • http://0.0.0.0:8080/integer/abc

    404: Not Found
  • http://0.0.0.0:8080/uuid/a352da04-c1af-4a44-8a94-c37f8f37b2bc

    {
      "Type of primary key": "<class 'uuid.UUID'>",
      "Value of primary key": "a352da04-c1af-4a44-8a94-c37f8f37b2bc"
    }
  • http://0.0.0.0:8080/uuid/13d1d0e0-4787-4feb-8684-b3da32609743

    {
      "Type of primary key": "<class 'uuid.UUID'>",
      "Value of primary key": "13d1d0e0-4787-4feb-8684-b3da32609743"
    }
  • http://0.0.0.0:8080/uuid/1

    404: Not Found
  • http://0.0.0.0:8080/uuid/abc

    404: Not Found

Project details


Download files

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

Source Distribution

aiohttp_things-1.1.1.tar.gz (4.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

aiohttp_things-1.1.1-py3-none-any.whl (5.6 kB view details)

Uploaded Python 3

File details

Details for the file aiohttp_things-1.1.1.tar.gz.

File metadata

  • Download URL: aiohttp_things-1.1.1.tar.gz
  • Upload date:
  • Size: 4.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.1 CPython/3.12.3 Linux/6.8.0-59-generic

File hashes

Hashes for aiohttp_things-1.1.1.tar.gz
Algorithm Hash digest
SHA256 1d0bb155ed0a53b772ce7f2e22229174b9666198a9aa0d432a96cbc891f66220
MD5 6a6e0238e41cbf0a04ccddae16c7aa4a
BLAKE2b-256 96b1cbc65884ddc3069705287a99c7a7e2fd8b55be1ac3f75076da8ce4970c57

See more details on using hashes here.

File details

Details for the file aiohttp_things-1.1.1-py3-none-any.whl.

File metadata

  • Download URL: aiohttp_things-1.1.1-py3-none-any.whl
  • Upload date:
  • Size: 5.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.1 CPython/3.12.3 Linux/6.8.0-59-generic

File hashes

Hashes for aiohttp_things-1.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 854f7e099fa0037d210f2b745f529d0091a13384fa3f5cc3e762d77e11af7712
MD5 ba2460f3d3b6eb9c70f2a795f511cff0
BLAKE2b-256 299e4388566e211ee004f54ee1c02fb930926f47c34971d228d28ffeca0d4f8a

See more details on using hashes here.

Supported by

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