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.
- {deezer_python-7.3.0 → deezer_python-7.4.0}/CHANGELOG.md +6 -0
- {deezer_python-7.3.0 → deezer_python-7.4.0}/CONTRIBUTING.md +5 -11
- {deezer_python-7.3.0 → deezer_python-7.4.0}/PKG-INFO +4 -3
- {deezer_python-7.3.0 → deezer_python-7.4.0}/README.md +2 -2
- {deezer_python-7.3.0 → deezer_python-7.4.0}/pyproject.toml +7 -6
- {deezer_python-7.3.0 → deezer_python-7.4.0}/src/deezer/__init__.py +1 -1
- {deezer_python-7.3.0 → deezer_python-7.4.0}/src/deezer/_mixin.py +3 -2
- {deezer_python-7.3.0 → deezer_python-7.4.0}/src/deezer_python.egg-info/PKG-INFO +4 -3
- {deezer_python-7.3.0 → deezer_python-7.4.0}/LICENSE.txt +0 -0
- {deezer_python-7.3.0 → deezer_python-7.4.0}/MANIFEST.in +0 -0
- {deezer_python-7.3.0 → deezer_python-7.4.0}/docs/Makefile +0 -0
- {deezer_python-7.3.0 → deezer_python-7.4.0}/docs/_static/.placeholder +0 -0
- {deezer_python-7.3.0 → deezer_python-7.4.0}/docs/api_reference/async_client.rst +0 -0
- {deezer_python-7.3.0 → deezer_python-7.4.0}/docs/api_reference/async_pagination.rst +0 -0
- {deezer_python-7.3.0 → deezer_python-7.4.0}/docs/api_reference/async_resources/album.rst +0 -0
- {deezer_python-7.3.0 → deezer_python-7.4.0}/docs/api_reference/async_resources/artist.rst +0 -0
- {deezer_python-7.3.0 → deezer_python-7.4.0}/docs/api_reference/async_resources/chart.rst +0 -0
- {deezer_python-7.3.0 → deezer_python-7.4.0}/docs/api_reference/async_resources/editorial.rst +0 -0
- {deezer_python-7.3.0 → deezer_python-7.4.0}/docs/api_reference/async_resources/episode.rst +0 -0
- {deezer_python-7.3.0 → deezer_python-7.4.0}/docs/api_reference/async_resources/genre.rst +0 -0
- {deezer_python-7.3.0 → deezer_python-7.4.0}/docs/api_reference/async_resources/playlist.rst +0 -0
- {deezer_python-7.3.0 → deezer_python-7.4.0}/docs/api_reference/async_resources/podcast.rst +0 -0
- {deezer_python-7.3.0 → deezer_python-7.4.0}/docs/api_reference/async_resources/radio.rst +0 -0
- {deezer_python-7.3.0 → deezer_python-7.4.0}/docs/api_reference/async_resources/track.rst +0 -0
- {deezer_python-7.3.0 → deezer_python-7.4.0}/docs/api_reference/async_resources/user.rst +0 -0
- {deezer_python-7.3.0 → deezer_python-7.4.0}/docs/api_reference/async_resources.md +0 -0
- {deezer_python-7.3.0 → deezer_python-7.4.0}/docs/api_reference/client.rst +0 -0
- {deezer_python-7.3.0 → deezer_python-7.4.0}/docs/api_reference/pagination.rst +0 -0
- {deezer_python-7.3.0 → deezer_python-7.4.0}/docs/api_reference/resources/album.rst +0 -0
- {deezer_python-7.3.0 → deezer_python-7.4.0}/docs/api_reference/resources/artist.rst +0 -0
- {deezer_python-7.3.0 → deezer_python-7.4.0}/docs/api_reference/resources/chart.rst +0 -0
- {deezer_python-7.3.0 → deezer_python-7.4.0}/docs/api_reference/resources/editorial.rst +0 -0
- {deezer_python-7.3.0 → deezer_python-7.4.0}/docs/api_reference/resources/episode.rst +0 -0
- {deezer_python-7.3.0 → deezer_python-7.4.0}/docs/api_reference/resources/genre.rst +0 -0
- {deezer_python-7.3.0 → deezer_python-7.4.0}/docs/api_reference/resources/playlist.rst +0 -0
- {deezer_python-7.3.0 → deezer_python-7.4.0}/docs/api_reference/resources/podcast.rst +0 -0
- {deezer_python-7.3.0 → deezer_python-7.4.0}/docs/api_reference/resources/radio.rst +0 -0
- {deezer_python-7.3.0 → deezer_python-7.4.0}/docs/api_reference/resources/track.rst +0 -0
- {deezer_python-7.3.0 → deezer_python-7.4.0}/docs/api_reference/resources/user.rst +0 -0
- {deezer_python-7.3.0 → deezer_python-7.4.0}/docs/api_reference/resources.md +0 -0
- {deezer_python-7.3.0 → deezer_python-7.4.0}/docs/api_reference/toc.rst +0 -0
- {deezer_python-7.3.0 → deezer_python-7.4.0}/docs/async.md +0 -0
- {deezer_python-7.3.0 → deezer_python-7.4.0}/docs/changelog.md +0 -0
- {deezer_python-7.3.0 → deezer_python-7.4.0}/docs/conf.py +0 -0
- {deezer_python-7.3.0 → deezer_python-7.4.0}/docs/contributing.md +0 -0
- {deezer_python-7.3.0 → deezer_python-7.4.0}/docs/index.md +0 -0
- {deezer_python-7.3.0 → deezer_python-7.4.0}/docs/installation.md +0 -0
- {deezer_python-7.3.0 → deezer_python-7.4.0}/docs/make.bat +0 -0
- {deezer_python-7.3.0 → deezer_python-7.4.0}/docs/pagination.md +0 -0
- {deezer_python-7.3.0 → deezer_python-7.4.0}/docs/usage.md +0 -0
- {deezer_python-7.3.0 → deezer_python-7.4.0}/setup.cfg +0 -0
- {deezer_python-7.3.0 → deezer_python-7.4.0}/src/deezer/asyncio/__init__.py +0 -0
- {deezer_python-7.3.0 → deezer_python-7.4.0}/src/deezer/asyncio/client.py +0 -0
- {deezer_python-7.3.0 → deezer_python-7.4.0}/src/deezer/asyncio/pagination.py +0 -0
- {deezer_python-7.3.0 → deezer_python-7.4.0}/src/deezer/asyncio/resources/__init__.py +0 -0
- {deezer_python-7.3.0 → deezer_python-7.4.0}/src/deezer/asyncio/resources/album.py +0 -0
- {deezer_python-7.3.0 → deezer_python-7.4.0}/src/deezer/asyncio/resources/artist.py +0 -0
- {deezer_python-7.3.0 → deezer_python-7.4.0}/src/deezer/asyncio/resources/chart.py +0 -0
- {deezer_python-7.3.0 → deezer_python-7.4.0}/src/deezer/asyncio/resources/editorial.py +0 -0
- {deezer_python-7.3.0 → deezer_python-7.4.0}/src/deezer/asyncio/resources/episode.py +0 -0
- {deezer_python-7.3.0 → deezer_python-7.4.0}/src/deezer/asyncio/resources/genre.py +0 -0
- {deezer_python-7.3.0 → deezer_python-7.4.0}/src/deezer/asyncio/resources/playlist.py +0 -0
- {deezer_python-7.3.0 → deezer_python-7.4.0}/src/deezer/asyncio/resources/podcast.py +0 -0
- {deezer_python-7.3.0 → deezer_python-7.4.0}/src/deezer/asyncio/resources/radio.py +0 -0
- {deezer_python-7.3.0 → deezer_python-7.4.0}/src/deezer/asyncio/resources/resource.py +0 -0
- {deezer_python-7.3.0 → deezer_python-7.4.0}/src/deezer/asyncio/resources/track.py +0 -0
- {deezer_python-7.3.0 → deezer_python-7.4.0}/src/deezer/asyncio/resources/user.py +0 -0
- {deezer_python-7.3.0 → deezer_python-7.4.0}/src/deezer/auth.py +0 -0
- {deezer_python-7.3.0 → deezer_python-7.4.0}/src/deezer/client.py +0 -0
- {deezer_python-7.3.0 → deezer_python-7.4.0}/src/deezer/dates.py +0 -0
- {deezer_python-7.3.0 → deezer_python-7.4.0}/src/deezer/exceptions.py +0 -0
- {deezer_python-7.3.0 → deezer_python-7.4.0}/src/deezer/pagination.py +0 -0
- {deezer_python-7.3.0 → deezer_python-7.4.0}/src/deezer/resources/__init__.py +0 -0
- {deezer_python-7.3.0 → deezer_python-7.4.0}/src/deezer/resources/album.py +0 -0
- {deezer_python-7.3.0 → deezer_python-7.4.0}/src/deezer/resources/artist.py +0 -0
- {deezer_python-7.3.0 → deezer_python-7.4.0}/src/deezer/resources/chart.py +0 -0
- {deezer_python-7.3.0 → deezer_python-7.4.0}/src/deezer/resources/editorial.py +0 -0
- {deezer_python-7.3.0 → deezer_python-7.4.0}/src/deezer/resources/episode.py +0 -0
- {deezer_python-7.3.0 → deezer_python-7.4.0}/src/deezer/resources/genre.py +0 -0
- {deezer_python-7.3.0 → deezer_python-7.4.0}/src/deezer/resources/playlist.py +0 -0
- {deezer_python-7.3.0 → deezer_python-7.4.0}/src/deezer/resources/podcast.py +0 -0
- {deezer_python-7.3.0 → deezer_python-7.4.0}/src/deezer/resources/radio.py +0 -0
- {deezer_python-7.3.0 → deezer_python-7.4.0}/src/deezer/resources/resource.py +0 -0
- {deezer_python-7.3.0 → deezer_python-7.4.0}/src/deezer/resources/track.py +0 -0
- {deezer_python-7.3.0 → deezer_python-7.4.0}/src/deezer/resources/user.py +0 -0
- {deezer_python-7.3.0 → deezer_python-7.4.0}/src/deezer/utils.py +0 -0
- {deezer_python-7.3.0 → deezer_python-7.4.0}/src/deezer_python.egg-info/SOURCES.txt +0 -0
- {deezer_python-7.3.0 → deezer_python-7.4.0}/src/deezer_python.egg-info/dependency_links.txt +0 -0
- {deezer_python-7.3.0 → deezer_python-7.4.0}/src/deezer_python.egg-info/requires.txt +0 -0
- {deezer_python-7.3.0 → deezer_python-7.4.0}/src/deezer_python.egg-info/top_level.txt +0 -0
- {deezer_python-7.3.0 → deezer_python-7.4.0}/tests/test_client.py +0 -0
- {deezer_python-7.3.0 → deezer_python-7.4.0}/tests/test_exceptions.py +0 -0
- {deezer_python-7.3.0 → deezer_python-7.4.0}/tests/test_pagination.py +0 -0
|
@@ -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.
|
|
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
|
-
|
|
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
|
-
$
|
|
77
|
+
$ prek install -f
|
|
84
78
|
```
|
|
85
79
|
|
|
86
|
-
|
|
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
|
-
|
|
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
|
+
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/
|
|
52
|
-
<img src="https://img.shields.io/
|
|
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/
|
|
22
|
-
<img src="https://img.shields.io/
|
|
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.
|
|
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
|
|
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.
|
|
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
|
|
@@ -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
|
-
|
|
79
|
-
|
|
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
|
+
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/
|
|
52
|
-
<img src="https://img.shields.io/
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{deezer_python-7.3.0 → deezer_python-7.4.0}/docs/api_reference/async_resources/editorial.rst
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|