mirror of
https://github.com/spotipy-dev/spotipy.git
synced 2026-10-11 17:10:45 +00:00
Sync branches (#920)
This commit is contained in:
1 parent
d7e8dd1e74
commit
4918305aba
33 files changed
+964
-366
No files matched your search
+14
-13
@@ -11,14 +11,15 @@
|
||||
# All configuration values have a default; values that are commented out
|
||||
# serve to show the default.
|
||||
|
||||
import sys, os
|
||||
import spotipy
|
||||
import sys
|
||||
import os
|
||||
|
||||
# If extensions (or modules to document with autodoc) are in another directory,
|
||||
# add these directories to sys.path here. If the directory is relative to the
|
||||
# documentation root, use os.path.abspath to make it absolute, like shown here.
|
||||
#sys.path.insert(0, os.path.abspath('.'))
|
||||
sys.path.insert(0, os.path.abspath('.'))
|
||||
import spotipy
|
||||
|
||||
# -- General configuration -----------------------------------------------------
|
||||
|
||||
@@ -172,21 +173,21 @@ htmlhelp_basename = 'spotipydoc'
|
||||
# -- Options for LaTeX output --------------------------------------------------
|
||||
|
||||
latex_elements = {
|
||||
# The paper size ('letterpaper' or 'a4paper').
|
||||
#'papersize': 'letterpaper',
|
||||
# The paper size ('letterpaper' or 'a4paper').
|
||||
# 'papersize': 'letterpaper',
|
||||
|
||||
# The font size ('10pt', '11pt' or '12pt').
|
||||
#'pointsize': '10pt',
|
||||
# The font size ('10pt', '11pt' or '12pt').
|
||||
# 'pointsize': '10pt',
|
||||
|
||||
# Additional stuff for the LaTeX preamble.
|
||||
#'preamble': '',
|
||||
# Additional stuff for the LaTeX preamble.
|
||||
# 'preamble': '',
|
||||
}
|
||||
|
||||
# Grouping the document tree into LaTeX files. List of tuples
|
||||
# (source start file, target name, title, author, documentclass [howto/manual]).
|
||||
latex_documents = [
|
||||
('index', 'spotipy.tex', 'spotipy Documentation',
|
||||
'Paul Lamere', 'manual'),
|
||||
('index', 'spotipy.tex', 'spotipy Documentation',
|
||||
'Paul Lamere', 'manual'),
|
||||
]
|
||||
|
||||
# The name of an image file (relative to this directory) to place at the top of
|
||||
@@ -229,9 +230,9 @@ man_pages = [
|
||||
# (source start file, target name, title, author,
|
||||
# dir menu entry, description, category)
|
||||
texinfo_documents = [
|
||||
('index', 'spotipy', 'spotipy Documentation',
|
||||
'Paul Lamere', 'spotipy', 'One line description of project.',
|
||||
'Miscellaneous'),
|
||||
('index', 'spotipy', 'spotipy Documentation',
|
||||
'Paul Lamere', 'spotipy', 'One line description of project.',
|
||||
'Miscellaneous'),
|
||||
]
|
||||
|
||||
# Documents to append as an appendix to all manuals.
|
||||
|
||||
+101
-25
@@ -9,7 +9,7 @@ Welcome to Spotipy!
|
||||
you get full access to all of the music data provided by the Spotify platform.
|
||||
|
||||
Assuming you set the ``SPOTIPY_CLIENT_ID`` and ``SPOTIPY_CLIENT_SECRET``
|
||||
environment variables, here's a quick example of using *Spotipy* to list the
|
||||
environment variables (here is a `video <https://youtu.be/3RGm4jALukM>`_ explaining how to do so), here's a quick example of using *Spotipy* to list the
|
||||
names of all the albums released by the artist 'Birdy'::
|
||||
|
||||
import spotipy
|
||||
@@ -132,7 +132,7 @@ class SpotifyOAuth that can be used to authenticate requests like so::
|
||||
print(idx, track['artists'][0]['name'], " – ", track['name'])
|
||||
|
||||
or if you are reluctant to immortalize your app credentials in your source code,
|
||||
you can set environment variables like so (use ``SET`` instead of ``export``
|
||||
you can set environment variables like so (use ``$env:"credentials"`` instead of ``export``
|
||||
on Windows)::
|
||||
|
||||
export SPOTIPY_CLIENT_ID='your-spotify-client-id'
|
||||
@@ -143,7 +143,7 @@ Scopes
|
||||
------
|
||||
|
||||
See `Using
|
||||
Scopes <https://developer.spotify.com/web-api/using-scopes/>`_ for information
|
||||
Scopes <https://developer.spotify.com/documentation/general/guides/authorization/scopes/>`_ for information
|
||||
about scopes.
|
||||
|
||||
Redirect URI
|
||||
@@ -159,6 +159,11 @@ must match the redirect URI added to your application in your Dashboard.
|
||||
The redirect URI can be any valid URI (it does not need to be accessible)
|
||||
such as ``http://example.com``, ``http://localhost`` or ``http://127.0.0.1:9090``.
|
||||
|
||||
.. note:: If you choose an `http`-scheme URL, and it's for `localhost` or
|
||||
`127.0.0.1`, **AND** it specifies a port, then spotispy will instantiate
|
||||
a server on the indicated response to receive the access token from the
|
||||
response at the end of the oauth flow [see the code](https://github.com/plamere/spotipy/blob/master/spotipy/oauth2.py#L483-L490).
|
||||
|
||||
|
||||
Client Credentials Flow
|
||||
=======================
|
||||
@@ -226,6 +231,12 @@ The custom cache handler would need to be a class that inherits from the base
|
||||
cache handler ``CacheHandler``. The default cache handler ``CacheFileHandler`` is a good example.
|
||||
An instance of that new class can then be passed as a parameter when
|
||||
creating ``SpotifyOAuth``, ``SpotifyPKCE`` or ``SpotifyImplicitGrant``.
|
||||
The following handlers are available and defined in the URL above.
|
||||
- ``CacheFileHandler``
|
||||
- ``MemoryCacheHandler``
|
||||
- ``DjangoSessionCacheHandler``
|
||||
- ``FlaskSessionCacheHandler``
|
||||
- ``RedisCacheHandler``
|
||||
|
||||
Feel free to contribute new cache handlers to the repo.
|
||||
|
||||
@@ -282,31 +293,96 @@ Contribute
|
||||
|
||||
Spotipy authored by Paul Lamere (plamere) with contributions by:
|
||||
|
||||
- Daniel Beaudry // danbeaudry
|
||||
- Faruk Emre Sahin // fsahin
|
||||
- George // rogueleaderr
|
||||
- Henry Greville // sethaurus
|
||||
- Hugo // hugovk
|
||||
- José Manuel Pérez // JMPerez
|
||||
- Lucas Nunno // lnunno
|
||||
- Lynn Root // econchick
|
||||
- Matt Dennewitz // mattdennewitz
|
||||
- Matthew Duck // mattduck
|
||||
- Michael Thelin // thelinmichael
|
||||
- Ryan Choi // ryankicks
|
||||
- Simon Metson // drsm79
|
||||
- Steve Winton // swinton
|
||||
- Tim Balzer // timbalzer
|
||||
- corycorycory // corycorycory
|
||||
- Nathan Coleman // nathancoleman
|
||||
- Michael Birtwell // mbirtwell
|
||||
- Harrison Hayes // Harrison97
|
||||
- Stephane Bruckert // stephanebruckert
|
||||
- Ritiek Malhotra // ritiek
|
||||
- Daniel Beaudry (`danbeaudry on Github <https://github.com/danbeaudry>`_)
|
||||
- Faruk Emre Sahin (`fsahin on Github <https://github.com/fsahin>`_)
|
||||
- George (`rogueleaderr on Github <https://github.com/rogueleaderr>`_)
|
||||
- Henry Greville (`sethaurus on Github <https://github.com/sethaurus>`_)
|
||||
- Hugo van Kemanade (`hugovk on Github <https://github.com/hugovk>`_)
|
||||
- José Manuel Pérez (`JMPerez on Github <https://github.com/JMPerez>`_)
|
||||
- Lucas Nunno (`lnunno on Github <https://github.com/lnunno>`_)
|
||||
- Lynn Root (`econchick on Github <https://github.com/econchick>`_)
|
||||
- Matt Dennewitz (`mattdennewitz on Github <https://github.com/mattdennewitz>`_)
|
||||
- Matthew Duck (`mattduck on Github <https://github.com/mattduck>`_)
|
||||
- Michael Thelin (`thelinmichael on Github <https://github.com/thelinmichael>`_)
|
||||
- Ryan Choi (`ryankicks on Github <https://github.com/ryankicks>`_)
|
||||
- Simon Metson (`drsm79 on Github <https://github.com/drsm79>`_)
|
||||
- Steve Winton (`swinton on Github <https://github.com/swinton>`_)
|
||||
- Tim Balzer (`timbalzer on Github <https://github.com/timbalzer>`_)
|
||||
- `corycorycory on Github <https://github.com/corycorycory>`_
|
||||
- Nathan Coleman (`nathancoleman on Github <https://github.com/nathancoleman>`_)
|
||||
- Michael Birtwell (`mbirtwell on Github <https://github.com/mbirtwell>`_)
|
||||
- Harrison Hayes (`Harrison97 on Github <https://github.com/Harrison97>`_)
|
||||
- Stephane Bruckert (`stephanebruckert on Github <https://github.com/stephanebruckert>`_)
|
||||
- Ritiek Malhotra (`ritiek on Github <https://github.com/ritiek>`_)
|
||||
|
||||
If you are a developer with Python experience, and you would like to contribute to Spotipy, please
|
||||
be sure to follow the guidelines listed below:
|
||||
|
||||
Export the needed Environment variables:::
|
||||
export SPOTIPY_CLIENT_ID=client_id_here
|
||||
export SPOTIPY_CLIENT_SECRET=client_secret_here
|
||||
export SPOTIPY_CLIENT_USERNAME=client_username_here # This is actually an id not spotify display name
|
||||
export SPOTIPY_REDIRECT_URI=http://localhost:8080 # Make url is set in app you created to get your ID and SECRET
|
||||
|
||||
Create virtual environment, install dependencies, run tests:::
|
||||
$ virtualenv --python=python3.7 env
|
||||
(env) $ pip install --user -e .
|
||||
(env) $ python -m unittest discover -v tests
|
||||
|
||||
**Lint**
|
||||
|
||||
To automatically fix the code style:::
|
||||
pip install autopep8
|
||||
autopep8 --in-place --aggressive --recursive .
|
||||
|
||||
To verify the code style:::
|
||||
pip install flake8
|
||||
flake8 .
|
||||
|
||||
To make sure if the import lists are stored correctly:::
|
||||
pip install isort
|
||||
isort . -c -v
|
||||
|
||||
**Publishing (by maintainer)**
|
||||
|
||||
- Bump version in setup.py
|
||||
- Bump and date changelog
|
||||
- Add to changelog:
|
||||
::
|
||||
## Unreleased
|
||||
|
||||
// Add your changes here and then delete this line
|
||||
- Commit changes
|
||||
- Package to pypi:
|
||||
::
|
||||
python setup.py sdist bdist_wheel
|
||||
python3 setup.py sdist bdist_wheel
|
||||
twine check dist/*
|
||||
twine upload --repository-url https://upload.pypi.org/legacy/ --skip-existing dist/*.(whl|gz|zip)~dist/*linux*.whl
|
||||
- Create github release https://github.com/plamere/spotipy/releases with the changelog content for the version and a short name that describes the main addition
|
||||
- Build the documentation again to ensure it's on the latest version
|
||||
|
||||
**Changelog**
|
||||
|
||||
Don't forget to add a short description of your change in the `CHANGELOG <https://github.com/plamere/spotipy/blob/master/CHANGELOG.md>`_!
|
||||
|
||||
|
||||
|
||||
License
|
||||
=======
|
||||
https://github.com/plamere/spotipy/blob/master/LICENSE.md
|
||||
(Taken from https://github.com/plamere/spotipy/blob/master/LICENSE.md)::
|
||||
|
||||
MIT License
|
||||
Copyright (c) 2021 Paul Lamere
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files
|
||||
(the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge,
|
||||
publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do
|
||||
so, subject to the following conditions:
|
||||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
||||
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||||
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
|
||||
IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
|
||||
Indices and tables
|
||||
|
||||
Reference in new issue
Block a user