Skip to content

Commit ecb97cd

Browse files
committed
Add support for Python 3.9
1 parent e87c3c4 commit ecb97cd

12 files changed

Lines changed: 348 additions & 7 deletions

File tree

pyproject.toml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,16 @@ description = "All Discord-related things for the EuroPython conference"
99
license = "MIT"
1010
license-files = ["LICENSE"]
1111
readme = "README.md"
12-
requires-python = ">=3.11"
12+
requires-python = ">=3.9"
1313
dependencies = [
1414
"discord-py>=2.3.1",
1515
"aiofiles>=24.1.0",
1616
"aiohttp>=3.11.16",
1717
"pydantic>=2.8.2",
1818
"unidecode>=1.3.8",
19+
"tomli>=2.2.1; python_version < '3.11'",
20+
"typing_extensions>=4.13.2; python_version < '3.11'",
21+
"eval-type-backport>=0.2.2; python_version < '3.10'",
1922
]
2023

2124
[dependency-groups]

scripts/configure-guild.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,19 @@
1010
import sys
1111
import textwrap
1212
from collections import defaultdict
13-
from typing import Annotated, Literal, Self, assert_never
13+
from typing import Annotated, Literal
1414

1515
import discord
1616
from discord import VerificationLevel
1717
from discord.ext.commands import Bot
1818
from discord.utils import get as discord_get
1919
from pydantic import AfterValidator, BaseModel, Field, model_validator
2020

21+
if sys.version_info >= (3, 11):
22+
from typing import Self, assert_never
23+
else:
24+
from typing_extensions import Self, assert_never
25+
2126
logger = logging.getLogger(__name__)
2227

2328
DESCRIPTION = """\

scripts/pretix-mock.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
"""Mock Pretix HTTP Server."""
22

3+
from __future__ import annotations
4+
35
import argparse
46
import http.server
57
import json

src/europython_discord/bot.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
import logging
66
import os
77
import sys
8-
import tomllib
98
from pathlib import Path
109
from typing import Literal
1110

@@ -20,6 +19,11 @@
2019
from europython_discord.registration.cog import RegistrationCog
2120
from europython_discord.registration.config import RegistrationConfig
2221

22+
if sys.version_info >= (3, 11):
23+
import tomllib
24+
else:
25+
import tomli as tomllib
26+
2327
# silence warning about missing discord voice support
2428
# https://github.com/Rapptz/discord.py/issues/1719#issuecomment-437703581
2529
discord.VoiceClient.warn_nacl = False

src/europython_discord/program_notifications/cog.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
from __future__ import annotations
2+
13
import logging
24

35
from discord import Client, TextChannel

src/europython_discord/program_notifications/livestream_connector.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,16 @@
1+
from __future__ import annotations
2+
13
import asyncio
24
import logging
3-
import tomllib
5+
import sys
46
from datetime import date
57
from pathlib import Path
68

9+
if sys.version_info >= (3, 11):
10+
import tomllib
11+
else:
12+
import tomli as tomllib
13+
714
import aiofiles
815

916
logger = logging.getLogger(__name__)

src/europython_discord/program_notifications/program_connector.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
from __future__ import annotations
2+
13
import asyncio
24
import json
35
import logging

src/europython_discord/program_notifications/session_to_embed.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
from __future__ import annotations
2+
13
import textwrap
24
from datetime import datetime
35
from enum import Enum

src/europython_discord/registration/pretix_connector.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
import logging
66
import time
77
from collections import defaultdict
8-
from datetime import UTC, datetime, timedelta
8+
from datetime import datetime, timedelta, timezone
99
from pathlib import Path
1010

1111
import aiofiles
@@ -57,7 +57,7 @@ async def fetch_pretix_data(self) -> None:
5757
# if called during an ongoing fetch, the caller waits until the fetch is done...
5858
async with self._fetch_lock:
5959
# ... but does not trigger a second fetch
60-
now = datetime.now(tz=UTC)
60+
now = datetime.now(tz=timezone.utc)
6161
if self._last_fetch and now - self._last_fetch < timedelta(minutes=2):
6262
_logger.info(f"Skipping pretix fetch (last fetch was at {self._last_fetch})")
6363
return

src/europython_discord/registration/ticket.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
from __future__ import annotations
2+
13
import string
24

35
from pydantic import BaseModel, ConfigDict, computed_field

0 commit comments

Comments
 (0)