formart thrift file
Project description
thrift-fmt
thrift formatter
the parser is https://github.com/alingse/thrift-parser
Usage
install
pip install thrift-fmt
format files
single file
thrift-fmt mythrift.thrift
thrift-fmt mythrift.thrift -w
or directory (this will overwrite the origin file, please keep in track)
thrift-fmt -d ./thrift_files
or more options see help
thrift-fmt --help
Use in Code
use ThriftData
parse from file / stdin / str
use ThriftFormatter
or PureThriftFormatter
format the data
from thrift_fmt import ThriftFormatter, PureThriftFormatter
from thrift_parser import ThriftData
origin = '''
include "shared.thrift" // a
// work info
struct Work {
1: i32 num1 = 0,
2: required i32 num2, // num2 for
3: Operation op, // op is Operation
4: optional string comment,
5: map<string,list<string>> tags, //hello
}
'''
thrift = ThriftData.from_str(data)
out = ThriftFormatter(thrift).format()
assert out == '''
include "shared.thrift" // a
// work info
struct Work {
1: required i32 num1 = 0,
2: required i32 num2, // num2 for
3: required Operation op, // op is Operation
4: optional string comment,
5: required map<string, list<string>> tags, //hello
}
'''.strip()
# or only a single node
header = PureThriftFormatter().format_node(thrift.document.children[0])
assert header == 'include "shared.thrift"'
Feature
- suppoort keep the comment
- patch the required field
- align the fields comment
- format only single field
TODO
- support function blank line count
- fix //a comment
- support Enum field
- better code
- other language ?
LICENSE
some thrift files in fixtures thrift was copy from https://github.com/apache/thrift/blob/master/tutorial/ , The Apache LICENSE
the Thrift.g4 in thrift-parser package was copy from https://github.com/antlr/grammars-v4
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
thrift-fmt-0.2.6.tar.gz
(6.0 kB
view details)
Built Distribution
File details
Details for the file thrift-fmt-0.2.6.tar.gz
.
File metadata
- Download URL: thrift-fmt-0.2.6.tar.gz
- Upload date:
- Size: 6.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.7.1 importlib_metadata/4.10.1 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.10.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8818a8ebff6904c6ec9ea51bc9775d5cbf0d314214e89cae100370582cd98b5c |
|
MD5 | dcece2a290314ac7bf8a45a9159cfbbc |
|
BLAKE2b-256 | 6d00e90418e2b2c4fb3791f15b6e7bce6a7f4aacdfc230b7c426b6945c83acc0 |
Provenance
File details
Details for the file thrift_fmt-0.2.6-py3-none-any.whl
.
File metadata
- Download URL: thrift_fmt-0.2.6-py3-none-any.whl
- Upload date:
- Size: 7.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.7.1 importlib_metadata/4.10.1 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.10.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 31d09016607d9f205c14b85b160446dfa6f9c99b0fda76335876fee43ffbf841 |
|
MD5 | 06241b36cc3731fb0235086170e8c2b8 |
|
BLAKE2b-256 | e18c4ef874b9141a03ef07dea8a70158b566d03eec4c7060b48edd661e7a1c15 |