Metadata-Version: 2.1
Name: thrift2pyi
Version: 1.0.2
Summary: convert thrift to pyi
Home-page: UNKNOWN
Author: yanweizhi
Author-email: yanweizhi@bytedance.com
License: UNKNOWN
Description: 
        # 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
        ```thrift
        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
        }
        
        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
        
        ```python
        # 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:
                ...
        
        ```
        
Keywords: thrift2pyi
Platform: UNKNOWN
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.4
Requires-Python: >=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*
Description-Content-Type: text/markdown
Provides-Extra: dev
