Update to Python 3.12

* Remove toml dependency since that comes with Python as of 3.11
* Update toml usage to tomllib in config.py
* Update `with open(...)` for toml file reading to be 'rb'
* Update Pipfile.lock for locked dependencies to work with Python 3.12

Signed-off-by: Alek Ratzloff <alekratz@gmail.com>
This commit is contained in:
2024-07-18 11:39:34 -07:00
parent d3f88dacf7
commit fcb4bd6df1
6 changed files with 676 additions and 576 deletions

View File

@@ -1,4 +1,4 @@
FROM "python:3.10-alpine"
FROM "python:3.12-alpine"
STOPSIGNAL SIGINT
RUN mkdir /app
WORKDIR /app

View File

@@ -5,7 +5,6 @@ name = "pypi"
[packages]
async-irc = "*"
toml = {version="*", markers="python_version < '3.11'"}
types-toml = "*"
"aiohttp[speedups]" = "*"
async-timeout = ">=4"
@@ -15,7 +14,7 @@ mypy = "*"
black = "*"
[requires]
python_version = "3.10"
python_version = "3.12"
[pipenv]
allow_prereleases = true

1238
Pipfile.lock generated

File diff suppressed because it is too large Load Diff

View File

@@ -36,7 +36,7 @@ config_path = Path(args.config or os.environ.get("OMNIBOT_CONFIG", "config.toml"
config = ServerConfig()
try:
with open(config_path) as fp:
with open(config_path, 'rb') as fp:
config.load(fp)
except FileNotFoundError:
print(f"ERROR: config file not found: {config_path}", file=sys.stderr)

View File

@@ -1,8 +1,7 @@
import dataclasses
from pathlib import Path
from typing import IO, Any, Mapping, Sequence, Set
import toml
import tomllib
PluginConfig = Mapping[str, Any]
@@ -34,7 +33,7 @@ class ServerConfig:
loglevel: str | None = None
def load(self, fp: IO[str]):
obj = toml.load(fp)
obj = tomllib.load(fp)
if "server" not in obj:
raise ConfigError("server", "must be present")

View File

@@ -23,7 +23,7 @@ async def main():
channel = sys.argv[1]
files = sys.argv[2:]
server_config = ServerConfig()
with open("config.toml") as fp:
with open("config.toml", 'rb') as fp:
server_config.load(fp)
# This only works on one plugin per config
bot = Bot(server_config)