mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2025-12-21 00:08:09 +03:00
A test dependency of httpx-socks, aimed at satisfying new NIH deps of dev-python/python-socks. Signed-off-by: Michał Górny <mgorny@gentoo.org>
107 lines
3.3 KiB
Diff
107 lines
3.3 KiB
Diff
From 676612c73d3c231f823f88ea0995e80522db6178 Mon Sep 17 00:00:00 2001
|
|
From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org>
|
|
Date: Mon, 19 Dec 2022 15:27:41 +0100
|
|
Subject: [PATCH] Use tomllib/tomli for .toml support
|
|
|
|
Replace the unmaintained and non-conformant `toml` library with
|
|
the built-in `tomllib` module in Python 3.11+, with fallback to `tomli`
|
|
(featuring the same ABI) in Python 3.10 and older.
|
|
---
|
|
pyproject.toml | 2 +-
|
|
src/hypercorn/config.py | 10 +++++++---
|
|
src/hypercorn/logging.py | 10 +++++++---
|
|
tox.ini | 1 -
|
|
4 files changed, 15 insertions(+), 8 deletions(-)
|
|
|
|
diff --git a/pyproject.toml b/pyproject.toml
|
|
index 71ceaff..1334fcf 100644
|
|
--- a/pyproject.toml
|
|
+++ b/pyproject.toml
|
|
@@ -30,7 +30,7 @@ h11 = "*"
|
|
h2 = ">=3.1.0"
|
|
priority = "*"
|
|
pydata_sphinx_theme = { version = "*", optional = true }
|
|
-toml = "*"
|
|
+tomli = { version = "*", python = "<3.11" }
|
|
trio = { version = ">=0.11.0", optional = true }
|
|
typing_extensions = { version = ">=3.7.4", python = "<3.8" }
|
|
uvloop = { version = "*", markers = "platform_system != 'Windows'", optional = true }
|
|
diff --git a/src/hypercorn/config.py b/src/hypercorn/config.py
|
|
index f9a9d66..ecfa1bd 100644
|
|
--- a/src/hypercorn/config.py
|
|
+++ b/src/hypercorn/config.py
|
|
@@ -6,6 +6,7 @@ import logging
|
|
import os
|
|
import socket
|
|
import stat
|
|
+import sys
|
|
import types
|
|
import warnings
|
|
from dataclasses import dataclass
|
|
@@ -22,7 +23,10 @@ from time import time
|
|
from typing import Any, AnyStr, Dict, List, Mapping, Optional, Tuple, Type, Union
|
|
from wsgiref.handlers import format_date_time
|
|
|
|
-import toml
|
|
+if sys.version_info >= (3, 11):
|
|
+ import tomllib
|
|
+else:
|
|
+ import tomli as tomllib
|
|
|
|
from .logging import Logger
|
|
|
|
@@ -355,8 +359,8 @@ class Config:
|
|
filename: The filename which gives the path to the file.
|
|
"""
|
|
file_path = os.fspath(filename)
|
|
- with open(file_path) as file_:
|
|
- data = toml.load(file_)
|
|
+ with open(file_path, "rb") as file_:
|
|
+ data = tomllib.load(file_)
|
|
return cls.from_mapping(data)
|
|
|
|
@classmethod
|
|
diff --git a/src/hypercorn/logging.py b/src/hypercorn/logging.py
|
|
index 3c2c657..8ca6105 100644
|
|
--- a/src/hypercorn/logging.py
|
|
+++ b/src/hypercorn/logging.py
|
|
@@ -9,7 +9,11 @@ from http import HTTPStatus
|
|
from logging.config import dictConfig, fileConfig
|
|
from typing import Any, IO, Mapping, Optional, TYPE_CHECKING, Union
|
|
|
|
-import toml
|
|
+if sys.version_info >= (3, 11):
|
|
+ import tomllib
|
|
+else:
|
|
+ import tomli as tomllib
|
|
+
|
|
|
|
if TYPE_CHECKING:
|
|
from .config import Config
|
|
@@ -65,8 +69,8 @@ class Logger:
|
|
with open(config.logconfig[5:]) as file_:
|
|
dictConfig(json.load(file_))
|
|
elif config.logconfig.startswith("toml:"):
|
|
- with open(config.logconfig[5:]) as file_:
|
|
- dictConfig(toml.load(file_))
|
|
+ with open(config.logconfig[5:], "rb") as file_:
|
|
+ dictConfig(tomllib.load(file_))
|
|
else:
|
|
log_config = {
|
|
"__file__": config.logconfig,
|
|
diff --git a/tox.ini b/tox.ini
|
|
index 675992b..0f636fb 100644
|
|
--- a/tox.ini
|
|
+++ b/tox.ini
|
|
@@ -47,7 +47,6 @@ basepython = python3.10
|
|
deps =
|
|
mypy
|
|
pytest
|
|
- types-toml
|
|
commands =
|
|
mypy src/hypercorn/ tests/
|
|
|
|
--
|
|
2.39.0
|
|
|