Description
This is a python backend framework for building REST applications. It is built on top of the ASGI specification and uses the uvicorn server.
Installation
poetry install
poetry shell
python setup.py bdist_wheel
pip install dist/privatejet-0.0.3-py3-none-any.whl
Usage
"""
This is an example of how to use PrivateJet.
"""
from typing import Callable
from privatejet.main import PrivateJet
from privatejet.middlewares import CORSMiddleware
from privatejet.router import JetRouter
private_jet = PrivateJet()
async def app(scope: dict[str, str], receive: Callable, send: Callable) -> None:
"""
This function is called by the ASGI server.
"""
await private_jet.add_middleware(CORSMiddleware)
await private_jet.add_router(router={"prefix": "/users", "router": UserRouter})
await private_jet.start(scope=scope, receive=receive, send=send)
class UserRouter(JetRouter):
"""
User Router
"""
async def get(self, request: dict[str]) -> None:
"""
When request method is GET and the path is like this:
- /users
"""
await self.send_message(
[
{"name": "alex", "age": 20},
{"name": "john", "age": 30},
]
)
async def get_one(self, request: dict[str]) -> None:
"""
When request method is GET and the path is like this:
- /users/1
"""
await self.send_message({"name": "alex", "age": 20})
async def post(self, request: dict[str]) -> None:
"""
When request method is POST and the path is like this:
- /users
"""
await self.send_message(
{
"message": "User created successfully",
"user": {
"name": request["body"]["name"],
"age": request["body"]["age"],
},
}
)
async def put(self, request: dict[str]) -> None:
"""
When request method is PUT and the path is like this:
- /users/1
"""
await self.send_message(
{
"message": "User updated successfully",
"user": {
"name": request["body"]["name"],
"age": request["body"]["age"],
},
}
)
async def patch(self, request: dict[str]) -> None:
"""
When request method is PATCH and the path is like this:
- /users/1
"""
await self.send_message(
{
"message": "User patched successfully",
"user": {
"name": request["body"]["name"],
"age": request["body"]["age"],
},
}
)
async def delete(self, request: dict[str]) -> None:
"""
When request method is DELETE and the path is like this:
- /users/1
"""
await self.send_message(
{
"message": "User deleted successfully",
}
)
License
This project is licensed under the terms of the MIT license.
Metadata
Release files for privatejet 0.0.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| privatejet-0.0.3.tar.gz | 4.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| privatejet-0.0.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 11.0 kB
Release files / privatejet-0.0.3.tar.gz
| Download URL | privatejet-0.0.3.tar.gz |
|---|---|
| Size | 4.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
aa4612b865e187d2fa4a4c80f9e1f15c996ac6b772a127d494f8f74b9117515e
|
|
BLAKE2b-256 checksum How to use checksums |
01b12fdafeece82ba1229cd1ac3366f3d33b159ee12aff00c5a3dd7c459bbff0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.9.18
|
Release files / privatejet-0.0.3-py3-none-any.whl
| Download URL | privatejet-0.0.3-py3-none-any.whl |
|---|---|
| Size | 6.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
0350f55baa9a97b8c988edb3360eeba8e9873366c6fd756041dc78507a88ac3e
|
|
BLAKE2b-256 checksum How to use checksums |
044edb727c5e94341c06c7dcdc922a95900c711a4d19fb1678d76d979c15fd23
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.9.18
|