A python wrapper for toml++
Project description
pytomlpp
This is an python wrapper for toml++
(https://marzer.github.io/tomlplusplus/).
Some points you may want to know before use:
- Using
toml++
means that this module is fully compatible with TOML v1.0.0. - We convert toml structure to native python data structures (dict/list etc.) when parsing, this is more inline with what
json
module does. - The binding is using pybind11.
- The project is tested using toml-test and pytest.
Example
In [1]: import pytomlpp
In [2]: toml_string = 'hello = "世界"'
In [3]: pytomlpp.loads(toml_string)
Out[3]: {'hello': '世界'}
In [4]: type(_)
Out[4]: dict
In [6]: pytomlpp.dumps({"你好": "world"})
Out[6]: '"你好" = "world"'
Why bother?
There are some existing python TOML parsers on the market but from my experience they are implemented purely in python which is a bit slow.
Parsing data.toml 5000 times:
pytomlpp: 0.846 s
tomli: 3.317 s (3.9x slower)
toml: 5.697 s (6.7x slower)
qtoml: 8.473 s (10.0x slower)
tomlkit: 43.250 s (51.0x slower)
Test it for yourself using the benchmark script.
Installing
We recommand you to use pip
to install this package:
pip install pytomlpp
You can also use conda
to install this package, Note we only support linux 64 python 3.8 for now, I would love to provide this package on more python versions and platforms via conda but I have not found a way yet to automate this in the CI, if you know how to do this please contribute!
conda install -c dorafmon pytomlpp
You can also install from source:
git clone git@github.com:bobfang1992/pytomlpp.git --recurse-submodules=third_party/tomlplusplus --shallow-submodules
cd pytomlpp
pip install .
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 Distributions
Hashes for pytomlpp-1.0.6-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fb7e1b7c7b90b91202646461097563d35611c87be4580dc7074df64c8e4f235f |
|
MD5 | e3c6796e4a23093e9ca486dc8b0b2d23 |
|
BLAKE2b-256 | bb7b1d26fb0462a058153072d161450ed64a05a658d91c029fdb705f416cda3f |
Hashes for pytomlpp-1.0.6-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 39855d3a8de7765b49fffc184c5f363b1d644ec72cc82ce681555ff82ac1c6ed |
|
MD5 | b0673a8f9291b2d06d34305012f0c0b2 |
|
BLAKE2b-256 | f0f66041705196b48d5b1622fafed57455c9bb5943fed451150087053171a4c8 |
Hashes for pytomlpp-1.0.6-cp310-cp310-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d21e64da0996816b5a200616229dab368ab35e4efb66b907c1bcdd2203ed3cdf |
|
MD5 | 8fad3d553ed485743de5340e56d3ed6c |
|
BLAKE2b-256 | 66ec373f76d6ef2d77d8e8e473b540a81936e75c89ed17d01da709482775d119 |
Hashes for pytomlpp-1.0.6-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 95961226d7fadd5f4667b8717f0557ef3194688fedfed556f53aaeed24be13ca |
|
MD5 | 7716fc57beecadefad8a2fdfba118168 |
|
BLAKE2b-256 | 9306ec475340cdf40b66414ee42ef8a04053dd3ae42b044e26e95203e13917a1 |
Hashes for pytomlpp-1.0.6-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9902486a79a8f4931232f9ec4bd53918e2183362608d868358a7532ae9d96f07 |
|
MD5 | af9be0d4aeb4f8da29580835560beea9 |
|
BLAKE2b-256 | 51be63f4b4a24d2704dcdea8e0f3e6e575126fc112b7c3b2b54a0139d1f04782 |
Hashes for pytomlpp-1.0.6-cp310-cp310-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b9a6421df75497cfbf99476c98bfce108f288e61a4b581d5389bb23f85aff8c2 |
|
MD5 | 160654a14bd858ce5524017b6c9c826e |
|
BLAKE2b-256 | 116700bee3497c8e9605ecf32f682106d6f8f8d40c381bf750d1c092605ff0e1 |
Hashes for pytomlpp-1.0.6-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | dd13c15ffc1f1efd91aadb079271d62c8336539c36ddf8e4de17ff9618905464 |
|
MD5 | 4d13f22407f08b2aac82290b365ffa7d |
|
BLAKE2b-256 | 0addc256ed8521d62692d9a423081926801fd05f693f740dae2d5a09663ed212 |
Hashes for pytomlpp-1.0.6-cp310-cp310-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9f2685d70e01a8695275d4222ed9ae12b5b6c7e8eba31301c0c88944507d4370 |
|
MD5 | eec2435a183d5a9daac6493ec29137a3 |
|
BLAKE2b-256 | b1a1da51e9d2e419635264e5f35a1271e302d863943c73bfa92bfeb73d45fd94 |
Hashes for pytomlpp-1.0.6-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ddf1e7d64548af3b7d70eb691e9b1bdf098c5494f7e74aa0a744fdc4005c40e1 |
|
MD5 | 573ebd6214c07ffec0abff9865745bcf |
|
BLAKE2b-256 | 88abb694048e2344a13f6a1a3847876647b84e879863cf938590f101f13f56ed |
Hashes for pytomlpp-1.0.6-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ab92c5f80a6db658cb3ae6f46eaf9e8f81faae4c3859512aed0afe2e93a6087f |
|
MD5 | 1ea64855beb1ae429609bc9bcbc1b532 |
|
BLAKE2b-256 | 02215ecd638df96a45586d9f8ac4d43df37ed6b5f3c6720185917c16a29f787e |
Hashes for pytomlpp-1.0.6-cp39-cp39-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0ed60391fbbc72039ef091a6d6519dc566d2c6e610ee7d50f3dcf08603164941 |
|
MD5 | c66bfa7b1d463337e5e20ac4fe167f79 |
|
BLAKE2b-256 | 0daf2b28f8aace9c1995fb7775125e1376fbc20107d39982096919e89689fc1e |
Hashes for pytomlpp-1.0.6-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 50ba89b5a9da13297dd8342eb0549dccf187c938f2db07c40047c8c4837a2983 |
|
MD5 | 5cbd22c90bb2b848f0cf4a0299aa7bab |
|
BLAKE2b-256 | 6e732fb2a128593c40ad5c017883440a468c4318ade9b196e8edb2f1d9d1b413 |
Hashes for pytomlpp-1.0.6-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6847a1b4699b1f66df1356398fcd6848c25a3074b767a4c5f79dacdd41b23d82 |
|
MD5 | e95337439941d5b6142eaae60dbdaca1 |
|
BLAKE2b-256 | 26e8817d50120fef788e8153f88541a6b5a588c4cff2baa8961dbd17378b13c4 |
Hashes for pytomlpp-1.0.6-cp39-cp39-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b87195ee5381b516ba84133161530162f079d5d8feb0db7c5d1df85215dcdf5b |
|
MD5 | 88302cbcc463c50f7839c45ac13efe76 |
|
BLAKE2b-256 | 6844ef70c96f7ccd78a89800462ea8f481ca945bb152610b35342cecf21687b2 |
Hashes for pytomlpp-1.0.6-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c5cd86884901e71298d9422faa703640a643277012b6e1c4c2462282d9a21924 |
|
MD5 | 8aa535fdf2cc8a04a621708be7f3c2df |
|
BLAKE2b-256 | 1aa6ccbad51289140d674fce6ecef68a3052320d244d9bfabd1f1a07521b9d60 |
Hashes for pytomlpp-1.0.6-cp39-cp39-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7cd3ad0c624cfa2168910d3f4816f23e737e31106f8e2fe8430568e8a8a4f9b0 |
|
MD5 | 950c8fa49ef663e99206de2ff9b29c4c |
|
BLAKE2b-256 | 789c5d9dd76471334288ec3d3b0654c2f4b47c0f457c4bc38e5cdcfaf8e73583 |
Hashes for pytomlpp-1.0.6-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 458199daa675da804adb0736b0985c4b93d06c478620d909422d8168df2f7ec6 |
|
MD5 | 56feab598c39a96da880e085eba8100e |
|
BLAKE2b-256 | 27a1769e99ce6152d8b201f8912a440a7fad7eb73ef93fb5dcdaf574548043b6 |
Hashes for pytomlpp-1.0.6-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e184d3e8afa8940927f81e0f9807b2b6894d7bf3b833c503adc7abe261153eec |
|
MD5 | 4b219097882cd028006acc13328e2424 |
|
BLAKE2b-256 | 5b2d92fa122fb349cb81a25463995996aa3ebda30634f480b22da36c6a66475e |
Hashes for pytomlpp-1.0.6-cp38-cp38-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8d78c2bfbd9d0d830d3d60fa47c84eaa8ac0a4b6dbc6aa30b62e551bfe8699e2 |
|
MD5 | 80bfc6fd0b777cff61e3ae5c4306d6c7 |
|
BLAKE2b-256 | 575a34a151441bddc5103e0e4df46d7a4c7555a6fd348fbbb0af30eb3f6cfdf0 |
Hashes for pytomlpp-1.0.6-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bcd74b4cc43c93c0a36b2db156cf2261315f7c000e8a158ede3a1deda346c82f |
|
MD5 | 688eb794e6613417e48733b34830e985 |
|
BLAKE2b-256 | 1eb18bc4f70b5b6cb7b234a495f7f1a2463c47dbb9306764bf88582f9f743947 |
Hashes for pytomlpp-1.0.6-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7084850c25b5939b42e951aadebe62a6878b6ab2a2e193912fc1aa24bf410811 |
|
MD5 | ecb7243264608b40362159fce032fbf7 |
|
BLAKE2b-256 | a58eec2814ad7a2646d179a7f06dfb537f83a7516be31e2f2574f8ec25d74141 |
Hashes for pytomlpp-1.0.6-cp38-cp38-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b2d09fce4aa49d10e5cc07445c4f7714ea798f2d8d88819b716ef9910a604414 |
|
MD5 | d6ceda4d003a1f1ab408702de7677a68 |
|
BLAKE2b-256 | 074ec074c17588c1010990077289b710f92674deacc518a9696f502c7b91d467 |
Hashes for pytomlpp-1.0.6-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0e26e2a73d1bdf2776dc755e8d3cce0eebdb669857533470432156283f486ecd |
|
MD5 | d9e54c96ba3520822e6365180395bbbd |
|
BLAKE2b-256 | af2cd7ed874d9b29c89a36da34263ccfa6f73ce217752b129f5d1aea1f5110d3 |
Hashes for pytomlpp-1.0.6-cp38-cp38-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1e3043b84b1a2e70ce19ad37c70ca673df10b5ca305993e3b728ba85fd95097e |
|
MD5 | 638092000ee70b4abdbaac36fee99c7a |
|
BLAKE2b-256 | ec02ffd7e5d7bf1765b2447fdee6d9854582e7def923365927e4bf971b86b9cd |
Hashes for pytomlpp-1.0.6-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 753d252d4ae13ddd23a20ff156be4b408aec2de132b2088f56e030cc040d364f |
|
MD5 | 8e1b062f9213c5000014344d1b5bee7f |
|
BLAKE2b-256 | 86cc16b4fd2921e983e8f9be282a0e1d9849f6bb313db80bda564eea3b082e13 |
Hashes for pytomlpp-1.0.6-cp37-cp37m-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 41fc5e398cd1329c7c1cd75cf3d9e2ad0321a31eff8823e1441c5fd9df253192 |
|
MD5 | f1bb6944135fca5cb8076ed4f0775ed7 |
|
BLAKE2b-256 | d895b9cc62e8a6738efe639d3464ceaca757671aa6b4ca689fac7633b3bca0d4 |
Hashes for pytomlpp-1.0.6-cp37-cp37m-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d12b637ff0af6e6e465eb12099780b5f1bf2a7101c2425f6a770ca91a8c0b146 |
|
MD5 | 577315d6817dfd0e08441f7efe22766d |
|
BLAKE2b-256 | 19cf38bcc2f22e1db107ac259bf3d6a74e61c1a5f48e7baf42f03dee79647a56 |
Hashes for pytomlpp-1.0.6-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cab8ec5f7f74a35b75b2bd51549fcbdfab116597338f3f4581452b1775c0e317 |
|
MD5 | 9ffb1e6d99fc526e30245eaaf9230e4a |
|
BLAKE2b-256 | b7568b2ffd2ae127ad435ac619253ee750a729e18fc864049d7d417621163e53 |
Hashes for pytomlpp-1.0.6-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 366176d085550413170db2d2cfbf90f349430bfbf0e696b334bcbf8a9457f66a |
|
MD5 | 773237272e5f4534e2cbbbe41054aa9e |
|
BLAKE2b-256 | d5f551076c557be3e547a985740eb3b979c64fdc461b4ec024e49fb4d8edde68 |
Hashes for pytomlpp-1.0.6-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f4c08ab6ebb65388c0475e2f9e6b908778c00451f5dbc58446c1830f4988c6ae |
|
MD5 | 90fa3c03e64f9c01064f3cca80f98e2f |
|
BLAKE2b-256 | bf953e379d23e2eebdc6fb0d696e06ef3ebad7690623919a8fe3e60d60541abe |
Hashes for pytomlpp-1.0.6-cp36-cp36m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1c6cfebcdde597be6339197137c33f0a72199c82964318657404d7806b9992ba |
|
MD5 | 7ddbf9c4a0ae64ce4fca149c7566a7f2 |
|
BLAKE2b-256 | 6b072ae17d74923f586c08531f2a629b3ce6a8ed1696aa242d74d7f8f010d039 |
Hashes for pytomlpp-1.0.6-cp36-cp36m-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 063efe5cbf8f1732fa1d6ce5ebb0b77f02813b69356840fb4247962400911a0b |
|
MD5 | f40e4ab0d244924ec7dce6606c7115af |
|
BLAKE2b-256 | a1e4a073510767a9ba5e9e8561f1162d8fc47a235548376e2c1bcdf5404e342f |
Hashes for pytomlpp-1.0.6-cp36-cp36m-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 713e75d32db2fe5bd1abcf8af82b1672344119caa37043f2a1f7859a06ee6157 |
|
MD5 | 984f8d9624e24a205bbdf37971a5f5c9 |
|
BLAKE2b-256 | 70cdda08f17df408d672be22e6c929fc2f0d6c9317eaf38124bdbfd99dd52719 |
Hashes for pytomlpp-1.0.6-cp36-cp36m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c24a86192029be16b880aa7980c334c4e1da7d1fbdc14c16cf9f12b9567424c8 |
|
MD5 | 8ca1e9aebcfa88233accb4be6105b86d |
|
BLAKE2b-256 | 6d082051009409c293fc84b818f1d74dc56caf1ee27fb984b6f9805b8a4466e6 |
Hashes for pytomlpp-1.0.6-cp36-cp36m-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4710cfdd1c60ea9bd07af80736d3800b49a7406f06ecc751bdf467603777ae37 |
|
MD5 | 392edda21241cd880b11ec01af256efe |
|
BLAKE2b-256 | 7f42ddcb5997dda30acd8254fecf672eee1f437ce59bdfc7ca8431d29ca8a7eb |
Hashes for pytomlpp-1.0.6-cp36-cp36m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 85723892e47f8fa256d04185fa283d41ba21e6e47c74afdb82f339fd0a066fe3 |
|
MD5 | 961fbf8fc76723a57b14963cb6cf521a |
|
BLAKE2b-256 | b4628918732c0732345c2b725e8b3d1a8b21cc87000fdafebe0e8cfc16a57973 |