diff configmix/toml.py @ 195:28e6c1413947

Added support for TOML style configuration files
author Franz Glasner <fzglas.hg@dom66.de>
date Fri, 03 May 2019 21:51:09 +0200
parents
children b3b5ed34d180
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/configmix/toml.py	Fri May 03 21:51:09 2019 +0200
@@ -0,0 +1,38 @@
+# -*- coding: utf-8 -*-
+#-
+# :Copyright: (c) 2015-2019, Franz Glasner. All rights reserved.
+# :License:   3-clause BSD. See LICENSE.txt for details.
+#-
+"""Read TOML style configuration files.
+
+"""
+
+from __future__ import division, absolute_import, print_function
+
+
+__all__ = ["load"]
+
+
+import io
+try:
+    from collections import OrderedDict as DictImpl
+except ImportError:
+    try:
+        from ordereddict import OrderedDict as DictImpl
+    except ImportError:
+        DictImpl = dict
+
+import toml
+
+from .compat import u2fs
+
+
+def load(filename, encoding="utf-8"):
+    """Load a single TOML file with name `filename` and encoding `encoding`.
+
+    .. note:: The TOML standard requires that all TOML files are UTF-8 
+              encoded.
+
+    """
+    with io.open(u2fs(filename), mode="rt", encoding=encoding) as tfp:
+        return toml.loads(tfp.read(), _dict=DictImpl)