A library for developing applications with a message-based protocol on top of TCP based on asyncio.
Project description
A library for developing applications with a message-based protocol on top of TCP based on asyncio.Opens the possibility of adding controllers that are responsible for specific commands, the ability to define and validate command arguments.
-
First, you need to create an instance of the App class
import asyncio from asyncio_tcp_messages import App app = App() #Your code if __name__ == '__main__': asyncio.run(app.run())
-
Here are some usage examples. You can use pydantic BaseModel subclasses for data validation.
import asyncio from asyncio_tcp_messages import App import pydantic app = App() class Person(pydantic.BaseModel): name: str = pydantic.Field(..., min_length=2, max_length=250, description="The person's name must be at least 2 " "and at most 250 characters") age: int = pydantic.Field(..., ge=0, lt=200, description="The person's age must be greater or equal to zero " "and lesser than 250") funs: list[str] = pydantic.Field(default_factory=list, title="The activities person likes to do") salary: int = pydantic.Field(None, gt=0, description="The person's salary must be greater than zero") def __str__(self) -> str: return f'{self.name} is {self.age} years old with {self.salary}$ salary and favourite activities: {self.funs}' @app.command(name='sum') async def custom_sum(user_id: int, arg1: int, arg2: int) -> str: return str(arg1 + arg2) @app.command() async def add_person(user_id: int, person: Person): people.append(person) @app.command() async def get_person(user_id: int, name: str) -> str: return '\n'.join(str(person) for person in people if person.name == name) if __name__ == '__main__': asyncio.run(app.run())
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.
Source Distribution
File details
Details for the file asyncio_tcp_messages-0.1.4.tar.gz
.
File metadata
- Download URL: asyncio_tcp_messages-0.1.4.tar.gz
- Upload date:
- Size: 4.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.7.0 importlib_metadata/4.8.1 pkginfo/1.8.2 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f467212594d9ee6c3993f6e0f54696ebe3a42d25ba888e3e388915b549a1ea5f |
|
MD5 | 1447d7e6af7ee6e3531539edb730a986 |
|
BLAKE2b-256 | 7259832bce850358551054bf02d73d80d9ea62486fc6e31fa135ff3700a735fa |