diskcache-community 5.7.0__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.
@@ -0,0 +1,491 @@
1
+ Metadata-Version: 2.4
2
+ Name: diskcache-community
3
+ Version: 5.7.0
4
+ Summary: Disk Cache -- Disk and file backed persistent cache.
5
+ Author: Grant Jenks
6
+ Maintainer: diskcache-community contributors
7
+ License-Expression: Apache-2.0
8
+ Project-URL: Homepage, https://github.com/secondwindoss/diskcache-community
9
+ Project-URL: Source, https://github.com/secondwindoss/diskcache-community
10
+ Project-URL: Tracker, https://github.com/secondwindoss/diskcache-community/issues
11
+ Project-URL: Upstream, https://github.com/grantjenks/python-diskcache
12
+ Classifier: Development Status :: 5 - Production/Stable
13
+ Classifier: Intended Audience :: Developers
14
+ Classifier: Natural Language :: English
15
+ Classifier: Programming Language :: Python
16
+ Classifier: Programming Language :: Python :: 3
17
+ Classifier: Programming Language :: Python :: 3 :: Only
18
+ Classifier: Programming Language :: Python :: 3.10
19
+ Classifier: Programming Language :: Python :: 3.11
20
+ Classifier: Programming Language :: Python :: 3.12
21
+ Classifier: Programming Language :: Python :: 3.13
22
+ Classifier: Programming Language :: Python :: 3.14
23
+ Classifier: Programming Language :: Python :: Implementation :: CPython
24
+ Requires-Python: >=3.10
25
+ Description-Content-Type: text/x-rst
26
+ License-File: LICENSE
27
+ License-File: NOTICE
28
+ Dynamic: license-file
29
+
30
+ DiskCache: Disk Backed Cache
31
+ ============================
32
+
33
+ `DiskCache`_ is an Apache2 licensed disk and file backed cache library, written
34
+ in pure-Python, and compatible with Django.
35
+
36
+ **This is a community fork.** It is published on PyPI as
37
+ ``diskcache-community`` and imported as ``diskcache``. See `About this fork`_
38
+ for why it exists and how to migrate.
39
+
40
+ The cloud-based computing of 2023 puts a premium on memory. Gigabytes of empty
41
+ space is left on disks as processes vie for memory. Among these processes is
42
+ Memcached (and sometimes Redis) which is used as a cache. Wouldn't it be nice
43
+ to leverage empty disk space for caching?
44
+
45
+ Django is Python's most popular web framework and ships with several caching
46
+ backends. Unfortunately the file-based cache in Django is essentially
47
+ broken. The culling method is random and large caches repeatedly scan a cache
48
+ directory which slows linearly with growth. Can you really allow it to take
49
+ sixty milliseconds to store a key in a cache with a thousand items?
50
+
51
+ In Python, we can do better. And we can do it in pure-Python!
52
+
53
+ ::
54
+
55
+ In [1]: import pylibmc
56
+ In [2]: client = pylibmc.Client(['127.0.0.1'], binary=True)
57
+ In [3]: client[b'key'] = b'value'
58
+ In [4]: %timeit client[b'key']
59
+
60
+ 10000 loops, best of 3: 25.4 µs per loop
61
+
62
+ In [5]: import diskcache as dc
63
+ In [6]: cache = dc.Cache('tmp')
64
+ In [7]: cache[b'key'] = b'value'
65
+ In [8]: %timeit cache[b'key']
66
+
67
+ 100000 loops, best of 3: 11.8 µs per loop
68
+
69
+ **Note:** Micro-benchmarks have their place but are not a substitute for real
70
+ measurements. DiskCache offers cache benchmarks to defend its performance
71
+ claims. Micro-optimizations are avoided but your mileage may vary.
72
+
73
+ DiskCache efficiently makes gigabytes of storage space available for
74
+ caching. By leveraging rock-solid database libraries and memory-mapped files,
75
+ cache performance can match and exceed industry-standard solutions. There's no
76
+ need for a C compiler or running another process. Performance is a feature and
77
+ testing has 100% coverage with unit tests and hours of stress.
78
+
79
+ About this fork
80
+ ---------------
81
+
82
+ `diskcache-community`_ is a community fork of `python-diskcache`_ by `Grant
83
+ Jenks`_. The last upstream release, 5.6.3, was published on 2023-08-31 and the
84
+ last upstream commit landed on 2024-03-03. Since then CVE-2025-69872
85
+ (`GHSA-w8v5-vhqr-4h9v`_) was published against every released version: the
86
+ cache reads pickled values from its directory with ``pickle.load``, so anyone
87
+ who can write into the cache directory can run code in the process that reads
88
+ from it. The package still installs and works, but dependency scanners flag it
89
+ and no fixed upstream version exists. This fork publishes the same library as
90
+ ``diskcache-community`` and carries the fix in two steps: 5.7.0 stays
91
+ compatible with 5.6.3 caches and adds an opt-in ``SafeDisk``, selected with
92
+ ``Cache(directory, disk=SafeDisk)`` and likewise on ``FanoutCache``,
93
+ ``Deque``, ``Index`` and the Django ``DISK`` option; 6.0.0 makes safe
94
+ reading the default. 5.7.0 is the first release of the fork; ``SECURITY.md``
95
+ in the repository describes what it does and does not change.
96
+
97
+ What stays the same:
98
+
99
+ - the import name, ``import diskcache``, and the public API
100
+ - the ``cache.db`` schema, the file layout and the serialization modes, so a
101
+ 5.6.3 process opens a directory written by this fork and the reverse
102
+ - the ``JSONDisk`` bytes, the memoize key format and the persisted settings
103
+
104
+ What changes for everyone: directories the cache creates get mode ``0700``,
105
+ so only the owner can read them; existing directories keep their permissions.
106
+
107
+ Migrating from ``diskcache``: both distributions install into the same
108
+ ``diskcache/`` package directory, so they cannot be installed side by side.
109
+ Uninstall the upstream package first, and never keep both, because
110
+ uninstalling either one deletes the shared package. The fork warns at import
111
+ time when both are installed::
112
+
113
+ $ pip uninstall diskcache
114
+ $ pip install diskcache-community
115
+
116
+ If ``diskcache`` arrives through a dependency, tell the resolver to drop it.
117
+ With uv, add this to ``pyproject.toml``::
118
+
119
+ [tool.uv]
120
+ exclude-dependencies = ["diskcache"]
121
+
122
+ With pip, install the dependent with ``--no-deps`` and list the rest of its
123
+ requirements yourself, or exclude ``diskcache`` through a constraints file.
124
+ End users of transitive dependents cannot switch with pip alone and should ask
125
+ the dependent project to switch.
126
+
127
+ DiskCache was written and maintained by Grant Jenks from 2016 to 2023. This
128
+ fork keeps his license, copyright and author credit; see ``NOTICE`` in the
129
+ repository.
130
+
131
+ .. _`diskcache-community`: https://github.com/secondwindoss/diskcache-community
132
+ .. _`python-diskcache`: https://github.com/grantjenks/python-diskcache
133
+ .. _`Grant Jenks`: https://github.com/grantjenks
134
+ .. _`GHSA-w8v5-vhqr-4h9v`: https://github.com/advisories/GHSA-w8v5-vhqr-4h9v
135
+
136
+ Testimonials
137
+ ------------
138
+
139
+ `Daren Hasenkamp`_, Founder --
140
+
141
+ "It's a useful, simple API, just like I love about Redis. It has reduced
142
+ the amount of queries hitting my Elasticsearch cluster by over 25% for a
143
+ website that gets over a million users/day (100+ hits/second)."
144
+
145
+ `Mathias Petermann`_, Senior Linux System Engineer --
146
+
147
+ "I implemented it into a wrapper for our Ansible lookup modules and we were
148
+ able to speed up some Ansible runs by almost 3 times. DiskCache is saving
149
+ us a ton of time."
150
+
151
+ Does your company or website use `DiskCache`_? Let us know in `Discussions`_.
152
+
153
+ .. _`Daren Hasenkamp`: https://www.linkedin.com/in/daren-hasenkamp-93006438/
154
+ .. _`Mathias Petermann`: https://www.linkedin.com/in/mathias-petermann-a8aa273b/
155
+ .. _`Discussions`: https://github.com/secondwindoss/diskcache-community/discussions
156
+
157
+ Features
158
+ --------
159
+
160
+ - Pure-Python
161
+ - Fully Documented
162
+ - Benchmark comparisons (alternatives, Django cache backends)
163
+ - 100% test coverage
164
+ - Hours of stress testing
165
+ - Performance matters
166
+ - Django compatible API
167
+ - Thread-safe and process-safe
168
+ - Supports multiple eviction policies (LRU and LFU included)
169
+ - Keys support "tag" metadata and eviction
170
+ - Tested on CPython 3.10, 3.11, 3.12, 3.13 and 3.14
171
+ - Tested on Linux, macOS and Windows with GitHub Actions
172
+
173
+ .. image:: https://github.com/secondwindoss/diskcache-community/actions/workflows/ci.yml/badge.svg
174
+ :target: https://github.com/secondwindoss/diskcache-community/actions/workflows/ci.yml
175
+
176
+ Quickstart
177
+ ----------
178
+
179
+ Installing `DiskCache`_ is simple with `pip <http://www.pip-installer.org/>`_::
180
+
181
+ $ pip install diskcache-community
182
+
183
+ You can access documentation in the interpreter with Python's built-in help
184
+ function::
185
+
186
+ >>> import diskcache
187
+ >>> help(diskcache) # doctest: +SKIP
188
+
189
+ The core of `DiskCache`_ is three data types intended for caching. `Cache`_
190
+ objects manage a SQLite database and filesystem directory to store key and
191
+ value pairs. `FanoutCache`_ provides a sharding layer to utilize multiple
192
+ caches and `DjangoCache`_ integrates that with `Django`_::
193
+
194
+ >>> from diskcache import Cache, FanoutCache, DjangoCache
195
+ >>> help(Cache) # doctest: +SKIP
196
+ >>> help(FanoutCache) # doctest: +SKIP
197
+ >>> help(DjangoCache) # doctest: +SKIP
198
+
199
+ Built atop the caching data types, are `Deque`_ and `Index`_ which work as a
200
+ cross-process, persistent replacements for Python's ``collections.deque`` and
201
+ ``dict``. These implement the sequence and mapping container base classes::
202
+
203
+ >>> from diskcache import Deque, Index
204
+ >>> help(Deque) # doctest: +SKIP
205
+ >>> help(Index) # doctest: +SKIP
206
+
207
+ Finally, a number of `recipes`_ for cross-process synchronization are provided
208
+ using an underlying cache. Features like memoization with cache stampede
209
+ prevention, cross-process locking, and cross-process throttling are available::
210
+
211
+ >>> from diskcache import memoize_stampede, Lock, throttle
212
+ >>> help(memoize_stampede) # doctest: +SKIP
213
+ >>> help(Lock) # doctest: +SKIP
214
+ >>> help(throttle) # doctest: +SKIP
215
+
216
+ Python's docstrings are a quick way to get started but not intended as a
217
+ replacement for the `DiskCache Tutorial`_ and `DiskCache API Reference`_.
218
+
219
+ .. _`Cache`: https://github.com/secondwindoss/diskcache-community/blob/master/docs/tutorial.rst#cache
220
+ .. _`FanoutCache`: https://github.com/secondwindoss/diskcache-community/blob/master/docs/tutorial.rst#fanoutcache
221
+ .. _`DjangoCache`: https://github.com/secondwindoss/diskcache-community/blob/master/docs/tutorial.rst#djangocache
222
+ .. _`Django`: https://www.djangoproject.com/
223
+ .. _`Deque`: https://github.com/secondwindoss/diskcache-community/blob/master/docs/tutorial.rst#deque
224
+ .. _`Index`: https://github.com/secondwindoss/diskcache-community/blob/master/docs/tutorial.rst#index
225
+ .. _`recipes`: https://github.com/secondwindoss/diskcache-community/blob/master/docs/tutorial.rst#recipes
226
+
227
+ User Guide
228
+ ----------
229
+
230
+ For those wanting more details, this part of the documentation describes
231
+ tutorial, benchmarks, API, and development.
232
+
233
+ * `DiskCache Tutorial`_
234
+ * `DiskCache Cache Benchmarks`_
235
+ * `DiskCache DjangoCache Benchmarks`_
236
+ * `Case Study: Web Crawler`_
237
+ * `Case Study: Landing Page Caching`_
238
+ * `Talk: All Things Cached - SF Python 2017 Meetup`_
239
+ * `DiskCache API Reference`_
240
+ * `DiskCache Development`_
241
+
242
+ .. _`DiskCache Tutorial`: https://github.com/secondwindoss/diskcache-community/blob/master/docs/tutorial.rst
243
+ .. _`DiskCache Cache Benchmarks`: https://github.com/secondwindoss/diskcache-community/blob/master/docs/cache-benchmarks.rst
244
+ .. _`DiskCache DjangoCache Benchmarks`: https://github.com/secondwindoss/diskcache-community/blob/master/docs/djangocache-benchmarks.rst
245
+ .. _`Talk: All Things Cached - SF Python 2017 Meetup`: https://github.com/secondwindoss/diskcache-community/blob/master/docs/sf-python-2017-meetup-talk.rst
246
+ .. _`Case Study: Web Crawler`: https://github.com/secondwindoss/diskcache-community/blob/master/docs/case-study-web-crawler.rst
247
+ .. _`Case Study: Landing Page Caching`: https://github.com/secondwindoss/diskcache-community/blob/master/docs/case-study-landing-page-caching.rst
248
+ .. _`DiskCache API Reference`: https://github.com/secondwindoss/diskcache-community/blob/master/docs/api.rst
249
+ .. _`DiskCache Development`: https://github.com/secondwindoss/diskcache-community/blob/master/docs/development.rst
250
+
251
+ Comparisons
252
+ -----------
253
+
254
+ Comparisons to popular projects related to `DiskCache`_.
255
+
256
+ Key-Value Stores
257
+ ................
258
+
259
+ `DiskCache`_ is mostly a simple key-value store. Feature comparisons with four
260
+ other projects are shown in the tables below.
261
+
262
+ * `dbm`_ is part of Python's standard library and implements a generic
263
+ interface to variants of the DBM database — dbm.gnu or dbm.ndbm. If none of
264
+ these modules is installed, the slow-but-simple dbm.dumb is used.
265
+ * `shelve`_ is part of Python's standard library and implements a “shelf” as a
266
+ persistent, dictionary-like object. The difference with “dbm” databases is
267
+ that the values can be anything that the pickle module can handle.
268
+ * `sqlitedict`_ is a lightweight wrapper around Python's sqlite3 database with
269
+ a simple, Pythonic dict-like interface and support for multi-thread
270
+ access. Keys are arbitrary strings, values arbitrary pickle-able objects.
271
+ * `pickleDB`_ is a lightweight and simple key-value store. It is built upon
272
+ Python's simplejson module and was inspired by Redis. It is licensed with the
273
+ BSD three-clause license.
274
+
275
+ .. _`dbm`: https://docs.python.org/3/library/dbm.html
276
+ .. _`shelve`: https://docs.python.org/3/library/shelve.html
277
+ .. _`sqlitedict`: https://github.com/RaRe-Technologies/sqlitedict
278
+ .. _`pickleDB`: https://pythonhosted.org/pickleDB/
279
+
280
+ **Features**
281
+
282
+ ================ ============= ========= ========= ============ ============
283
+ Feature diskcache dbm shelve sqlitedict pickleDB
284
+ ================ ============= ========= ========= ============ ============
285
+ Atomic? Always Maybe Maybe Maybe No
286
+ Persistent? Yes Yes Yes Yes Yes
287
+ Thread-safe? Yes No No Yes No
288
+ Process-safe? Yes No No Maybe No
289
+ Backend? SQLite DBM DBM SQLite File
290
+ Serialization? Customizable None Pickle Customizable JSON
291
+ Data Types? Mapping/Deque Mapping Mapping Mapping Mapping
292
+ Ordering? Insert/Sorted None None None None
293
+ Eviction? LRU/LFU/more None None None None
294
+ Vacuum? Automatic Maybe Maybe Manual Automatic
295
+ Transactions? Yes No No Maybe No
296
+ Multiprocessing? Yes No No No No
297
+ Forkable? Yes No No No No
298
+ Metadata? Yes No No No No
299
+ ================ ============= ========= ========= ============ ============
300
+
301
+ **Quality**
302
+
303
+ ================ ============= ========= ========= ============ ============
304
+ Project diskcache dbm shelve sqlitedict pickleDB
305
+ ================ ============= ========= ========= ============ ============
306
+ Tests? Yes Yes Yes Yes Yes
307
+ Coverage? Yes Yes Yes Yes No
308
+ Stress? Yes No No No No
309
+ CI Tests? Linux/Windows Yes Yes Linux No
310
+ Python? 2/3/PyPy All All 2/3 2/3
311
+ License? Apache2 Python Python Apache2 3-Clause BSD
312
+ Docs? Extensive Summary Summary Readme Summary
313
+ Benchmarks? Yes No No No No
314
+ Sources? GitHub GitHub GitHub GitHub GitHub
315
+ Pure-Python? Yes Yes Yes Yes Yes
316
+ Server? No No No No No
317
+ Integrations? Django None None None None
318
+ ================ ============= ========= ========= ============ ============
319
+
320
+ **Timings**
321
+
322
+ These are rough measurements. See `DiskCache Cache Benchmarks`_ for more
323
+ rigorous data.
324
+
325
+ ================ ============= ========= ========= ============ ============
326
+ Project diskcache dbm shelve sqlitedict pickleDB
327
+ ================ ============= ========= ========= ============ ============
328
+ get 25 µs 36 µs 41 µs 513 µs 92 µs
329
+ set 198 µs 900 µs 928 µs 697 µs 1,020 µs
330
+ delete 248 µs 740 µs 702 µs 1,717 µs 1,020 µs
331
+ ================ ============= ========= ========= ============ ============
332
+
333
+ Caching Libraries
334
+ .................
335
+
336
+ * `joblib.Memory`_ provides caching functions and works by explicitly saving
337
+ the inputs and outputs to files. It is designed to work with non-hashable and
338
+ potentially large input and output data types such as numpy arrays.
339
+ * `klepto`_ extends Python’s `lru_cache` to utilize different keymaps and
340
+ alternate caching algorithms, such as `lfu_cache` and `mru_cache`. Klepto
341
+ uses a simple dictionary-sytle interface for all caches and archives.
342
+
343
+ .. _`klepto`: https://pypi.org/project/klepto/
344
+ .. _`joblib.Memory`: https://joblib.readthedocs.io/en/latest/memory.html
345
+
346
+ Data Structures
347
+ ...............
348
+
349
+ * `dict`_ is a mapping object that maps hashable keys to arbitrary
350
+ values. Mappings are mutable objects. There is currently only one standard
351
+ Python mapping type, the dictionary.
352
+ * `pandas`_ is a Python package providing fast, flexible, and expressive data
353
+ structures designed to make working with “relational” or “labeled” data both
354
+ easy and intuitive.
355
+ * `Sorted Containers`_ is an Apache2 licensed sorted collections library,
356
+ written in pure-Python, and fast as C-extensions. Sorted Containers
357
+ implements sorted list, sorted dictionary, and sorted set data types.
358
+
359
+ .. _`dict`: https://docs.python.org/3/library/stdtypes.html#typesmapping
360
+ .. _`pandas`: https://pandas.pydata.org/
361
+ .. _`Sorted Containers`: https://pypi.org/project/sortedcontainers/
362
+
363
+ Pure-Python Databases
364
+ .....................
365
+
366
+ * `ZODB`_ supports an isomorphic interface for database operations which means
367
+ there's little impact on your code to make objects persistent and there's no
368
+ database mapper that partially hides the database.
369
+ * `CodernityDB`_ is an open source, pure-Python, multi-platform, schema-less,
370
+ NoSQL database and includes an HTTP server version, and a Python client
371
+ library that aims to be 100% compatible with the embedded version.
372
+ * `TinyDB`_ is a tiny, document oriented database optimized for your
373
+ happiness. If you need a simple database with a clean API that just works
374
+ without lots of configuration, TinyDB might be the right choice for you.
375
+
376
+ .. _`ZODB`: http://www.zodb.org/
377
+ .. _`CodernityDB`: https://pypi.org/project/CodernityDB/
378
+ .. _`TinyDB`: https://tinydb.readthedocs.io/
379
+
380
+ Object Relational Mappings (ORM)
381
+ ................................
382
+
383
+ * `Django ORM`_ provides models that are the single, definitive source of
384
+ information about data and contains the essential fields and behaviors of the
385
+ stored data. Generally, each model maps to a single SQL database table.
386
+ * `SQLAlchemy`_ is the Python SQL toolkit and Object Relational Mapper that
387
+ gives application developers the full power and flexibility of SQL. It
388
+ provides a full suite of well known enterprise-level persistence patterns.
389
+ * `Peewee`_ is a simple and small ORM. It has few (but expressive) concepts,
390
+ making it easy to learn and intuitive to use. Peewee supports Sqlite, MySQL,
391
+ and PostgreSQL with tons of extensions.
392
+ * `SQLObject`_ is a popular Object Relational Manager for providing an object
393
+ interface to your database, with tables as classes, rows as instances, and
394
+ columns as attributes.
395
+ * `Pony ORM`_ is a Python ORM with beautiful query syntax. Use Python syntax
396
+ for interacting with the database. Pony translates such queries into SQL and
397
+ executes them in the database in the most efficient way.
398
+
399
+ .. _`Django ORM`: https://docs.djangoproject.com/en/dev/topics/db/
400
+ .. _`SQLAlchemy`: https://www.sqlalchemy.org/
401
+ .. _`Peewee`: http://docs.peewee-orm.com/
402
+ .. _`SQLObject`: http://sqlobject.org/
403
+ .. _`Pony ORM`: https://ponyorm.com/
404
+
405
+ SQL Databases
406
+ .............
407
+
408
+ * `SQLite`_ is part of Python's standard library and provides a lightweight
409
+ disk-based database that doesn’t require a separate server process and allows
410
+ accessing the database using a nonstandard variant of the SQL query language.
411
+ * `MySQL`_ is one of the world’s most popular open source databases and has
412
+ become a leading database choice for web-based applications. MySQL includes a
413
+ standardized database driver for Python platforms and development.
414
+ * `PostgreSQL`_ is a powerful, open source object-relational database system
415
+ with over 30 years of active development. Psycopg is the most popular
416
+ PostgreSQL adapter for the Python programming language.
417
+ * `Oracle DB`_ is a relational database management system (RDBMS) from the
418
+ Oracle Corporation. Originally developed in 1977, Oracle DB is one of the
419
+ most trusted and widely used enterprise relational database engines.
420
+ * `Microsoft SQL Server`_ is a relational database management system developed
421
+ by Microsoft. As a database server, it stores and retrieves data as requested
422
+ by other software applications.
423
+
424
+ .. _`SQLite`: https://docs.python.org/3/library/sqlite3.html
425
+ .. _`MySQL`: https://dev.mysql.com/downloads/connector/python/
426
+ .. _`PostgreSQL`: http://initd.org/psycopg/
427
+ .. _`Oracle DB`: https://pypi.org/project/cx_Oracle/
428
+ .. _`Microsoft SQL Server`: https://pypi.org/project/pyodbc/
429
+
430
+ Other Databases
431
+ ...............
432
+
433
+ * `Memcached`_ is free and open source, high-performance, distributed memory
434
+ object caching system, generic in nature, but intended for use in speeding up
435
+ dynamic web applications by alleviating database load.
436
+ * `Redis`_ is an open source, in-memory data structure store, used as a
437
+ database, cache and message broker. It supports data structures such as
438
+ strings, hashes, lists, sets, sorted sets with range queries, and more.
439
+ * `MongoDB`_ is a cross-platform document-oriented database program. Classified
440
+ as a NoSQL database program, MongoDB uses JSON-like documents with
441
+ schema. PyMongo is the recommended way to work with MongoDB from Python.
442
+ * `LMDB`_ is a lightning-fast, memory-mapped database. With memory-mapped
443
+ files, it has the read performance of a pure in-memory database while
444
+ retaining the persistence of standard disk-based databases.
445
+ * `BerkeleyDB`_ is a software library intended to provide a high-performance
446
+ embedded database for key/value data. Berkeley DB is a programmatic toolkit
447
+ that provides built-in database support for desktop and server applications.
448
+ * `LevelDB`_ is a fast key-value storage library written at Google that
449
+ provides an ordered mapping from string keys to string values. Data is stored
450
+ sorted by key and users can provide a custom comparison function.
451
+
452
+ .. _`Memcached`: https://pypi.org/project/python-memcached/
453
+ .. _`MongoDB`: https://api.mongodb.com/python/current/
454
+ .. _`Redis`: https://redis.io/clients#python
455
+ .. _`LMDB`: https://lmdb.readthedocs.io/
456
+ .. _`BerkeleyDB`: https://pypi.org/project/bsddb3/
457
+ .. _`LevelDB`: https://plyvel.readthedocs.io/
458
+
459
+ Reference
460
+ ---------
461
+
462
+ * `DiskCache Documentation`_
463
+ * `DiskCache at PyPI`_
464
+ * `DiskCache at GitHub`_
465
+ * `DiskCache Issue Tracker`_
466
+
467
+ .. _`DiskCache Documentation`: https://github.com/secondwindoss/diskcache-community/tree/master/docs
468
+ .. _`DiskCache at PyPI`: https://pypi.org/project/diskcache-community/
469
+ .. _`DiskCache at GitHub`: https://github.com/secondwindoss/diskcache-community/
470
+ .. _`DiskCache Issue Tracker`: https://github.com/secondwindoss/diskcache-community/issues/
471
+
472
+ License
473
+ -------
474
+
475
+ Copyright 2016-2023 Grant Jenks
476
+
477
+ Modifications in this fork are copyright 2026 diskcache-community contributors
478
+ and are distributed under the same license.
479
+
480
+ Licensed under the Apache License, Version 2.0 (the "License"); you may not use
481
+ this file except in compliance with the License. You may obtain a copy of the
482
+ License at
483
+
484
+ http://www.apache.org/licenses/LICENSE-2.0
485
+
486
+ Unless required by applicable law or agreed to in writing, software distributed
487
+ under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
488
+ CONDITIONS OF ANY KIND, either express or implied. See the License for the
489
+ specific language governing permissions and limitations under the License.
490
+
491
+ .. _`DiskCache`: https://github.com/secondwindoss/diskcache-community
@@ -0,0 +1,13 @@
1
+ diskcache/__init__.py,sha256=7vQVeExWqOcGyGR_GaPPDtJwXrOJvvhMuyb_vbq-A8U,2530
2
+ diskcache/cli.py,sha256=RVv6Fyn7h_0E5BoAVJzbbjOWPDHXO0ZjNgh9g5CBRP8,44
3
+ diskcache/core.py,sha256=NkKGxSHCxojafUDSHevym-MeUdzuhnKsa53TRjvLl70,114962
4
+ diskcache/djangocache.py,sha256=sjWaRh66R5NzkI2qjozcU3hn2-4FKyEYBxPvGeLy1vE,17310
5
+ diskcache/fanout.py,sha256=14T4ab87_KC3UQfWYugbYTiiWg-Dy5s-GRpq-6mD8tc,24189
6
+ diskcache/persistent.py,sha256=AXj7jTQB6_W2opO83wT1QoblO1QOVJ2YgfADb4H_RJ0,35162
7
+ diskcache/recipes.py,sha256=ktY_5zBsjI9aQNPuPzUrnCu3aqGhu3_wNh4gmCyvecU,15113
8
+ diskcache_community-5.7.0.dist-info/licenses/LICENSE,sha256=WDVGuqP9k2B9hFEmVwZ3pAH1COIotQRP77w5Sa8XlnI,559
9
+ diskcache_community-5.7.0.dist-info/licenses/NOTICE,sha256=vvnuvrMWPkP1v54hhOG6N1-_ueovy2qPp-SjOcrLYh8,393
10
+ diskcache_community-5.7.0.dist-info/METADATA,sha256=GGNAzfu0vJ6Y8AbD0hn9iZDX7H2jD2Ck4gS7sgZW-TQ,23949
11
+ diskcache_community-5.7.0.dist-info/WHEEL,sha256=YVMoNqKzERt-wjUZwJ33xBGAwnFl-4cqbYkTtWa4itE,91
12
+ diskcache_community-5.7.0.dist-info/top_level.txt,sha256=A5fqg_AHgOQc_0o1NZ-Uo5Bsb7CV3fR99J-p1-F4yuA,10
13
+ diskcache_community-5.7.0.dist-info/RECORD,,
@@ -0,0 +1,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: setuptools (84.0.0)
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
5
+
@@ -0,0 +1,12 @@
1
+ Copyright 2016-2022 Grant Jenks
2
+
3
+ Licensed under the Apache License, Version 2.0 (the "License"); you may not use
4
+ this file except in compliance with the License. You may obtain a copy of the
5
+ License at
6
+
7
+ http://www.apache.org/licenses/LICENSE-2.0
8
+
9
+ Unless required by applicable law or agreed to in writing, software distributed
10
+ under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
11
+ CONDITIONS OF ANY KIND, either express or implied. See the License for the
12
+ specific language governing permissions and limitations under the License.
@@ -0,0 +1,9 @@
1
+ diskcache-community
2
+ Copyright 2026 diskcache-community contributors
3
+
4
+ This project is a fork of DiskCache (https://github.com/grantjenks/python-diskcache).
5
+ Original work copyright 2016-2023 Grant Jenks, licensed under the Apache License,
6
+ Version 2.0 (see LICENSE).
7
+
8
+ Modifications made in this fork are copyright 2026 diskcache-community contributors
9
+ and are distributed under the same license.
@@ -0,0 +1 @@
1
+ diskcache