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())
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
|