summaryrefslogtreecommitdiff
blob: 0be9ab796217df968336925ce27c13717d87a2ba (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
From c5a356fb4ea8a6fb66a6d20bdc2c9cffe615028b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org>
Date: Fri, 14 Oct 2022 13:54:31 +0200
Subject: [PATCH] Use modern tomllib/tomli modules for reading TOML files
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Replace the unmaintained `toml`/`pytoml` dependencies with the modern
alternatives: the built-in `tomllib` module in Python 3.11, and `tomli`
in older Python versions.  Preserving backwards compatibility does not
seem necessary, as podman-py no longer supports Python versions older
than 3.6.

Signed-off-by: Michał Górny <mgorny@gentoo.org>
---
 podman/domain/config.py | 16 ++++++++++------
 pyproject.toml          |  2 +-
 python-podman.spec.rpkg |  8 ++++----
 requirements.txt        |  2 +-
 setup.cfg               |  2 +-
 5 files changed, 17 insertions(+), 13 deletions(-)

diff --git a/podman/domain/config.py b/podman/domain/config.py
index 555ed9d..6ea8eb6 100644
--- a/podman/domain/config.py
+++ b/podman/domain/config.py
@@ -1,17 +1,21 @@
 """Read containers.conf file."""
+import sys
 import urllib
 from pathlib import Path
 from typing import Dict, Optional
 
 import xdg.BaseDirectory
 
-try:
-    import toml
-except ImportError:
-    import pytoml as toml
-
 from podman.api import cached_property
 
+if sys.version_info >= (3, 11):
+    from tomllib import loads as toml_loads
+else:
+    try:
+        from tomli import loads as toml_loads
+    except ImportError:
+        from toml import loads as toml_loads
+
 
 class ServiceConnection:
     """ServiceConnection defines a connection to the Podman service."""
@@ -64,7 +68,7 @@ def __init__(self, path: Optional[str] = None):
         if self.path.exists():
             with self.path.open(encoding='utf-8') as file:
                 buffer = file.read()
-            self.attrs = toml.loads(buffer)
+            self.attrs = toml_loads(buffer)
 
     def __hash__(self) -> int:
         return hash(tuple(self.path.name))
diff --git a/pyproject.toml b/pyproject.toml
index f3cdfb9..3b29ecb 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -25,7 +25,7 @@ requires = [
     "requests>=2.24",
     "setuptools>=46.4",
     "sphinx",
-    "toml>=0.10.2",
+    "tomli>=1.2.3; python_version<'3.11'",
     "urllib3>=1.24.2",
     "wheel",
 ]
diff --git a/setup.cfg b/setup.cfg
index f8d1b6f..2066951 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -36,7 +36,7 @@ test_suite =
 install_requires =
     pyxdg>=0.26
     requests>=2.24
-    toml>=0.10.2
+    tomli>=1.2.3; python_version<'3.11'
     urllib3>=1.24.2
 
 # typing_extensions are included for RHEL 8.5