Skip to main content

A python wrapper for toml++

Project description

pytomlpp

Build Status Conda Status PyPI version

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.
  • We support all major platforms (Linux, Mac OSX and Windows), for both CPython and Pypy and all recent Python versions. You just need to pip install and we have a pre-compiled binaries ready. No need to play with clang, cmake or any C++ toolchains.

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.694 s
     rtoml:   0.871 s ( 1.25x)
     tomli:   2.625 s ( 3.78x)
      toml:   5.642 s ( 8.12x)
     qtoml:   7.760 s (11.17x)
   tomlkit:  32.708 s (47.09x)

Test it for yourself using the benchmark script.

Installing

We recommend you to use pip to install this package:

pip install pytomlpp

You can also use conda to install this package, on all common platforms & python versions. If you have an issue with a package from conda-forge, you can raise an issue on the feedstock

conda install -c conda-forge 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 .

Alt

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pytomlpp-1.0.10.tar.gz (1.0 MB view hashes)

Uploaded Source

Built Distributions

pytomlpp-1.0.10-pp37-pypy37_pp73-win_amd64.whl (184.2 kB view hashes)

Uploaded PyPy Windows x86-64

pytomlpp-1.0.10-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (217.0 kB view hashes)

Uploaded PyPy manylinux: glibc 2.12+ x86-64

pytomlpp-1.0.10-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.whl (231.8 kB view hashes)

Uploaded PyPy manylinux: glibc 2.12+ i686

pytomlpp-1.0.10-pp37-pypy37_pp73-macosx_10_9_x86_64.whl (165.4 kB view hashes)

Uploaded PyPy macOS 10.9+ x86-64

pytomlpp-1.0.10-cp310-cp310-win_amd64.whl (185.3 kB view hashes)

Uploaded CPython 3.10 Windows x86-64

pytomlpp-1.0.10-cp310-cp310-musllinux_1_1_x86_64.whl (3.3 MB view hashes)

Uploaded CPython 3.10 musllinux: musl 1.1+ x86-64

pytomlpp-1.0.10-cp310-cp310-musllinux_1_1_i686.whl (3.3 MB view hashes)

Uploaded CPython 3.10 musllinux: musl 1.1+ i686

pytomlpp-1.0.10-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (2.7 MB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.12+ x86-64

pytomlpp-1.0.10-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl (2.6 MB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.12+ i686

pytomlpp-1.0.10-cp310-cp310-macosx_11_0_arm64.whl (184.1 kB view hashes)

Uploaded CPython 3.10 macOS 11.0+ ARM64

pytomlpp-1.0.10-cp310-cp310-macosx_10_9_x86_64.whl (190.9 kB view hashes)

Uploaded CPython 3.10 macOS 10.9+ x86-64

pytomlpp-1.0.10-cp310-cp310-macosx_10_9_universal2.whl (371.9 kB view hashes)

Uploaded CPython 3.10 macOS 10.9+ universal2 (ARM64, x86-64)

pytomlpp-1.0.10-cp39-cp39-win_amd64.whl (185.0 kB view hashes)

Uploaded CPython 3.9 Windows x86-64

pytomlpp-1.0.10-cp39-cp39-musllinux_1_1_x86_64.whl (3.3 MB view hashes)

Uploaded CPython 3.9 musllinux: musl 1.1+ x86-64

pytomlpp-1.0.10-cp39-cp39-musllinux_1_1_i686.whl (3.3 MB view hashes)

Uploaded CPython 3.9 musllinux: musl 1.1+ i686

pytomlpp-1.0.10-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (2.7 MB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.12+ x86-64

pytomlpp-1.0.10-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl (2.6 MB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.12+ i686

pytomlpp-1.0.10-cp39-cp39-macosx_11_0_arm64.whl (184.3 kB view hashes)

Uploaded CPython 3.9 macOS 11.0+ ARM64

pytomlpp-1.0.10-cp39-cp39-macosx_10_9_x86_64.whl (191.1 kB view hashes)

Uploaded CPython 3.9 macOS 10.9+ x86-64

pytomlpp-1.0.10-cp39-cp39-macosx_10_9_universal2.whl (372.2 kB view hashes)

Uploaded CPython 3.9 macOS 10.9+ universal2 (ARM64, x86-64)

pytomlpp-1.0.10-cp38-cp38-win_amd64.whl (185.1 kB view hashes)

Uploaded CPython 3.8 Windows x86-64

pytomlpp-1.0.10-cp38-cp38-musllinux_1_1_x86_64.whl (3.4 MB view hashes)

Uploaded CPython 3.8 musllinux: musl 1.1+ x86-64

pytomlpp-1.0.10-cp38-cp38-musllinux_1_1_i686.whl (3.3 MB view hashes)

Uploaded CPython 3.8 musllinux: musl 1.1+ i686

pytomlpp-1.0.10-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (2.7 MB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.12+ x86-64

pytomlpp-1.0.10-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl (2.6 MB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.12+ i686

pytomlpp-1.0.10-cp38-cp38-macosx_11_0_arm64.whl (183.8 kB view hashes)

Uploaded CPython 3.8 macOS 11.0+ ARM64

pytomlpp-1.0.10-cp38-cp38-macosx_10_9_x86_64.whl (190.6 kB view hashes)

Uploaded CPython 3.8 macOS 10.9+ x86-64

pytomlpp-1.0.10-cp38-cp38-macosx_10_9_universal2.whl (371.2 kB view hashes)

Uploaded CPython 3.8 macOS 10.9+ universal2 (ARM64, x86-64)

pytomlpp-1.0.10-cp37-cp37m-win_amd64.whl (185.6 kB view hashes)

Uploaded CPython 3.7m Windows x86-64

pytomlpp-1.0.10-cp37-cp37m-musllinux_1_1_x86_64.whl (3.4 MB view hashes)

Uploaded CPython 3.7m musllinux: musl 1.1+ x86-64

pytomlpp-1.0.10-cp37-cp37m-musllinux_1_1_i686.whl (3.4 MB view hashes)

Uploaded CPython 3.7m musllinux: musl 1.1+ i686

pytomlpp-1.0.10-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (2.7 MB view hashes)

Uploaded CPython 3.7m manylinux: glibc 2.12+ x86-64

pytomlpp-1.0.10-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl (2.7 MB view hashes)

Uploaded CPython 3.7m manylinux: glibc 2.12+ i686

pytomlpp-1.0.10-cp37-cp37m-macosx_10_9_x86_64.whl (189.1 kB view hashes)

Uploaded CPython 3.7m macOS 10.9+ x86-64

pytomlpp-1.0.10-cp36-cp36m-win_amd64.whl (185.6 kB view hashes)

Uploaded CPython 3.6m Windows x86-64

pytomlpp-1.0.10-cp36-cp36m-musllinux_1_1_x86_64.whl (3.4 MB view hashes)

Uploaded CPython 3.6m musllinux: musl 1.1+ x86-64

pytomlpp-1.0.10-cp36-cp36m-musllinux_1_1_i686.whl (3.4 MB view hashes)

Uploaded CPython 3.6m musllinux: musl 1.1+ i686

pytomlpp-1.0.10-cp36-cp36m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (2.7 MB view hashes)

Uploaded CPython 3.6m manylinux: glibc 2.12+ x86-64

pytomlpp-1.0.10-cp36-cp36m-manylinux_2_12_i686.manylinux2010_i686.whl (2.7 MB view hashes)

Uploaded CPython 3.6m manylinux: glibc 2.12+ i686

pytomlpp-1.0.10-cp36-cp36m-macosx_10_9_x86_64.whl (189.1 kB view hashes)

Uploaded CPython 3.6m macOS 10.9+ x86-64

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page