python-xbox 0.1.0rc2__tar.gz → 0.1.0rc4__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 (66) hide show
  1. {python_xbox-0.1.0rc2 → python_xbox-0.1.0rc4}/LICENSE +2 -1
  2. {python_xbox-0.1.0rc2 → python_xbox-0.1.0rc4}/PKG-INFO +7 -4
  3. {python_xbox-0.1.0rc2 → python_xbox-0.1.0rc4}/pyproject.toml +21 -27
  4. {python_xbox-0.1.0rc2 → python_xbox-0.1.0rc4}/src/pythonxbox/__init__.py +1 -1
  5. {python_xbox-0.1.0rc2 → python_xbox-0.1.0rc4}/src/pythonxbox/api/client.py +2 -2
  6. {python_xbox-0.1.0rc2 → python_xbox-0.1.0rc4}/src/pythonxbox/api/language.py +7 -1
  7. {python_xbox-0.1.0rc2 → python_xbox-0.1.0rc4}/src/pythonxbox/api/provider/account/__init__.py +4 -2
  8. {python_xbox-0.1.0rc2 → python_xbox-0.1.0rc4}/src/pythonxbox/api/provider/achievements/__init__.py +6 -6
  9. {python_xbox-0.1.0rc2 → python_xbox-0.1.0rc4}/src/pythonxbox/api/provider/achievements/models.py +13 -13
  10. {python_xbox-0.1.0rc2 → python_xbox-0.1.0rc4}/src/pythonxbox/api/provider/baseprovider.py +7 -1
  11. {python_xbox-0.1.0rc2 → python_xbox-0.1.0rc4}/src/pythonxbox/api/provider/catalog/__init__.py +1 -3
  12. python_xbox-0.1.0rc4/src/pythonxbox/api/provider/catalog/models.py +428 -0
  13. {python_xbox-0.1.0rc2 → python_xbox-0.1.0rc4}/src/pythonxbox/api/provider/cqs/models.py +12 -12
  14. {python_xbox-0.1.0rc2 → python_xbox-0.1.0rc4}/src/pythonxbox/api/provider/gameclips/models.py +4 -5
  15. {python_xbox-0.1.0rc2 → python_xbox-0.1.0rc4}/src/pythonxbox/api/provider/lists/models.py +4 -6
  16. {python_xbox-0.1.0rc2 → python_xbox-0.1.0rc4}/src/pythonxbox/api/provider/mediahub/models.py +15 -17
  17. {python_xbox-0.1.0rc2 → python_xbox-0.1.0rc4}/src/pythonxbox/api/provider/message/models.py +14 -14
  18. {python_xbox-0.1.0rc2 → python_xbox-0.1.0rc4}/src/pythonxbox/api/provider/presence/__init__.py +3 -5
  19. python_xbox-0.1.0rc4/src/pythonxbox/api/provider/presence/models.py +53 -0
  20. {python_xbox-0.1.0rc2 → python_xbox-0.1.0rc4}/src/pythonxbox/api/provider/profile/__init__.py +2 -4
  21. {python_xbox-0.1.0rc2 → python_xbox-0.1.0rc4}/src/pythonxbox/api/provider/profile/models.py +2 -3
  22. {python_xbox-0.1.0rc2 → python_xbox-0.1.0rc4}/src/pythonxbox/api/provider/ratelimitedprovider.py +8 -6
  23. {python_xbox-0.1.0rc2 → python_xbox-0.1.0rc4}/src/pythonxbox/api/provider/screenshots/models.py +5 -5
  24. {python_xbox-0.1.0rc2 → python_xbox-0.1.0rc4}/src/pythonxbox/api/provider/smartglass/__init__.py +8 -5
  25. {python_xbox-0.1.0rc2 → python_xbox-0.1.0rc4}/src/pythonxbox/api/provider/smartglass/models.py +26 -27
  26. {python_xbox-0.1.0rc2 → python_xbox-0.1.0rc4}/src/pythonxbox/api/provider/titlehub/__init__.py +11 -9
  27. {python_xbox-0.1.0rc2 → python_xbox-0.1.0rc4}/src/pythonxbox/api/provider/titlehub/models.py +30 -30
  28. {python_xbox-0.1.0rc2 → python_xbox-0.1.0rc4}/src/pythonxbox/api/provider/usersearch/models.py +1 -3
  29. {python_xbox-0.1.0rc2 → python_xbox-0.1.0rc4}/src/pythonxbox/api/provider/userstats/__init__.py +6 -8
  30. {python_xbox-0.1.0rc2 → python_xbox-0.1.0rc4}/src/pythonxbox/api/provider/userstats/models.py +12 -14
  31. {python_xbox-0.1.0rc2 → python_xbox-0.1.0rc4}/src/pythonxbox/authentication/manager.py +4 -5
  32. {python_xbox-0.1.0rc2 → python_xbox-0.1.0rc4}/src/pythonxbox/authentication/models.py +22 -23
  33. {python_xbox-0.1.0rc2 → python_xbox-0.1.0rc4}/src/pythonxbox/authentication/xal.py +5 -5
  34. {python_xbox-0.1.0rc2 → python_xbox-0.1.0rc4}/src/pythonxbox/common/exceptions.py +5 -3
  35. {python_xbox-0.1.0rc2 → python_xbox-0.1.0rc4}/src/pythonxbox/common/filetimes.py +4 -20
  36. {python_xbox-0.1.0rc2 → python_xbox-0.1.0rc4}/src/pythonxbox/common/models.py +3 -3
  37. {python_xbox-0.1.0rc2 → python_xbox-0.1.0rc4}/src/pythonxbox/common/ratelimits/__init__.py +11 -12
  38. {python_xbox-0.1.0rc2 → python_xbox-0.1.0rc4}/src/pythonxbox/common/request_signer.py +11 -10
  39. {python_xbox-0.1.0rc2 → python_xbox-0.1.0rc4}/src/pythonxbox/common/signed_session.py +10 -4
  40. python_xbox-0.1.0rc4/src/pythonxbox/py.typed +0 -0
  41. {python_xbox-0.1.0rc2 → python_xbox-0.1.0rc4}/src/pythonxbox/scripts/__init__.py +1 -1
  42. {python_xbox-0.1.0rc2 → python_xbox-0.1.0rc4}/src/pythonxbox/scripts/authenticate.py +5 -5
  43. {python_xbox-0.1.0rc2 → python_xbox-0.1.0rc4}/src/pythonxbox/scripts/change_gamertag.py +2 -2
  44. {python_xbox-0.1.0rc2 → python_xbox-0.1.0rc4}/src/pythonxbox/scripts/friends.py +2 -2
  45. {python_xbox-0.1.0rc2 → python_xbox-0.1.0rc4}/src/pythonxbox/scripts/search.py +2 -2
  46. {python_xbox-0.1.0rc2 → python_xbox-0.1.0rc4}/src/pythonxbox/scripts/xal.py +3 -3
  47. python_xbox-0.1.0rc2/src/pythonxbox/api/provider/catalog/models.py +0 -428
  48. python_xbox-0.1.0rc2/src/pythonxbox/api/provider/presence/models.py +0 -54
  49. {python_xbox-0.1.0rc2 → python_xbox-0.1.0rc4}/.gitignore +0 -0
  50. {python_xbox-0.1.0rc2 → python_xbox-0.1.0rc4}/README.md +0 -0
  51. {python_xbox-0.1.0rc2 → python_xbox-0.1.0rc4}/src/pythonxbox/api/__init__.py +0 -0
  52. {python_xbox-0.1.0rc2 → python_xbox-0.1.0rc4}/src/pythonxbox/api/provider/__init__.py +0 -0
  53. {python_xbox-0.1.0rc2 → python_xbox-0.1.0rc4}/src/pythonxbox/api/provider/account/models.py +0 -0
  54. {python_xbox-0.1.0rc2 → python_xbox-0.1.0rc4}/src/pythonxbox/api/provider/catalog/const.py +0 -0
  55. {python_xbox-0.1.0rc2 → python_xbox-0.1.0rc4}/src/pythonxbox/api/provider/cqs/__init__.py +0 -0
  56. {python_xbox-0.1.0rc2 → python_xbox-0.1.0rc4}/src/pythonxbox/api/provider/gameclips/__init__.py +0 -0
  57. {python_xbox-0.1.0rc2 → python_xbox-0.1.0rc4}/src/pythonxbox/api/provider/lists/__init__.py +0 -0
  58. {python_xbox-0.1.0rc2 → python_xbox-0.1.0rc4}/src/pythonxbox/api/provider/mediahub/__init__.py +0 -0
  59. {python_xbox-0.1.0rc2 → python_xbox-0.1.0rc4}/src/pythonxbox/api/provider/message/__init__.py +0 -0
  60. {python_xbox-0.1.0rc2 → python_xbox-0.1.0rc4}/src/pythonxbox/api/provider/people/__init__.py +0 -0
  61. {python_xbox-0.1.0rc2 → python_xbox-0.1.0rc4}/src/pythonxbox/api/provider/people/models.py +0 -0
  62. {python_xbox-0.1.0rc2 → python_xbox-0.1.0rc4}/src/pythonxbox/api/provider/screenshots/__init__.py +0 -0
  63. {python_xbox-0.1.0rc2 → python_xbox-0.1.0rc4}/src/pythonxbox/api/provider/usersearch/__init__.py +0 -0
  64. {python_xbox-0.1.0rc2 → python_xbox-0.1.0rc4}/src/pythonxbox/authentication/__init__.py +0 -0
  65. {python_xbox-0.1.0rc2 → python_xbox-0.1.0rc4}/src/pythonxbox/common/__init__.py +0 -0
  66. {python_xbox-0.1.0rc2 → python_xbox-0.1.0rc4}/src/pythonxbox/common/ratelimits/models.py +0 -0
@@ -1,4 +1,5 @@
1
- Copyright (c) 2020 OpenXbox
1
+ Copyright (c) 2025 Manfred Dennerlein Rodelo
2
+ Copyright (c) 2020 - 2025 OpenXbox
2
3
 
3
4
  Permission is hereby granted, free of charge, to any person obtaining a copy
4
5
  of this software and associated documentation files (the "Software"), to deal
@@ -1,15 +1,17 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: python-xbox
3
- Version: 0.1.0rc2
3
+ Version: 0.1.0rc4
4
4
  Summary: A library to authenticate with Xbox Network and use their API
5
- Project-URL: Homepage, https://github.com/tr4nt0r/python-xbox
5
+ Project-URL: Source, https://github.com/tr4nt0r/python-xbox
6
6
  Author: OpenXbox
7
+ Author-email: Manfred Dennerlein Rodelo <manfred@dennerlein.name>
7
8
  License-Expression: MIT
8
9
  License-File: LICENSE
9
10
  Keywords: xbox one live api
10
- Classifier: Development Status :: 4 - Beta
11
+ Classifier: Development Status :: 5 - Production/Stable
11
12
  Classifier: Intended Audience :: Developers
12
13
  Classifier: License :: OSI Approved :: MIT License
14
+ Classifier: Operating System :: OS Independent
13
15
  Classifier: Programming Language :: Python :: 3
14
16
  Classifier: Programming Language :: Python :: 3.11
15
17
  Classifier: Programming Language :: Python :: 3.12
@@ -17,11 +19,12 @@ Classifier: Programming Language :: Python :: 3.13
17
19
  Classifier: Programming Language :: Python :: 3.14
18
20
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
19
21
  Requires-Python: >=3.11
20
- Requires-Dist: appdirs
21
22
  Requires-Dist: ecdsa
22
23
  Requires-Dist: httpx
23
24
  Requires-Dist: ms-cv
24
25
  Requires-Dist: pydantic==2.*
26
+ Provides-Extra: cli
27
+ Requires-Dist: platformdirs>=4.5.0; extra == 'cli'
25
28
  Description-Content-Type: text/markdown
26
29
 
27
30
  # Xbox-WebAPI
@@ -2,10 +2,10 @@
2
2
  name = "python-xbox"
3
3
  description = "A library to authenticate with Xbox Network and use their API"
4
4
  authors = [
5
+ {name = "Manfred Dennerlein Rodelo", email = "manfred@dennerlein.name"},
5
6
  {name = "OpenXbox"},
6
7
  ]
7
8
  dependencies = [
8
- "appdirs",
9
9
  "ecdsa",
10
10
  "httpx",
11
11
  "ms_cv",
@@ -16,7 +16,7 @@ readme = "README.md"
16
16
  license = "MIT"
17
17
  keywords = ["xbox one live api"]
18
18
  classifiers = [
19
- "Development Status :: 4 - Beta",
19
+ "Development Status :: 5 - Production/Stable",
20
20
  "Intended Audience :: Developers",
21
21
  "License :: OSI Approved :: MIT License",
22
22
  "Programming Language :: Python :: 3",
@@ -24,12 +24,18 @@ classifiers = [
24
24
  "Programming Language :: Python :: 3.12",
25
25
  "Programming Language :: Python :: 3.13",
26
26
  "Programming Language :: Python :: 3.14",
27
+ "Operating System :: OS Independent",
27
28
  "Topic :: Software Development :: Libraries :: Python Modules",
28
29
  ]
29
30
  dynamic = ["version"]
30
31
 
31
32
  [project.urls]
32
- Homepage = "https://github.com/tr4nt0r/python-xbox"
33
+ Source = "https://github.com/tr4nt0r/python-xbox"
34
+
35
+ [project.optional-dependencies]
36
+ cli = [
37
+ "platformdirs>=4.5.0"
38
+ ]
33
39
 
34
40
  [project.scripts]
35
41
  xbox-authenticate = "pythonxbox.scripts.authenticate:main"
@@ -40,15 +46,22 @@ xbox-xal = "pythonxbox.scripts.xal:main"
40
46
 
41
47
  [tool.ruff]
42
48
  line-length = 88
43
- target-version = "py38"
49
+ target-version = "py311"
44
50
 
45
51
  [tool.ruff.lint]
46
- select = ["E4", "E7", "E9", "F"]
47
- ignore = []
52
+ select = ["E4", "E7", "E9", "F", "UP", "S", "ANN"]
53
+ # select = ["ALL"]
54
+ ignore = ["ANN003", "ANN401"]
55
+
56
+
57
+ [tool.ruff.lint.per-file-ignores]
58
+ "**/scripts/*" = ["UP", "S104"]
59
+ "tests/*" = ["S101"]
60
+ "src/pythonxbox/authentication/xal.py" = ["S101"]
48
61
 
49
62
  [tool.ruff.lint.isort]
50
63
  force-sort-within-sections = true
51
- known-first-party = ["aiontfy"]
64
+ known-first-party = ["pythonxbox"]
52
65
  combine-as-imports = true
53
66
  split-on-trailing-comma = false
54
67
 
@@ -56,25 +69,6 @@ split-on-trailing-comma = false
56
69
  quote-style = "double"
57
70
  indent-style = "space"
58
71
 
59
-
60
- [tool.bandit]
61
- exclude_dirs = ["tests"]
62
- tests = [
63
- "B108",
64
- "B306",
65
- "B307",
66
- "B313",
67
- "B314",
68
- "B315",
69
- "B316",
70
- "B317",
71
- "B318",
72
- "B319",
73
- "B320",
74
- "B602",
75
- "B604"
76
- ]
77
-
78
72
  [tool.hatch.version]
79
73
  source = "regex_commit"
80
74
  commit_extra_args = ["-e"]
@@ -90,7 +84,7 @@ packages = ["src/pythonxbox"]
90
84
  [tool.hatch.envs.default]
91
85
  python = "3.13"
92
86
  dependencies = [
93
- "appdirs==1.4.4",
87
+ "platformdirs==4.5.0",
94
88
  "ecdsa==0.19.1",
95
89
  "httpx==0.28.1",
96
90
  "ms_cv==0.1.1",
@@ -1,4 +1,4 @@
1
1
  """Top-level package for xbox-webapi-python."""
2
2
 
3
3
  __author__ = """OpenXbox"""
4
- __version__ = "0.1.0rc2"
4
+ __version__ = "0.1.0rc4"
@@ -36,7 +36,7 @@ log = logging.getLogger("xbox.api")
36
36
 
37
37
 
38
38
  class Session:
39
- def __init__(self, auth_mgr: AuthenticationManager):
39
+ def __init__(self, auth_mgr: AuthenticationManager) -> None:
40
40
  self._auth_mgr = auth_mgr
41
41
  self._cv = CorrelationVector()
42
42
 
@@ -125,7 +125,7 @@ class XboxLiveClient:
125
125
  self,
126
126
  auth_mgr: AuthenticationManager,
127
127
  language: XboxLiveLanguage = DefaultXboxLiveLanguages.United_States,
128
- ):
128
+ ) -> None:
129
129
  self._auth_mgr = auth_mgr
130
130
  self.session = Session(auth_mgr)
131
131
  self._language = language
@@ -4,7 +4,13 @@ Language definitions
4
4
 
5
5
 
6
6
  class XboxLiveLanguage:
7
- def __init__(self, name, short_id, identifier, locale):
7
+ def __init__(
8
+ self,
9
+ name: str,
10
+ short_id: str,
11
+ identifier: str,
12
+ locale: str,
13
+ ) -> None:
8
14
  """
9
15
  Initialize a new instance of :class:`XboxLiveLanguage`
10
16
 
@@ -12,7 +12,9 @@ class AccountProvider(BaseProvider):
12
12
  HEADERS_USER_MGT = {"x-xbl-contract-version": "1"}
13
13
  HEADERS_ACCOUNT = {"x-xbl-contract-version": "2"}
14
14
 
15
- async def claim_gamertag(self, xuid, gamertag, **kwargs) -> ClaimGamertagResult:
15
+ async def claim_gamertag(
16
+ self, xuid: str, gamertag: str, **kwargs
17
+ ) -> ClaimGamertagResult:
16
18
  """
17
19
  Claim gamertag
18
20
 
@@ -40,7 +42,7 @@ class AccountProvider(BaseProvider):
40
42
  resp.raise_for_status()
41
43
 
42
44
  async def change_gamertag(
43
- self, xuid, gamertag, preview=False, **kwargs
45
+ self, xuid: str, gamertag: str, preview: bool = False, **kwargs
44
46
  ) -> ChangeGamertagResult:
45
47
  """
46
48
  Change your gamertag.
@@ -21,7 +21,7 @@ class AchievementsProvider(RateLimitedProvider):
21
21
  RATE_LIMITS = {"burst": 100, "sustain": 300}
22
22
 
23
23
  async def get_achievements_detail_item(
24
- self, xuid, service_config_id, achievement_id, **kwargs
24
+ self, xuid: str, service_config_id: str, achievement_id: str, **kwargs
25
25
  ) -> AchievementResponse:
26
26
  """
27
27
  Get achievement detail for specific item
@@ -45,7 +45,7 @@ class AchievementsProvider(RateLimitedProvider):
45
45
  return AchievementResponse(**resp.json())
46
46
 
47
47
  async def get_achievements_xbox360_all(
48
- self, xuid, title_id, **kwargs
48
+ self, xuid: str, title_id: str, **kwargs
49
49
  ) -> Achievement360Response:
50
50
  """
51
51
  Get all achievements for specific X360 title Id
@@ -70,7 +70,7 @@ class AchievementsProvider(RateLimitedProvider):
70
70
  return Achievement360Response(**resp.json())
71
71
 
72
72
  async def get_achievements_xbox360_earned(
73
- self, xuid, title_id, **kwargs
73
+ self, xuid: str, title_id: str, **kwargs
74
74
  ) -> Achievement360Response:
75
75
  """
76
76
  Get earned achievements for specific X360 title id
@@ -95,7 +95,7 @@ class AchievementsProvider(RateLimitedProvider):
95
95
  return Achievement360Response(**resp.json())
96
96
 
97
97
  async def get_achievements_xbox360_recent_progress_and_info(
98
- self, xuid, **kwargs
98
+ self, xuid: str, **kwargs
99
99
  ) -> Achievement360ProgressResponse:
100
100
  """
101
101
  Get recent achievement progress and information
@@ -117,7 +117,7 @@ class AchievementsProvider(RateLimitedProvider):
117
117
  return Achievement360ProgressResponse(**resp.json())
118
118
 
119
119
  async def get_achievements_xboxone_gameprogress(
120
- self, xuid, title_id, **kwargs
120
+ self, xuid: str, title_id: str, **kwargs
121
121
  ) -> AchievementResponse:
122
122
  """
123
123
  Get gameprogress for Xbox One title
@@ -142,7 +142,7 @@ class AchievementsProvider(RateLimitedProvider):
142
142
  return AchievementResponse(**resp.json())
143
143
 
144
144
  async def get_achievements_xboxone_recent_progress_and_info(
145
- self, xuid, **kwargs
145
+ self, xuid: str, **kwargs
146
146
  ) -> RecentProgressResponse:
147
147
  """
148
148
  Get recent achievement progress and information
@@ -1,5 +1,5 @@
1
1
  from datetime import datetime, time
2
- from typing import Any, List, Optional
2
+ from typing import Any
3
3
 
4
4
  from pydantic import BaseModel
5
5
 
@@ -7,7 +7,7 @@ from pythonxbox.common.models import CamelCaseModel
7
7
 
8
8
 
9
9
  class PagingInfo(CamelCaseModel):
10
- continuation_token: Optional[str] = None
10
+ continuation_token: str | None = None
11
11
  total_records: int
12
12
 
13
13
 
@@ -37,20 +37,20 @@ class Title360(CamelCaseModel):
37
37
  sequence: int
38
38
  title_id: int
39
39
  title_type: int
40
- platforms: List[int]
40
+ platforms: list[int]
41
41
  name: str
42
42
  total_achievements: int
43
43
  total_gamerscore: int
44
44
 
45
45
 
46
46
  class Achievement360Response(CamelCaseModel):
47
- achievements: List[Achievement360]
47
+ achievements: list[Achievement360]
48
48
  paging_info: PagingInfo
49
49
  version: datetime
50
50
 
51
51
 
52
52
  class Achievement360ProgressResponse(CamelCaseModel):
53
- titles: List[Title360]
53
+ titles: list[Title360]
54
54
  paging_info: PagingInfo
55
55
  version: datetime
56
56
 
@@ -62,7 +62,7 @@ class TitleAssociation(BaseModel):
62
62
 
63
63
  class Requirement(CamelCaseModel):
64
64
  id: str
65
- current: Optional[str] = None
65
+ current: str | None = None
66
66
  target: str
67
67
  operation_type: str
68
68
  value_type: str
@@ -70,7 +70,7 @@ class Requirement(CamelCaseModel):
70
70
 
71
71
 
72
72
  class Progression(CamelCaseModel):
73
- requirements: List[Requirement]
73
+ requirements: list[Requirement]
74
74
  time_unlocked: datetime
75
75
 
76
76
 
@@ -93,11 +93,11 @@ class Achievement(CamelCaseModel):
93
93
  id: str
94
94
  service_config_id: str
95
95
  name: str
96
- title_associations: List[TitleAssociation]
96
+ title_associations: list[TitleAssociation]
97
97
  progress_state: str
98
98
  progression: Progression
99
- media_assets: List[MediaAsset]
100
- platforms: List[str]
99
+ media_assets: list[MediaAsset]
100
+ platforms: list[str]
101
101
  is_secret: bool
102
102
  description: str
103
103
  locked_description: str
@@ -105,14 +105,14 @@ class Achievement(CamelCaseModel):
105
105
  achievement_type: str
106
106
  participation_type: str
107
107
  time_window: Any = None
108
- rewards: List[Reward]
108
+ rewards: list[Reward]
109
109
  estimated_time: time
110
110
  deeplink: Any = None
111
111
  is_revoked: bool
112
112
 
113
113
 
114
114
  class AchievementResponse(CamelCaseModel):
115
- achievements: List[Achievement]
115
+ achievements: list[Achievement]
116
116
  paging_info: PagingInfo
117
117
 
118
118
 
@@ -129,5 +129,5 @@ class Title(CamelCaseModel):
129
129
 
130
130
 
131
131
  class RecentProgressResponse(CamelCaseModel):
132
- titles: List[Title]
132
+ titles: list[Title]
133
133
  paging_info: PagingInfo
@@ -4,9 +4,15 @@ BaseProvider
4
4
  Subclassed by every *real* provider
5
5
  """
6
6
 
7
+ from typing import TYPE_CHECKING
8
+
9
+
10
+ if TYPE_CHECKING:
11
+ from pythonxbox.api.client import XboxLiveClient
12
+
7
13
 
8
14
  class BaseProvider:
9
- def __init__(self, client):
15
+ def __init__(self, client: "XboxLiveClient") -> None:
10
16
  """
11
17
  Initialize an the BaseProvider
12
18
 
@@ -2,8 +2,6 @@
2
2
  Store Catalog - Lookup Product Information
3
3
  """
4
4
 
5
- from typing import List
6
-
7
5
  from pythonxbox.api.provider.baseprovider import BaseProvider
8
6
  from pythonxbox.api.provider.catalog.models import (
9
7
  AlternateIdType,
@@ -20,7 +18,7 @@ class CatalogProvider(BaseProvider):
20
18
 
21
19
  async def get_products(
22
20
  self,
23
- big_ids: List[str],
21
+ big_ids: list[str],
24
22
  fields: FieldsTemplate = FieldsTemplate.DETAILS,
25
23
  **kwargs,
26
24
  ) -> CatalogResponse: