python3-discogs-client 2.7__py3-none-any.whl → 2.8__py3-none-any.whl
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.
- discogs_client/__init__.py +1 -1
- discogs_client/fetchers.py +1 -1
- discogs_client/models.py +25 -5
- discogs_client/utils.py +8 -0
- {python3_discogs_client-2.7.dist-info → python3_discogs_client-2.8.dist-info}/METADATA +14 -2
- python3_discogs_client-2.8.dist-info/RECORD +11 -0
- {python3_discogs_client-2.7.dist-info → python3_discogs_client-2.8.dist-info}/WHEEL +1 -1
- python3_discogs_client-2.7.dist-info/RECORD +0 -11
- {python3_discogs_client-2.7.dist-info → python3_discogs_client-2.8.dist-info}/LICENSE +0 -0
- {python3_discogs_client-2.7.dist-info → python3_discogs_client-2.8.dist-info}/top_level.txt +0 -0
discogs_client/__init__.py
CHANGED
discogs_client/fetchers.py
CHANGED
|
@@ -224,7 +224,7 @@ class OAuth2Fetcher(Fetcher):
|
|
|
224
224
|
class FilesystemFetcher(Fetcher):
|
|
225
225
|
"""Fetches from a directory of files."""
|
|
226
226
|
default_response = json.dumps({'message': 'Resource not found.'}), 404
|
|
227
|
-
path_with_params = re.compile('(?P<dir>(\w+/)+)(?P<query>\w+)\?(?P<params>.*)')
|
|
227
|
+
path_with_params = re.compile(r'(?P<dir>(\w+/)+)(?P<query>\w+)\?(?P<params>.*)')
|
|
228
228
|
|
|
229
229
|
def __init__(self, base_path):
|
|
230
230
|
self.base_path = base_path
|
discogs_client/models.py
CHANGED
|
@@ -745,7 +745,7 @@ class CollectionFolder(PrimaryAPIObject):
|
|
|
745
745
|
count = SimpleField() #:
|
|
746
746
|
|
|
747
747
|
def __init__(self, client, dict_):
|
|
748
|
-
super(
|
|
748
|
+
super().__init__(client, dict_)
|
|
749
749
|
|
|
750
750
|
@property
|
|
751
751
|
def releases(self):
|
|
@@ -754,14 +754,34 @@ class CollectionFolder(PrimaryAPIObject):
|
|
|
754
754
|
|
|
755
755
|
def add_release(self, release):
|
|
756
756
|
release_id = release.id if isinstance(release, Release) else release
|
|
757
|
-
|
|
758
|
-
self.client._post(
|
|
757
|
+
resource_url = self.fetch('resource_url')
|
|
758
|
+
self.client._post(f"{resource_url}/releases/{release_id}", None)
|
|
759
759
|
|
|
760
760
|
def remove_release(self, instance):
|
|
761
|
+
"""Remove a collection item entirely.
|
|
762
|
+
"""
|
|
761
763
|
if not isinstance(instance, CollectionItemInstance):
|
|
762
764
|
raise TypeError('instance must be of type CollectionItemInstance')
|
|
763
|
-
|
|
764
|
-
self.client._delete(
|
|
765
|
+
resource_url = self.fetch('resource_url')
|
|
766
|
+
self.client._delete(f"{resource_url}/releases/{instance.id}/instances/{instance.instance_id}")
|
|
767
|
+
|
|
768
|
+
def move_release(self, instance, target_folder_id):
|
|
769
|
+
"""Move a collection item to another folder.
|
|
770
|
+
|
|
771
|
+
Moving to folder id 1 moves to the "Uncategorized" folder.
|
|
772
|
+
"""
|
|
773
|
+
if not isinstance(instance, CollectionItemInstance):
|
|
774
|
+
raise TypeError('instance must be of type CollectionItemInstance')
|
|
775
|
+
resource_url = self.fetch('resource_url')
|
|
776
|
+
self.client._post(
|
|
777
|
+
f"{resource_url}/releases/{instance.id}/instances/{instance.instance_id}",
|
|
778
|
+
{"folder_id": target_folder_id},
|
|
779
|
+
)
|
|
780
|
+
|
|
781
|
+
def uncategorize_release(self, instance):
|
|
782
|
+
"""Move a collection item to the "Uncategorized" folder.
|
|
783
|
+
"""
|
|
784
|
+
self.move_release(instance, 1)
|
|
765
785
|
|
|
766
786
|
def __repr__(self):
|
|
767
787
|
return '<CollectionFolder {0!r} {1!r}>'.format(self.id, self.name)
|
discogs_client/utils.py
CHANGED
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
try:
|
|
2
|
+
from enum import member
|
|
3
|
+
except ImportError:
|
|
4
|
+
def member(func):
|
|
5
|
+
return func
|
|
6
|
+
|
|
1
7
|
from datetime import datetime
|
|
2
8
|
from dateutil.parser import parse
|
|
3
9
|
from urllib.parse import quote
|
|
@@ -99,6 +105,7 @@ class Status(Enum):
|
|
|
99
105
|
|
|
100
106
|
|
|
101
107
|
class Sort(Enum):
|
|
108
|
+
@member
|
|
102
109
|
class By(Enum):
|
|
103
110
|
ADDED = 'added'
|
|
104
111
|
ARTIST = 'artist'
|
|
@@ -120,6 +127,7 @@ class Sort(Enum):
|
|
|
120
127
|
TITLE = 'title'
|
|
121
128
|
YEAR = 'year'
|
|
122
129
|
|
|
130
|
+
@member
|
|
123
131
|
class Order(Enum):
|
|
124
132
|
ASCENDING = 'asc'
|
|
125
133
|
DESCENDING = 'desc'
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.2
|
|
2
2
|
Name: python3-discogs-client
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.8
|
|
4
4
|
Summary: Python API client for Discogs
|
|
5
5
|
Home-page: https://github.com/joalla/discogs_client
|
|
6
6
|
Author: joalla
|
|
@@ -17,5 +17,17 @@ License-File: LICENSE
|
|
|
17
17
|
Requires-Dist: requests
|
|
18
18
|
Requires-Dist: oauthlib
|
|
19
19
|
Requires-Dist: python-dateutil
|
|
20
|
+
Provides-Extra: docs
|
|
21
|
+
Requires-Dist: sphinx; extra == "docs"
|
|
22
|
+
Requires-Dist: pydata-sphinx-theme; extra == "docs"
|
|
23
|
+
Requires-Dist: myst-parser; extra == "docs"
|
|
24
|
+
Dynamic: author
|
|
25
|
+
Dynamic: author-email
|
|
26
|
+
Dynamic: classifier
|
|
27
|
+
Dynamic: description
|
|
28
|
+
Dynamic: home-page
|
|
29
|
+
Dynamic: provides-extra
|
|
30
|
+
Dynamic: requires-dist
|
|
31
|
+
Dynamic: summary
|
|
20
32
|
|
|
21
33
|
This is an active fork of the official "Discogs API client for Python", which was deprecated by discogs.com as of June 2020. We think it is a very useful Python module and decided to continue maintaining it. Please visit: https://github.com/joalla/discogs_client for more information.
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
discogs_client/__init__.py,sha256=C9ullFtCV-fYGz8NEWw3eGx5RgPJfApsDo3YdqG3q-c,445
|
|
2
|
+
discogs_client/client.py,sha256=AqQmwJd54DrAFTnTb4zi1jCefjC6sbISh43FZuYsQ0g,7632
|
|
3
|
+
discogs_client/exceptions.py,sha256=7kHj2wbpfT0gLE7uqm6c4aS28Wkr58f6u9jfpcT_NSM,1323
|
|
4
|
+
discogs_client/fetchers.py,sha256=D8npYWt9FILSRIhVsUdA6N0pzRCEUFh5hqQbnBu4IUg,11964
|
|
5
|
+
discogs_client/models.py,sha256=bjonpqmZ_homR51vQnOe7xiAJrrl0T6F8QfthhiskvQ,32564
|
|
6
|
+
discogs_client/utils.py,sha256=r0Hh8JHu8T3XZciEg0mAVV_fN7aZhUZIB08CBY5jJMM,3515
|
|
7
|
+
python3_discogs_client-2.8.dist-info/LICENSE,sha256=GvYq7dzLVxNCGN29xn0Ec1JMpzZwPXzOAdtZsuB9pUI,1455
|
|
8
|
+
python3_discogs_client-2.8.dist-info/METADATA,sha256=Gh5aPbAZqHMpuaVmmmsXW1A3J-Jr4YRvMpsIz84gJ1I,1245
|
|
9
|
+
python3_discogs_client-2.8.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
|
|
10
|
+
python3_discogs_client-2.8.dist-info/top_level.txt,sha256=jgqsRXqG3dJuCOSykXhXN68DMNu77XYQuqgqlPSSv1E,15
|
|
11
|
+
python3_discogs_client-2.8.dist-info/RECORD,,
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
discogs_client/__init__.py,sha256=jtFqxDk4H8_GK_bF6p_1dcoKVt_Di_GYo5uWB2ESPfc,445
|
|
2
|
-
discogs_client/client.py,sha256=AqQmwJd54DrAFTnTb4zi1jCefjC6sbISh43FZuYsQ0g,7632
|
|
3
|
-
discogs_client/exceptions.py,sha256=7kHj2wbpfT0gLE7uqm6c4aS28Wkr58f6u9jfpcT_NSM,1323
|
|
4
|
-
discogs_client/fetchers.py,sha256=UP-FcCo8MOgfG5VpiFCRpKUUBcVn_zSMbnV5Z3DpAqQ,11963
|
|
5
|
-
discogs_client/models.py,sha256=c6OfCIEPW7HtOpegP3tcdGPtEBTm7adDxWyQzcfe52M,31844
|
|
6
|
-
discogs_client/utils.py,sha256=KJDkJ91C1rVW7Tr4hZ8To-sJyKtFu4gT1oNQIv7Mo_k,3395
|
|
7
|
-
python3_discogs_client-2.7.dist-info/LICENSE,sha256=GvYq7dzLVxNCGN29xn0Ec1JMpzZwPXzOAdtZsuB9pUI,1455
|
|
8
|
-
python3_discogs_client-2.7.dist-info/METADATA,sha256=sOt6aDkRndWOtM0ujuMspeX2EdJfHGysOfOIU6QQ5U8,927
|
|
9
|
-
python3_discogs_client-2.7.dist-info/WHEEL,sha256=pkctZYzUS4AYVn6dJ-7367OJZivF2e8RA9b_ZBjif18,92
|
|
10
|
-
python3_discogs_client-2.7.dist-info/top_level.txt,sha256=jgqsRXqG3dJuCOSykXhXN68DMNu77XYQuqgqlPSSv1E,15
|
|
11
|
-
python3_discogs_client-2.7.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|