Python Library to generate proto buffer code from python using type annotations
Project description
Protomodel
Python Library to generate proto buffer code from python using type annotations
Installation
Create a virtual enviroment (Optional)
python -m venv venv
source venv/bin/activate # venv/Scripts/activate on Windows
Install package (require python ^3.10 version)
pip install protomodel
Example
Create a python file and add the following code:
from protomodel import message, service, rpc
@message
class HelloRequest:
name: str
@message
class HelloReply:
message: str
@service
class Greeter:
@rpc
def say_hello(hello_request: HelloRequest) -> HelloReply:
pass
Generate file
Run the following command to generate a proto buffer file:
python -m protomodel generate --python_file=hello.py --proto_name=hello.proto
And then you will get the following result:
syntax = "proto3";
message HelloRequest {
string name = 1;
}
message HelloReply {
string message = 1;
}
service Greeter {
rpc SayHello (HelloRequest) returns (HelloReply) {}
}
Add a package name:
python -m protomodel generate --python_file=hello.py \
--proto_name=hello.proto --package_name=my_package_name
syntax = "proto3";
package my_package_name;
...
Adding another types
Python Code:
@message
class Item:
id: int
name: str
description: str
price: float
enabled: bool
@message
class ItemsList:
items: list[Item]
Result:
message Item {
int32 id = 1;
string name = 2;
string description = 3;
double price = 4;
bool enabled = 5;
}
message ItemsList {
repeated Item items = 1;
}
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file protomodel-0.0.13.tar.gz.
File metadata
- Download URL: protomodel-0.0.13.tar.gz
- Upload date:
- Size: 6.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.5.1 CPython/3.11.3 Linux/5.15.90.1-microsoft-standard-WSL2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
789a82d6be23709faaf127f49f817663b2345e7891ecccd07cac9d741a8375f4
|
|
| MD5 |
c1167d63d74e7cb592a168d5a602c3a0
|
|
| BLAKE2b-256 |
de38de90a62fd4d237d167a76e419d13650c9fac0e12860756f43ed7cc90a46d
|
File details
Details for the file protomodel-0.0.13-py3-none-any.whl.
File metadata
- Download URL: protomodel-0.0.13-py3-none-any.whl
- Upload date:
- Size: 6.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.5.1 CPython/3.11.3 Linux/5.15.90.1-microsoft-standard-WSL2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8ff7edc599e2281aaa175a3eaeb77c8552afae64cfcbcee83c269e028f78c1f8
|
|
| MD5 |
70b72f674dc6f11e79a8572e39c0620f
|
|
| BLAKE2b-256 |
22c1e6925ec97288d9884473f37d9a7f7280b10217d046a7558be8f0f84b571f
|