TornAPIWrapper 2.9.0__tar.gz → 2.10.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 (40) hide show
  1. {tornapiwrapper-2.9.0/src/TornAPIWrapper.egg-info → tornapiwrapper-2.10.0}/PKG-INFO +2 -2
  2. {tornapiwrapper-2.9.0 → tornapiwrapper-2.10.0}/README.md +1 -1
  3. {tornapiwrapper-2.9.0 → tornapiwrapper-2.10.0}/src/TornAPIWrapper/__init__.py +2 -2
  4. {tornapiwrapper-2.9.0 → tornapiwrapper-2.10.0}/src/TornAPIWrapper/client.py +7 -3
  5. {tornapiwrapper-2.9.0 → tornapiwrapper-2.10.0}/src/TornAPIWrapper/client_async.py +7 -3
  6. {tornapiwrapper-2.9.0 → tornapiwrapper-2.10.0}/src/TornAPIWrapper/endpoints/faction.py +14 -0
  7. {tornapiwrapper-2.9.0 → tornapiwrapper-2.10.0}/src/TornAPIWrapper/endpoints_async/faction.py +14 -0
  8. tornapiwrapper-2.10.0/src/TornAPIWrapper/text_response_endpoints.py +1 -0
  9. {tornapiwrapper-2.9.0 → tornapiwrapper-2.10.0/src/TornAPIWrapper.egg-info}/PKG-INFO +2 -2
  10. {tornapiwrapper-2.9.0 → tornapiwrapper-2.10.0}/src/TornAPIWrapper.egg-info/SOURCES.txt +1 -0
  11. {tornapiwrapper-2.9.0 → tornapiwrapper-2.10.0}/LICENSE +0 -0
  12. {tornapiwrapper-2.9.0 → tornapiwrapper-2.10.0}/pyproject.toml +0 -0
  13. {tornapiwrapper-2.9.0 → tornapiwrapper-2.10.0}/setup.cfg +0 -0
  14. {tornapiwrapper-2.9.0 → tornapiwrapper-2.10.0}/src/TornAPIWrapper/__main__.py +0 -0
  15. {tornapiwrapper-2.9.0 → tornapiwrapper-2.10.0}/src/TornAPIWrapper/endpoints/__init__.py +0 -0
  16. {tornapiwrapper-2.9.0 → tornapiwrapper-2.10.0}/src/TornAPIWrapper/endpoints/company.py +0 -0
  17. {tornapiwrapper-2.9.0 → tornapiwrapper-2.10.0}/src/TornAPIWrapper/endpoints/forum.py +0 -0
  18. {tornapiwrapper-2.9.0 → tornapiwrapper-2.10.0}/src/TornAPIWrapper/endpoints/key.py +0 -0
  19. {tornapiwrapper-2.9.0 → tornapiwrapper-2.10.0}/src/TornAPIWrapper/endpoints/market.py +0 -0
  20. {tornapiwrapper-2.9.0 → tornapiwrapper-2.10.0}/src/TornAPIWrapper/endpoints/property.py +0 -0
  21. {tornapiwrapper-2.9.0 → tornapiwrapper-2.10.0}/src/TornAPIWrapper/endpoints/racing.py +0 -0
  22. {tornapiwrapper-2.9.0 → tornapiwrapper-2.10.0}/src/TornAPIWrapper/endpoints/torn.py +0 -0
  23. {tornapiwrapper-2.9.0 → tornapiwrapper-2.10.0}/src/TornAPIWrapper/endpoints/user.py +0 -0
  24. {tornapiwrapper-2.9.0 → tornapiwrapper-2.10.0}/src/TornAPIWrapper/endpoints_async/__init__.py +0 -0
  25. {tornapiwrapper-2.9.0 → tornapiwrapper-2.10.0}/src/TornAPIWrapper/endpoints_async/company.py +0 -0
  26. {tornapiwrapper-2.9.0 → tornapiwrapper-2.10.0}/src/TornAPIWrapper/endpoints_async/forum.py +0 -0
  27. {tornapiwrapper-2.9.0 → tornapiwrapper-2.10.0}/src/TornAPIWrapper/endpoints_async/key.py +0 -0
  28. {tornapiwrapper-2.9.0 → tornapiwrapper-2.10.0}/src/TornAPIWrapper/endpoints_async/market.py +0 -0
  29. {tornapiwrapper-2.9.0 → tornapiwrapper-2.10.0}/src/TornAPIWrapper/endpoints_async/property.py +0 -0
  30. {tornapiwrapper-2.9.0 → tornapiwrapper-2.10.0}/src/TornAPIWrapper/endpoints_async/racing.py +0 -0
  31. {tornapiwrapper-2.9.0 → tornapiwrapper-2.10.0}/src/TornAPIWrapper/endpoints_async/torn.py +0 -0
  32. {tornapiwrapper-2.9.0 → tornapiwrapper-2.10.0}/src/TornAPIWrapper/endpoints_async/user.py +0 -0
  33. {tornapiwrapper-2.9.0 → tornapiwrapper-2.10.0}/src/TornAPIWrapper/errors.py +0 -0
  34. {tornapiwrapper-2.9.0 → tornapiwrapper-2.10.0}/src/TornAPIWrapper/params/__init__.py +0 -0
  35. {tornapiwrapper-2.9.0 → tornapiwrapper-2.10.0}/src/TornAPIWrapper/params/builders.py +0 -0
  36. {tornapiwrapper-2.9.0 → tornapiwrapper-2.10.0}/src/TornAPIWrapper/params/map.py +0 -0
  37. {tornapiwrapper-2.9.0 → tornapiwrapper-2.10.0}/src/TornAPIWrapper/type_hints.py +0 -0
  38. {tornapiwrapper-2.9.0 → tornapiwrapper-2.10.0}/src/TornAPIWrapper.egg-info/dependency_links.txt +0 -0
  39. {tornapiwrapper-2.9.0 → tornapiwrapper-2.10.0}/src/TornAPIWrapper.egg-info/requires.txt +0 -0
  40. {tornapiwrapper-2.9.0 → tornapiwrapper-2.10.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.9.0
3
+ Version: 2.10.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-01.06.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-16.07.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-01.06.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-16.07.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.9.0"
30
- __patch__ = "01.06.2026"
29
+ __version__ = "2.10.0"
30
+ __patch__ = "16.07.2026"
31
31
 
32
32
  from .errors import (
33
33
  WrapperError,
@@ -35,6 +35,8 @@ from .endpoints.racing import Racing
35
35
  from .endpoints.torn import Torn
36
36
  from .endpoints.user import User
37
37
  from .errors import TornAPIErrorHandler
38
+ from .text_response_endpoints import text_response_endpoints
39
+
38
40
 
39
41
  class TornAPIWrapper:
40
42
  """
@@ -59,16 +61,18 @@ class TornAPIWrapper:
59
61
  self.key: Key = Key(self)
60
62
  self.torn: Torn = Torn(self)
61
63
 
62
- def request(self, endpoint: str, params: dict | None) -> dict:
64
+ def request(self, endpoint: str, params: dict | None) -> dict | str:
63
65
  """
64
- Sends a request to the Torn API and returns the JSON response.
66
+ Sends a request to the Torn API and returns either JSON data or raw text.
65
67
  :param endpoint: Torn API endpoint path.
66
68
  :param params: Query parameters to include in the request.
67
69
  :return: API response data.
68
- :rtype: dict
70
+ :rtype: dict | str
69
71
  """
70
72
  api_request = self.session.get(url=f"{self.BASE_URL}{endpoint}", params=params, timeout=self.request_timeout)
71
73
  api_request.raise_for_status()
74
+ if endpoint in text_response_endpoints:
75
+ return api_request.text
72
76
  api_request_json = api_request.json()
73
77
  api_request_error = api_request_json.get("error")
74
78
  if api_request_error:
@@ -35,6 +35,8 @@ from .endpoints_async.racing import Racing
35
35
  from .endpoints_async.torn import Torn
36
36
  from .endpoints_async.user import User
37
37
  from .errors import TornAPIErrorHandler
38
+ from .text_response_endpoints import text_response_endpoints
39
+
38
40
 
39
41
  class TornAPIWrapperAsync:
40
42
  """
@@ -65,16 +67,18 @@ class TornAPIWrapperAsync:
65
67
  self.key: Key = Key(self)
66
68
  self.torn: Torn = Torn(self)
67
69
 
68
- async def request(self, endpoint: str, params: dict | None) -> dict:
70
+ async def request(self, endpoint: str, params: dict | None) -> dict | str:
69
71
  """
70
- Sends a request to the Torn API and returns the JSON response.
72
+ Sends a request to the Torn API and returns either JSON data or raw text.
71
73
  :param endpoint: Torn API endpoint path.
72
74
  :param params: Query parameters to include in the request.
73
75
  :return: API response data.
74
- :rtype: dict
76
+ :rtype: dict | str
75
77
  """
76
78
  async with self.session.get(url=f"{self.BASE_URL}{endpoint}", params=params) as api_request:
77
79
  api_request.raise_for_status()
80
+ if endpoint in text_response_endpoints:
81
+ return await api_request.text()
78
82
  api_request_json = await api_request.json()
79
83
  api_request_error = api_request_json.get("error")
80
84
  if api_request_error:
@@ -402,6 +402,20 @@ class Faction:
402
402
  """
403
403
  return self.api.request("/faction/search", build_params(self.get_search, locals()))
404
404
 
405
+ def get_snapshot(self, timestamp: int = None, comment: str = None) -> dict:
406
+ """
407
+ Get daily factions snapshot CSV.
408
+ API key (Public).
409
+ Returns a CSV daily snapshot of factions.
410
+ This selection is standalone and cannot be used together with other selections.
411
+ CSV columns: id, name, tag, tag_image, banner_image, leader_id, co_leader_id, respect, days_old, rank, members, members_max, member_list, recruiting, destroyed_timestamp
412
+ :param timestamp: Timestamp to bypass cache.
413
+ :param comment: Comment for your tool/service/bot/website to be visible in the logs.
414
+ :return: API response data.
415
+ :rtype: dict
416
+ """
417
+ return self.api.request("/faction/snapshot", build_params(self.get_snapshot, locals()))
418
+
405
419
  def get_stats(self, timestamp: int = None, comment: str = None) -> dict:
406
420
  """
407
421
  Get your faction's challenges stats.
@@ -402,6 +402,20 @@ class Faction:
402
402
  """
403
403
  return await self.api.request("/faction/search", build_params(self.get_search, locals()))
404
404
 
405
+ async def get_snapshot(self, timestamp: int = None, comment: str = None) -> dict:
406
+ """
407
+ Get daily factions snapshot CSV.
408
+ API key (Public).
409
+ Returns a CSV daily snapshot of factions.
410
+ This selection is standalone and cannot be used together with other selections.
411
+ CSV columns: id, name, tag, tag_image, banner_image, leader_id, co_leader_id, respect, days_old, rank, members, members_max, member_list, recruiting, destroyed_timestamp
412
+ :param timestamp: Timestamp to bypass cache.
413
+ :param comment: Comment for your tool/service/bot/website to be visible in the logs.
414
+ :return: API response data.
415
+ :rtype: dict
416
+ """
417
+ return await self.api.request("/faction/snapshot", build_params(self.get_snapshot, locals()))
418
+
405
419
  async def get_stats(self, timestamp: int = None, comment: str = None) -> dict:
406
420
  """
407
421
  Get your faction's challenges stats.
@@ -0,0 +1 @@
1
+ text_response_endpoints = {"/company/snapshot"}
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: TornAPIWrapper
3
- Version: 2.9.0
3
+ Version: 2.10.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-01.06.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-16.07.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,6 +6,7 @@ src/TornAPIWrapper/__main__.py
6
6
  src/TornAPIWrapper/client.py
7
7
  src/TornAPIWrapper/client_async.py
8
8
  src/TornAPIWrapper/errors.py
9
+ src/TornAPIWrapper/text_response_endpoints.py
9
10
  src/TornAPIWrapper/type_hints.py
10
11
  src/TornAPIWrapper.egg-info/PKG-INFO
11
12
  src/TornAPIWrapper.egg-info/SOURCES.txt
File without changes