8.7 KiB
graph LR
Cache_Handler_Interface["Cache Handler Interface"]
File_Cache_Handler["File Cache Handler"]
Memory_Cache_Handler["Memory Cache Handler"]
Django_Session_Cache_Handler["Django Session Cache Handler"]
Flask_Session_Cache_Handler["Flask Session Cache Handler"]
Redis_Cache_Handler["Redis Cache Handler"]
Memcache_Cache_Handler["Memcache Cache Handler"]
File_Cache_Handler -- "inherits from" --> Cache_Handler_Interface
Memory_Cache_Handler -- "inherits from" --> Cache_Handler_Interface
Django_Session_Cache_Handler -- "inherits from" --> Cache_Handler_Interface
Flask_Session_Cache_Handler -- "inherits from" --> Cache_Handler_Interface
Redis_Cache_Handler -- "inherits from" --> Cache_Handler_Interface
Memcache_Cache_Handler -- "inherits from" --> Cache_Handler_Interface
Client_Credentials_Flow -- "uses" --> Cache_Handler_Interface
Authorization_Code_Flow -- "uses" --> Cache_Handler_Interface
PKCE_Authorization_Flow -- "uses" --> Cache_Handler_Interface
Implicit_Grant_Flow -- "uses" --> Cache_Handler_Interface
Component Details
This subsystem provides a flexible mechanism for managing the persistence and retrieval of Spotify authentication tokens. It is built around an abstract CacheHandler interface, which defines the contract for caching operations. Various concrete implementations, such as CacheFileHandler, MemoryCacheHandler, DjangoSessionCacheHandler, FlaskSessionCacheHandler, RedisCacheHandler, and MemcacheCacheHandler, extend this interface to support different storage backends. This design allows authentication flows to utilize a consistent caching mechanism regardless of the underlying storage technology, reducing the need for repeated user authentication and improving application performance.
Cache Handler Interface
Defines the abstract interface for managing the caching and retrieval of Spotify authorization tokens, requiring concrete implementations to provide get_cached_token and save_token_to_cache methods.
Related Classes/Methods:
File Cache Handler
Implements the Cache Handler Interface by persisting and retrieving authentication tokens as JSON files on the local disk.
Related Classes/Methods:
spotipy.cache_handler.CacheFileHandler(46:102)spotipy.cache_handler.CacheFileHandler.__init__(52:73)spotipy.cache_handler.CacheFileHandler.get_cached_token(75:91)spotipy.cache_handler.CacheFileHandler.save_token_to_cache(93:102)
Memory Cache Handler
Implements the Cache Handler Interface by storing authentication tokens in memory, which are lost when the instance is freed.
Related Classes/Methods:
spotipy.cache_handler.MemoryCacheHandler(105:123)spotipy.cache_handler.MemoryCacheHandler.__init__(112:117)spotipy.cache_handler.MemoryCacheHandler.get_cached_token(119:120)spotipy.cache_handler.MemoryCacheHandler.save_token_to_cache(122:123)
Django Session Cache Handler
Implements the Cache Handler Interface by utilizing Django's session framework to store authentication tokens.
Related Classes/Methods:
spotipy.cache_handler.DjangoSessionCacheHandler(126:155)spotipy.cache_handler.DjangoSessionCacheHandler.__init__(134:140)spotipy.cache_handler.DjangoSessionCacheHandler.get_cached_token(142:149)spotipy.cache_handler.DjangoSessionCacheHandler.save_token_to_cache(151:155)
Flask Session Cache Handler
Implements the Cache Handler Interface by utilizing Flask's session framework to store authentication tokens.
Related Classes/Methods:
spotipy.cache_handler.FlaskSessionCacheHandler(158:180)spotipy.cache_handler.FlaskSessionCacheHandler.__init__(164:165)spotipy.cache_handler.FlaskSessionCacheHandler.get_cached_token(167:174)spotipy.cache_handler.FlaskSessionCacheHandler.save_token_to_cache(176:180)
Redis Cache Handler
Implements the Cache Handler Interface by storing and retrieving authentication tokens using a Redis database.
Related Classes/Methods:
spotipy.cache_handler.RedisCacheHandler(183:214)spotipy.cache_handler.RedisCacheHandler.__init__(188:197)spotipy.cache_handler.RedisCacheHandler.get_cached_token(199:208)spotipy.cache_handler.RedisCacheHandler.save_token_to_cache(210:214)
Memcache Cache Handler
Implements the Cache Handler Interface by storing and retrieving authentication tokens using a Memcache server.
Related Classes/Methods:
spotipy.cache_handler.MemcacheCacheHandler(217:246)spotipy.cache_handler.MemcacheCacheHandler.__init__(221:230)spotipy.cache_handler.MemcacheCacheHandler.get_cached_token(232:239)spotipy.cache_handler.MemcacheCacheHandler.save_token_to_cache(241:246)