feat!: AbstractModelを廃止

pull/125/head
yupix 9 months ago
parent 939b74942d
commit 3158d0e4d0
No known key found for this signature in database
GPG Key ID: 2FF705F5C56D9C06

@ -1,3 +1,2 @@
from .action import * from .action import *
from .manager import * from .manager import *
from .model import *

@ -1,16 +0,0 @@
from __future__ import annotations
from abc import ABC, abstractmethod
from typing import TYPE_CHECKING, Any
if TYPE_CHECKING:
from mipac.manager.client import ClientManager
__all__ = ("AbstractModel",)
class AbstractModel(ABC):
@abstractmethod
def __init__(self, data: Any, *, client: ClientManager) -> None:
pass

@ -3,7 +3,6 @@ from __future__ import annotations
from datetime import datetime from datetime import datetime
from typing import TYPE_CHECKING, Literal from typing import TYPE_CHECKING, Literal
from mipac.abstract.model import AbstractModel
from mipac.types.ads import IAd from mipac.types.ads import IAd
from mipac.utils.format import str_to_datetime from mipac.utils.format import str_to_datetime
@ -12,7 +11,7 @@ if TYPE_CHECKING:
from mipac.manager.client import ClientManager from mipac.manager.client import ClientManager
class Ad(AbstractModel): class Ad:
def __init__(self, ad_data: IAd, *, client: ClientManager) -> None: def __init__(self, ad_data: IAd, *, client: ClientManager) -> None:
self.__ad_data: IAd = ad_data self.__ad_data: IAd = ad_data
self.__client: ClientManager = client self.__client: ClientManager = client

@ -3,7 +3,6 @@ from __future__ import annotations
from datetime import datetime from datetime import datetime
from typing import TYPE_CHECKING from typing import TYPE_CHECKING
from mipac.abstract.model import AbstractModel
from mipac.models.user import MeDetailed, UserDetailedNotMe, packed_user from mipac.models.user import MeDetailed, UserDetailedNotMe, packed_user
from mipac.types.admin import ( from mipac.types.admin import (
IIndexStat, IIndexStat,
@ -21,7 +20,7 @@ if TYPE_CHECKING:
from mipac.manager.client import ClientManager from mipac.manager.client import ClientManager
class UserIP(AbstractModel): class UserIP:
def __init__(self, user_ip: IUserIP) -> None: def __init__(self, user_ip: IUserIP) -> None:
self.__user_ip: IUserIP = user_ip self.__user_ip: IUserIP = user_ip
@ -65,7 +64,7 @@ class IndexStat:
return self.__index_stat["indexdef"] return self.__index_stat["indexdef"]
class ModerationLog(AbstractModel): class ModerationLog:
def __init__(self, moderation_log: IModerationLog, *, client: ClientManager) -> None: def __init__(self, moderation_log: IModerationLog, *, client: ClientManager) -> None:
self.__moderation_log: IModerationLog = moderation_log self.__moderation_log: IModerationLog = moderation_log
self.__client: ClientManager = client self.__client: ClientManager = client
@ -101,7 +100,7 @@ class ModerationLog(AbstractModel):
return not self.__eq__(__value) return not self.__eq__(__value)
class ServerInfoCpu(AbstractModel): class ServerInfoCpu:
def __init__(self, server_info_cpu: IServerInfoCpu) -> None: def __init__(self, server_info_cpu: IServerInfoCpu) -> None:
self.__server_info_cpu = server_info_cpu self.__server_info_cpu = server_info_cpu
@ -114,7 +113,7 @@ class ServerInfoCpu(AbstractModel):
return self.__server_info_cpu["cores"] return self.__server_info_cpu["cores"]
class ServerInfoMem(AbstractModel): class ServerInfoMem:
def __init__(self, server_info_mem: IServerInfoMem) -> None: def __init__(self, server_info_mem: IServerInfoMem) -> None:
self.__server_info_mem = server_info_mem self.__server_info_mem = server_info_mem
@ -123,7 +122,7 @@ class ServerInfoMem(AbstractModel):
return self.__server_info_mem["total"] return self.__server_info_mem["total"]
class ServerInfoFs(AbstractModel): class ServerInfoFs:
def __init__(self, server_info_fs: IServerInfoFs) -> None: def __init__(self, server_info_fs: IServerInfoFs) -> None:
self.__server_info_fs = server_info_fs self.__server_info_fs = server_info_fs
@ -136,7 +135,7 @@ class ServerInfoFs(AbstractModel):
return self.__server_info_fs["used"] return self.__server_info_fs["used"]
class ServerInfoNet(AbstractModel): class ServerInfoNet:
def __init__(self, server_info_net: IServerInfoNet) -> None: def __init__(self, server_info_net: IServerInfoNet) -> None:
self.__server_info_net = server_info_net self.__server_info_net = server_info_net
@ -145,7 +144,7 @@ class ServerInfoNet(AbstractModel):
return self.__server_info_net["interface"] return self.__server_info_net["interface"]
class ServerInfo(AbstractModel): class ServerInfo:
def __init__(self, server_info: IServerInfo) -> None: def __init__(self, server_info: IServerInfo) -> None:
self.__server_info = server_info self.__server_info = server_info

@ -3,7 +3,6 @@ from __future__ import annotations
from datetime import datetime from datetime import datetime
from typing import TYPE_CHECKING from typing import TYPE_CHECKING
from mipac.abstract.model import AbstractModel
from mipac.types.antenna import IAntenna, IAntennaReceiveSource from mipac.types.antenna import IAntenna, IAntennaReceiveSource
from mipac.utils.format import str_to_datetime from mipac.utils.format import str_to_datetime
@ -12,7 +11,7 @@ if TYPE_CHECKING:
from mipac.manager.client import ClientManager from mipac.manager.client import ClientManager
class Antenna(AbstractModel): class Antenna:
def __init__(self, antenna: IAntenna, *, client: ClientManager) -> None: def __init__(self, antenna: IAntenna, *, client: ClientManager) -> None:
self.__antenna: IAntenna = antenna self.__antenna: IAntenna = antenna
self.__client: ClientManager = client self.__client: ClientManager = client

@ -1,8 +1,7 @@
from mipac.abstract.model import AbstractModel
from mipac.types.chart import IActiveUsersChart, IDriveChart, IDriveLocalChart, IDriveRemoteChart from mipac.types.chart import IActiveUsersChart, IDriveChart, IDriveLocalChart, IDriveRemoteChart
class ActiveUsersChart(AbstractModel): class ActiveUsersChart:
__slots__ = ("__data",) __slots__ = ("__data",)
def __init__(self, data: IActiveUsersChart): def __init__(self, data: IActiveUsersChart):
@ -45,7 +44,7 @@ class ActiveUsersChart(AbstractModel):
return self.__data["registered_outside_year"] return self.__data["registered_outside_year"]
class DriveLocalChart(AbstractModel): class DriveLocalChart:
__slots__ = ("__data",) __slots__ = ("__data",)
def __init__(self, data: IDriveLocalChart): def __init__(self, data: IDriveLocalChart):
@ -76,7 +75,7 @@ class DriveLocalChart(AbstractModel):
return self.__data["dec_size"] return self.__data["dec_size"]
class DriveRemoteChart(AbstractModel): class DriveRemoteChart:
__slots__ = ("__data",) __slots__ = ("__data",)
def __init__(self, data: IDriveRemoteChart): def __init__(self, data: IDriveRemoteChart):
@ -107,7 +106,7 @@ class DriveRemoteChart(AbstractModel):
return self.__data["dec_size"] return self.__data["dec_size"]
class DriveChart(AbstractModel): class DriveChart:
__slots__ = ("__data",) __slots__ = ("__data",)
def __init__(self, data: IDriveChart): def __init__(self, data: IDriveChart):

@ -2,7 +2,6 @@ from __future__ import annotations
from typing import TYPE_CHECKING from typing import TYPE_CHECKING
from mipac.abstract.model import AbstractModel
from mipac.models.lite.user import PartialUser from mipac.models.lite.user import PartialUser
from mipac.types.clip import IClip from mipac.types.clip import IClip
@ -11,7 +10,7 @@ if TYPE_CHECKING:
from mipac.manager.clip import ClientClipManager from mipac.manager.clip import ClientClipManager
class Clip(AbstractModel): class Clip:
def __init__(self, raw_clip: IClip, *, client: ClientManager) -> None: def __init__(self, raw_clip: IClip, *, client: ClientManager) -> None:
self.__clip: IClip = raw_clip self.__clip: IClip = raw_clip
self.__client: ClientManager = client self.__client: ClientManager = client

@ -2,7 +2,6 @@ from __future__ import annotations
from typing import TYPE_CHECKING from typing import TYPE_CHECKING
from mipac.abstract.model import AbstractModel
from mipac.models.lite.user import PartialUser from mipac.models.lite.user import PartialUser
from mipac.types.drive import IDriveStatus from mipac.types.drive import IDriveStatus
@ -44,7 +43,7 @@ class DriveStatus:
return self.__raw_drive_status["usage"] return self.__raw_drive_status["usage"]
class FileProperties(AbstractModel): class FileProperties:
def __init__(self, raw_properties: IFileProperties) -> None: def __init__(self, raw_properties: IFileProperties) -> None:
self.__raw_properties: IFileProperties = raw_properties self.__raw_properties: IFileProperties = raw_properties
@ -65,7 +64,7 @@ class FileProperties(AbstractModel):
return self.__raw_properties.get("avg_color") return self.__raw_properties.get("avg_color")
class Folder(AbstractModel): class Folder:
def __init__(self, raw_folder: IFolder, client: ClientManager): def __init__(self, raw_folder: IFolder, client: ClientManager):
self.__raw_folder: IFolder = raw_folder self.__raw_folder: IFolder = raw_folder
self.__client: ClientManager = client self.__client: ClientManager = client
@ -113,7 +112,7 @@ class Folder(AbstractModel):
return not self.__eq__(__value) return not self.__eq__(__value)
class File(AbstractModel): class File:
def __init__(self, raw_file: IFile, *, client: ClientManager): def __init__(self, raw_file: IFile, *, client: ClientManager):
self.__raw_file: IFile = raw_file self.__raw_file: IFile = raw_file
self.__client: ClientManager = client self.__client: ClientManager = client

@ -2,7 +2,6 @@ from __future__ import annotations
from typing import TYPE_CHECKING from typing import TYPE_CHECKING
from mipac.abstract.model import AbstractModel
from mipac.models.lite.user import PartialUser from mipac.models.lite.user import PartialUser
from mipac.types.follow import IFollowRequest from mipac.types.follow import IFollowRequest
@ -11,7 +10,7 @@ if TYPE_CHECKING:
from mipac.manager.follow import FollowRequestManager from mipac.manager.follow import FollowRequestManager
class FollowRequest(AbstractModel): class FollowRequest:
def __init__(self, follow_request: IFollowRequest, *, client: ClientManager) -> None: def __init__(self, follow_request: IFollowRequest, *, client: ClientManager) -> None:
self.__follow_request = follow_request self.__follow_request = follow_request
self.__client = client self.__client = client

@ -2,14 +2,13 @@ from __future__ import annotations
from typing import TYPE_CHECKING from typing import TYPE_CHECKING
from mipac.abstract.model import AbstractModel
from mipac.types.instance import IFederationInstance from mipac.types.instance import IFederationInstance
if TYPE_CHECKING: if TYPE_CHECKING:
from mipac.client import ClientManager from mipac.client import ClientManager
class FederationInstance(AbstractModel): class FederationInstance:
def __init__(self, instance: IFederationInstance, *, client: ClientManager) -> None: def __init__(self, instance: IFederationInstance, *, client: ClientManager) -> None:
self.__instance: IFederationInstance = instance self.__instance: IFederationInstance = instance
self.__client: ClientManager = client self.__client: ClientManager = client

@ -2,7 +2,6 @@ from __future__ import annotations
from typing import TYPE_CHECKING from typing import TYPE_CHECKING
from mipac.abstract.model import AbstractModel
from mipac.config import config from mipac.config import config
from mipac.types.emoji import ICustomEmojiLite from mipac.types.emoji import ICustomEmojiLite
@ -10,7 +9,7 @@ if TYPE_CHECKING:
from mipac.manager.client import ClientManager from mipac.manager.client import ClientManager
class PartialCustomEmoji(AbstractModel): class PartialCustomEmoji:
def __init__(self, emoji: ICustomEmojiLite, *, client: ClientManager) -> None: def __init__(self, emoji: ICustomEmojiLite, *, client: ClientManager) -> None:
self.__emoji = emoji self.__emoji = emoji
self.__client: ClientManager = client self.__client: ClientManager = client

@ -1,10 +1,9 @@
from __future__ import annotations from __future__ import annotations
from mipac.abstract.model import AbstractModel
from mipac.types.instance import IInstanceLite from mipac.types.instance import IInstanceLite
class LiteInstance(AbstractModel): class LiteInstance:
def __init__(self, instance: IInstanceLite) -> None: def __init__(self, instance: IInstanceLite) -> None:
self.__instance: IInstanceLite = instance self.__instance: IInstanceLite = instance

@ -2,7 +2,6 @@ from __future__ import annotations
from typing import TYPE_CHECKING from typing import TYPE_CHECKING
from mipac.abstract.model import AbstractModel
from mipac.models.lite.ad import PartialAd from mipac.models.lite.ad import PartialAd
from mipac.types.meta import IPartialMeta, IPolicies from mipac.types.meta import IPartialMeta, IPolicies
@ -10,7 +9,7 @@ if TYPE_CHECKING:
from mipac.manager.client import ClientManager from mipac.manager.client import ClientManager
class Policies(AbstractModel): class Policies:
def __init__(self, raw_policies: IPolicies) -> None: def __init__(self, raw_policies: IPolicies) -> None:
self.__raw_policies: IPolicies = raw_policies self.__raw_policies: IPolicies = raw_policies

@ -2,7 +2,6 @@ from __future__ import annotations
from typing import TYPE_CHECKING from typing import TYPE_CHECKING
from mipac.abstract.model import AbstractModel
from mipac.models.lite.meta import PartialMeta from mipac.models.lite.meta import PartialMeta
from mipac.types.meta import ( from mipac.types.meta import (
IAdminMeta, IAdminMeta,
@ -16,7 +15,7 @@ if TYPE_CHECKING:
from mipac.manager.client import ClientManager from mipac.manager.client import ClientManager
class Features(AbstractModel): class Features:
def __init__(self, raw_features: IFeatures) -> None: def __init__(self, raw_features: IFeatures) -> None:
self.__raw_features = raw_features self.__raw_features = raw_features
@ -78,7 +77,7 @@ class Meta(PartialMeta[IMeta]):
return self._raw_meta["proxy_account_name"] return self._raw_meta["proxy_account_name"]
class AdminMeta(AbstractModel): class AdminMeta:
def __init__(self, raw_meta: IAdminMeta, *, client: ClientManager) -> None: def __init__(self, raw_meta: IAdminMeta, *, client: ClientManager) -> None:
self.__raw_meta: IAdminMeta = raw_meta self.__raw_meta: IAdminMeta = raw_meta
self.__client: ClientManager = client self.__client: ClientManager = client

@ -2,7 +2,6 @@ from __future__ import annotations
from typing import TYPE_CHECKING from typing import TYPE_CHECKING
from mipac.abstract.model import AbstractModel
from mipac.models.user import MeDetailed, UserDetailedNotMe, packed_user from mipac.models.user import MeDetailed, UserDetailedNotMe, packed_user
from mipac.types.mute import IMuteUser from mipac.types.mute import IMuteUser
@ -10,7 +9,7 @@ if TYPE_CHECKING:
from mipac.manager.client import ClientManager from mipac.manager.client import ClientManager
class MuteUser(AbstractModel): class MuteUser:
def __init__(self, data: IMuteUser, *, client: ClientManager) -> None: def __init__(self, data: IMuteUser, *, client: ClientManager) -> None:
self.__data: IMuteUser = data self.__data: IMuteUser = data
self.__client: ClientManager = client self.__client: ClientManager = client

@ -3,7 +3,6 @@ from __future__ import annotations
from datetime import datetime from datetime import datetime
from typing import TYPE_CHECKING from typing import TYPE_CHECKING
from mipac.abstract.model import AbstractModel
from mipac.models.drive import File from mipac.models.drive import File
from mipac.models.lite.user import PartialUser from mipac.models.lite.user import PartialUser
from mipac.models.poll import Poll from mipac.models.poll import Poll
@ -36,7 +35,7 @@ __all__ = (
) )
class NoteState(AbstractModel): class NoteState:
def __init__(self, data: INoteState) -> None: def __init__(self, data: INoteState) -> None:
self.__data: INoteState = data self.__data: INoteState = data
@ -49,7 +48,7 @@ class NoteState(AbstractModel):
return self.__data["is_muted_thread"] return self.__data["is_muted_thread"]
class NoteDeleted(AbstractModel): class NoteDeleted:
def __init__(self, data: INoteUpdated[INoteUpdatedDelete]) -> None: def __init__(self, data: INoteUpdated[INoteUpdatedDelete]) -> None:
self.__data = data self.__data = data
@ -74,7 +73,7 @@ class Header:
self.type = data.get("type") self.type = data.get("type")
class NoteReaction(AbstractModel): class NoteReaction:
__slots__ = ("__reaction", "__client") __slots__ = ("__reaction", "__client")
def __init__(self, raw_reaction: INoteReaction, *, client: ClientManager): def __init__(self, raw_reaction: INoteReaction, *, client: ClientManager):
@ -631,7 +630,7 @@ class Note:
return not self.__eq__(__value) return not self.__eq__(__value)
class NoteTranslateResult(AbstractModel): class NoteTranslateResult:
""" """
NoteTranslateResult NoteTranslateResult

@ -3,7 +3,6 @@ from __future__ import annotations
from datetime import datetime from datetime import datetime
from typing import TYPE_CHECKING from typing import TYPE_CHECKING
from mipac.abstract.model import AbstractModel
from mipac.models.lite.user import PartialUser from mipac.models.lite.user import PartialUser
from mipac.models.note import Note from mipac.models.note import Note
@ -20,7 +19,7 @@ if TYPE_CHECKING:
) )
class Notification(AbstractModel): class Notification:
def __init__( def __init__(
self, self,
notification: INotification, notification: INotification,

@ -2,7 +2,6 @@ from __future__ import annotations
from typing import TYPE_CHECKING from typing import TYPE_CHECKING
from mipac.abstract.model import AbstractModel
from mipac.types.poll import ICreatePoll, IPoll, IPollChoice from mipac.types.poll import ICreatePoll, IPoll, IPollChoice
if TYPE_CHECKING: if TYPE_CHECKING:
@ -17,7 +16,7 @@ class MiPoll:
self.expires_at = poll.get("expires_at") self.expires_at = poll.get("expires_at")
class PollChoice(AbstractModel): class PollChoice:
def __init__(self, choice: IPollChoice, *, client: ClientManager): def __init__(self, choice: IPollChoice, *, client: ClientManager):
self.__choice: IPollChoice = choice self.__choice: IPollChoice = choice
self.__client: ClientManager = client self.__client: ClientManager = client
@ -35,7 +34,7 @@ class PollChoice(AbstractModel):
return self.__choice["votes"] return self.__choice["votes"]
class Poll(AbstractModel): class Poll:
def __init__(self, poll: IPoll, *, client: ClientManager): def __init__(self, poll: IPoll, *, client: ClientManager):
self.__poll: IPoll = poll self.__poll: IPoll = poll
self.__client: ClientManager = client self.__client: ClientManager = client

@ -2,7 +2,6 @@ from __future__ import annotations
from typing import TYPE_CHECKING from typing import TYPE_CHECKING
from mipac.abstract.model import AbstractModel
from mipac.models.lite.emoji import PartialCustomEmoji from mipac.models.lite.emoji import PartialCustomEmoji
from mipac.types.note import INoteUpdated, INoteUpdatedReaction from mipac.types.note import INoteUpdated, INoteUpdatedReaction
@ -10,7 +9,7 @@ if TYPE_CHECKING:
from mipac.manager.client import ClientManager from mipac.manager.client import ClientManager
class PartialReaction(AbstractModel): class PartialReaction:
def __init__( def __init__(
self, reaction: INoteUpdated[INoteUpdatedReaction], *, client: ClientManager self, reaction: INoteUpdated[INoteUpdatedReaction], *, client: ClientManager
) -> None: ) -> None:

@ -3,7 +3,6 @@ from __future__ import annotations
from datetime import datetime from datetime import datetime
from typing import TYPE_CHECKING from typing import TYPE_CHECKING
from mipac.abstract.model import AbstractModel
from mipac.models.lite.role import PartialRole from mipac.models.lite.role import PartialRole
from mipac.models.user import MeDetailed, UserDetailedNotMe, packed_user from mipac.models.user import MeDetailed, UserDetailedNotMe, packed_user
from mipac.types.roles import IMeRole, IRole, IRolePolicies, IRolePolicieValue, IRoleUser from mipac.types.roles import IMeRole, IRole, IRolePolicies, IRolePolicieValue, IRoleUser
@ -14,7 +13,7 @@ if TYPE_CHECKING:
from mipac.manager.user import UserManager from mipac.manager.user import UserManager
class RoleUser(AbstractModel): class RoleUser:
def __init__(self, role_user: IRoleUser, *, client: ClientManager) -> None: def __init__(self, role_user: IRoleUser, *, client: ClientManager) -> None:
self.__role_user = role_user self.__role_user = role_user
self.__client = client self.__client = client
@ -46,7 +45,7 @@ class RoleUser(AbstractModel):
return not self.__eq__(__value) return not self.__eq__(__value)
class MeRole(AbstractModel): class MeRole:
def __init__(self, data: IMeRole, *, client: ClientManager) -> None: def __init__(self, data: IMeRole, *, client: ClientManager) -> None:
self.__role_user = data self.__role_user = data
self.__client = client self.__client = client
@ -78,7 +77,7 @@ class MeRole(AbstractModel):
return not self.__eq__(__value) return not self.__eq__(__value)
class RolePolicyValue(AbstractModel): class RolePolicyValue:
def __init__(self, policiy_value_data: IRolePolicieValue) -> None: def __init__(self, policiy_value_data: IRolePolicieValue) -> None:
self.__policy_value_data = policiy_value_data self.__policy_value_data = policiy_value_data
@ -95,7 +94,7 @@ class RolePolicyValue(AbstractModel):
return self.__policy_value_data.get("priority") return self.__policy_value_data.get("priority")
class RolePolicies(AbstractModel): class RolePolicies:
def __init__(self, role_policies_data: IRolePolicies) -> None: def __init__(self, role_policies_data: IRolePolicies) -> None:
self.__role_policies_data = role_policies_data self.__role_policies_data = role_policies_data

@ -3,7 +3,6 @@ from __future__ import annotations
from datetime import datetime from datetime import datetime
from typing import TYPE_CHECKING from typing import TYPE_CHECKING
from mipac.abstract.model import AbstractModel
from mipac.models.announcement import Announcement from mipac.models.announcement import Announcement
from mipac.models.lite.role import PartialRole from mipac.models.lite.role import PartialRole
from mipac.models.lite.user import BadgeRole, PartialUser from mipac.models.lite.user import BadgeRole, PartialUser
@ -86,7 +85,7 @@ class Following(FollowCommon[IFederationFollowing]):
super().__init__(raw_follow=raw_following, client=client) super().__init__(raw_follow=raw_following, client=client)
class BlockingUser(AbstractModel): class BlockingUser:
def __init__(self, blocking_user_data: IBlockingUser, *, client: ClientManager) -> None: def __init__(self, blocking_user_data: IBlockingUser, *, client: ClientManager) -> None:
self.__blocking_user_data: IBlockingUser = blocking_user_data self.__blocking_user_data: IBlockingUser = blocking_user_data
self.__client: ClientManager = client self.__client: ClientManager = client
@ -114,7 +113,7 @@ class BlockingUser(AbstractModel):
return not self.__eq__(__value) return not self.__eq__(__value)
class Achievement(AbstractModel): class Achievement:
def __init__(self, detail: IAchievement): def __init__(self, detail: IAchievement):
self.__detail: IAchievement = detail self.__detail: IAchievement = detail

@ -330,5 +330,5 @@ ENDPOINTS = Literal[
"/api/users/update-memo", "/api/users/update-memo",
"/api/fetch-rss", "/api/fetch-rss",
"/api/fetch-external-resources", "/api/fetch-external-resources",
"/api/retention" "/api/retention",
] ]

@ -247,4 +247,6 @@ class IUpdateMetaBody(TypedDict, total=False):
object_storage_use_proxy: bool object_storage_use_proxy: bool
object_storage_set_public_read: bool object_storage_set_public_read: bool
object_storage_s3_force_path_style: bool object_storage_s3_force_path_style: bool
server_rules: NotRequired[list[str]] # v13.11.3以降のバージョンから追加。その場合は使わないとエラー出るかも server_rules: NotRequired[
list[str]
] # v13.11.3以降のバージョンから追加。その場合は使わないとエラー出るかも

@ -1,14 +1,10 @@
from __future__ import annotations from __future__ import annotations
from typing import Any, Literal, TypeVar from typing import Any, Literal
from mipac.abstract.model import AbstractModel
from mipac.http import HTTPClient, Route from mipac.http import HTTPClient, Route
M = TypeVar("M", bound=AbstractModel)
class Pagination[T]: class Pagination[T]:
def __init__( def __init__(
self, self,

@ -9,73 +9,73 @@ from templates import (
MANAGER_TEMPLATE, MANAGER_TEMPLATE,
) )
ModuleTypes = Literal['manager', 'actions'] ModuleTypes = Literal["manager", "actions"]
parser = argparse.ArgumentParser() parser = argparse.ArgumentParser()
parser.add_argument('--name', '-n') parser.add_argument("--name", "-n")
parser.add_argument('--generate', '-g', action=argparse.BooleanOptionalAction) parser.add_argument("--generate", "-g", action=argparse.BooleanOptionalAction)
args = parser.parse_args() args = parser.parse_args()
class Generator: class Generator:
def __init__(self) -> None: def __init__(self) -> None:
self.split_name = args.name.split('/') self.split_name = args.name.split("/")
self.path = '/'.join(self.split_name[:-1]) + '/' self.path = "/".join(self.split_name[:-1]) + "/"
self.base_path = '../mipac' self.base_path = "../mipac"
def makedirs(self, module_type: ModuleTypes, path: str): def makedirs(self, module_type: ModuleTypes, path: str):
if os.path.exists(f'../mipac/{module_type}/{path[:-1]}') is False: if os.path.exists(f"../mipac/{module_type}/{path[:-1]}") is False:
os.makedirs(f'../mipac/{module_type}/{path[:-1]}') os.makedirs(f"../mipac/{module_type}/{path[:-1]}")
with open( with open(
f'../mipac/{module_type}/{path}__init__.py', mode='w', encoding='utf-8' f"../mipac/{module_type}/{path}__init__.py", mode="w", encoding="utf-8"
) as f: ) as f:
f.close() f.close()
def get_path(self, module_type: ModuleTypes): def get_path(self, module_type: ModuleTypes):
return f'{self.base_path}/{module_type}{self.path}{self.split_name[-1]}' return f"{self.base_path}/{module_type}{self.path}{self.split_name[-1]}"
def get_import_path(self, module_type: ModuleTypes): def get_import_path(self, module_type: ModuleTypes):
return self.get_path(module_type).replace('../', '').replace('/', '.') return self.get_path(module_type).replace("../", "").replace("/", ".")
def get_class_name(self, module_type: ModuleTypes): def get_class_name(self, module_type: ModuleTypes):
return ( return (
MANAGER_CLASS_NAME_TEMPLATE MANAGER_CLASS_NAME_TEMPLATE
if module_type == 'manager' if module_type == "manager"
else ACTIONS_CLASS_NAME_TEMPLATE else ACTIONS_CLASS_NAME_TEMPLATE
).format(self.split_name[-1].capitalize()) ).format(self.split_name[-1].capitalize())
def create_actions(self): def create_actions(self):
import_path = self.get_import_path('actions') import_path = self.get_import_path("actions")
class_name = self.get_class_name('actions') class_name = self.get_class_name("actions")
os.makedirs(f'{self.base_path}/actions/{self.path}', exist_ok=True) os.makedirs(f"{self.base_path}/actions/{self.path}", exist_ok=True)
with open( with open(
f'{self.base_path}/actions/{self.path}{self.split_name[-1]}.py', f"{self.base_path}/actions/{self.path}{self.split_name[-1]}.py",
mode='w', mode="w",
encoding='utf-8', encoding="utf-8",
) as f: ) as f:
f.write(ACTIONS_TEMPLATE.format(class_name)) f.write(ACTIONS_TEMPLATE.format(class_name))
f.close() f.close()
return {'import_path': import_path, 'class_name': class_name} return {"import_path": import_path, "class_name": class_name}
def create_manager(self): def create_manager(self):
created_actions = self.create_actions() created_actions = self.create_actions()
class_name = self.get_class_name('manager') class_name = self.get_class_name("manager")
os.makedirs(f'{self.base_path}/manager/{self.path}', exist_ok=True) os.makedirs(f"{self.base_path}/manager/{self.path}", exist_ok=True)
with open( with open(
f'{self.base_path}/manager/{self.path}{self.split_name[-1]}.py', f"{self.base_path}/manager/{self.path}{self.split_name[-1]}.py",
mode='w', mode="w",
encoding='utf-8', encoding="utf-8",
) as f: ) as f:
f.write( f.write(
MANAGER_TEMPLATE.format( MANAGER_TEMPLATE.format(
class_name, created_actions['import_path'], created_actions['class_name'] class_name, created_actions["import_path"], created_actions["class_name"]
) )
) )
f.close() f.close()
if args.generate: if args.generate:
module_types = ['manager', 'actions'] module_types = ["manager", "actions"]
generator = Generator() generator = Generator()
generator.create_manager() generator.create_manager()

@ -1,5 +1,5 @@
MANAGER_CLASS_NAME_TEMPLATE = '{0}Manager' MANAGER_CLASS_NAME_TEMPLATE = "{0}Manager"
MANAGER_TEMPLATE = ''' MANAGER_TEMPLATE = """
from __future__ import annotations from __future__ import annotations
from typing import TYPE_CHECKING from typing import TYPE_CHECKING
@ -19,10 +19,10 @@ class {0}(AbstractManager):
@property @property
def action(self) -> {2}: def action(self) -> {2}:
return {2}(session=self.__session, client=self.__client) return {2}(session=self.__session, client=self.__client)
''' """
ACTIONS_CLASS_NAME_TEMPLATE = '{0}Actions' ACTIONS_CLASS_NAME_TEMPLATE = "{0}Actions"
ACTIONS_TEMPLATE = ''' ACTIONS_TEMPLATE = """
from __future__ import annotations from __future__ import annotations
from typing import TYPE_CHECKING from typing import TYPE_CHECKING
@ -38,5 +38,4 @@ class {0}(AbstractAction):
def __init__(self, *, session: HTTPClient, client: ClientManager): def __init__(self, *, session: HTTPClient, client: ClientManager):
self.__session: HTTPClient = session self.__session: HTTPClient = session
self.__client: ClientManager = client\n self.__client: ClientManager = client\n
''' """

Loading…
Cancel
Save