Skip to main content

thrift2pyi

convert thrift to pyi

How to use

pip install thrift2pyi

thrift2pyi tests/example.thrift

thrift2pyi tests/src/example.thrift -p tests/src -o tests/dest

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 thrift2pyi

# 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:
        ...

Metadata

Release files for thrift2pyi 1.0.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for thrift2pyi 1.0.5
File Size Uploaded
thrift2pyi-1.0.5.tar.gz 9.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for thrift2pyi 1.0.5
File Interpreter ABI Platform
thrift2pyi-1.0.5-py3-none-any.whl Python 3 none any Details

Total release size: 18.2 kB

Release files / thrift2pyi-1.0.5.tar.gz

Download URL thrift2pyi-1.0.5.tar.gz
Size 9.3 kB
Tags Source
SHA-256 checksum
How to use checksums
9d511eeeacb27da8fa618863c254723638d0d3706e4cd2670c0c1e7d5d5be7af
BLAKE2b-256 checksum
How to use checksums
a4ac2dccc9dc06a9ab1e5aedd18845d4cad49b5a3dea1099d90aa484a3ea4953
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.11.4

Release files / thrift2pyi-1.0.5-py3-none-any.whl

Download URL thrift2pyi-1.0.5-py3-none-any.whl
Size 9.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d112b2d32c31195d257a7546474fc0ff7a18e59af2dd6f542651ac12516c16a2
BLAKE2b-256 checksum
How to use checksums
432da5cc797d1d8a4bb9244ad0733bb7bcbcfc366dec94c2e8a7f738977bf340
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.11.4

Release history Release notifications | RSS feed

This release

1.0.5 This release

2 release files

1.0.4

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

2 release files

0.0.2

1 release file

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page