Skip to content

Commit 2063457

Browse files
authored
Replace attrs with dataclasses (#210)
1 parent 1a89bcf commit 2063457

4 files changed

Lines changed: 9 additions & 27 deletions

File tree

pyproject.toml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,6 @@ dependencies = [
1515
"aiofiles>=24.1.0",
1616
"aiohttp>=3.11.16",
1717
"arrow>=1.3.0",
18-
"attrs>=25.3.0",
19-
"cattrs>=23.1.2",
2018
"certifi>=2024.7.4",
2119
"python-dotenv>=1.0.1",
2220
"yarl>=1.19.0",

src/europython_discord/extensions/organisers/organisers.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,22 @@
11
"""Commands for organisers."""
22

3+
import dataclasses
34
import logging
45

5-
import attrs
66
import discord
77
from discord.ext import commands
88

9-
from europython_discord.extensions.organisers import roles
9+
from europython_discord.extensions.organisers.roles import Roles
1010

1111
_logger = logging.getLogger(f"bot.{__name__}")
1212

1313

14-
@attrs.define
1514
class Organisers(commands.Cog):
1615
"""A cog with commands for organisers."""
1716

18-
_bot: commands.Bot
19-
_roles: roles.Roles
17+
def __init__(self, bot: commands.Bot, roles: Roles) -> None:
18+
self._bot = bot
19+
self._roles = roles
2020

2121
@commands.command(name="participants")
2222
async def participants(self, ctx: commands.Context) -> None:
@@ -50,7 +50,7 @@ def _get_counts(self, guild: discord.Guild) -> "_RoleCount":
5050
not_registered=sum(len(m.roles) == 1 for m in guild.members),
5151
**{
5252
role: len(guild.get_role(role_id).members)
53-
for role, role_id in attrs.asdict(self._roles).items()
53+
for role, role_id in dataclasses.asdict(self._roles).items()
5454
},
5555
)
5656

@@ -77,7 +77,7 @@ def __hash__(self) -> int:
7777
return hash(id(self))
7878

7979

80-
@attrs.define(frozen=True)
80+
@dataclasses.dataclass(frozen=True)
8181
class _RoleCount:
8282
"""Counts of members."""
8383

src/europython_discord/extensions/organisers/roles.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
"""Data structure for role IDs."""
22

3-
import attrs
3+
import dataclasses
44

55

6-
@attrs.define
6+
@dataclasses.dataclass
77
class Roles:
88
"""Role mapping for the organisers extension."""
99

uv.lock

Lines changed: 0 additions & 16 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)