%global _empty_manifest_terminate_build 0 Name: python-rtoml Version: 0.9.0 Release: 1 Summary: please add a summary manually as the author left a blank one License: MIT License URL: https://github.com/samuelcolvin/rtoml Source0: https://mirrors.nju.edu.cn/pypi/web/packages/d5/53/ac68f06b42de70958f0ddb2c6a9109054fc208951e4d61af86f0c7186254/rtoml-0.9.0.tar.gz %description # rtoml [![Actions Status](https://github.com/samuelcolvin/rtoml/workflows/CI/badge.svg)](https://github.com/samuelcolvin/rtoml/actions?query=event%3Apush+branch%3Amain+workflow%3ACI) [![Coverage](https://codecov.io/gh/samuelcolvin/rtoml/branch/main/graph/badge.svg)](https://codecov.io/gh/samuelcolvin/rtoml) [![pypi](https://img.shields.io/pypi/v/rtoml.svg)](https://pypi.python.org/pypi/rtoml) [![versions](https://img.shields.io/pypi/pyversions/rtoml.svg)](https://github.com/samuelcolvin/rtoml) [![license](https://img.shields.io/github/license/samuelcolvin/rtoml.svg)](https://github.com/samuelcolvin/rtoml/blob/main/LICENSE) A better TOML library for python implemented in rust. ## Why Use rtoml * Correctness: rtoml is based on the widely used and very stable [toml-rs](https://github.com/alexcrichton/toml-rs) library, it passes all the [standard TOML tests](https://github.com/BurntSushi/toml-test) as well as having 100% coverage on python code. Other TOML libraries for python I tried all failed to parse some valid TOML. * Performance: see [github.com/pwwang/toml-bench](https://github.com/pwwang/toml-bench) - rtoml is much faster than pure Python TOML libraries. ## Install Requires `python>=3.7`, binaries are available from pypi for Linux, macOS and Windows, see [here](https://pypi.org/project/rtoml/#files). ```bash pip install rtoml ``` If no binary is available on pypi for you system configuration; you'll need rust stable installed before you can install rtoml. ## Usage #### load ```python def load(toml: Union[str, Path, TextIO]) -> Dict[str, Any]: ... ``` Parse TOML via a string or file and return a python dictionary. The `toml` argument may be a `str`, `Path` or file object from `open()`. #### loads ```python def loads(toml: str) -> Dict[str, Any]: ... ``` Parse a TOML string and return a python dictionary. (provided to match the interface of `json` and similar libraries) #### dumps ```python def dumps(obj: Any, *, pretty: bool = False) -> str: ... ``` Serialize a python object to TOML. If `pretty` is true, output has a more "pretty" format. #### dump ```python def dump(obj: Any, file: Union[Path, TextIO], *, pretty: bool = False) -> int: ... ``` Serialize a python object to TOML and write it to a file. `file` may be a `Path` or file object from `open()`. If `pretty` is true, output has a more "pretty" format. ### Example ```py from datetime import datetime, timezone, timedelta import rtoml obj = { 'title': 'TOML Example', 'owner': { 'dob': datetime(1979, 5, 27, 7, 32, tzinfo=timezone(timedelta(hours=-8))), 'name': 'Tom Preston-Werner', }, 'database': { 'connection_max': 5000, 'enabled': True, 'ports': [8001, 8001, 8002], 'server': '192.168.1.1', }, } loaded_obj = rtoml.load("""\ # This is a TOML document. title = "TOML Example" [owner] name = "Tom Preston-Werner" dob = 1979-05-27T07:32:00-08:00 # First class dates [database] server = "192.168.1.1" ports = [8001, 8001, 8002] connection_max = 5000 enabled = true """) assert loaded_obj == obj assert rtoml.dumps(obj) == """\ title = "TOML Example" [owner] dob = 1979-05-27T07:32:00-08:00 name = "Tom Preston-Werner" [database] connection_max = 5000 enabled = true server = "192.168.1.1" ports = [8001, 8001, 8002] """ ``` %package -n python3-rtoml Summary: please add a summary manually as the author left a blank one Provides: python-rtoml BuildRequires: python3-devel BuildRequires: python3-setuptools BuildRequires: python3-pip BuildRequires: python3-cffi BuildRequires: gcc BuildRequires: gdb %description -n python3-rtoml # rtoml [![Actions Status](https://github.com/samuelcolvin/rtoml/workflows/CI/badge.svg)](https://github.com/samuelcolvin/rtoml/actions?query=event%3Apush+branch%3Amain+workflow%3ACI) [![Coverage](https://codecov.io/gh/samuelcolvin/rtoml/branch/main/graph/badge.svg)](https://codecov.io/gh/samuelcolvin/rtoml) [![pypi](https://img.shields.io/pypi/v/rtoml.svg)](https://pypi.python.org/pypi/rtoml) [![versions](https://img.shields.io/pypi/pyversions/rtoml.svg)](https://github.com/samuelcolvin/rtoml) [![license](https://img.shields.io/github/license/samuelcolvin/rtoml.svg)](https://github.com/samuelcolvin/rtoml/blob/main/LICENSE) A better TOML library for python implemented in rust. ## Why Use rtoml * Correctness: rtoml is based on the widely used and very stable [toml-rs](https://github.com/alexcrichton/toml-rs) library, it passes all the [standard TOML tests](https://github.com/BurntSushi/toml-test) as well as having 100% coverage on python code. Other TOML libraries for python I tried all failed to parse some valid TOML. * Performance: see [github.com/pwwang/toml-bench](https://github.com/pwwang/toml-bench) - rtoml is much faster than pure Python TOML libraries. ## Install Requires `python>=3.7`, binaries are available from pypi for Linux, macOS and Windows, see [here](https://pypi.org/project/rtoml/#files). ```bash pip install rtoml ``` If no binary is available on pypi for you system configuration; you'll need rust stable installed before you can install rtoml. ## Usage #### load ```python def load(toml: Union[str, Path, TextIO]) -> Dict[str, Any]: ... ``` Parse TOML via a string or file and return a python dictionary. The `toml` argument may be a `str`, `Path` or file object from `open()`. #### loads ```python def loads(toml: str) -> Dict[str, Any]: ... ``` Parse a TOML string and return a python dictionary. (provided to match the interface of `json` and similar libraries) #### dumps ```python def dumps(obj: Any, *, pretty: bool = False) -> str: ... ``` Serialize a python object to TOML. If `pretty` is true, output has a more "pretty" format. #### dump ```python def dump(obj: Any, file: Union[Path, TextIO], *, pretty: bool = False) -> int: ... ``` Serialize a python object to TOML and write it to a file. `file` may be a `Path` or file object from `open()`. If `pretty` is true, output has a more "pretty" format. ### Example ```py from datetime import datetime, timezone, timedelta import rtoml obj = { 'title': 'TOML Example', 'owner': { 'dob': datetime(1979, 5, 27, 7, 32, tzinfo=timezone(timedelta(hours=-8))), 'name': 'Tom Preston-Werner', }, 'database': { 'connection_max': 5000, 'enabled': True, 'ports': [8001, 8001, 8002], 'server': '192.168.1.1', }, } loaded_obj = rtoml.load("""\ # This is a TOML document. title = "TOML Example" [owner] name = "Tom Preston-Werner" dob = 1979-05-27T07:32:00-08:00 # First class dates [database] server = "192.168.1.1" ports = [8001, 8001, 8002] connection_max = 5000 enabled = true """) assert loaded_obj == obj assert rtoml.dumps(obj) == """\ title = "TOML Example" [owner] dob = 1979-05-27T07:32:00-08:00 name = "Tom Preston-Werner" [database] connection_max = 5000 enabled = true server = "192.168.1.1" ports = [8001, 8001, 8002] """ ``` %package help Summary: Development documents and examples for rtoml Provides: python3-rtoml-doc %description help # rtoml [![Actions Status](https://github.com/samuelcolvin/rtoml/workflows/CI/badge.svg)](https://github.com/samuelcolvin/rtoml/actions?query=event%3Apush+branch%3Amain+workflow%3ACI) [![Coverage](https://codecov.io/gh/samuelcolvin/rtoml/branch/main/graph/badge.svg)](https://codecov.io/gh/samuelcolvin/rtoml) [![pypi](https://img.shields.io/pypi/v/rtoml.svg)](https://pypi.python.org/pypi/rtoml) [![versions](https://img.shields.io/pypi/pyversions/rtoml.svg)](https://github.com/samuelcolvin/rtoml) [![license](https://img.shields.io/github/license/samuelcolvin/rtoml.svg)](https://github.com/samuelcolvin/rtoml/blob/main/LICENSE) A better TOML library for python implemented in rust. ## Why Use rtoml * Correctness: rtoml is based on the widely used and very stable [toml-rs](https://github.com/alexcrichton/toml-rs) library, it passes all the [standard TOML tests](https://github.com/BurntSushi/toml-test) as well as having 100% coverage on python code. Other TOML libraries for python I tried all failed to parse some valid TOML. * Performance: see [github.com/pwwang/toml-bench](https://github.com/pwwang/toml-bench) - rtoml is much faster than pure Python TOML libraries. ## Install Requires `python>=3.7`, binaries are available from pypi for Linux, macOS and Windows, see [here](https://pypi.org/project/rtoml/#files). ```bash pip install rtoml ``` If no binary is available on pypi for you system configuration; you'll need rust stable installed before you can install rtoml. ## Usage #### load ```python def load(toml: Union[str, Path, TextIO]) -> Dict[str, Any]: ... ``` Parse TOML via a string or file and return a python dictionary. The `toml` argument may be a `str`, `Path` or file object from `open()`. #### loads ```python def loads(toml: str) -> Dict[str, Any]: ... ``` Parse a TOML string and return a python dictionary. (provided to match the interface of `json` and similar libraries) #### dumps ```python def dumps(obj: Any, *, pretty: bool = False) -> str: ... ``` Serialize a python object to TOML. If `pretty` is true, output has a more "pretty" format. #### dump ```python def dump(obj: Any, file: Union[Path, TextIO], *, pretty: bool = False) -> int: ... ``` Serialize a python object to TOML and write it to a file. `file` may be a `Path` or file object from `open()`. If `pretty` is true, output has a more "pretty" format. ### Example ```py from datetime import datetime, timezone, timedelta import rtoml obj = { 'title': 'TOML Example', 'owner': { 'dob': datetime(1979, 5, 27, 7, 32, tzinfo=timezone(timedelta(hours=-8))), 'name': 'Tom Preston-Werner', }, 'database': { 'connection_max': 5000, 'enabled': True, 'ports': [8001, 8001, 8002], 'server': '192.168.1.1', }, } loaded_obj = rtoml.load("""\ # This is a TOML document. title = "TOML Example" [owner] name = "Tom Preston-Werner" dob = 1979-05-27T07:32:00-08:00 # First class dates [database] server = "192.168.1.1" ports = [8001, 8001, 8002] connection_max = 5000 enabled = true """) assert loaded_obj == obj assert rtoml.dumps(obj) == """\ title = "TOML Example" [owner] dob = 1979-05-27T07:32:00-08:00 name = "Tom Preston-Werner" [database] connection_max = 5000 enabled = true server = "192.168.1.1" ports = [8001, 8001, 8002] """ ``` %prep %autosetup -n rtoml-0.9.0 %build %py3_build %install %py3_install install -d -m755 %{buildroot}/%{_pkgdocdir} if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi pushd %{buildroot} if [ -d usr/lib ]; then find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/lib64 ]; then find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/bin ]; then find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/sbin ]; then find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst fi touch doclist.lst if [ -d usr/share/man ]; then find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst fi popd mv %{buildroot}/filelist.lst . mv %{buildroot}/doclist.lst . %files -n python3-rtoml -f filelist.lst %dir %{python3_sitearch}/* %files help -f doclist.lst %{_docdir}/* %changelog * Fri May 05 2023 Python_Bot - 0.9.0-1 - Package Spec generated