diff --git a/torngen/VERSION b/torngen/VERSION index 9b9a244..1aa5e41 100644 --- a/torngen/VERSION +++ b/torngen/VERSION @@ -1 +1 @@ -6.0.2 +6.0.4 diff --git a/torngen/base_query.py b/torngen/base_query.py index 4d826dd..26e67e5 100644 --- a/torngen/base_query.py +++ b/torngen/base_query.py @@ -6,7 +6,7 @@ from .base_path import Path from .base_schema import BaseSchema -VERSION = "6.0.2" +VERSION = "6.0.4" class _URLComponents(typing.NamedTuple): diff --git a/torngen/path/market_id.py b/torngen/path/market_id.py index 81d0686..0225d17 100644 --- a/torngen/path/market_id.py +++ b/torngen/path/market_id.py @@ -1,7 +1,7 @@ from ..base_path import Path from ..base_query import BaseQuery from ..parameter import Parameter -from ..schema.auction_house_listing import AuctionHouseListing +from ..schema.auction_house_listing_response import AuctionHouseListingResponse from ..schema.auction_house_response import AuctionHouseResponse from ..schema.bazaar_response_specialized import BazaarResponseSpecialized from ..schema.market_item_market_response import MarketItemMarketResponse @@ -60,7 +60,7 @@ class MarketId(BaseQuery): auctionhouselisting = Path( "/market/{id}/auctionhouselisting", - AuctionHouseListing, + AuctionHouseListingResponse, id=Parameter("id", "path", required=True, deprecated=False), timestamp=Parameter("timestamp", "query", required=False, deprecated=False), comment=Parameter("comment", "query", required=False, deprecated=False), diff --git a/torngen/path/user.py b/torngen/path/user.py index edec804..3f93c47 100644 --- a/torngen/path/user.py +++ b/torngen/path/user.py @@ -234,7 +234,7 @@ class User(BaseQuery): key=Parameter("key", "query", required=False, deprecated=False), ) """ - `/user/organizedcrimes`: Get available slots for organized crimes with status 'Recruiting' + `/user/organizedcrimes`: Get your available slots for organized crimes with status 'Recruiting' Requires minimal access key. Unlike 'faction' -> 'crimes', this selection only shows empty slots, and only for crimes with the 'Recruiting' status. # Parameters @@ -713,7 +713,7 @@ class User(BaseQuery): key=Parameter("key", "query", required=False, deprecated=False), ) """ - `/user/races`: Get user races + `/user/races`: Get your races Requires minimal access key. Returns a list of user races, ordered by race start timestamp. # Parameters diff --git a/torngen/schema/auction_house_listing_response.py b/torngen/schema/auction_house_listing_response.py new file mode 100644 index 0000000..289ba4b --- /dev/null +++ b/torngen/schema/auction_house_listing_response.py @@ -0,0 +1,22 @@ +import typing +from dataclasses import dataclass + +from ..base_schema import BaseSchema +from .auction_house_listing import AuctionHouseListing + + +@dataclass +class AuctionHouseListingResponse(BaseSchema): + """ + JSON object of `AuctionHouseListingResponse`. + """ + + auctionhouselisting: AuctionHouseListing + + @staticmethod + def parse(data): + return AuctionHouseListingResponse( + auctionhouselisting=BaseSchema.parse( + data.get("auctionhouselisting"), AuctionHouseListing + ), + ) diff --git a/torngen/schema/company_upgrades.py b/torngen/schema/company_upgrades.py index 0d8664e..70b4ee2 100644 --- a/torngen/schema/company_upgrades.py +++ b/torngen/schema/company_upgrades.py @@ -3,7 +3,6 @@ from ..base_schema import BaseSchema from .company_staff_room_size_enum import CompanyStaffRoomSizeEnum -from .company_storage_size_enum import CompanyStorageSizeEnum @dataclass @@ -12,16 +11,14 @@ class CompanyUpgrades(BaseSchema): JSON object of `CompanyUpgrades`. """ - storage_capacity: CompanyStorageSizeEnum + storage_capacity: int storage: str staff_room: CompanyStaffRoomSizeEnum @staticmethod def parse(data): return CompanyUpgrades( - storage_capacity=BaseSchema.parse( - data.get("storage_capacity"), CompanyStorageSizeEnum - ), + storage_capacity=BaseSchema.parse(data.get("storage_capacity"), int), storage=BaseSchema.parse(data.get("storage"), str), staff_room=BaseSchema.parse( data.get("staff_room"), CompanyStaffRoomSizeEnum diff --git a/torngen/schema/faction_chain_report_attacker_attacks.py b/torngen/schema/faction_chain_report_attacker_attacks.py index 79f7d02..acde5f9 100644 --- a/torngen/schema/faction_chain_report_attacker_attacks.py +++ b/torngen/schema/faction_chain_report_attacker_attacks.py @@ -18,7 +18,7 @@ class FactionChainReportAttackerAttacks(BaseSchema): losses: int leave: int hospitalize: int - escapes: typing.Optional[int] + escapes: int draws: int bonuses: int assists: int @@ -34,7 +34,7 @@ def parse(data): losses=BaseSchema.parse(data.get("losses"), int), leave=BaseSchema.parse(data.get("leave"), int), hospitalize=BaseSchema.parse(data.get("hospitalize"), int), - escapes=BaseSchema.parse(data.get("escapes"), typing.Optional[int]), + escapes=BaseSchema.parse(data.get("escapes"), int), draws=BaseSchema.parse(data.get("draws"), int), bonuses=BaseSchema.parse(data.get("bonuses"), int), assists=BaseSchema.parse(data.get("assists"), int), diff --git a/torngen/schema/faction_raid_war_report_response.py b/torngen/schema/faction_raid_war_report_response.py index 64fa638..3157221 100644 --- a/torngen/schema/faction_raid_war_report_response.py +++ b/torngen/schema/faction_raid_war_report_response.py @@ -11,12 +11,10 @@ class FactionRaidWarReportResponse(BaseSchema): JSON object of `FactionRaidWarReportResponse`. """ - raidreport: typing.List[FactionRaidReport] + raidreport: FactionRaidReport @staticmethod def parse(data): return FactionRaidWarReportResponse( - raidreport=BaseSchema.parse( - data.get("raidreport"), typing.List[FactionRaidReport] - ), + raidreport=BaseSchema.parse(data.get("raidreport"), FactionRaidReport), ) diff --git a/torngen/schema/faction_territory_war_report_response.py b/torngen/schema/faction_territory_war_report_response.py index d013e68..459e9b9 100644 --- a/torngen/schema/faction_territory_war_report_response.py +++ b/torngen/schema/faction_territory_war_report_response.py @@ -11,12 +11,12 @@ class FactionTerritoryWarReportResponse(BaseSchema): JSON object of `FactionTerritoryWarReportResponse`. """ - territorywarreport: typing.List[FactionTerritoryWarReport] + territorywarreport: FactionTerritoryWarReport @staticmethod def parse(data): return FactionTerritoryWarReportResponse( territorywarreport=BaseSchema.parse( - data.get("territorywarreport"), typing.List[FactionTerritoryWarReport] + data.get("territorywarreport"), FactionTerritoryWarReport ), ) diff --git a/torngen/schema/faction_upgrade_details.py b/torngen/schema/faction_upgrade_details.py index 66912ce..bc3eae7 100644 --- a/torngen/schema/faction_upgrade_details.py +++ b/torngen/schema/faction_upgrade_details.py @@ -11,7 +11,7 @@ class FactionUpgradeDetails(BaseSchema): JSON object of `FactionUpgradeDetails`. """ - unlocked_at: typing.Optional[int] + unlocked_at: int name: str level: int id: FactionBranchId @@ -21,7 +21,7 @@ class FactionUpgradeDetails(BaseSchema): @staticmethod def parse(data): return FactionUpgradeDetails( - unlocked_at=BaseSchema.parse(data.get("unlocked_at"), typing.Optional[int]), + unlocked_at=BaseSchema.parse(data.get("unlocked_at"), int), name=BaseSchema.parse(data.get("name"), str), level=BaseSchema.parse(data.get("level"), int), id=BaseSchema.parse(data.get("id"), FactionBranchId), diff --git a/torngen/schema/personal_stats_attacking_public.py b/torngen/schema/personal_stats_attacking_public.py index b1cfd44..3a1f0e0 100644 --- a/torngen/schema/personal_stats_attacking_public.py +++ b/torngen/schema/personal_stats_attacking_public.py @@ -34,9 +34,7 @@ class PersonalStatsAttackingPublic(BaseSchema): "raid_hits": int, }, ), - "escapes": typing.Optional[ - typing.TypedDict("", {"player": int, "foes": int}) - ], + "escapes": typing.TypedDict("", {"player": int, "foes": int}), "elo": int, "defends": typing.TypedDict( "", {"won": int, "total": int, "stalemate": int, "lost": int} @@ -111,9 +109,7 @@ def parse(data): "raid_hits": int, }, ), - "escapes": typing.Optional[ - typing.TypedDict("", {"player": int, "foes": int}) - ], + "escapes": typing.TypedDict("", {"player": int, "foes": int}), "elo": int, "defends": typing.TypedDict( "", diff --git a/torngen/schema/torn_education_rewards.py b/torngen/schema/torn_education_rewards.py index 947bf6c..a3c0cca 100644 --- a/torngen/schema/torn_education_rewards.py +++ b/torngen/schema/torn_education_rewards.py @@ -18,7 +18,7 @@ class TornEducationRewards(BaseSchema): "endurance": None | int, }, ) - honor: None | str + honor: None | int effect: None | str @staticmethod @@ -35,6 +35,6 @@ def parse(data): }, ), ), - honor=BaseSchema.parse(data.get("honor"), None | str), + honor=BaseSchema.parse(data.get("honor"), None | int), effect=BaseSchema.parse(data.get("effect"), None | str), ) diff --git a/torngen/schema/user_bar.py b/torngen/schema/user_bar.py index a01d1fb..b2bba2d 100644 --- a/torngen/schema/user_bar.py +++ b/torngen/schema/user_bar.py @@ -10,12 +10,20 @@ class UserBar(BaseSchema): JSON object of `UserBar`. """ + tick_time: int maximum: int + interval: int + increment: int + full_time: int current: int @staticmethod def parse(data): return UserBar( + tick_time=BaseSchema.parse(data.get("tick_time"), int), maximum=BaseSchema.parse(data.get("maximum"), int), + interval=BaseSchema.parse(data.get("interval"), int), + increment=BaseSchema.parse(data.get("increment"), int), + full_time=BaseSchema.parse(data.get("full_time"), int), current=BaseSchema.parse(data.get("current"), int), ) diff --git a/torngen/schema/user_forum_subscribed_threads_response.py b/torngen/schema/user_forum_subscribed_threads_response.py index 8ecf847..d435c89 100644 --- a/torngen/schema/user_forum_subscribed_threads_response.py +++ b/torngen/schema/user_forum_subscribed_threads_response.py @@ -11,13 +11,12 @@ class UserForumSubscribedThreadsResponse(BaseSchema): JSON object of `UserForumSubscribedThreadsResponse`. """ - forumSubscribedThreads: typing.Optional[typing.List[ForumSubscribedThread]] + forumSubscribedThreads: typing.List[ForumSubscribedThread] @staticmethod def parse(data): return UserForumSubscribedThreadsResponse( forumSubscribedThreads=BaseSchema.parse( - data.get("forumSubscribedThreads"), - typing.Optional[typing.List[ForumSubscribedThread]], + data.get("forumSubscribedThreads"), typing.List[ForumSubscribedThread] ), ) diff --git a/torngen/schema/user_icon_private.py b/torngen/schema/user_icon_private.py index 16d790d..8848c0d 100644 --- a/torngen/schema/user_icon_private.py +++ b/torngen/schema/user_icon_private.py @@ -11,7 +11,7 @@ class UserIconPrivate(BaseSchema): until: None | int title: str id: UserIconId - description: str + description: None | str @staticmethod def parse(data): @@ -19,5 +19,5 @@ def parse(data): until=BaseSchema.parse(data.get("until"), None | int), title=BaseSchema.parse(data.get("title"), str), id=BaseSchema.parse(data.get("id"), UserIconId), - description=BaseSchema.parse(data.get("description"), str), + description=BaseSchema.parse(data.get("description"), None | str), ) diff --git a/torngen/schema/user_icon_public.py b/torngen/schema/user_icon_public.py index d62d21d..9721114 100644 --- a/torngen/schema/user_icon_public.py +++ b/torngen/schema/user_icon_public.py @@ -13,12 +13,12 @@ class UserIconPublic(BaseSchema): title: str id: UserIconId - description: str + description: None | str @staticmethod def parse(data): return UserIconPublic( title=BaseSchema.parse(data.get("title"), str), id=BaseSchema.parse(data.get("id"), UserIconId), - description=BaseSchema.parse(data.get("description"), str), + description=BaseSchema.parse(data.get("description"), None | str), ) diff --git a/torngen/schema/user_missions_response.py b/torngen/schema/user_missions_response.py index da42dc1..81e3f5b 100644 --- a/torngen/schema/user_missions_response.py +++ b/torngen/schema/user_missions_response.py @@ -24,7 +24,7 @@ class UserMissionsResponse(BaseSchema): typing.TypedDict( "", { - "type": MissionRewardUpgrade, + "type": str | MissionRewardUpgrade, "expires_at": int, "details": MissionRewardDetailsItem | MissionRewardDetailsUpgrade @@ -77,7 +77,7 @@ def parse(data): typing.TypedDict( "", { - "type": MissionRewardUpgrade, + "type": str | MissionRewardUpgrade, "expires_at": int, "details": MissionRewardDetailsItem | MissionRewardDetailsUpgrade diff --git a/torngen/schema/user_organized_crimes_response.py b/torngen/schema/user_organized_crimes_response.py index 2700a0f..bcdcd6b 100644 --- a/torngen/schema/user_organized_crimes_response.py +++ b/torngen/schema/user_organized_crimes_response.py @@ -3,7 +3,6 @@ from ..base_schema import BaseSchema from .faction_crime import FactionCrime -from .request_metadata_with_links import RequestMetadataWithLinks @dataclass @@ -13,7 +12,6 @@ class UserOrganizedCrimesResponse(BaseSchema): """ organizedcrimes: typing.List[FactionCrime] - _metadata: RequestMetadataWithLinks @staticmethod def parse(data): @@ -21,5 +19,4 @@ def parse(data): organizedcrimes=BaseSchema.parse( data.get("organizedcrimes"), typing.List[FactionCrime] ), - _metadata=BaseSchema.parse(data.get("_metadata"), RequestMetadataWithLinks), ) diff --git a/torngen/schema/user_personal_stats_full_public.py b/torngen/schema/user_personal_stats_full_public.py index 8c9ce37..5ead10d 100644 --- a/torngen/schema/user_personal_stats_full_public.py +++ b/torngen/schema/user_personal_stats_full_public.py @@ -250,9 +250,7 @@ class UserPersonalStatsFullPublic(BaseSchema): "raid_hits": int, }, ), - "escapes": typing.Optional[ - typing.TypedDict("", {"player": int, "foes": int}) - ], + "escapes": typing.TypedDict("", {"player": int, "foes": int}), "elo": int, "defends": typing.TypedDict( "", {"won": int, "total": int, "stalemate": int, "lost": int} @@ -554,9 +552,9 @@ def parse(data): "raid_hits": int, }, ), - "escapes": typing.Optional[ - typing.TypedDict("", {"player": int, "foes": int}) - ], + "escapes": typing.TypedDict( + "", {"player": int, "foes": int} + ), "elo": int, "defends": typing.TypedDict( "", diff --git a/torngen/schema/user_property_details_extended.py b/torngen/schema/user_property_details_extended.py index 2286bfd..45ee8fd 100644 --- a/torngen/schema/user_property_details_extended.py +++ b/torngen/schema/user_property_details_extended.py @@ -13,7 +13,7 @@ class UserPropertyDetailsExtended(BaseSchema): used_by: typing.List[BasicUser] - status: typing.Literal["none", "in_use"] + status: typing.Literal["none", "in_use", "for_sale", "rented", "for_rent"] upkeep: typing.TypedDict("", {"staff": int, "property": int}) staff: typing.List[typing.TypedDict("", {"type": PropertyStaffEnum, "amount": int})] property: BasicProperty @@ -28,7 +28,8 @@ def parse(data): return UserPropertyDetailsExtended( used_by=BaseSchema.parse(data.get("used_by"), typing.List[BasicUser]), status=BaseSchema.parse( - data.get("status"), typing.Literal["none", "in_use"] + data.get("status"), + typing.Literal["none", "in_use", "for_sale", "rented", "for_rent"], ), upkeep=BaseSchema.parse( data.get("upkeep"), diff --git a/torngen/schema/user_stock_transaction.py b/torngen/schema/user_stock_transaction.py index 2f6ccb0..8115ec1 100644 --- a/torngen/schema/user_stock_transaction.py +++ b/torngen/schema/user_stock_transaction.py @@ -12,7 +12,7 @@ class UserStockTransaction(BaseSchema): timestamp: int shares: int - price: int + price: int | float id: int @staticmethod @@ -20,6 +20,6 @@ def parse(data): return UserStockTransaction( timestamp=BaseSchema.parse(data.get("timestamp"), int), shares=BaseSchema.parse(data.get("shares"), int), - price=BaseSchema.parse(data.get("price"), int), + price=BaseSchema.parse(data.get("price"), int | float), id=BaseSchema.parse(data.get("id"), int), )