TornAPIWrapper 2.3.1__tar.gz → 2.5.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. {tornapiwrapper-2.3.1/src/TornAPIWrapper.egg-info → tornapiwrapper-2.5.0}/PKG-INFO +2 -2
  2. {tornapiwrapper-2.3.1 → tornapiwrapper-2.5.0}/README.md +1 -1
  3. {tornapiwrapper-2.3.1 → tornapiwrapper-2.5.0}/src/TornAPIWrapper/__init__.py +2 -2
  4. {tornapiwrapper-2.3.1 → tornapiwrapper-2.5.0}/src/TornAPIWrapper/endpoints/user.py +28 -1
  5. {tornapiwrapper-2.3.1 → tornapiwrapper-2.5.0}/src/TornAPIWrapper/endpoints_async/user.py +28 -1
  6. {tornapiwrapper-2.3.1 → tornapiwrapper-2.5.0}/src/TornAPIWrapper/params/map.py +3 -2
  7. {tornapiwrapper-2.3.1 → tornapiwrapper-2.5.0}/src/TornAPIWrapper/type_hints.py +1 -0
  8. {tornapiwrapper-2.3.1 → tornapiwrapper-2.5.0/src/TornAPIWrapper.egg-info}/PKG-INFO +2 -2
  9. {tornapiwrapper-2.3.1 → tornapiwrapper-2.5.0}/LICENSE +0 -0
  10. {tornapiwrapper-2.3.1 → tornapiwrapper-2.5.0}/pyproject.toml +0 -0
  11. {tornapiwrapper-2.3.1 → tornapiwrapper-2.5.0}/setup.cfg +0 -0
  12. {tornapiwrapper-2.3.1 → tornapiwrapper-2.5.0}/src/TornAPIWrapper/__main__.py +0 -0
  13. {tornapiwrapper-2.3.1 → tornapiwrapper-2.5.0}/src/TornAPIWrapper/client.py +0 -0
  14. {tornapiwrapper-2.3.1 → tornapiwrapper-2.5.0}/src/TornAPIWrapper/client_async.py +0 -0
  15. {tornapiwrapper-2.3.1 → tornapiwrapper-2.5.0}/src/TornAPIWrapper/endpoints/__init__.py +0 -0
  16. {tornapiwrapper-2.3.1 → tornapiwrapper-2.5.0}/src/TornAPIWrapper/endpoints/faction.py +0 -0
  17. {tornapiwrapper-2.3.1 → tornapiwrapper-2.5.0}/src/TornAPIWrapper/endpoints/forum.py +0 -0
  18. {tornapiwrapper-2.3.1 → tornapiwrapper-2.5.0}/src/TornAPIWrapper/endpoints/key.py +0 -0
  19. {tornapiwrapper-2.3.1 → tornapiwrapper-2.5.0}/src/TornAPIWrapper/endpoints/market.py +0 -0
  20. {tornapiwrapper-2.3.1 → tornapiwrapper-2.5.0}/src/TornAPIWrapper/endpoints/property.py +0 -0
  21. {tornapiwrapper-2.3.1 → tornapiwrapper-2.5.0}/src/TornAPIWrapper/endpoints/racing.py +0 -0
  22. {tornapiwrapper-2.3.1 → tornapiwrapper-2.5.0}/src/TornAPIWrapper/endpoints/torn.py +0 -0
  23. {tornapiwrapper-2.3.1 → tornapiwrapper-2.5.0}/src/TornAPIWrapper/endpoints_async/__init__.py +0 -0
  24. {tornapiwrapper-2.3.1 → tornapiwrapper-2.5.0}/src/TornAPIWrapper/endpoints_async/faction.py +0 -0
  25. {tornapiwrapper-2.3.1 → tornapiwrapper-2.5.0}/src/TornAPIWrapper/endpoints_async/forum.py +0 -0
  26. {tornapiwrapper-2.3.1 → tornapiwrapper-2.5.0}/src/TornAPIWrapper/endpoints_async/key.py +0 -0
  27. {tornapiwrapper-2.3.1 → tornapiwrapper-2.5.0}/src/TornAPIWrapper/endpoints_async/market.py +0 -0
  28. {tornapiwrapper-2.3.1 → tornapiwrapper-2.5.0}/src/TornAPIWrapper/endpoints_async/property.py +0 -0
  29. {tornapiwrapper-2.3.1 → tornapiwrapper-2.5.0}/src/TornAPIWrapper/endpoints_async/racing.py +0 -0
  30. {tornapiwrapper-2.3.1 → tornapiwrapper-2.5.0}/src/TornAPIWrapper/endpoints_async/torn.py +0 -0
  31. {tornapiwrapper-2.3.1 → tornapiwrapper-2.5.0}/src/TornAPIWrapper/errors.py +0 -0
  32. {tornapiwrapper-2.3.1 → tornapiwrapper-2.5.0}/src/TornAPIWrapper/params/__init__.py +0 -0
  33. {tornapiwrapper-2.3.1 → tornapiwrapper-2.5.0}/src/TornAPIWrapper/params/builders.py +0 -0
  34. {tornapiwrapper-2.3.1 → tornapiwrapper-2.5.0}/src/TornAPIWrapper.egg-info/SOURCES.txt +0 -0
  35. {tornapiwrapper-2.3.1 → tornapiwrapper-2.5.0}/src/TornAPIWrapper.egg-info/dependency_links.txt +0 -0
  36. {tornapiwrapper-2.3.1 → tornapiwrapper-2.5.0}/src/TornAPIWrapper.egg-info/requires.txt +0 -0
  37. {tornapiwrapper-2.3.1 → tornapiwrapper-2.5.0}/src/TornAPIWrapper.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: TornAPIWrapper
3
- Version: 2.3.1
3
+ Version: 2.5.0
4
4
  Summary: A Python wrapper for the Torn City API, providing access to Torn City data.
5
5
  Author: cxdzc
6
6
  License: The MIT License (MIT)
@@ -53,7 +53,7 @@ Dynamic: license-file
53
53
  <a href="https://pypi.org/project/TornAPIWrapper/"><img src=https://img.shields.io/pypi/v/tornapiwrapper?cacheSeconds=300></a>
54
54
  <a href="https://pypi.org/project/TornAPIWrapper/"><img src=https://img.shields.io/pypi/pyversions/tornapiwrapper?cacheSeconds=300></a>
55
55
  <a href="https://pypi.org/project/TornAPIWrapper/"><img src=https://img.shields.io/pepy/dt/tornapiwrapper?color=blue&cacheSeconds=300></a>
56
- <a href="https://www.torn.com/api.html#:~:text=Patch%20Notes"><img src=https://img.shields.io/badge/patch-10.03.2026-c4c4c4?cacheSeconds=300></a>
56
+ <a href="https://www.torn.com/api.html#:~:text=Patch%20Notes"><img src=https://img.shields.io/badge/patch-20.04.2026-c4c4c4?cacheSeconds=300></a>
57
57
  <a rel="license" href="https://github.com/cxdzc/TornAPIWrapper/blob/main/LICENSE"><img alt="MIT License" src="https://img.shields.io/badge/license-MIT-ab1436"/></a>
58
58
  </div>
59
59
 
@@ -6,7 +6,7 @@
6
6
  <a href="https://pypi.org/project/TornAPIWrapper/"><img src=https://img.shields.io/pypi/v/tornapiwrapper?cacheSeconds=300></a>
7
7
  <a href="https://pypi.org/project/TornAPIWrapper/"><img src=https://img.shields.io/pypi/pyversions/tornapiwrapper?cacheSeconds=300></a>
8
8
  <a href="https://pypi.org/project/TornAPIWrapper/"><img src=https://img.shields.io/pepy/dt/tornapiwrapper?color=blue&cacheSeconds=300></a>
9
- <a href="https://www.torn.com/api.html#:~:text=Patch%20Notes"><img src=https://img.shields.io/badge/patch-10.03.2026-c4c4c4?cacheSeconds=300></a>
9
+ <a href="https://www.torn.com/api.html#:~:text=Patch%20Notes"><img src=https://img.shields.io/badge/patch-20.04.2026-c4c4c4?cacheSeconds=300></a>
10
10
  <a rel="license" href="https://github.com/cxdzc/TornAPIWrapper/blob/main/LICENSE"><img alt="MIT License" src="https://img.shields.io/badge/license-MIT-ab1436"/></a>
11
11
  </div>
12
12
 
@@ -26,8 +26,8 @@ __author__ = "cxdzc"
26
26
  __copyright__ = "Copyright 2023-Present cxdzc"
27
27
  __license__ = "MIT"
28
28
  __title__ = "TornAPIWrapper"
29
- __version__ = "2.3.1"
30
- __patch__ = "10.03.2026"
29
+ __version__ = "2.5.0"
30
+ __patch__ = "20.04.2026"
31
31
 
32
32
  from .errors import (
33
33
  WrapperError,
@@ -29,7 +29,7 @@ from typing import TYPE_CHECKING
29
29
  from ..params.builders import build_params
30
30
  from ..type_hints import SortOptions, RaceCatOptions, UserListCatOptions, AttackFiltersOptions, \
31
31
  UserPropertiesFiltersOptions, ReportCatOptions, UserPrsnlStatsCatOptions, UserPrsnlStatsStatOptions, \
32
- UserTradeCatOptions
32
+ UserTradeCatOptions, UserInventoryCatOptions
33
33
 
34
34
  if TYPE_CHECKING:
35
35
  from ..client import TornAPIWrapper
@@ -145,6 +145,18 @@ class User:
145
145
  """
146
146
  return self.api.request("/user/calendar", build_params(self.get_calendar, locals()))
147
147
 
148
+ def get_casino(self, timestamp: int = None, comment: str = None) -> dict:
149
+ """
150
+ Get your casino streak & tokens.
151
+ API key (Limited).
152
+ Only available to yourself.
153
+ :param timestamp: Timestamp to bypass cache.
154
+ :param comment: Comment for your tool/service/bot/website to be visible in the logs.
155
+ :return: API response data.
156
+ :rtype: dict
157
+ """
158
+ return self.api.request("/user/casino", build_params(self.get_casino, locals()))
159
+
148
160
  def get_competition(self, user_id: int = None, timestamp: int = None, comment: str = None) -> dict:
149
161
  """
150
162
  Get your competition information or for a specific player.
@@ -365,6 +377,21 @@ class User:
365
377
  """
366
378
  return self.api.request("/user/icons", build_params(self.get_icons, locals()))
367
379
 
380
+ def get_inventory(self, inventory_category: UserInventoryCatOptions, limit: int = 20, offset: int = 0, timestamp: int = None, comment: str = None) -> dict:
381
+ """
382
+ Get your inventory.
383
+ API key (Limited).
384
+ Cached selection (1 hour per category).
385
+ :param inventory_category: Items category.
386
+ :param offset: Number of rows to skip before returning results.
387
+ :param limit: Number of results to return.
388
+ :param timestamp: Timestamp to bypass cache.
389
+ :param comment: Comment for your tool/service/bot/website to be visible in the logs.
390
+ :return: API response data.
391
+ :rtype: dict
392
+ """
393
+ return self.api.request("/user/inventory", build_params(self.get_inventory, locals()))
394
+
368
395
  def get_itemmarket(self, offset: int = 0, timestamp: int = None, comment: str = None) -> dict:
369
396
  """
370
397
  Get your item market listings for a specific item.
@@ -29,7 +29,7 @@ from typing import TYPE_CHECKING
29
29
  from ..params.builders import build_params
30
30
  from ..type_hints import SortOptions, RaceCatOptions, UserListCatOptions, AttackFiltersOptions, \
31
31
  UserPropertiesFiltersOptions, ReportCatOptions, UserPrsnlStatsCatOptions, UserPrsnlStatsStatOptions, \
32
- UserTradeCatOptions
32
+ UserTradeCatOptions, UserInventoryCatOptions
33
33
 
34
34
  if TYPE_CHECKING:
35
35
  from ..client_async import TornAPIWrapperAsync
@@ -145,6 +145,18 @@ class User:
145
145
  """
146
146
  return await self.api.request("/user/calendar", build_params(self.get_calendar, locals()))
147
147
 
148
+ async def get_casino(self, timestamp: int = None, comment: str = None) -> dict:
149
+ """
150
+ Get your casino streak & tokens.
151
+ API key (Limited).
152
+ Only available to yourself.
153
+ :param timestamp: Timestamp to bypass cache.
154
+ :param comment: Comment for your tool/service/bot/website to be visible in the logs.
155
+ :return: API response data.
156
+ :rtype: dict
157
+ """
158
+ return await self.api.request("/user/casino", build_params(self.get_casino, locals()))
159
+
148
160
  async def get_competition(self, user_id: int = None, timestamp: int = None, comment: str = None) -> dict:
149
161
  """
150
162
  Get your competition information or for a specific player.
@@ -365,6 +377,21 @@ class User:
365
377
  """
366
378
  return await self.api.request("/user/icons", build_params(self.get_icons, locals()))
367
379
 
380
+ async def get_inventory(self, inventory_category: UserInventoryCatOptions, limit: int = 20, offset: int = 0, timestamp: int = None, comment: str = None) -> dict:
381
+ """
382
+ Get your inventory.
383
+ API key (Limited).
384
+ Cached selection (1 hour per category).
385
+ :param inventory_category: Items category.
386
+ :param offset: Number of rows to skip before returning results.
387
+ :param limit: Number of results to return.
388
+ :param timestamp: Timestamp to bypass cache.
389
+ :param comment: Comment for your tool/service/bot/website to be visible in the logs.
390
+ :return: API response data.
391
+ :rtype: dict
392
+ """
393
+ return await self.api.request("/user/inventory", build_params(self.get_inventory, locals()))
394
+
368
395
  async def get_itemmarket(self, offset: int = 0, timestamp: int = None, comment: str = None) -> dict:
369
396
  """
370
397
  Get your item market listings for a specific item.
@@ -14,15 +14,15 @@ param_id = {
14
14
  "log_category_id_torn",
15
15
  "property_id",
16
16
  "property_type_id",
17
- "stock_id",
18
- "trade_id",
19
17
  "race_id",
20
18
  "raid_war_id",
21
19
  "ranked_war_id",
20
+ "stock_id",
22
21
  "team_id",
23
22
  "territory_war_id",
24
23
  "thread_id",
25
24
  "track_id",
25
+ "trade_id",
26
26
  "user_id",
27
27
  }
28
28
  param_cat = {
@@ -31,6 +31,7 @@ param_cat = {
31
31
  "car_category",
32
32
  "contributors_category",
33
33
  "crimes_category",
34
+ "inventory_category",
34
35
  "item_category",
35
36
  "leaderboard_category",
36
37
  "list_category",
@@ -32,6 +32,7 @@ ReportCatOptions = Literal["mostwanted", "money", "stats", "references", "friend
32
32
  UserTradeCatOptions = Literal["finished", "ongoing"]
33
33
  UserListCatOptions = Literal["Friends", "Enemies", "Targets"]
34
34
  UserPropertiesFiltersOptions = Literal["ownedByUser", "ownedBySpouse"]
35
+ UserInventoryCatOptions = Literal["Collectible", "Clothing", "Other", "Tool", "Melee", "Defensive", "Material", "Car", "Primary", "Secondary", "Book", "Special", "Supply Pack", "Temporary", "Enhancer", "Artifact", "Flower", "Booster", "Medical", "Candy", "Jewelry", "Alcohol", "Plushie", "Drug", "Energy Drink"]
35
36
  UserPrsnlStatsCatOptions = Literal["all", "popular", "attacking", "battle_stats", "jobs", "trading", "jail", "hospital", "finishing_hits", "communication", "crimes", "bounties", "investments", "items", "travel", "drugs", "missions", "racing", "networth", "other", "itemmarketcustomers", "itemmarketsales", "itemmarketrevenue", "itemmarketfees"]
36
37
  UserPrsnlStatsStatOptions = Literal["attackswon", "attackslost", "attacksdraw", "attacksassisted", "defendswon", "defendslost", "defendsstalemated", "elo", "yourunaway", "theyrunaway", "unarmoredwon", "bestkillstreak", "attackhits", "attackmisses", "attackdamage", "bestdamage", "onehitkills", "attackcriticalhits", "roundsfired", "specialammoused", "hollowammoused", "tracerammoused", "piercingammoused", "incendiaryammoused", "attacksstealthed", "retals", "moneymugged", "largestmug", "itemslooted", "highestbeaten", "respectforfaction", "rankedwarhits", "raidhits", "territoryjoins", "territoryclears", "territorytime", "jobpointsused", "trainsreceived", "marketitemsbought", "auctionswon", "auctionsells", "itemssent", "trades", "cityitemsbought", "pointsbought", "pointssold", "bazaarcustomers", "bazaarsales", "bazaarprofit", "jailed", "peoplebusted", "failedbusts", "peoplebought", "peopleboughtspent", "hospital", "medicalitemsused", "bloodwithdrawn", "reviveskill", "revives", "revivesreceived", "heavyhits", "machinehits", "riflehits", "smghits", "shotgunhits", "pistolhits", "temphits", "piercinghits", "slashinghits", "clubbinghits", "mechanicalhits", "h2hhits", "mailssent", "friendmailssent", "factionmailssent", "companymailssent", "spousemailssent", "classifiedadsplaced", "personalsplaced", "criminaloffensesold", "sellillegalgoods", "theftold", "autotheftcrime", "drugdealscrime", "computercrime", "fraudold", "murdercrime", "othercrime", "organizedcrimes", "bountiesplaced", "totalbountyspent", "bountiescollected", "totalbountyreward", "bountiesreceived", "receivedbountyvalue", "cityfinds", "dumpfinds", "itemsdumped", "booksread", "boostersused", "consumablesused", "candyused", "alcoholused", "energydrinkused", "statenhancersused", "eastereggsfound", "eastereggsused", "virusescoded", "traveltimes", "timespenttraveling", "itemsboughtabroad", "attackswonabroad", "defendslostabroad", "argtravel", "mextravel", "uaetravel", "hawtravel", "japtravel", "uktravel", "satravel", "switravel", "chitravel", "cantravel", "caytravel", "drugsused", "overdosed", "rehabs", "rehabcost", "cantaken", "exttaken", "kettaken", "lsdtaken", "opitaken", "pcptaken", "shrtaken", "spetaken", "victaken", "xantaken", "missionscompleted", "contractscompleted", "dukecontractscompleted", "missioncreditsearned", "racingskill", "racingpointsearned", "racesentered", "raceswon", "networth", "timeplayed", "activestreak", "bestactivestreak", "awards", "refills", "nerverefills", "tokenrefills", "meritsbought", "daysbeendonator", "criminaloffenses", "vandalism", "theft", "counterfeiting", "fraud", "illicitservices", "cybercrime", "extortion", "illegalproduction", "currentkillstreak", "strength", "defense", "speed", "dexterity", "totalstats", "manuallabor", "intelligence", "endurance", "totalworkingstats", "moneyinvested", "investedprofit", "investamount", "banktimeleft", "stockprofits", "stocklosses", "stockfees", "stocknetprofits", "stockpayouts", "networthwallet", "networthvault", "networthbank", "networthcayman", "networthpoints", "networthitems", "networthdisplaycase", "networthbazaar", "networthitemmarket", "networthproperties", "networthstockmarket", "networthauctionhouse", "networthbookie", "networthcompany", "networthenlistedcars", "networthpiggybank", "networthpending", "networthloan", "networthunpaidfees", "huntingskill", "searchforcashskill", "bootleggingskill", "graffitiskill", "shopliftingskill", "pickpocketingskill", "cardskimmingskill", "burglaryskill", "hustlingskill", "disposalskill", "crackingskill", "forgeryskill", "scammingskill", "arsonskill"]
37
38
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: TornAPIWrapper
3
- Version: 2.3.1
3
+ Version: 2.5.0
4
4
  Summary: A Python wrapper for the Torn City API, providing access to Torn City data.
5
5
  Author: cxdzc
6
6
  License: The MIT License (MIT)
@@ -53,7 +53,7 @@ Dynamic: license-file
53
53
  <a href="https://pypi.org/project/TornAPIWrapper/"><img src=https://img.shields.io/pypi/v/tornapiwrapper?cacheSeconds=300></a>
54
54
  <a href="https://pypi.org/project/TornAPIWrapper/"><img src=https://img.shields.io/pypi/pyversions/tornapiwrapper?cacheSeconds=300></a>
55
55
  <a href="https://pypi.org/project/TornAPIWrapper/"><img src=https://img.shields.io/pepy/dt/tornapiwrapper?color=blue&cacheSeconds=300></a>
56
- <a href="https://www.torn.com/api.html#:~:text=Patch%20Notes"><img src=https://img.shields.io/badge/patch-10.03.2026-c4c4c4?cacheSeconds=300></a>
56
+ <a href="https://www.torn.com/api.html#:~:text=Patch%20Notes"><img src=https://img.shields.io/badge/patch-20.04.2026-c4c4c4?cacheSeconds=300></a>
57
57
  <a rel="license" href="https://github.com/cxdzc/TornAPIWrapper/blob/main/LICENSE"><img alt="MIT License" src="https://img.shields.io/badge/license-MIT-ab1436"/></a>
58
58
  </div>
59
59
 
File without changes
File without changes