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
protomodel-0.0.13.tar.gz
(6.1 kB
view details)
Built Distribution
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 |