WIP: Refactor Aurora (3.0.0) #29

Draft
cswimr wants to merge 347 commits from aurora-pydantic into main
3 changed files with 14 additions and 12 deletions
Showing only changes of commit 6a7758e8f9 - Show all commits

View file

@ -1,8 +1,8 @@
from datetime import datetime, timedelta from datetime import datetime, timedelta
from typing import Any, ClassVar, Dict, List, Literal, Optional, Union from typing import Any, Dict, List, Literal, Optional, Union
from discord import Forbidden, HTTPException, InvalidData, NotFound from discord import Forbidden, HTTPException, InvalidData, NotFound
from pydantic import BaseModel from pydantic import BaseModel, ConfigDict
from redbot.core.bot import Red from redbot.core.bot import Red
from aurora.utilities.utils import generate_dict from aurora.utilities.utils import generate_dict
@ -10,15 +10,15 @@ from aurora.utilities.utils import generate_dict
class AuroraBaseModel(BaseModel): class AuroraBaseModel(BaseModel):
"""Base class for all models in Aurora.""" """Base class for all models in Aurora."""
bot: ClassVar[Red] model_config = ConfigDict(ignored_types=(Red,))
bot: Red
def to_json(self, indent: int = None, file: Any = None, **kwargs): def to_json(self, indent: int = None, file: Any = None, **kwargs):
from aurora.utilities.json import dump, dumps from aurora.utilities.json import dump, dumps
return dump(self.model_dump(exclude={"bot"}), file, indent=indent, **kwargs) if file else dumps(self.model_dump(exclude={"bot"}), indent=indent, **kwargs) return dump(self.model_dump(exclude={"bot"}), file, indent=indent, **kwargs) if file else dumps(self.model_dump(exclude={"bot"}), indent=indent, **kwargs)
class AuroraGuildModel(BaseModel): class AuroraGuildModel(AuroraBaseModel):
"""Base class that includes a guild_id attribute, and a modified to_json() method to match.""" """Subclass of AuroraBaseModel that includes a guild_id attribute, and a modified to_json() method to match."""
bot: ClassVar[Red]
guild_id: int guild_id: int
def to_json(self, indent: int = None, file: Any = None, **kwargs): def to_json(self, indent: int = None, file: Any = None, **kwargs):

View file

@ -2,13 +2,17 @@
from datetime import datetime, timedelta from datetime import datetime, timedelta
from typing import Union from typing import Union
from discord import Color, Embed, Guild, Interaction, InteractionMessage, Member, Role, User from discord import (Color, Embed, Guild, Interaction, InteractionMessage,
Member, Role, User)
from redbot.core import commands from redbot.core import commands
from redbot.core.utils.chat_formatting import bold, box, error, humanize_timedelta, warning from redbot.core.utils.chat_formatting import (bold, box, error,
humanize_timedelta, warning)
from aurora.models import Moderation from aurora.models import Moderation
from aurora.utilities.config import config from aurora.utilities.config import config
from aurora.utilities.utils import fetch_channel_dict, fetch_user_dict, get_bool_emoji, get_next_case_number, get_pagesize_str from aurora.utilities.utils import (fetch_channel_dict, fetch_user_dict,
get_bool_emoji, get_next_case_number,
get_pagesize_str)
async def message_factory( async def message_factory(

View file

@ -1,7 +1,7 @@
import json import json
from datetime import datetime, timedelta from datetime import datetime, timedelta
from aurora.models import AuroraBaseModel, AuroraGuildModel from aurora.models import AuroraBaseModel
class JSONEncoder(json.JSONEncoder): class JSONEncoder(json.JSONEncoder):
@ -12,8 +12,6 @@ class JSONEncoder(json.JSONEncoder):
return str(o) return str(o)
if isinstance(o, AuroraBaseModel): if isinstance(o, AuroraBaseModel):
return o.to_json() return o.to_json()
if isinstance(o, AuroraGuildModel):
return o.to_json()
return super().default(o) return super().default(o)