Command Line Tool to Work with Transit Format
Project description
Command Line Tool to Work with Transit Format
- Free software: ISC license
- Documentation: https://transito.readthedocs.org.
Features
- convert to and form json, edn, transit
- read content from stdin or files
Usage
$ transito -h usage: transito [-h] {t2j,j2t,e2t,t2e,http} ... Transit CLI positional arguments: {t2j,j2t,e2t,t2e,http} t2j convert transit to json j2t convert json to transit e2t convert edn to transit t2e convert transit to edn http make http requests with transit data optional arguments: -h, --help show this help message and exit
Conversions
Convert Transit to JSON from a file:
$ transito t2j examples/ex1.transit [":keyword", "~lala", 1, 1.2, true, null, [], ["hi", "a"]]
Convert Transit to JSON from stdin:
$ transito t2j - ["~#list",["~:keyword","~$lala",1,1.2,true,null,[],["hi",["~#char","a"]]]] [":keyword", "~lala", 1, 1.2, true, null, [], ["hi", "a"]]
Note
The first line is the input, then I pressed Enter and Ctrl+D
Piping from another command:
$ echo '["~#list",["~:keyword","~$lala",1,1.2,true,null,[],["hi",["~#char","a"]]]]' | transito t2j - [":keyword", "~lala", 1, 1.2, true, null, [], ["hi", "a"]]
Same for Edn:
$ transito t2e examples/ex1.transit (keyword lala 1 1.2 true nil [] ["hi" \a])
$ echo '["~#list",["~:keyword","~$lala",1,1.2,true,null,[],["hi",["~#char","a"]]]]' | transito t2e - (keyword lala 1 1.2 true nil [] ["hi" \a])
$ transito t2e - ["~#list",["~:keyword","~$lala",1,1.2,true,null,[],["hi",["~#char","a"]]]] (keyword lala 1 1.2 true nil [] ["hi" \a])
you should get the idea, some with transit as output just in case:
$ transito e2t - (keyword lala 1 1.2 true nil [] ["hi" \a]) ["~#list",["~$keyword","~$lala",1,1.2,true,null,[],["hi",["~#char","a"]]]] $ transito t2j - ["~#list",["~$keyword","~$lala",1,1.2,true,null,[],["hi",["~#char","a"]]]] ["~keyword", "~lala", 1, 1.2, true, null, [], ["hi", "a"]]
Note
to json conversions are lossy, this means that in order to not crash when serializing keywords, symbols and chars we do a lossy serialization, chars are strings, keywords are strings starting with : and symbols are strings starting with ~.
The idea of this translation is to provide a way to view the edn or transit as json and shouldn’t be used to send this data to a production system.
HTTP Requests
You an make an http request that supports transit, json or edn but writting and reading the request and response in a more readable way, for example, make a request writing edn that will be transformed to transit before being sent, the response will be transformed to edn if possible to make it more readable:
$ echo '(increment {:value 20})' | transito http post http://localhost:8080/action e2t - Status: 200 Content-Type: application/transit+json Content-Length: 28 {:value [:count]}
You may ask, isn’t it complected? yes, yes it is.
History
0.1.3 (2015-12-01)
- add support for keywords with namespaces in edn
0.1.2 (2015-26-11)
- fix edn encoding from transit on http response
0.1.1 (2015-25-11)
- add support for http requests
- fix keyword serialization in edn
0.1.0 (2015-25-11)
- First release on PyPI.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Filename, size | File type | Python version | Upload date | Hashes |
---|---|---|---|---|
Filename, size transito-0.1.6-py2.py3-none-any.whl (28.5 kB) | File type Wheel | Python version 2.7 | Upload date | Hashes View |
Filename, size transito-0.1.6.tar.gz (16.1 kB) | File type Source | Python version None | Upload date | Hashes View |
Hashes for transito-0.1.6-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d21feb8cf9fd31b0b13daae27bddb7ac8e10d8acbc2aa2bdb9ab126315c0ec4e |
|
MD5 | 5f0828c84a69c2ba481db5cfb75a4726 |
|
BLAKE2-256 | 31f6592766a9aa8528199f779ad595408e1d5a7dbccb9c7f88529b2241e521c0 |