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
|