convert thrift to pyi
Project description
pyi4thrift
convert thrift to pyi
How to use
uv pip install pyi4thrift
pyi4thrift tests/example.thrift
pyi4thrift tests/src/example.thrift -p tests/src -o tests/dest
Release
This project uses GitHub Actions to build and publish releases via OIDC.
Tag release:
git tag v2.0.0
git push origin v2.0.0
Manual release:
Run the "Release" workflow in GitHub Actions.
See dir "tests" for details.
Example
namespace py example
include "a/a.thrift"
const string A = "1";
const i32 B = 1;
const list<i32> C = [];
const list<i32> D = [1,2];
const map<i32,string> E = {};
const double F = 1.1;
struct Example {
1: map<map<a.A,a.A>, a.A> A
2: optional i16 B
3: i32 C
4: i64 D
5: bool E = true
6: byte F
7: double G = 0.1
8: string H = "hello"
9: a.A I
10: map<a.A, map<a.A,a.A>> J
11: map<a.A, a.A> K
12: map<string, bool> L = {}
13: map<string, list<map<string, a.A>>> M
14: list<a.A> N
15: list<string> O
16: set<i16> P
17: list<map<string, a.A>> Q
18: binary R
}
enum ExampleEnum {
A = 0
B = 1
C = 2
}
enum ErrCode {
ERR_SUCCESS = 0
ERR_REQ_PARAM_INVALID = 4000
ERR_UNKNOWN = 5000
ERR_SYSTEM_INNER_EXCEPTION = 5001
ERR_LIMIT_EXCEEDED = 5002
}
union ExampleUnion {
1: i32 A = 1
}
exception ByteException {
1: i32 ErrorCode = 0,
}
service ExampleService {
Example Get(1: a.A rq, 2: i64 xx)
i16 Pull(1: string name = "", 2: map<string,string> xxx) throws (1: ByteException exc)
void Test()
}
generated by pyi4thrift
# coding:utf-8
from typing import List, Set, Dict
from .a import a_thrift as a
from thriftpy2.thrift import TException
from enum import Enum
A = '1'
B = 1
C = []
D = [1, 2]
E = {}
F = 1.1
# noinspection PyPep8Naming, PyShadowingNames
class ExampleEnum(Enum):
A = 0
B = 1
C = 2
# noinspection PyPep8Naming, PyShadowingNames
class ErrCode(Enum):
ERR_SUCCESS = 0
ERR_REQ_PARAM_INVALID = 4000
ERR_UNKNOWN = 5000
ERR_SYSTEM_INNER_EXCEPTION = 5001
ERR_LIMIT_EXCEEDED = 5002
# noinspection PyPep8Naming, PyShadowingNames
class Example(object):
A: Dict[Dict[a.A, a.A], a.A]
B: int
C: int
D: int
E: bool
F: int
G: float
H: str
I: a.A
J: Dict[a.A, Dict[a.A, a.A]]
K: Dict[a.A, a.A]
L: Dict[str, bool]
M: Dict[str, List[Dict[str, a.A]]]
N: List[a.A]
O: List[str]
P: Set[int]
Q: List[Dict[str, a.A]]
def __init__(self,
A: Dict[Dict[a.A, a.A], a.A] = None,
B: int = None,
C: int = None,
D: int = None,
E: bool = True,
F: int = None,
G: float = 0.1,
H: str = 'hello',
I: a.A = None,
J: Dict[a.A, Dict[a.A, a.A]] = None,
K: Dict[a.A, a.A] = None,
L: Dict[str, bool] = {},
M: Dict[str, List[Dict[str, a.A]]] = None,
N: List[a.A] = None,
O: List[str] = None,
P: Set[int] = None,
Q: List[Dict[str, a.A]] = None) -> None:
...
# noinspection PyPep8Naming, PyShadowingNames
class ByteException(TException):
ErrorCode: int
def __init__(self, ErrorCode: int = 0) -> None:
...
# noinspection PyPep8Naming, PyShadowingNames
class ExampleService(object):
def Get(self, rq: a.A = None, xx: int = None) -> Example:
...
def Pull(self, name: str = '', xxx: Dict[str, str] = None) -> int:
...
def Test(self, ) -> None:
...
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 pyi4thrift-2.0.0.tar.gz.
File metadata
- Download URL: pyi4thrift-2.0.0.tar.gz
- Upload date:
- Size: 59.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.9.28 {"installer":{"name":"uv","version":"0.9.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f4690fbaf7c98b716581123ee56f83a484fffee2596cafdcc797a691b5941dbc
|
|
| MD5 |
7dc2d18e27917bcf53ff325209ffdc92
|
|
| BLAKE2b-256 |
27b17445a57dc0a8db5225de901615ca5d7a19e76777aa192486b95cf13448b3
|
File details
Details for the file pyi4thrift-2.0.0-py3-none-any.whl.
File metadata
- Download URL: pyi4thrift-2.0.0-py3-none-any.whl
- Upload date:
- Size: 9.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.9.28 {"installer":{"name":"uv","version":"0.9.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5fa32c4706f47a5c0215bd3c2f7f50440ba8697bef6b779abca72d6d3b6470cc
|
|
| MD5 |
24d3870251d165caaa1af5b025e7f65b
|
|
| BLAKE2b-256 |
0713c0147682d95bddcc9bf9f6e896e4197949b1d3164f73c54489dc9e1057a3
|