From 6421be61ada860fcf7710ee0e8f8ed4d3006e093 Mon Sep 17 00:00:00 2001 From: Allan Galarza Date: Tue, 1 Oct 2024 23:34:46 -0700 Subject: [PATCH] clean up imports using ruff --- server.py | 67 ++++++++++++--- tibiapy/builders/bazaar.py | 24 ++++-- tibiapy/builders/character.py | 15 +++- tibiapy/builders/event.py | 1 + tibiapy/builders/forum.py | 10 ++- tibiapy/builders/guild.py | 8 +- tibiapy/builders/highscores.py | 9 +- tibiapy/builders/house.py | 6 +- tibiapy/builders/kill_statistics.py | 1 + tibiapy/builders/leaderboard.py | 6 +- tibiapy/builders/news.py | 8 +- tibiapy/builders/spell.py | 7 +- tibiapy/builders/world.py | 12 +-- tibiapy/client.py | 127 +++++++++++++++++++++++----- tibiapy/enums.py | 2 +- tibiapy/errors.py | 2 +- tibiapy/models/bazaar.py | 18 +++- tibiapy/models/character.py | 2 +- tibiapy/models/forum.py | 11 ++- tibiapy/models/highscores.py | 8 +- tibiapy/models/house.py | 4 +- tibiapy/models/leaderboard.py | 2 +- tibiapy/models/pagination.py | 4 +- tibiapy/models/spell.py | 4 +- tibiapy/parsers/bazaar.py | 59 +++++++++++-- tibiapy/parsers/character.py | 30 +++++-- tibiapy/parsers/creature.py | 11 ++- tibiapy/parsers/fansite.py | 7 +- tibiapy/parsers/forum.py | 47 ++++++++-- tibiapy/parsers/guild.py | 20 ++++- tibiapy/parsers/highscores.py | 18 +++- tibiapy/parsers/house.py | 20 +++-- tibiapy/parsers/leaderboard.py | 15 +++- tibiapy/parsers/news.py | 14 ++- tibiapy/parsers/spell.py | 20 ++++- tibiapy/parsers/world.py | 20 +++-- tibiapy/urls.py | 19 ++++- tibiapy/utils.py | 2 +- 38 files changed, 519 insertions(+), 141 deletions(-) diff --git a/server.py b/server.py index fc0536b..20f4e69 100644 --- a/server.py +++ b/server.py @@ -3,26 +3,65 @@ import datetime import logging from contextlib import asynccontextmanager -from typing import Optional, TypeVar +from typing import Annotated, Optional, TypeVar import uvicorn from fastapi import Depends, FastAPI, Path, Query, Response from starlette import status -from typing import Annotated import tibiapy -from tibiapy.enums import (AuctionBattlEyeFilter, AuctionOrderBy, AuctionOrderDirection, AuctionSearchType, - AuctionSkillFilter, AuctionVocationFilter, HighscoresBattlEyeType, HighscoresCategory, - HighscoresProfession, HouseOrder, HouseStatus, HouseType, NewsCategory, NewsType, - PvpTypeFilter, - SpellGroup, SpellSorting, SpellType, SpellVocationFilter) -from tibiapy.models import (Auction, AuctionFilters, BoostableBosses, BossEntry, Character, CharacterBazaar, Creature, - CreatureEntry, CreaturesSection, EventSchedule, FansitesSection, ForumBoard, ForumSection, - ForumThread, - Guild, GuildWars, - GuildsSection, Highscores, House, HousesSection, KillStatistics, Leaderboard, News, - NewsArchive, Spell, - SpellsSection, TibiaResponse, World, WorldOverview) +from tibiapy.enums import ( + AuctionBattlEyeFilter, + AuctionOrderBy, + AuctionOrderDirection, + AuctionSearchType, + AuctionSkillFilter, + AuctionVocationFilter, + HighscoresBattlEyeType, + HighscoresCategory, + HighscoresProfession, + HouseOrder, + HouseStatus, + HouseType, + NewsCategory, + NewsType, + PvpTypeFilter, + SpellGroup, + SpellSorting, + SpellType, + SpellVocationFilter, +) +from tibiapy.models import ( + Auction, + AuctionFilters, + BoostableBosses, + BossEntry, + Character, + CharacterBazaar, + Creature, + CreatureEntry, + CreaturesSection, + EventSchedule, + FansitesSection, + ForumBoard, + ForumSection, + ForumThread, + Guild, + GuildsSection, + GuildWars, + Highscores, + House, + HousesSection, + KillStatistics, + Leaderboard, + News, + NewsArchive, + Spell, + SpellsSection, + TibiaResponse, + World, + WorldOverview, +) logging_formatter = logging.Formatter("[%(asctime)s][%(levelname)s] %(message)s") console_handler = logging.StreamHandler() diff --git a/tibiapy/builders/bazaar.py b/tibiapy/builders/bazaar.py index 5dd17d3..9912ce9 100644 --- a/tibiapy/builders/bazaar.py +++ b/tibiapy/builders/bazaar.py @@ -1,17 +1,31 @@ from __future__ import annotations - -from typing import Optional, TYPE_CHECKING +from typing import TYPE_CHECKING, Optional from tibiapy.models import Auction, CharacterBazaar from tibiapy.models.bazaar import AuctionDetails, RevealedGem if TYPE_CHECKING: import datetime + from typing_extensions import Self - from tibiapy.enums import BazaarType, Vocation, Sex, BidType, AuctionStatus - from tibiapy.models import (AuctionFilters, OutfitImage, ItemEntry, SalesArgument, SkillEntry, ItemSummary, Mounts, - Outfits, Familiars, BlessingEntry, CharmEntry, AchievementEntry, BestiaryEntry) + + from tibiapy.enums import AuctionStatus, BazaarType, BidType, Sex, Vocation + from tibiapy.models import ( + AchievementEntry, + AuctionFilters, + BestiaryEntry, + BlessingEntry, + CharmEntry, + Familiars, + ItemEntry, + ItemSummary, + Mounts, + OutfitImage, + Outfits, + SalesArgument, + SkillEntry, + ) class CharacterBazaarBuilder: diff --git a/tibiapy/builders/character.py b/tibiapy/builders/character.py index eb40eab..774400a 100644 --- a/tibiapy/builders/character.py +++ b/tibiapy/builders/character.py @@ -1,15 +1,24 @@ from __future__ import annotations -from typing import Optional, TYPE_CHECKING +from typing import TYPE_CHECKING, Optional from tibiapy.models import Character if TYPE_CHECKING: import datetime + from typing_extensions import Self + from tibiapy.enums import Sex, Vocation - from tibiapy.models import (CharacterHouse, GuildMembership, AccountBadge, Achievement, Death, AccountInformation, - OtherCharacter) + from tibiapy.models import ( + AccountBadge, + AccountInformation, + Achievement, + CharacterHouse, + Death, + GuildMembership, + OtherCharacter, + ) class CharacterBuilder: diff --git a/tibiapy/builders/event.py b/tibiapy/builders/event.py index cc38a15..7dcd04b 100644 --- a/tibiapy/builders/event.py +++ b/tibiapy/builders/event.py @@ -6,6 +6,7 @@ if TYPE_CHECKING: from typing_extensions import Self + from tibiapy.models.event import EventEntry diff --git a/tibiapy/builders/forum.py b/tibiapy/builders/forum.py index 6e1916d..24fd966 100644 --- a/tibiapy/builders/forum.py +++ b/tibiapy/builders/forum.py @@ -1,10 +1,16 @@ from __future__ import annotations import datetime -from typing import Optional, TYPE_CHECKING +from typing import TYPE_CHECKING, Optional from tibiapy.models import AnnouncementEntry, ForumAuthor, ForumPost, ThreadEntry -from tibiapy.models.forum import CMPostArchive, CMPost, ForumAnnouncement, ForumBoard, ForumThread +from tibiapy.models.forum import ( + CMPost, + CMPostArchive, + ForumAnnouncement, + ForumBoard, + ForumThread, +) if TYPE_CHECKING: from typing_extensions import Self diff --git a/tibiapy/builders/guild.py b/tibiapy/builders/guild.py index e160e1e..8776544 100644 --- a/tibiapy/builders/guild.py +++ b/tibiapy/builders/guild.py @@ -1,13 +1,15 @@ from __future__ import annotations -from typing import Optional, TYPE_CHECKING +from typing import TYPE_CHECKING, Optional -from tibiapy.models import GuildEntry, Guild, GuildWars, GuildWarEntry +from tibiapy.models import Guild, GuildEntry, GuildWarEntry, GuildWars if TYPE_CHECKING: import datetime + from typing_extensions import Self - from tibiapy.models import GuildHouse, GuildMember, GuildInvite + + from tibiapy.models import GuildHouse, GuildInvite, GuildMember class _BaseGuildBuilder: diff --git a/tibiapy/builders/highscores.py b/tibiapy/builders/highscores.py index 7469c2f..8950e96 100644 --- a/tibiapy/builders/highscores.py +++ b/tibiapy/builders/highscores.py @@ -6,8 +6,15 @@ if TYPE_CHECKING: import datetime + from typing_extensions import Self - from tibiapy.enums import HighscoresCategory, HighscoresProfession, HighscoresBattlEyeType, PvpTypeFilter + + from tibiapy.enums import ( + HighscoresBattlEyeType, + HighscoresCategory, + HighscoresProfession, + PvpTypeFilter, + ) from tibiapy.models import HighscoresEntry diff --git a/tibiapy/builders/house.py b/tibiapy/builders/house.py index 161de43..8df4f39 100644 --- a/tibiapy/builders/house.py +++ b/tibiapy/builders/house.py @@ -1,15 +1,15 @@ from __future__ import annotations - from typing import TYPE_CHECKING, Optional from typing_extensions import Self -from tibiapy.models.house import HouseEntry, HousesSection, House +from tibiapy.models.house import House, HouseEntry, HousesSection if TYPE_CHECKING: import datetime - from tibiapy.enums import HouseStatus, HouseType, HouseOrder, Sex + + from tibiapy.enums import HouseOrder, HouseStatus, HouseType, Sex class HousesSectionBuilder: diff --git a/tibiapy/builders/kill_statistics.py b/tibiapy/builders/kill_statistics.py index 4b48d8a..257bcc9 100644 --- a/tibiapy/builders/kill_statistics.py +++ b/tibiapy/builders/kill_statistics.py @@ -6,6 +6,7 @@ if TYPE_CHECKING: from typing_extensions import Self + from tibiapy.models import RaceEntry diff --git a/tibiapy/builders/leaderboard.py b/tibiapy/builders/leaderboard.py index f92fe40..486f7b6 100644 --- a/tibiapy/builders/leaderboard.py +++ b/tibiapy/builders/leaderboard.py @@ -1,12 +1,14 @@ from __future__ import annotations -from typing import Optional, TYPE_CHECKING +from typing import TYPE_CHECKING, Optional -from tibiapy.models.leaderboard import LeaderboardEntry, Leaderboard +from tibiapy.models.leaderboard import Leaderboard, LeaderboardEntry if TYPE_CHECKING: import datetime + from typing_extensions import Self + from tibiapy.models.leaderboard import LeaderboardRotation diff --git a/tibiapy/builders/news.py b/tibiapy/builders/news.py index b89cd3c..8646c25 100644 --- a/tibiapy/builders/news.py +++ b/tibiapy/builders/news.py @@ -1,14 +1,16 @@ from __future__ import annotations -from typing import Optional, TYPE_CHECKING from collections.abc import Collection +from typing import TYPE_CHECKING, Optional -from tibiapy.models import NewsEntry, NewsArchive, News +from tibiapy.models import News, NewsArchive, NewsEntry if TYPE_CHECKING: import datetime + from typing_extensions import Self - from tibiapy.enums import NewsType, NewsCategory + + from tibiapy.enums import NewsCategory, NewsType class NewsArchiveBuilder: diff --git a/tibiapy/builders/spell.py b/tibiapy/builders/spell.py index 1dc116e..f1a876d 100644 --- a/tibiapy/builders/spell.py +++ b/tibiapy/builders/spell.py @@ -1,12 +1,13 @@ from __future__ import annotations -from typing import Optional, TYPE_CHECKING +from typing import TYPE_CHECKING, Optional -from tibiapy.models import SpellEntry, SpellsSection, Spell, Rune +from tibiapy.models import Rune, Spell, SpellEntry, SpellsSection if TYPE_CHECKING: from typing_extensions import Self - from tibiapy.enums import SpellVocationFilter, SpellGroup, SpellSorting, SpellType + + from tibiapy.enums import SpellGroup, SpellSorting, SpellType, SpellVocationFilter class SpellSectionBuilder: diff --git a/tibiapy/builders/world.py b/tibiapy/builders/world.py index 6af7aef..974e91c 100644 --- a/tibiapy/builders/world.py +++ b/tibiapy/builders/world.py @@ -1,16 +1,18 @@ from __future__ import annotations -from typing import Optional, TYPE_CHECKING +from typing import TYPE_CHECKING, Optional -from tibiapy.enums import TransferType, BattlEyeType +from tibiapy.enums import BattlEyeType, TransferType from tibiapy.models import World, WorldEntry, WorldOverview if TYPE_CHECKING: - from tibiapy.models import OnlineCharacter - from tibiapy.enums import WorldLocation, PvpType - from typing_extensions import Self import datetime + from typing_extensions import Self + + from tibiapy.enums import PvpType, WorldLocation + from tibiapy.models import OnlineCharacter + __all__ = ( "WorldBuilder", "WorldEntryBuilder", diff --git a/tibiapy/client.py b/tibiapy/client.py index afbf057..61071c2 100644 --- a/tibiapy/client.py +++ b/tibiapy/client.py @@ -6,42 +6,129 @@ import json import logging import time -from typing import Any, Callable, Optional, TYPE_CHECKING, TypeVar +from typing import TYPE_CHECKING, Any, Callable, Optional, TypeVar import aiohttp import aiohttp_socks import tibiapy -from tibiapy.enums import (BazaarType, HighscoresBattlEyeType, HighscoresCategory, HighscoresProfession, HouseOrder, - HouseStatus, HouseType, NewsCategory, NewsType, PvpTypeFilter, SpellGroup, SpellSorting, - SpellType, SpellVocationFilter) +from tibiapy.enums import ( + BazaarType, + HighscoresBattlEyeType, + HighscoresCategory, + HighscoresProfession, + HouseOrder, + HouseStatus, + HouseType, + NewsCategory, + NewsType, + PvpTypeFilter, + SpellGroup, + SpellSorting, + SpellType, + SpellVocationFilter, +) from tibiapy.errors import ForbiddenError, NetworkError, SiteMaintenanceError from tibiapy.models import TibiaResponse from tibiapy.parsers import ( - AuctionParser, BoostableBossesParser, BoostedCreaturesParser, CMPostArchiveParser, CharacterBazaarParser, - CharacterParser, CreatureParser, CreaturesSectionParser, EventScheduleParser, FansitesSectionParser, + AuctionParser, + BoostableBossesParser, + BoostedCreaturesParser, + CharacterBazaarParser, + CharacterParser, + CMPostArchiveParser, + CreatureParser, + CreaturesSectionParser, + EventScheduleParser, + FansitesSectionParser, ForumAnnouncementParser, - ForumBoardParser, ForumSectionParser, ForumThreadParser, GuildParser, GuildWarsParser, GuildsSectionParser, - HighscoresParser, HouseParser, HousesSectionParser, KillStatisticsParser, LeaderboardParser, NewsArchiveParser, - NewsParser, SpellParser, SpellsSectionParser, WorldOverviewParser, WorldParser, + ForumBoardParser, + ForumSectionParser, + ForumThreadParser, + GuildParser, + GuildsSectionParser, + GuildWarsParser, + HighscoresParser, + HouseParser, + HousesSectionParser, + KillStatisticsParser, + LeaderboardParser, + NewsArchiveParser, + NewsParser, + SpellParser, + SpellsSectionParser, + WorldOverviewParser, + WorldParser, ) from tibiapy.urls import ( - get_auction_url, get_bazaar_url, get_boostable_bosses_url, get_character_url, get_cm_post_archive_url, - get_community_boards_url, get_creature_url, get_creatures_section_url, get_event_schedule_url, - get_fansites_url, get_forum_announcement_url, get_forum_board_url, get_forum_post_url, get_forum_section_url, + get_auction_url, + get_bazaar_url, + get_boostable_bosses_url, + get_character_url, + get_cm_post_archive_url, + get_community_boards_url, + get_creature_url, + get_creatures_section_url, + get_event_schedule_url, + get_fansites_url, + get_forum_announcement_url, + get_forum_board_url, + get_forum_post_url, + get_forum_section_url, get_forum_thread_url, - get_guild_url, get_guild_wars_url, get_highscores_url, get_house_url, get_houses_section_url, - get_kill_statistics_url, get_leaderboards_url, get_news_archive_url, get_news_url, get_spell_url, - get_spells_section_url, get_support_boards_url, get_trade_boards_url, get_world_boards_url, get_world_guilds_url, - get_world_overview_url, get_world_url, + get_guild_url, + get_guild_wars_url, + get_highscores_url, + get_house_url, + get_houses_section_url, + get_kill_statistics_url, + get_leaderboards_url, + get_news_archive_url, + get_news_url, + get_spell_url, + get_spells_section_url, + get_support_boards_url, + get_trade_boards_url, + get_world_boards_url, + get_world_guilds_url, + get_world_overview_url, + get_world_url, ) if TYPE_CHECKING: from tibiapy.models import ( - AjaxPaginator, Auction, AuctionFilters, BoostableBosses, BoostedCreatures, BossEntry, CMPostArchive, Character, - CharacterBazaar, Creature, CreatureEntry, CreaturesSection, EventSchedule, FansitesSection, ForumAnnouncement, - ForumBoard, ForumSection, ForumThread, Guild, GuildWars, GuildsSection, Highscores, House, HousesSection, - KillStatistics, Leaderboard, News, NewsArchive, Spell, SpellsSection, World, WorldOverview, + AjaxPaginator, + Auction, + AuctionFilters, + BoostableBosses, + BoostedCreatures, + BossEntry, + Character, + CharacterBazaar, + CMPostArchive, + Creature, + CreatureEntry, + CreaturesSection, + EventSchedule, + FansitesSection, + ForumAnnouncement, + ForumBoard, + ForumSection, + ForumThread, + Guild, + GuildsSection, + GuildWars, + Highscores, + House, + HousesSection, + KillStatistics, + Leaderboard, + News, + NewsArchive, + Spell, + SpellsSection, + World, + WorldOverview, ) __all__ = ( diff --git a/tibiapy/enums.py b/tibiapy/enums.py index 789adbf..ef1e014 100644 --- a/tibiapy/enums.py +++ b/tibiapy/enums.py @@ -2,7 +2,7 @@ from __future__ import annotations from enum import Enum, Flag, IntEnum -from typing import Any, Optional, TYPE_CHECKING +from typing import TYPE_CHECKING, Any, Optional from pydantic_core import core_schema from typing_extensions import Self diff --git a/tibiapy/errors.py b/tibiapy/errors.py index 48cee8f..9f71a0c 100644 --- a/tibiapy/errors.py +++ b/tibiapy/errors.py @@ -1,7 +1,7 @@ """Exceptions thrown by tibia.py.""" from __future__ import annotations -from typing import Any, TYPE_CHECKING +from typing import TYPE_CHECKING, Any from typing_extensions import deprecated diff --git a/tibiapy/models/bazaar.py b/tibiapy/models/bazaar.py index f79179c..cc51613 100644 --- a/tibiapy/models/bazaar.py +++ b/tibiapy/models/bazaar.py @@ -3,9 +3,20 @@ from abc import ABC, abstractmethod from typing import Generic, Optional, TypeVar -from tibiapy.enums import (AuctionBattlEyeFilter, AuctionOrderBy, AuctionOrderDirection, AuctionSearchType, - AuctionSkillFilter, AuctionStatus, AuctionVocationFilter, BazaarType, BidType, PvpTypeFilter, - Sex, Vocation) +from tibiapy.enums import ( + AuctionBattlEyeFilter, + AuctionOrderBy, + AuctionOrderDirection, + AuctionSearchType, + AuctionSkillFilter, + AuctionStatus, + AuctionVocationFilter, + BazaarType, + BidType, + PvpTypeFilter, + Sex, + Vocation, +) from tibiapy.models import BaseModel from tibiapy.models.pagination import AjaxPaginator, PaginatedWithUrl @@ -18,6 +29,7 @@ "BlessingEntry", "CharacterBazaar", "CharmEntry", + "DisplayImage", "FamiliarEntry", "Familiars", "ItemEntry", diff --git a/tibiapy/models/character.py b/tibiapy/models/character.py index d61c674..38b970d 100644 --- a/tibiapy/models/character.py +++ b/tibiapy/models/character.py @@ -6,9 +6,9 @@ from pydantic import computed_field +from tibiapy import urls from tibiapy.enums import Sex, Vocation from tibiapy.models.base import BaseCharacter, BaseGuild, BaseModel, HouseWithId -from tibiapy import urls __all__ = ( "AccountBadge", diff --git a/tibiapy/models/forum.py b/tibiapy/models/forum.py index 4117955..9a15302 100644 --- a/tibiapy/models/forum.py +++ b/tibiapy/models/forum.py @@ -6,8 +6,15 @@ from tibiapy.models import GuildMembership from tibiapy.models.base import BaseCharacter, BaseModel from tibiapy.models.pagination import PaginatedWithUrl -from tibiapy.urls import (get_character_url, get_cm_post_archive_url, get_forum_announcement_url, get_forum_board_url, - get_forum_post_url, get_forum_section_url, get_forum_thread_url) +from tibiapy.urls import ( + get_character_url, + get_cm_post_archive_url, + get_forum_announcement_url, + get_forum_board_url, + get_forum_post_url, + get_forum_section_url, + get_forum_thread_url, +) __all__ = ( "AnnouncementEntry", diff --git a/tibiapy/models/highscores.py b/tibiapy/models/highscores.py index 490b6d6..67f2735 100644 --- a/tibiapy/models/highscores.py +++ b/tibiapy/models/highscores.py @@ -4,7 +4,13 @@ from pydantic import SerializeAsAny -from tibiapy.enums import HighscoresBattlEyeType, HighscoresCategory, HighscoresProfession, PvpTypeFilter, Vocation +from tibiapy.enums import ( + HighscoresBattlEyeType, + HighscoresCategory, + HighscoresProfession, + PvpTypeFilter, + Vocation, +) from tibiapy.models import BaseCharacter, PaginatedWithUrl from tibiapy.urls import get_highscores_url diff --git a/tibiapy/models/house.py b/tibiapy/models/house.py index de5bff9..487f29f 100644 --- a/tibiapy/models/house.py +++ b/tibiapy/models/house.py @@ -2,8 +2,8 @@ import datetime from typing import Optional -from tibiapy.enums import HouseStatus, HouseType, HouseOrder, Sex -from tibiapy.models import HouseWithId, BaseModel +from tibiapy.enums import HouseOrder, HouseStatus, HouseType, Sex +from tibiapy.models import BaseModel, HouseWithId from tibiapy.urls import get_character_url, get_houses_section_url __all__ = ( diff --git a/tibiapy/models/leaderboard.py b/tibiapy/models/leaderboard.py index 24d1f9b..c0feede 100644 --- a/tibiapy/models/leaderboard.py +++ b/tibiapy/models/leaderboard.py @@ -4,7 +4,7 @@ from tibiapy.models import BaseModel from tibiapy.models.pagination import PaginatedWithUrl -from tibiapy.urls import get_leaderboards_url, get_character_url +from tibiapy.urls import get_character_url, get_leaderboards_url __all__ = ( "LeaderboardEntry", diff --git a/tibiapy/models/pagination.py b/tibiapy/models/pagination.py index 3533b93..2d7e208 100644 --- a/tibiapy/models/pagination.py +++ b/tibiapy/models/pagination.py @@ -1,6 +1,6 @@ """Base models for paginated classes.""" -from abc import abstractmethod, ABC -from typing import TypeVar, Generic, Optional +from abc import ABC, abstractmethod +from typing import Generic, Optional, TypeVar from tibiapy.models import BaseModel diff --git a/tibiapy/models/spell.py b/tibiapy/models/spell.py index 4410ae5..eb9cf2c 100644 --- a/tibiapy/models/spell.py +++ b/tibiapy/models/spell.py @@ -5,9 +5,9 @@ from pydantic import computed_field -from tibiapy.enums import SpellVocationFilter, SpellGroup, SpellType, SpellSorting +from tibiapy.enums import SpellGroup, SpellSorting, SpellType, SpellVocationFilter from tibiapy.models import BaseModel -from tibiapy.urls import get_spells_section_url, get_spell_url, get_static_file_url +from tibiapy.urls import get_spell_url, get_spells_section_url, get_static_file_url __all__ = ( "SpellsSection", diff --git a/tibiapy/parsers/bazaar.py b/tibiapy/parsers/bazaar.py index 823ac4a..a51db5c 100644 --- a/tibiapy/parsers/bazaar.py +++ b/tibiapy/parsers/bazaar.py @@ -7,15 +7,58 @@ import bs4 from tibiapy import InvalidContentError -from tibiapy.builders import AuctionBuilder, AuctionDetailsBuilder, CharacterBazaarBuilder -from tibiapy.enums import AuctionBattlEyeFilter, AuctionOrderBy, AuctionOrderDirection, AuctionSearchType, \ - AuctionSkillFilter, AuctionStatus, AuctionVocationFilter, BazaarType, BidType, PvpTypeFilter, Sex, Vocation -from tibiapy.models import (AchievementEntry, AjaxPaginator, Auction, AuctionFilters, BestiaryEntry, BlessingEntry, - CharacterBazaar, CharmEntry, FamiliarEntry, Familiars, ItemEntry, ItemSummary, MountEntry, - Mounts, OutfitEntry, OutfitImage, Outfits, SalesArgument, SkillEntry) +from tibiapy.builders import ( + AuctionBuilder, + AuctionDetailsBuilder, + CharacterBazaarBuilder, +) +from tibiapy.enums import ( + AuctionBattlEyeFilter, + AuctionOrderBy, + AuctionOrderDirection, + AuctionSearchType, + AuctionSkillFilter, + AuctionStatus, + AuctionVocationFilter, + BazaarType, + BidType, + PvpTypeFilter, + Sex, + Vocation, +) +from tibiapy.models import ( + AchievementEntry, + AjaxPaginator, + Auction, + AuctionFilters, + BestiaryEntry, + BlessingEntry, + CharacterBazaar, + CharmEntry, + FamiliarEntry, + Familiars, + ItemEntry, + ItemSummary, + MountEntry, + Mounts, + OutfitEntry, + OutfitImage, + Outfits, + SalesArgument, + SkillEntry, +) from tibiapy.models.bazaar import DisplayImage, RevealedGem -from tibiapy.utils import (clean_text, convert_line_breaks, get_rows, parse_form_data, parse_integer, parse_pagination, - parse_tibia_datetime, parse_tibiacom_content, try_enum) +from tibiapy.utils import ( + clean_text, + convert_line_breaks, + get_rows, + parse_form_data, + parse_integer, + parse_pagination, + parse_tibia_datetime, + parse_tibiacom_content, + try_enum, +) CSS_CLASS_ICON = "div.CVIcon" diff --git a/tibiapy/parsers/character.py b/tibiapy/parsers/character.py index 1287525..032452f 100644 --- a/tibiapy/parsers/character.py +++ b/tibiapy/parsers/character.py @@ -4,16 +4,34 @@ import logging import re from collections import OrderedDict -from typing import Callable, Optional, TYPE_CHECKING +from typing import TYPE_CHECKING, Callable, Optional from tibiapy.builders import CharacterBuilder from tibiapy.enums import Sex, Vocation from tibiapy.errors import InvalidContentError -from tibiapy.models import (Achievement, Character, AccountBadge, AccountInformation, OtherCharacter, DeathParticipant, - Death, GuildMembership, CharacterHouse) -from tibiapy.utils import (get_rows, parse_popup, parse_tibia_date, parse_tibia_datetime, parse_tibiacom_content, - split_list, - try_enum, parse_link_info, clean_text, parse_integer) +from tibiapy.models import ( + AccountBadge, + AccountInformation, + Achievement, + Character, + CharacterHouse, + Death, + DeathParticipant, + GuildMembership, + OtherCharacter, +) +from tibiapy.utils import ( + clean_text, + get_rows, + parse_integer, + parse_link_info, + parse_popup, + parse_tibia_date, + parse_tibia_datetime, + parse_tibiacom_content, + split_list, + try_enum, +) if TYPE_CHECKING: import bs4 diff --git a/tibiapy/parsers/creature.py b/tibiapy/parsers/creature.py index c3e77aa..8bca96b 100644 --- a/tibiapy/parsers/creature.py +++ b/tibiapy/parsers/creature.py @@ -8,8 +8,15 @@ from tibiapy.builders import CreatureBuilder from tibiapy.errors import InvalidContentError -from tibiapy.models import CreatureEntry, CreaturesSection, BoostedCreatures, BossEntry, BoostableBosses, Creature -from tibiapy.utils import parse_tibiacom_content, convert_line_breaks +from tibiapy.models import ( + BoostableBosses, + BoostedCreatures, + BossEntry, + Creature, + CreatureEntry, + CreaturesSection, +) +from tibiapy.utils import convert_line_breaks, parse_tibiacom_content __all__ = ( "BoostableBossesParser", diff --git a/tibiapy/parsers/fansite.py b/tibiapy/parsers/fansite.py index b329e24..15df538 100644 --- a/tibiapy/parsers/fansite.py +++ b/tibiapy/parsers/fansite.py @@ -2,7 +2,12 @@ import bs4 from tibiapy import InvalidContentError -from tibiapy.models.fansite import Fansite, FansiteContent, FansiteSocialMedia, FansitesSection +from tibiapy.models.fansite import ( + Fansite, + FansiteContent, + FansiteSocialMedia, + FansitesSection, +) from tibiapy.utils import get_rows, parse_popup, parse_tibiacom_content diff --git a/tibiapy/parsers/forum.py b/tibiapy/parsers/forum.py index 8ad919a..1d88655 100644 --- a/tibiapy/parsers/forum.py +++ b/tibiapy/parsers/forum.py @@ -4,18 +4,47 @@ import datetime import re import urllib.parse -from typing import Optional, TYPE_CHECKING +from typing import TYPE_CHECKING, Optional from tibiapy import InvalidContentError, errors -from tibiapy.builders import CMPostArchiveBuilder, ForumAnnouncementBuilder, ForumBoardBuilder, ForumThreadBuilder +from tibiapy.builders import ( + CMPostArchiveBuilder, + ForumAnnouncementBuilder, + ForumBoardBuilder, + ForumThreadBuilder, +) from tibiapy.enums import ThreadStatus, Vocation -from tibiapy.models import (AnnouncementEntry, BoardEntry, CMPost, CMPostArchive, ForumAnnouncement, ForumAuthor, - ForumBoard, ForumEmoticon, ForumPost, ForumSection, ForumThread, GuildMembership, LastPost, - ThreadEntry) -from tibiapy.utils import (clean_text, convert_line_breaks, get_rows, parse_form_data, parse_integer, parse_link_info, - parse_pagination, - parse_tables_map, parse_tibia_datetime, parse_tibia_forum_datetime, parse_tibiacom_content, - split_list, try_enum) +from tibiapy.models import ( + AnnouncementEntry, + BoardEntry, + CMPost, + CMPostArchive, + ForumAnnouncement, + ForumAuthor, + ForumBoard, + ForumEmoticon, + ForumPost, + ForumSection, + ForumThread, + GuildMembership, + LastPost, + ThreadEntry, +) +from tibiapy.utils import ( + clean_text, + convert_line_breaks, + get_rows, + parse_form_data, + parse_integer, + parse_link_info, + parse_pagination, + parse_tables_map, + parse_tibia_datetime, + parse_tibia_forum_datetime, + parse_tibiacom_content, + split_list, + try_enum, +) if TYPE_CHECKING: import bs4 diff --git a/tibiapy/parsers/guild.py b/tibiapy/parsers/guild.py index d21ac54..de67439 100644 --- a/tibiapy/parsers/guild.py +++ b/tibiapy/parsers/guild.py @@ -3,15 +3,29 @@ import datetime import re -from typing import Optional, TYPE_CHECKING +from typing import TYPE_CHECKING, Optional from tibiapy.builders import GuildBuilder, GuildWarEntryBuilder, GuildWarsBuilder from tibiapy.errors import InvalidContentError -from tibiapy.models import GuildEntry, GuildHouse, GuildInvite, GuildMember, GuildWarEntry, GuildsSection -from tibiapy.utils import clean_text, parse_form_data, parse_link_info, parse_tibia_date, parse_tibiacom_content +from tibiapy.models import ( + GuildEntry, + GuildHouse, + GuildInvite, + GuildMember, + GuildsSection, + GuildWarEntry, +) +from tibiapy.utils import ( + clean_text, + parse_form_data, + parse_link_info, + parse_tibia_date, + parse_tibiacom_content, +) if TYPE_CHECKING: import bs4 + from tibiapy.models import Guild, GuildWars __all__ = ( diff --git a/tibiapy/parsers/highscores.py b/tibiapy/parsers/highscores.py index c512557..02d393d 100644 --- a/tibiapy/parsers/highscores.py +++ b/tibiapy/parsers/highscores.py @@ -4,15 +4,27 @@ import datetime import re from collections import OrderedDict -from typing import Optional, TYPE_CHECKING +from typing import TYPE_CHECKING, Optional import bs4 from tibiapy.builders.highscores import HighscoresBuilder -from tibiapy.enums import HighscoresBattlEyeType, HighscoresCategory, HighscoresProfession, PvpTypeFilter +from tibiapy.enums import ( + HighscoresBattlEyeType, + HighscoresCategory, + HighscoresProfession, + PvpTypeFilter, +) from tibiapy.errors import InvalidContentError from tibiapy.models import HighscoresEntry, LoyaltyHighscoresEntry -from tibiapy.utils import clean_text, parse_form_data, parse_integer, parse_pagination, parse_tibiacom_content, try_enum +from tibiapy.utils import ( + clean_text, + parse_form_data, + parse_integer, + parse_pagination, + parse_tibiacom_content, + try_enum, +) if TYPE_CHECKING: from tibiapy.models import Highscores diff --git a/tibiapy/parsers/house.py b/tibiapy/parsers/house.py index 3695577..cd82a56 100644 --- a/tibiapy/parsers/house.py +++ b/tibiapy/parsers/house.py @@ -1,20 +1,28 @@ """Models related to the houses section in Tibia.com.""" from __future__ import annotations + import datetime import re -from typing import Optional, TYPE_CHECKING +from typing import TYPE_CHECKING, Optional import bs4 -from tibiapy.builders.house import HousesSectionBuilder, HouseEntryBuilder, HouseBuilder +from tibiapy.builders.house import HouseBuilder, HouseEntryBuilder, HousesSectionBuilder from tibiapy.enums import HouseOrder, HouseStatus, HouseType, Sex from tibiapy.errors import InvalidContentError -from tibiapy.utils import (clean_text, get_rows, parse_tibia_datetime, parse_tibia_money, parse_tibiacom_content, - parse_tibiacom_tables, - try_enum, parse_form_data) +from tibiapy.utils import ( + clean_text, + get_rows, + parse_form_data, + parse_tibia_datetime, + parse_tibia_money, + parse_tibiacom_content, + parse_tibiacom_tables, + try_enum, +) if TYPE_CHECKING: - from tibiapy.models import HousesSection, House + from tibiapy.models import House, HousesSection __all__ = ( "HousesSectionParser", diff --git a/tibiapy/parsers/leaderboard.py b/tibiapy/parsers/leaderboard.py index 3407d31..c42c268 100644 --- a/tibiapy/parsers/leaderboard.py +++ b/tibiapy/parsers/leaderboard.py @@ -7,9 +7,18 @@ from tibiapy import errors from tibiapy.builders.leaderboard import LeaderboardBuilder -from tibiapy.models.leaderboard import LeaderboardEntry, LeaderboardRotation, Leaderboard -from tibiapy.utils import (parse_pagination, parse_tibia_datetime, parse_tibiacom_content, parse_form_data, - parse_integer) +from tibiapy.models.leaderboard import ( + Leaderboard, + LeaderboardEntry, + LeaderboardRotation, +) +from tibiapy.utils import ( + parse_form_data, + parse_integer, + parse_pagination, + parse_tibia_datetime, + parse_tibiacom_content, +) if TYPE_CHECKING: from bs4 import Tag diff --git a/tibiapy/parsers/news.py b/tibiapy/parsers/news.py index dff09e5..138e438 100644 --- a/tibiapy/parsers/news.py +++ b/tibiapy/parsers/news.py @@ -9,10 +9,16 @@ from tibiapy.builders.news import NewsArchiveBuilder, NewsBuilder from tibiapy.enums import NewsCategory, NewsType from tibiapy.errors import InvalidContentError -from tibiapy.models.news import NewsArchive, News, NewsEntry -from tibiapy.utils import (parse_tibia_date, - parse_tibiacom_content, parse_tibiacom_tables, - try_enum, parse_link_info, parse_form_data, clean_text) +from tibiapy.models.news import News, NewsArchive, NewsEntry +from tibiapy.utils import ( + clean_text, + parse_form_data, + parse_link_info, + parse_tibia_date, + parse_tibiacom_content, + parse_tibiacom_tables, + try_enum, +) __all__ = ( "NewsParser", diff --git a/tibiapy/parsers/spell.py b/tibiapy/parsers/spell.py index a0b3edb..73a439d 100644 --- a/tibiapy/parsers/spell.py +++ b/tibiapy/parsers/spell.py @@ -4,15 +4,27 @@ import os import re import urllib.parse -from typing import Optional, TYPE_CHECKING +from typing import TYPE_CHECKING, Optional import bs4 from tibiapy import errors -from tibiapy.builders.spell import RuneBuilder, SpellBuilder, SpellEntryBuilder, SpellSectionBuilder +from tibiapy.builders.spell import ( + RuneBuilder, + SpellBuilder, + SpellEntryBuilder, + SpellSectionBuilder, +) from tibiapy.enums import SpellGroup, SpellSorting, SpellType, SpellVocationFilter -from tibiapy.utils import (get_rows, parse_form_data, parse_integer, parse_link_info, parse_tibiacom_content, - parse_tibiacom_tables, try_enum) +from tibiapy.utils import ( + get_rows, + parse_form_data, + parse_integer, + parse_link_info, + parse_tibiacom_content, + parse_tibiacom_tables, + try_enum, +) if TYPE_CHECKING: from tibiapy.models import Rune, Spell, SpellsSection diff --git a/tibiapy/parsers/world.py b/tibiapy/parsers/world.py index dccd086..ad35842 100644 --- a/tibiapy/parsers/world.py +++ b/tibiapy/parsers/world.py @@ -5,18 +5,24 @@ import re from typing import TYPE_CHECKING, Optional -from tibiapy.builders.world import (WorldBuilder, WorldEntryBuilder, - WorldOverviewBuilder) -from tibiapy.enums import (BattlEyeType, PvpType, - TransferType, WorldLocation) +from tibiapy.builders.world import WorldBuilder, WorldEntryBuilder, WorldOverviewBuilder +from tibiapy.enums import BattlEyeType, PvpType, TransferType, WorldLocation from tibiapy.errors import InvalidContentError from tibiapy.models import OnlineCharacter, WorldEntry -from tibiapy.utils import (parse_integer, parse_tibia_datetime, - parse_tibia_full_date, parse_tibiacom_content, - try_enum, parse_tables_map, get_rows, clean_text) +from tibiapy.utils import ( + clean_text, + get_rows, + parse_integer, + parse_tables_map, + parse_tibia_datetime, + parse_tibia_full_date, + parse_tibiacom_content, + try_enum, +) if TYPE_CHECKING: import bs4 + from tibiapy.models import World, WorldOverview __all__ = ( diff --git a/tibiapy/urls.py b/tibiapy/urls.py index aab15d7..9b18c2a 100644 --- a/tibiapy/urls.py +++ b/tibiapy/urls.py @@ -3,12 +3,23 @@ import datetime import urllib.parse -from typing import Optional, TYPE_CHECKING, Union +from typing import TYPE_CHECKING, Optional, Union if TYPE_CHECKING: - from tibiapy.enums import (BazaarType, HighscoresBattlEyeType, HighscoresCategory, HighscoresProfession, HouseOrder, - HouseStatus, HouseType, PvpTypeFilter, SpellGroup, SpellSorting, SpellType, - SpellVocationFilter) + from tibiapy.enums import ( + BazaarType, + HighscoresBattlEyeType, + HighscoresCategory, + HighscoresProfession, + HouseOrder, + HouseStatus, + HouseType, + PvpTypeFilter, + SpellGroup, + SpellSorting, + SpellType, + SpellVocationFilter, + ) from tibiapy.models import AuctionFilters diff --git a/tibiapy/utils.py b/tibiapy/utils.py index 21b2849..df2d7fa 100644 --- a/tibiapy/utils.py +++ b/tibiapy/utils.py @@ -5,8 +5,8 @@ import re import urllib.parse from collections import defaultdict -from typing import Any, Callable, Optional, TypeVar, TypedDict, Union from collections.abc import Iterable +from typing import Any, Callable, Optional, TypedDict, TypeVar, Union import bs4 from pydantic import BaseModel