deezer-python 7.3.0__tar.gz → 7.4.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 (93) hide show
  1. {deezer_python-7.3.0 → deezer_python-7.4.0}/CHANGELOG.md +6 -0
  2. {deezer_python-7.3.0 → deezer_python-7.4.0}/CONTRIBUTING.md +5 -11
  3. {deezer_python-7.3.0 → deezer_python-7.4.0}/PKG-INFO +4 -3
  4. {deezer_python-7.3.0 → deezer_python-7.4.0}/README.md +2 -2
  5. {deezer_python-7.3.0 → deezer_python-7.4.0}/pyproject.toml +7 -6
  6. {deezer_python-7.3.0 → deezer_python-7.4.0}/src/deezer/__init__.py +1 -1
  7. {deezer_python-7.3.0 → deezer_python-7.4.0}/src/deezer/_mixin.py +3 -2
  8. {deezer_python-7.3.0 → deezer_python-7.4.0}/src/deezer_python.egg-info/PKG-INFO +4 -3
  9. {deezer_python-7.3.0 → deezer_python-7.4.0}/LICENSE.txt +0 -0
  10. {deezer_python-7.3.0 → deezer_python-7.4.0}/MANIFEST.in +0 -0
  11. {deezer_python-7.3.0 → deezer_python-7.4.0}/docs/Makefile +0 -0
  12. {deezer_python-7.3.0 → deezer_python-7.4.0}/docs/_static/.placeholder +0 -0
  13. {deezer_python-7.3.0 → deezer_python-7.4.0}/docs/api_reference/async_client.rst +0 -0
  14. {deezer_python-7.3.0 → deezer_python-7.4.0}/docs/api_reference/async_pagination.rst +0 -0
  15. {deezer_python-7.3.0 → deezer_python-7.4.0}/docs/api_reference/async_resources/album.rst +0 -0
  16. {deezer_python-7.3.0 → deezer_python-7.4.0}/docs/api_reference/async_resources/artist.rst +0 -0
  17. {deezer_python-7.3.0 → deezer_python-7.4.0}/docs/api_reference/async_resources/chart.rst +0 -0
  18. {deezer_python-7.3.0 → deezer_python-7.4.0}/docs/api_reference/async_resources/editorial.rst +0 -0
  19. {deezer_python-7.3.0 → deezer_python-7.4.0}/docs/api_reference/async_resources/episode.rst +0 -0
  20. {deezer_python-7.3.0 → deezer_python-7.4.0}/docs/api_reference/async_resources/genre.rst +0 -0
  21. {deezer_python-7.3.0 → deezer_python-7.4.0}/docs/api_reference/async_resources/playlist.rst +0 -0
  22. {deezer_python-7.3.0 → deezer_python-7.4.0}/docs/api_reference/async_resources/podcast.rst +0 -0
  23. {deezer_python-7.3.0 → deezer_python-7.4.0}/docs/api_reference/async_resources/radio.rst +0 -0
  24. {deezer_python-7.3.0 → deezer_python-7.4.0}/docs/api_reference/async_resources/track.rst +0 -0
  25. {deezer_python-7.3.0 → deezer_python-7.4.0}/docs/api_reference/async_resources/user.rst +0 -0
  26. {deezer_python-7.3.0 → deezer_python-7.4.0}/docs/api_reference/async_resources.md +0 -0
  27. {deezer_python-7.3.0 → deezer_python-7.4.0}/docs/api_reference/client.rst +0 -0
  28. {deezer_python-7.3.0 → deezer_python-7.4.0}/docs/api_reference/pagination.rst +0 -0
  29. {deezer_python-7.3.0 → deezer_python-7.4.0}/docs/api_reference/resources/album.rst +0 -0
  30. {deezer_python-7.3.0 → deezer_python-7.4.0}/docs/api_reference/resources/artist.rst +0 -0
  31. {deezer_python-7.3.0 → deezer_python-7.4.0}/docs/api_reference/resources/chart.rst +0 -0
  32. {deezer_python-7.3.0 → deezer_python-7.4.0}/docs/api_reference/resources/editorial.rst +0 -0
  33. {deezer_python-7.3.0 → deezer_python-7.4.0}/docs/api_reference/resources/episode.rst +0 -0
  34. {deezer_python-7.3.0 → deezer_python-7.4.0}/docs/api_reference/resources/genre.rst +0 -0
  35. {deezer_python-7.3.0 → deezer_python-7.4.0}/docs/api_reference/resources/playlist.rst +0 -0
  36. {deezer_python-7.3.0 → deezer_python-7.4.0}/docs/api_reference/resources/podcast.rst +0 -0
  37. {deezer_python-7.3.0 → deezer_python-7.4.0}/docs/api_reference/resources/radio.rst +0 -0
  38. {deezer_python-7.3.0 → deezer_python-7.4.0}/docs/api_reference/resources/track.rst +0 -0
  39. {deezer_python-7.3.0 → deezer_python-7.4.0}/docs/api_reference/resources/user.rst +0 -0
  40. {deezer_python-7.3.0 → deezer_python-7.4.0}/docs/api_reference/resources.md +0 -0
  41. {deezer_python-7.3.0 → deezer_python-7.4.0}/docs/api_reference/toc.rst +0 -0
  42. {deezer_python-7.3.0 → deezer_python-7.4.0}/docs/async.md +0 -0
  43. {deezer_python-7.3.0 → deezer_python-7.4.0}/docs/changelog.md +0 -0
  44. {deezer_python-7.3.0 → deezer_python-7.4.0}/docs/conf.py +0 -0
  45. {deezer_python-7.3.0 → deezer_python-7.4.0}/docs/contributing.md +0 -0
  46. {deezer_python-7.3.0 → deezer_python-7.4.0}/docs/index.md +0 -0
  47. {deezer_python-7.3.0 → deezer_python-7.4.0}/docs/installation.md +0 -0
  48. {deezer_python-7.3.0 → deezer_python-7.4.0}/docs/make.bat +0 -0
  49. {deezer_python-7.3.0 → deezer_python-7.4.0}/docs/pagination.md +0 -0
  50. {deezer_python-7.3.0 → deezer_python-7.4.0}/docs/usage.md +0 -0
  51. {deezer_python-7.3.0 → deezer_python-7.4.0}/setup.cfg +0 -0
  52. {deezer_python-7.3.0 → deezer_python-7.4.0}/src/deezer/asyncio/__init__.py +0 -0
  53. {deezer_python-7.3.0 → deezer_python-7.4.0}/src/deezer/asyncio/client.py +0 -0
  54. {deezer_python-7.3.0 → deezer_python-7.4.0}/src/deezer/asyncio/pagination.py +0 -0
  55. {deezer_python-7.3.0 → deezer_python-7.4.0}/src/deezer/asyncio/resources/__init__.py +0 -0
  56. {deezer_python-7.3.0 → deezer_python-7.4.0}/src/deezer/asyncio/resources/album.py +0 -0
  57. {deezer_python-7.3.0 → deezer_python-7.4.0}/src/deezer/asyncio/resources/artist.py +0 -0
  58. {deezer_python-7.3.0 → deezer_python-7.4.0}/src/deezer/asyncio/resources/chart.py +0 -0
  59. {deezer_python-7.3.0 → deezer_python-7.4.0}/src/deezer/asyncio/resources/editorial.py +0 -0
  60. {deezer_python-7.3.0 → deezer_python-7.4.0}/src/deezer/asyncio/resources/episode.py +0 -0
  61. {deezer_python-7.3.0 → deezer_python-7.4.0}/src/deezer/asyncio/resources/genre.py +0 -0
  62. {deezer_python-7.3.0 → deezer_python-7.4.0}/src/deezer/asyncio/resources/playlist.py +0 -0
  63. {deezer_python-7.3.0 → deezer_python-7.4.0}/src/deezer/asyncio/resources/podcast.py +0 -0
  64. {deezer_python-7.3.0 → deezer_python-7.4.0}/src/deezer/asyncio/resources/radio.py +0 -0
  65. {deezer_python-7.3.0 → deezer_python-7.4.0}/src/deezer/asyncio/resources/resource.py +0 -0
  66. {deezer_python-7.3.0 → deezer_python-7.4.0}/src/deezer/asyncio/resources/track.py +0 -0
  67. {deezer_python-7.3.0 → deezer_python-7.4.0}/src/deezer/asyncio/resources/user.py +0 -0
  68. {deezer_python-7.3.0 → deezer_python-7.4.0}/src/deezer/auth.py +0 -0
  69. {deezer_python-7.3.0 → deezer_python-7.4.0}/src/deezer/client.py +0 -0
  70. {deezer_python-7.3.0 → deezer_python-7.4.0}/src/deezer/dates.py +0 -0
  71. {deezer_python-7.3.0 → deezer_python-7.4.0}/src/deezer/exceptions.py +0 -0
  72. {deezer_python-7.3.0 → deezer_python-7.4.0}/src/deezer/pagination.py +0 -0
  73. {deezer_python-7.3.0 → deezer_python-7.4.0}/src/deezer/resources/__init__.py +0 -0
  74. {deezer_python-7.3.0 → deezer_python-7.4.0}/src/deezer/resources/album.py +0 -0
  75. {deezer_python-7.3.0 → deezer_python-7.4.0}/src/deezer/resources/artist.py +0 -0
  76. {deezer_python-7.3.0 → deezer_python-7.4.0}/src/deezer/resources/chart.py +0 -0
  77. {deezer_python-7.3.0 → deezer_python-7.4.0}/src/deezer/resources/editorial.py +0 -0
  78. {deezer_python-7.3.0 → deezer_python-7.4.0}/src/deezer/resources/episode.py +0 -0
  79. {deezer_python-7.3.0 → deezer_python-7.4.0}/src/deezer/resources/genre.py +0 -0
  80. {deezer_python-7.3.0 → deezer_python-7.4.0}/src/deezer/resources/playlist.py +0 -0
  81. {deezer_python-7.3.0 → deezer_python-7.4.0}/src/deezer/resources/podcast.py +0 -0
  82. {deezer_python-7.3.0 → deezer_python-7.4.0}/src/deezer/resources/radio.py +0 -0
  83. {deezer_python-7.3.0 → deezer_python-7.4.0}/src/deezer/resources/resource.py +0 -0
  84. {deezer_python-7.3.0 → deezer_python-7.4.0}/src/deezer/resources/track.py +0 -0
  85. {deezer_python-7.3.0 → deezer_python-7.4.0}/src/deezer/resources/user.py +0 -0
  86. {deezer_python-7.3.0 → deezer_python-7.4.0}/src/deezer/utils.py +0 -0
  87. {deezer_python-7.3.0 → deezer_python-7.4.0}/src/deezer_python.egg-info/SOURCES.txt +0 -0
  88. {deezer_python-7.3.0 → deezer_python-7.4.0}/src/deezer_python.egg-info/dependency_links.txt +0 -0
  89. {deezer_python-7.3.0 → deezer_python-7.4.0}/src/deezer_python.egg-info/requires.txt +0 -0
  90. {deezer_python-7.3.0 → deezer_python-7.4.0}/src/deezer_python.egg-info/top_level.txt +0 -0
  91. {deezer_python-7.3.0 → deezer_python-7.4.0}/tests/test_client.py +0 -0
  92. {deezer_python-7.3.0 → deezer_python-7.4.0}/tests/test_exceptions.py +0 -0
  93. {deezer_python-7.3.0 → deezer_python-7.4.0}/tests/test_pagination.py +0 -0
@@ -1,5 +1,11 @@
1
1
  # CHANGELOG
2
2
 
3
+ ## v7.4.0 (2026-08-07)
4
+
5
+ ### Features
6
+
7
+ - Add support for python 3.15 ([`5de06d6`](https://github.com/browniebroke/deezer-python/commit/5de06d645a7b5fa92bdcb6c53687b8d2f7ea0f55))
8
+
3
9
  ## v7.3.0 (2026-04-06)
4
10
 
5
11
  ### Features
@@ -65,25 +65,19 @@ Ready to contribute? Here's how to set up `deezer-python` for local development.
65
65
  $ uv run pytest
66
66
  ```
67
67
 
68
- 6. Type checking is done with [ty](https://docs.astral.sh/ty/), and is run with:
68
+ 6. Linting is done through [prek](https://prek.j178.dev/). Provided you have the tool installed globally, you can run them all as one-off:
69
69
 
70
70
  ```shell
71
- uv run ty check
72
- ```
73
-
74
- 7. Linting is done through [pre-commit](https://pre-commit.com). Provided you have the tool installed globally, you can run them all as one-off:
75
-
76
- ```shell
77
- $ pre-commit run -a
71
+ $ prek run -a
78
72
  ```
79
73
 
80
74
  Or better, install the hooks once and have them run automatically each time you commit:
81
75
 
82
76
  ```shell
83
- $ pre-commit install
77
+ $ prek install -f
84
78
  ```
85
79
 
86
- 8. Commit your changes, quoting GitHub issue in the commit message, if applicable, and push your branch to GitHub:
80
+ 7. Commit your changes, quoting GitHub issue in the commit message, if applicable, and push your branch to GitHub:
87
81
 
88
82
  ```shell
89
83
  $ git add .
@@ -93,7 +87,7 @@ Ready to contribute? Here's how to set up `deezer-python` for local development.
93
87
 
94
88
  Note: the commit message should follow [the conventional commits](https://www.conventionalcommits.org). We run [`commitlint` on CI](https://github.com/marketplace/actions/commit-linter) to validate it, and if you've installed pre-commit hooks at the previous step, the message will be checked at commit time.
95
89
 
96
- 9. Submit a pull request on GitHub.
90
+ 8. Submit a pull request on GitHub.
97
91
 
98
92
  ## Obtain an API token
99
93
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: deezer-python
3
- Version: 7.3.0
3
+ Version: 7.4.0
4
4
  Summary: A friendly wrapper library for the Deezer API
5
5
  Author-email: Bruno Alla <alla.brunoo@gmail.com>
6
6
  License-Expression: MIT
@@ -21,6 +21,7 @@ Classifier: Programming Language :: Python :: 3.11
21
21
  Classifier: Programming Language :: Python :: 3.12
22
22
  Classifier: Programming Language :: Python :: 3.13
23
23
  Classifier: Programming Language :: Python :: 3.14
24
+ Classifier: Programming Language :: Python :: 3.15
24
25
  Classifier: Topic :: Software Development :: Libraries
25
26
  Requires-Python: >=3.10
26
27
  Description-Content-Type: text/markdown
@@ -48,8 +49,8 @@ Dynamic: license-file
48
49
  <a href="https://github.com/astral-sh/ruff">
49
50
  <img src="https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json" alt="Ruff">
50
51
  </a>
51
- <a href="https://github.com/pre-commit/pre-commit">
52
- <img src="https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white&style=flat-square" alt="pre-commit">
52
+ <a href="https://github.com/j178/prek">
53
+ <img src="https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/j178/prek/master/docs/assets/badge-v0.json" alt="prek">
53
54
  </a>
54
55
  </p>
55
56
  <p align="center">
@@ -18,8 +18,8 @@
18
18
  <a href="https://github.com/astral-sh/ruff">
19
19
  <img src="https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json" alt="Ruff">
20
20
  </a>
21
- <a href="https://github.com/pre-commit/pre-commit">
22
- <img src="https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white&style=flat-square" alt="pre-commit">
21
+ <a href="https://github.com/j178/prek">
22
+ <img src="https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/j178/prek/master/docs/assets/badge-v0.json" alt="prek">
23
23
  </a>
24
24
  </p>
25
25
  <p align="center">
@@ -4,7 +4,7 @@ requires = [ "setuptools>=77.0.3" ]
4
4
 
5
5
  [project]
6
6
  name = "deezer-python"
7
- version = "7.3.0"
7
+ version = "7.4.0"
8
8
  description = "A friendly wrapper library for the Deezer API"
9
9
  readme = "README.md"
10
10
  keywords = [
@@ -29,6 +29,7 @@ classifiers = [
29
29
  "Programming Language :: Python :: 3.12",
30
30
  "Programming Language :: Python :: 3.13",
31
31
  "Programming Language :: Python :: 3.14",
32
+ "Programming Language :: Python :: 3.15",
32
33
  "Topic :: Software Development :: Libraries",
33
34
  ]
34
35
  dependencies = [
@@ -51,7 +52,7 @@ dev = [
51
52
  "pytest-cov>=7,<8",
52
53
  "pytest-mock>=3.6,<4",
53
54
  "pytest-vcr>=1,<2",
54
- "ty>=0.0.6,<0.1",
55
+ "ty==0.0.69",
55
56
  "vcrpy>=8,<9",
56
57
  ]
57
58
  docs = [
@@ -97,11 +98,11 @@ lint.per-file-ignores."tests/**/*" = [
97
98
  lint.isort.known-first-party = [ "deezer" ]
98
99
 
99
100
  [tool.pyproject-fmt]
100
- max_supported_python = "3.14"
101
+ max_supported_python = "3.15"
101
102
 
102
103
  [tool.pytest]
103
- minversion = "9.0"
104
104
  addopts = [ "-v", "-Wdefault", "--cov=deezer" ]
105
+ minversion = "9.0"
105
106
  pythonpath = [ "src" ]
106
107
 
107
108
  [tool.coverage]
@@ -116,10 +117,10 @@ report.exclude_lines = [
116
117
  report.ignore_errors = true
117
118
 
118
119
  [tool.semantic_release]
119
- version_toml = [ "pyproject.toml:project.version" ]
120
120
  version_variables = [
121
121
  "src/deezer/__init__.py:__version__",
122
122
  ]
123
+ version_toml = [ "pyproject.toml:project.version" ]
123
124
  build_command = """
124
125
  pip install uv
125
126
  uv lock
@@ -130,9 +131,9 @@ branches.main.match = "main"
130
131
  branches.noop.match = "(?!main$)"
131
132
  branches.noop.prerelease = true
132
133
  branches.stable.match = "(?!stable/*$)"
134
+ changelog.environment.keep_trailing_newline = true
133
135
  changelog.exclude_commit_patterns = [
134
136
  "chore.*",
135
137
  "ci.*",
136
138
  "Merge pull request .*",
137
139
  ]
138
- changelog.environment.keep_trailing_newline = true
@@ -15,7 +15,7 @@ from deezer.resources import (
15
15
  User,
16
16
  )
17
17
 
18
- __version__ = "7.3.0"
18
+ __version__ = "7.4.0"
19
19
  __all__ = [
20
20
  "Album",
21
21
  "Artist",
@@ -75,8 +75,9 @@ class DeezerMixin:
75
75
  if "id" not in result and resource_id is not None:
76
76
  result["id"] = resource_id
77
77
 
78
- if "type" in result and result["type"] in self.objects_types:
79
- object_class = self.objects_types[result["type"]]
78
+ resource_type_name = result.get("type")
79
+ if isinstance(resource_type_name, str) and resource_type_name in self.objects_types:
80
+ object_class = self.objects_types[resource_type_name]
80
81
  elif "type" in result or (not resource_type and "id" in result):
81
82
  object_class = self._resource_base_class
82
83
  elif resource_type:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: deezer-python
3
- Version: 7.3.0
3
+ Version: 7.4.0
4
4
  Summary: A friendly wrapper library for the Deezer API
5
5
  Author-email: Bruno Alla <alla.brunoo@gmail.com>
6
6
  License-Expression: MIT
@@ -21,6 +21,7 @@ Classifier: Programming Language :: Python :: 3.11
21
21
  Classifier: Programming Language :: Python :: 3.12
22
22
  Classifier: Programming Language :: Python :: 3.13
23
23
  Classifier: Programming Language :: Python :: 3.14
24
+ Classifier: Programming Language :: Python :: 3.15
24
25
  Classifier: Topic :: Software Development :: Libraries
25
26
  Requires-Python: >=3.10
26
27
  Description-Content-Type: text/markdown
@@ -48,8 +49,8 @@ Dynamic: license-file
48
49
  <a href="https://github.com/astral-sh/ruff">
49
50
  <img src="https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json" alt="Ruff">
50
51
  </a>
51
- <a href="https://github.com/pre-commit/pre-commit">
52
- <img src="https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white&style=flat-square" alt="pre-commit">
52
+ <a href="https://github.com/j178/prek">
53
+ <img src="https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/j178/prek/master/docs/assets/badge-v0.json" alt="prek">
53
54
  </a>
54
55
  </p>
55
56
  <p align="center">
File without changes
File without changes
File without changes