cc12703-diskcache 5.7.3__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,440 @@
1
+ Metadata-Version: 2.4
2
+ Name: cc12703-diskcache
3
+ Version: 5.7.3
4
+ Summary: Disk Cache -- Disk and file backed persistent cache.
5
+ Home-page: http://www.grantjenks.com/docs/diskcache/
6
+ Author: Grant Jenks
7
+ Author-email: contact@grantjenks.com
8
+ License: Apache 2.0
9
+ Project-URL: Documentation, http://www.grantjenks.com/docs/diskcache/
10
+ Project-URL: Funding, https://gum.co/diskcache
11
+ Project-URL: Source, https://github.com/cc12703/python-diskcache
12
+ Project-URL: Tracker, https://github.com/cc12703/python-diskcache/issues
13
+ Classifier: Development Status :: 5 - Production/Stable
14
+ Classifier: Intended Audience :: Developers
15
+ Classifier: License :: OSI Approved :: Apache Software License
16
+ Classifier: Natural Language :: English
17
+ Classifier: Programming Language :: Python
18
+ Classifier: Programming Language :: Python :: 3
19
+ Classifier: Programming Language :: Python :: 3.5
20
+ Classifier: Programming Language :: Python :: 3.6
21
+ Classifier: Programming Language :: Python :: 3.7
22
+ Classifier: Programming Language :: Python :: 3.8
23
+ Classifier: Programming Language :: Python :: 3.9
24
+ Classifier: Programming Language :: Python :: Implementation :: CPython
25
+ Requires-Python: >=3
26
+ License-File: LICENSE
27
+ Dynamic: author
28
+ Dynamic: author-email
29
+ Dynamic: classifier
30
+ Dynamic: description
31
+ Dynamic: home-page
32
+ Dynamic: license
33
+ Dynamic: license-file
34
+ Dynamic: project-url
35
+ Dynamic: requires-python
36
+ Dynamic: summary
37
+
38
+ DiskCache: Disk Backed Cache
39
+ ============================
40
+
41
+ `DiskCache`_ is an Apache2 licensed disk and file backed cache library, written
42
+ in pure-Python, and compatible with Django.
43
+
44
+ The cloud-based computing of 2023 puts a premium on memory. Gigabytes of empty
45
+ space is left on disks as processes vie for memory. Among these processes is
46
+ Memcached (and sometimes Redis) which is used as a cache. Wouldn't it be nice
47
+ to leverage empty disk space for caching?
48
+
49
+ Django is Python's most popular web framework and ships with several caching
50
+ backends. Unfortunately the file-based cache in Django is essentially
51
+ broken. The culling method is random and large caches repeatedly scan a cache
52
+ directory which slows linearly with growth. Can you really allow it to take
53
+ sixty milliseconds to store a key in a cache with a thousand items?
54
+
55
+ In Python, we can do better. And we can do it in pure-Python!
56
+
57
+ ::
58
+
59
+ In [1]: import pylibmc
60
+ In [2]: client = pylibmc.Client(['127.0.0.1'], binary=True)
61
+ In [3]: client[b'key'] = b'value'
62
+ In [4]: %timeit client[b'key']
63
+
64
+ 10000 loops, best of 3: 25.4 µs per loop
65
+
66
+ In [5]: import diskcache as dc
67
+ In [6]: cache = dc.Cache('tmp')
68
+ In [7]: cache[b'key'] = b'value'
69
+ In [8]: %timeit cache[b'key']
70
+
71
+ 100000 loops, best of 3: 11.8 µs per loop
72
+
73
+ **Note:** Micro-benchmarks have their place but are not a substitute for real
74
+ measurements. DiskCache offers cache benchmarks to defend its performance
75
+ claims. Micro-optimizations are avoided but your mileage may vary.
76
+
77
+ DiskCache efficiently makes gigabytes of storage space available for
78
+ caching. By leveraging rock-solid database libraries and memory-mapped files,
79
+ cache performance can match and exceed industry-standard solutions. There's no
80
+ need for a C compiler or running another process. Performance is a feature and
81
+ testing has 100% coverage with unit tests and hours of stress.
82
+
83
+ Testimonials
84
+ ------------
85
+
86
+ `Daren Hasenkamp`_, Founder --
87
+
88
+ "It's a useful, simple API, just like I love about Redis. It has reduced
89
+ the amount of queries hitting my Elasticsearch cluster by over 25% for a
90
+ website that gets over a million users/day (100+ hits/second)."
91
+
92
+ `Mathias Petermann`_, Senior Linux System Engineer --
93
+
94
+ "I implemented it into a wrapper for our Ansible lookup modules and we were
95
+ able to speed up some Ansible runs by almost 3 times. DiskCache is saving
96
+ us a ton of time."
97
+
98
+ Does your company or website use `DiskCache`_? Send us a `message
99
+ <contact@grantjenks.com>`_ and let us know.
100
+
101
+ .. _`Daren Hasenkamp`: https://www.linkedin.com/in/daren-hasenkamp-93006438/
102
+ .. _`Mathias Petermann`: https://www.linkedin.com/in/mathias-petermann-a8aa273b/
103
+
104
+ Features
105
+ --------
106
+
107
+ - Pure-Python
108
+ - Fully Documented
109
+ - Benchmark comparisons (alternatives, Django cache backends)
110
+ - 100% test coverage
111
+ - Hours of stress testing
112
+ - Performance matters
113
+ - Django compatible API
114
+ - Thread-safe and process-safe
115
+ - Supports multiple eviction policies (LRU and LFU included)
116
+ - Keys support "tag" metadata and eviction
117
+ - Developed on Python 3.10
118
+ - Tested on CPython 3.6, 3.7, 3.8, 3.9, 3.10
119
+ - Tested on Linux, Mac OS X, and Windows
120
+ - Tested using GitHub Actions
121
+
122
+ .. image:: https://github.com/grantjenks/python-diskcache/workflows/integration/badge.svg
123
+ :target: https://github.com/grantjenks/python-diskcache/actions?query=workflow%3Aintegration
124
+
125
+ .. image:: https://github.com/grantjenks/python-diskcache/workflows/release/badge.svg
126
+ :target: https://github.com/grantjenks/python-diskcache/actions?query=workflow%3Arelease
127
+
128
+ Quickstart
129
+ ----------
130
+
131
+ Installing `DiskCache`_ is simple with `pip <http://www.pip-installer.org/>`_::
132
+
133
+ $ pip install diskcache
134
+
135
+ You can access documentation in the interpreter with Python's built-in help
136
+ function::
137
+
138
+ >>> import diskcache
139
+ >>> help(diskcache) # doctest: +SKIP
140
+
141
+ The core of `DiskCache`_ is three data types intended for caching. `Cache`_
142
+ objects manage a SQLite database and filesystem directory to store key and
143
+ value pairs. `FanoutCache`_ provides a sharding layer to utilize multiple
144
+ caches and `DjangoCache`_ integrates that with `Django`_::
145
+
146
+ >>> from diskcache import Cache, FanoutCache, DjangoCache
147
+ >>> help(Cache) # doctest: +SKIP
148
+ >>> help(FanoutCache) # doctest: +SKIP
149
+ >>> help(DjangoCache) # doctest: +SKIP
150
+
151
+ Built atop the caching data types, are `Deque`_ and `Index`_ which work as a
152
+ cross-process, persistent replacements for Python's ``collections.deque`` and
153
+ ``dict``. These implement the sequence and mapping container base classes::
154
+
155
+ >>> from diskcache import Deque, Index
156
+ >>> help(Deque) # doctest: +SKIP
157
+ >>> help(Index) # doctest: +SKIP
158
+
159
+ Finally, a number of `recipes`_ for cross-process synchronization are provided
160
+ using an underlying cache. Features like memoization with cache stampede
161
+ prevention, cross-process locking, and cross-process throttling are available::
162
+
163
+ >>> from diskcache import memoize_stampede, Lock, throttle
164
+ >>> help(memoize_stampede) # doctest: +SKIP
165
+ >>> help(Lock) # doctest: +SKIP
166
+ >>> help(throttle) # doctest: +SKIP
167
+
168
+ Python's docstrings are a quick way to get started but not intended as a
169
+ replacement for the `DiskCache Tutorial`_ and `DiskCache API Reference`_.
170
+
171
+ .. _`Cache`: http://www.grantjenks.com/docs/diskcache/tutorial.html#cache
172
+ .. _`FanoutCache`: http://www.grantjenks.com/docs/diskcache/tutorial.html#fanoutcache
173
+ .. _`DjangoCache`: http://www.grantjenks.com/docs/diskcache/tutorial.html#djangocache
174
+ .. _`Django`: https://www.djangoproject.com/
175
+ .. _`Deque`: http://www.grantjenks.com/docs/diskcache/tutorial.html#deque
176
+ .. _`Index`: http://www.grantjenks.com/docs/diskcache/tutorial.html#index
177
+ .. _`recipes`: http://www.grantjenks.com/docs/diskcache/tutorial.html#recipes
178
+
179
+ User Guide
180
+ ----------
181
+
182
+ For those wanting more details, this part of the documentation describes
183
+ tutorial, benchmarks, API, and development.
184
+
185
+ * `DiskCache Tutorial`_
186
+ * `DiskCache Cache Benchmarks`_
187
+ * `DiskCache DjangoCache Benchmarks`_
188
+ * `Case Study: Web Crawler`_
189
+ * `Case Study: Landing Page Caching`_
190
+ * `Talk: All Things Cached - SF Python 2017 Meetup`_
191
+ * `DiskCache API Reference`_
192
+ * `DiskCache Development`_
193
+
194
+ .. _`DiskCache Tutorial`: http://www.grantjenks.com/docs/diskcache/tutorial.html
195
+ .. _`DiskCache Cache Benchmarks`: http://www.grantjenks.com/docs/diskcache/cache-benchmarks.html
196
+ .. _`DiskCache DjangoCache Benchmarks`: http://www.grantjenks.com/docs/diskcache/djangocache-benchmarks.html
197
+ .. _`Talk: All Things Cached - SF Python 2017 Meetup`: http://www.grantjenks.com/docs/diskcache/sf-python-2017-meetup-talk.html
198
+ .. _`Case Study: Web Crawler`: http://www.grantjenks.com/docs/diskcache/case-study-web-crawler.html
199
+ .. _`Case Study: Landing Page Caching`: http://www.grantjenks.com/docs/diskcache/case-study-landing-page-caching.html
200
+ .. _`DiskCache API Reference`: http://www.grantjenks.com/docs/diskcache/api.html
201
+ .. _`DiskCache Development`: http://www.grantjenks.com/docs/diskcache/development.html
202
+
203
+ Comparisons
204
+ -----------
205
+
206
+ Comparisons to popular projects related to `DiskCache`_.
207
+
208
+ Key-Value Stores
209
+ ................
210
+
211
+ `DiskCache`_ is mostly a simple key-value store. Feature comparisons with four
212
+ other projects are shown in the tables below.
213
+
214
+ * `dbm`_ is part of Python's standard library and implements a generic
215
+ interface to variants of the DBM database — dbm.gnu or dbm.ndbm. If none of
216
+ these modules is installed, the slow-but-simple dbm.dumb is used.
217
+ * `shelve`_ is part of Python's standard library and implements a “shelf” as a
218
+ persistent, dictionary-like object. The difference with “dbm” databases is
219
+ that the values can be anything that the pickle module can handle.
220
+ * `sqlitedict`_ is a lightweight wrapper around Python's sqlite3 database with
221
+ a simple, Pythonic dict-like interface and support for multi-thread
222
+ access. Keys are arbitrary strings, values arbitrary pickle-able objects.
223
+ * `pickleDB`_ is a lightweight and simple key-value store. It is built upon
224
+ Python's simplejson module and was inspired by Redis. It is licensed with the
225
+ BSD three-clause license.
226
+
227
+ .. _`dbm`: https://docs.python.org/3/library/dbm.html
228
+ .. _`shelve`: https://docs.python.org/3/library/shelve.html
229
+ .. _`sqlitedict`: https://github.com/RaRe-Technologies/sqlitedict
230
+ .. _`pickleDB`: https://pythonhosted.org/pickleDB/
231
+
232
+ **Features**
233
+
234
+ ================ ============= ========= ========= ============ ============
235
+ Feature diskcache dbm shelve sqlitedict pickleDB
236
+ ================ ============= ========= ========= ============ ============
237
+ Atomic? Always Maybe Maybe Maybe No
238
+ Persistent? Yes Yes Yes Yes Yes
239
+ Thread-safe? Yes No No Yes No
240
+ Process-safe? Yes No No Maybe No
241
+ Backend? SQLite DBM DBM SQLite File
242
+ Serialization? Customizable None Pickle Customizable JSON
243
+ Data Types? Mapping/Deque Mapping Mapping Mapping Mapping
244
+ Ordering? Insert/Sorted None None None None
245
+ Eviction? LRU/LFU/more None None None None
246
+ Vacuum? Automatic Maybe Maybe Manual Automatic
247
+ Transactions? Yes No No Maybe No
248
+ Multiprocessing? Yes No No No No
249
+ Forkable? Yes No No No No
250
+ Metadata? Yes No No No No
251
+ ================ ============= ========= ========= ============ ============
252
+
253
+ **Quality**
254
+
255
+ ================ ============= ========= ========= ============ ============
256
+ Project diskcache dbm shelve sqlitedict pickleDB
257
+ ================ ============= ========= ========= ============ ============
258
+ Tests? Yes Yes Yes Yes Yes
259
+ Coverage? Yes Yes Yes Yes No
260
+ Stress? Yes No No No No
261
+ CI Tests? Linux/Windows Yes Yes Linux No
262
+ Python? 2/3/PyPy All All 2/3 2/3
263
+ License? Apache2 Python Python Apache2 3-Clause BSD
264
+ Docs? Extensive Summary Summary Readme Summary
265
+ Benchmarks? Yes No No No No
266
+ Sources? GitHub GitHub GitHub GitHub GitHub
267
+ Pure-Python? Yes Yes Yes Yes Yes
268
+ Server? No No No No No
269
+ Integrations? Django None None None None
270
+ ================ ============= ========= ========= ============ ============
271
+
272
+ **Timings**
273
+
274
+ These are rough measurements. See `DiskCache Cache Benchmarks`_ for more
275
+ rigorous data.
276
+
277
+ ================ ============= ========= ========= ============ ============
278
+ Project diskcache dbm shelve sqlitedict pickleDB
279
+ ================ ============= ========= ========= ============ ============
280
+ get 25 µs 36 µs 41 µs 513 µs 92 µs
281
+ set 198 µs 900 µs 928 µs 697 µs 1,020 µs
282
+ delete 248 µs 740 µs 702 µs 1,717 µs 1,020 µs
283
+ ================ ============= ========= ========= ============ ============
284
+
285
+ Caching Libraries
286
+ .................
287
+
288
+ * `joblib.Memory`_ provides caching functions and works by explicitly saving
289
+ the inputs and outputs to files. It is designed to work with non-hashable and
290
+ potentially large input and output data types such as numpy arrays.
291
+ * `klepto`_ extends Python’s `lru_cache` to utilize different keymaps and
292
+ alternate caching algorithms, such as `lfu_cache` and `mru_cache`. Klepto
293
+ uses a simple dictionary-sytle interface for all caches and archives.
294
+
295
+ .. _`klepto`: https://pypi.org/project/klepto/
296
+ .. _`joblib.Memory`: https://joblib.readthedocs.io/en/latest/memory.html
297
+
298
+ Data Structures
299
+ ...............
300
+
301
+ * `dict`_ is a mapping object that maps hashable keys to arbitrary
302
+ values. Mappings are mutable objects. There is currently only one standard
303
+ Python mapping type, the dictionary.
304
+ * `pandas`_ is a Python package providing fast, flexible, and expressive data
305
+ structures designed to make working with “relational” or “labeled” data both
306
+ easy and intuitive.
307
+ * `Sorted Containers`_ is an Apache2 licensed sorted collections library,
308
+ written in pure-Python, and fast as C-extensions. Sorted Containers
309
+ implements sorted list, sorted dictionary, and sorted set data types.
310
+
311
+ .. _`dict`: https://docs.python.org/3/library/stdtypes.html#typesmapping
312
+ .. _`pandas`: https://pandas.pydata.org/
313
+ .. _`Sorted Containers`: http://www.grantjenks.com/docs/sortedcontainers/
314
+
315
+ Pure-Python Databases
316
+ .....................
317
+
318
+ * `ZODB`_ supports an isomorphic interface for database operations which means
319
+ there's little impact on your code to make objects persistent and there's no
320
+ database mapper that partially hides the datbase.
321
+ * `CodernityDB`_ is an open source, pure-Python, multi-platform, schema-less,
322
+ NoSQL database and includes an HTTP server version, and a Python client
323
+ library that aims to be 100% compatible with the embedded version.
324
+ * `TinyDB`_ is a tiny, document oriented database optimized for your
325
+ happiness. If you need a simple database with a clean API that just works
326
+ without lots of configuration, TinyDB might be the right choice for you.
327
+
328
+ .. _`ZODB`: http://www.zodb.org/
329
+ .. _`CodernityDB`: https://pypi.org/project/CodernityDB/
330
+ .. _`TinyDB`: https://tinydb.readthedocs.io/
331
+
332
+ Object Relational Mappings (ORM)
333
+ ................................
334
+
335
+ * `Django ORM`_ provides models that are the single, definitive source of
336
+ information about data and contains the essential fields and behaviors of the
337
+ stored data. Generally, each model maps to a single SQL database table.
338
+ * `SQLAlchemy`_ is the Python SQL toolkit and Object Relational Mapper that
339
+ gives application developers the full power and flexibility of SQL. It
340
+ provides a full suite of well known enterprise-level persistence patterns.
341
+ * `Peewee`_ is a simple and small ORM. It has few (but expressive) concepts,
342
+ making it easy to learn and intuitive to use. Peewee supports Sqlite, MySQL,
343
+ and PostgreSQL with tons of extensions.
344
+ * `SQLObject`_ is a popular Object Relational Manager for providing an object
345
+ interface to your database, with tables as classes, rows as instances, and
346
+ columns as attributes.
347
+ * `Pony ORM`_ is a Python ORM with beautiful query syntax. Use Python syntax
348
+ for interacting with the database. Pony translates such queries into SQL and
349
+ executes them in the database in the most efficient way.
350
+
351
+ .. _`Django ORM`: https://docs.djangoproject.com/en/dev/topics/db/
352
+ .. _`SQLAlchemy`: https://www.sqlalchemy.org/
353
+ .. _`Peewee`: http://docs.peewee-orm.com/
354
+ .. _`SQLObject`: http://sqlobject.org/
355
+ .. _`Pony ORM`: https://ponyorm.com/
356
+
357
+ SQL Databases
358
+ .............
359
+
360
+ * `SQLite`_ is part of Python's standard library and provides a lightweight
361
+ disk-based database that doesn’t require a separate server process and allows
362
+ accessing the database using a nonstandard variant of the SQL query language.
363
+ * `MySQL`_ is one of the world’s most popular open source databases and has
364
+ become a leading database choice for web-based applications. MySQL includes a
365
+ standardized database driver for Python platforms and development.
366
+ * `PostgreSQL`_ is a powerful, open source object-relational database system
367
+ with over 30 years of active development. Psycopg is the most popular
368
+ PostgreSQL adapter for the Python programming language.
369
+ * `Oracle DB`_ is a relational database management system (RDBMS) from the
370
+ Oracle Corporation. Originally developed in 1977, Oracle DB is one of the
371
+ most trusted and widely used enterprise relational database engines.
372
+ * `Microsoft SQL Server`_ is a relational database management system developed
373
+ by Microsoft. As a database server, it stores and retrieves data as requested
374
+ by other software applications.
375
+
376
+ .. _`SQLite`: https://docs.python.org/3/library/sqlite3.html
377
+ .. _`MySQL`: https://dev.mysql.com/downloads/connector/python/
378
+ .. _`PostgreSQL`: http://initd.org/psycopg/
379
+ .. _`Oracle DB`: https://pypi.org/project/cx_Oracle/
380
+ .. _`Microsoft SQL Server`: https://pypi.org/project/pyodbc/
381
+
382
+ Other Databases
383
+ ...............
384
+
385
+ * `Memcached`_ is free and open source, high-performance, distributed memory
386
+ object caching system, generic in nature, but intended for use in speeding up
387
+ dynamic web applications by alleviating database load.
388
+ * `Redis`_ is an open source, in-memory data structure store, used as a
389
+ database, cache and message broker. It supports data structures such as
390
+ strings, hashes, lists, sets, sorted sets with range queries, and more.
391
+ * `MongoDB`_ is a cross-platform document-oriented database program. Classified
392
+ as a NoSQL database program, MongoDB uses JSON-like documents with
393
+ schema. PyMongo is the recommended way to work with MongoDB from Python.
394
+ * `LMDB`_ is a lightning-fast, memory-mapped database. With memory-mapped
395
+ files, it has the read performance of a pure in-memory database while
396
+ retaining the persistence of standard disk-based databases.
397
+ * `BerkeleyDB`_ is a software library intended to provide a high-performance
398
+ embedded database for key/value data. Berkeley DB is a programmatic toolkit
399
+ that provides built-in database support for desktop and server applications.
400
+ * `LevelDB`_ is a fast key-value storage library written at Google that
401
+ provides an ordered mapping from string keys to string values. Data is stored
402
+ sorted by key and users can provide a custom comparison function.
403
+
404
+ .. _`Memcached`: https://pypi.org/project/python-memcached/
405
+ .. _`MongoDB`: https://api.mongodb.com/python/current/
406
+ .. _`Redis`: https://redis.io/clients#python
407
+ .. _`LMDB`: https://lmdb.readthedocs.io/
408
+ .. _`BerkeleyDB`: https://pypi.org/project/bsddb3/
409
+ .. _`LevelDB`: https://plyvel.readthedocs.io/
410
+
411
+ Reference
412
+ ---------
413
+
414
+ * `DiskCache Documentation`_
415
+ * `DiskCache at PyPI`_
416
+ * `DiskCache at GitHub`_
417
+ * `DiskCache Issue Tracker`_
418
+
419
+ .. _`DiskCache Documentation`: http://www.grantjenks.com/docs/diskcache/
420
+ .. _`DiskCache at PyPI`: https://pypi.python.org/pypi/diskcache/
421
+ .. _`DiskCache at GitHub`: https://github.com/grantjenks/python-diskcache/
422
+ .. _`DiskCache Issue Tracker`: https://github.com/grantjenks/python-diskcache/issues/
423
+
424
+ License
425
+ -------
426
+
427
+ Copyright 2016-2023 Grant Jenks
428
+
429
+ Licensed under the Apache License, Version 2.0 (the "License"); you may not use
430
+ this file except in compliance with the License. You may obtain a copy of the
431
+ License at
432
+
433
+ http://www.apache.org/licenses/LICENSE-2.0
434
+
435
+ Unless required by applicable law or agreed to in writing, software distributed
436
+ under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
437
+ CONDITIONS OF ANY KIND, either express or implied. See the License for the
438
+ specific language governing permissions and limitations under the License.
439
+
440
+ .. _`DiskCache`: http://www.grantjenks.com/docs/diskcache/
@@ -0,0 +1,12 @@
1
+ cc12703_diskcache-5.7.3.dist-info/licenses/LICENSE,sha256=WDVGuqP9k2B9hFEmVwZ3pAH1COIotQRP77w5Sa8XlnI,559
2
+ diskcache/__init__.py,sha256=4IixSaBOIDfqBMQrzukn69hOaAOee15Ea2mJwTvRVow,1270
3
+ diskcache/cli.py,sha256=RVv6Fyn7h_0E5BoAVJzbbjOWPDHXO0ZjNgh9g5CBRP8,44
4
+ diskcache/core.py,sha256=MWJw1jsipOEb57L4N5tkNfaRjXn4FUhlJgEcVLOb06U,85413
5
+ diskcache/djangocache.py,sha256=SX8jl2d-vfOMG7hXZuuh2VCnZEUP-mHGjYLpM2RdMaQ,16110
6
+ diskcache/fanout.py,sha256=E4Gk-puAGsaiqyf45YlLdVTf2RM1g7Qy-TPSug1Elpo,22725
7
+ diskcache/persistent.py,sha256=Cir3CPetAfACHlCEzY1P5B_YrZPPeWqsoKrkuBBxcCo,34681
8
+ diskcache/recipes.py,sha256=dr6CtZ67nRe3XMUBj2J6D_uftquMi_rNpZBg8i6lfRM,14922
9
+ cc12703_diskcache-5.7.3.dist-info/METADATA,sha256=PgPEgYW4_F_liGQpihs13ImIe7wuTkyjxF89yEgQtQs,20660
10
+ cc12703_diskcache-5.7.3.dist-info/WHEEL,sha256=aeYiig01lYGDzBgS8HxWXOg3uV61G9ijOsup-k9o1sk,91
11
+ cc12703_diskcache-5.7.3.dist-info/top_level.txt,sha256=A5fqg_AHgOQc_0o1NZ-Uo5Bsb7CV3fR99J-p1-F4yuA,10
12
+ cc12703_diskcache-5.7.3.dist-info/RECORD,,
@@ -0,0 +1,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: setuptools (82.0.1)
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 @@
1
+ diskcache
diskcache/__init__.py ADDED
@@ -0,0 +1,68 @@
1
+ """
2
+ DiskCache API Reference
3
+ =======================
4
+
5
+ The :doc:`tutorial` provides a helpful walkthrough of most methods.
6
+ """
7
+
8
+ from .core import (
9
+ DEFAULT_SETTINGS,
10
+ ENOVAL,
11
+ EVICTION_POLICY,
12
+ UNKNOWN,
13
+ Cache,
14
+ Disk,
15
+ EmptyDirWarning,
16
+ JSONDisk,
17
+ Timeout,
18
+ UnknownFileWarning,
19
+ )
20
+ from .fanout import FanoutCache
21
+ from .persistent import Deque, Index
22
+ from .recipes import (
23
+ Averager,
24
+ BoundedSemaphore,
25
+ Lock,
26
+ RLock,
27
+ barrier,
28
+ memoize_stampede,
29
+ throttle,
30
+ )
31
+
32
+ __all__ = [
33
+ 'Averager',
34
+ 'BoundedSemaphore',
35
+ 'Cache',
36
+ 'DEFAULT_SETTINGS',
37
+ 'Deque',
38
+ 'Disk',
39
+ 'ENOVAL',
40
+ 'EVICTION_POLICY',
41
+ 'EmptyDirWarning',
42
+ 'FanoutCache',
43
+ 'Index',
44
+ 'JSONDisk',
45
+ 'Lock',
46
+ 'RLock',
47
+ 'Timeout',
48
+ 'UNKNOWN',
49
+ 'UnknownFileWarning',
50
+ 'barrier',
51
+ 'memoize_stampede',
52
+ 'throttle',
53
+ ]
54
+
55
+ try:
56
+ from .djangocache import DjangoCache # noqa
57
+
58
+ __all__.append('DjangoCache')
59
+ except Exception: # pylint: disable=broad-except # pragma: no cover
60
+ # Django not installed or not setup so ignore.
61
+ pass
62
+
63
+ __title__ = 'cc12703-diskcache'
64
+ __version__ = '5.7.3'
65
+ __build__ = 0x050603
66
+ __author__ = 'Grant Jenks'
67
+ __license__ = 'Apache 2.0'
68
+ __copyright__ = 'Copyright 2016-2023 Grant Jenks'
diskcache/cli.py ADDED
@@ -0,0 +1 @@
1
+ """Command line interface to disk cache."""