Christian Barcenas
c9c6c16650
Fixed #20584 -- Fixed memcached's get_many() with single-use iterators.
...
Thanks Guyon Morée for the report.
2018-07-09 10:24:41 -04:00
Wang Dongxiao
0914a2003b
Added 'caches' to django.core.cache.__all__.
2018-05-28 09:14:46 -04:00
Nicolas Noé
3246ad1065
Fixed #27480 -- Added cache.touch().
2018-04-27 17:48:35 -04:00
Hajime Nakagami
8f75984c26
Quoted field names in cache db backend SQL.
...
On Firebird, 'value' is a reserved word and must be quoted.
2018-03-13 22:46:41 -04:00
Jon Dufresne
6a039800db
Refs #27795 -- Replaced force_bytes() usage in django.core.cache.
2018-02-02 08:57:58 +01:00
Grant Jenks
d38a3169a4
Fixed #28977 -- Changed local-memory cache to use LRU culling.
...
LRU culling turns every read into a kind of write to the cache: cache keys
are moved to the first position in the OrderedDict when they are retrieved.
The RWLock which permitted multiple readers while prioritizing a single
writer is obsolete since all accesses are now writes.
2018-01-24 12:26:19 -05:00
Дилян Палаузов
d7b2aa24f7
Fixed #28982 -- Simplified code with and/or.
2018-01-03 20:12:23 -05:00
Nick Pope
d13a9e44de
Fixed #28909 -- Simplified code using tuple/list/set/dict unpacking.
2017-12-11 07:08:45 -05:00
Nick Pope
c68f66e014
Refs #23919 -- Replaced super() calls for old-style classes.
2017-12-07 09:10:32 -05:00
Adam Johnson
acc989f037
Fixed #28760 -- Removed DummyCache's unnecessary get/set/delete_many().
2017-10-31 12:16:09 -04:00
Adam Johnson
abacd09f07
Refs #27318 -- Made DummyCache.set_many() return a list for consistency with other backends.
2017-10-30 12:13:17 -04:00
Daniel Tao
4d60261b2a
Fixed #28601 -- Prevented cache.get_or_set() from caching None if default is a callable that returns None.
2017-10-10 09:20:34 -04:00
Tim Graham
e47b56d791
Refs #20892 -- Removed support for passing pylibmc behavior settings as top-level attributes of CACHES['OPTIONS'].
...
Per deprecation timeline.
2017-09-22 12:51:17 -04:00
Tim Graham
6e4c6281db
Reverted "Fixed #27818 -- Replaced try/except/pass with contextlib.suppress()."
...
This reverts commit 550cb3a365
because try/except performs better.
2017-09-07 08:16:21 -04:00
Olivier Tabone
a027447f56
Fixed #27318 -- Made cache.set_many() return the list of failed keys.
2017-09-06 14:38:44 -04:00
Sergey Fedoseev
3633c2a045
Used dict comprehensions in BaseMemcachedCache.get_many() and set_many() for better readability.
2017-09-05 09:14:41 -04:00
caleb logan
68f0e8d8b1
Fixed #28500 -- Fixed crash in FileBasedCache._is_expired() if the cache file is empty.
2017-09-03 20:11:49 -04:00
Tim Graham
487362fa8f
Fixed #28370 -- Deprecated the context arg of Field.from_db_value() and Expression.convert_value().
...
Unused since a0d166306f
.
2017-07-20 16:30:08 -04:00
Tim Graham
2e9ada1551
Fixed #28397 -- Removed django.core.exceptions.DjangoRuntimeWarning.
2017-07-14 12:06:06 -04:00
Mads Jensen
550cb3a365
Fixed #27818 -- Replaced try/except/pass with contextlib.suppress().
2017-06-28 14:07:55 -04:00
Jon Dufresne
2c69824e5a
Refs #23968 -- Removed unnecessary lists, generators, and tuple calls.
2017-06-01 19:08:59 -04:00
Anton Samarchyan
5a6f70b428
Refs #27656 -- Updated django.core docstring verbs according to PEP 257.
2017-02-21 11:58:42 -05:00
Tim Graham
29f607927f
Fixed spelling of "nonexistent".
2017-02-03 08:01:45 -05:00
Claude Paroz
fee42fd99e
Refs #23919 -- Replaced usage of django.utils.http utilities with Python equivalents
...
Thanks Tim Graham for the review.
2017-01-26 19:49:03 +01:00
chillaranand
d6eaf7c018
Refs #23919 -- Replaced super(ClassName, self) with super().
2017-01-25 12:23:46 -05:00
Tim Graham
632c4ffd9c
Refs #23919 -- Replaced errno checking with PEP 3151 exceptions.
2017-01-25 10:13:08 -05:00
Claude Paroz
dc8834cad4
Refs #23919 -- Removed unneeded force_str calls
2017-01-20 08:44:31 +01:00
Simon Charette
cecc079168
Refs #23919 -- Stopped inheriting from object to define new style classes.
2017-01-19 08:39:46 +01:00
Aymeric Augustin
a556396339
Refs #23919 -- Replaced io.open() with open().
...
io.open() is an alias for open() on Python 3.
2017-01-18 21:45:12 -05:00
Aymeric Augustin
eb422e476f
Refs #23919 -- Removed obsolete __ne__() methods.
...
__ne__() defaults to the opposite of __eq__() on Python 3
when it doesn't return NotImplemented.
2017-01-18 21:44:00 -05:00
Claude Paroz
2b281cc35e
Refs #23919 -- Removed most of remaining six usage
...
Thanks Tim Graham for the review.
2017-01-18 21:33:28 +01:00
Claude Paroz
7b2f2e74ad
Refs #23919 -- Removed six.<various>_types usage
...
Thanks Tim Graham and Simon Charette for the reviews.
2017-01-18 20:18:46 +01:00
Claude Paroz
c716fe8782
Refs #23919 -- Removed six.PY2/PY3 usage
...
Thanks Tim Graham for the review.
2017-01-18 16:21:28 +01:00
Claude Paroz
d7b9aaa366
Refs #23919 -- Removed encoding preambles and future imports
2017-01-18 09:55:19 +01:00
Ramin Farajpour Cami
967be82443
Fixed E305 flake8 warnings.
2016-11-14 12:30:46 -05:00
Ed Morley
f02dbbe1ae
Fixed #11331 -- Stopped closing pylibmc connections after each request.
...
libmemcached manages its own connections, so isn't affected by refs #5133 .
2016-09-02 14:44:27 -04:00
Ed Morley
d8ef5b0e65
Fixed #27152 -- Supported comma delimiter in memcached LOCATION string.
2016-08-31 17:23:41 -04:00
Ed Morley
65ec8fa8ca
Fixed #20892 -- Allowed configuring memcached client using OPTIONS.
...
Previously, the MemcachedCache backend ignored `OPTIONS` and
PyLibMCCache used them to set pylibmc behaviors. Both backends now
pass `OPTIONS` as keyword arguments to the client constructors.
2016-08-31 12:50:14 -04:00
Dmitry S..ky / skype: dvska-at-skype
82be474efa
Fixed #26792 -- Allowed None for the value of cache.get_or_set().
2016-07-11 20:49:27 -04:00
Ville Skyttä
96f97691ad
Fixed broken links in docs and comments.
2016-06-15 21:20:23 -04:00
Jon Dufresne
779829662d
Fixed #26694 -- Made FileBasedCache.get() reraise non-ENOENT IOErrors.
2016-06-01 15:29:24 -04:00
Jon Dufresne
359be1c870
Fixed #26691 -- Removed checking for a file's existence before deleting.
...
File operations always raise a ENOENT error when a file doesn't exist.
Checking the file exists before the operation adds a race condition
condition where the file could be removed between operations. As the
operation already raises an error on a missing file, avoid this race and
avoid checking the file exists twice. Instead only check a file exists
by catching the ENOENT error.
2016-05-31 12:03:27 -04:00
Tim Graham
df8d8d4292
Fixed E128 flake8 warnings in django/.
2016-04-08 09:51:06 -04:00
Przemysław Suliga
90ce5d46bf
Fixed #26462 -- Fixed Python 2 UnicodeEncodeError when warning about long cache keys.
2016-04-05 11:16:04 -04:00
Przemysław Suliga
d356bb653f
Fixed #26460 -- Issued a single warning for invalid cache key
2016-04-04 15:20:55 -04:00
Przemysław Suliga
96ec67a7cf
Fixed #26332 -- Fixed a race condition in BaseCache.get_or_set().
2016-03-08 11:44:37 -05:00
userimack
60586dd737
Fixed #26125 -- Fixed E731 flake warnings.
2016-01-25 14:23:43 -05:00
Matthew Madurski
7df9aa3a33
Fixed typo in BaseCache.delete_many() docstring.
2015-12-29 20:50:04 -05:00
Emre Yilmaz
8e838d9c86
Fixed #25840 -- Fixed BaseCache.get_or_set() on the DummyCache backend.
...
This also fixes a possible data eviction race condition between
setting and getting a key. Another thread could remove the key
before get_and_set() accesses it again. In this case, now the
default value will be returned instead of None.
2015-12-04 12:22:17 -05:00
Jaap Roes
1aba0e4c68
Refs #25501 -- Fixed a typo in django/core/cache/backends/filebased.py
...
The original intent in refs #20536 was to use the highest protocol.
Calling zlib.compress() with a compression level of -1 seems to
fall back to the default level of 6.
2015-11-14 15:10:14 -05:00
Ville Skyttä
3ee18400ae
Fixed #25668 -- Misc spelling errors
2015-11-03 11:58:13 +02:00
Andrew Artajos
48888a1a67
Fixed #25501 -- Made the file-based cache backend use the highest pickling protocol.
2015-10-20 13:05:33 -04:00
Tom Christie
b02f08e02c
Fixed #25034 -- Converted caches ImproperlyConfigured error to a system check.
2015-09-18 07:44:39 -04:00
Matthew Crowson
8615e41586
Fixed typo in django/core/cache/backends/base.py docstring.
2015-09-16 09:29:56 -04:00
Maxime Lorant
5153a3bfdc
Fixed #25331 -- Removed trailing blank lines in docstrings.
2015-08-31 17:37:21 -04:00
Karol Duleba
b74b94445d
Updated Memcached get_backend_timeout() comment.
2015-07-06 10:13:20 -04:00
Tim Graham
7da3923ba0
Sorted imports in __init__.py files.
2015-06-27 11:53:33 -04:00
Aymeric Augustin
e2a652fac1
Refactored datetime handling in the database cache backend.
...
Took advantage of the new database adapters and converters.
2015-05-17 09:40:33 +02:00
Aymeric Augustin
54026f1e8d
Renamed value_to_db_xxx to adapt_xxxfield_value.
...
This mirrors convert_xxxfield_value nicely, taking advantage of the
adapter/converter terminology which is commonly used by DB-API modules.
2015-05-17 09:39:34 +02:00
Aymeric Augustin
ec186572e6
Removed global timezone-aware datetime converters.
...
Refs #23820 .
2015-05-17 09:36:23 +02:00
Piotr Jakimiak
4157c502a5
Removed unnecessary arguments in .get method calls
2015-05-13 20:51:18 +02:00
Berker Peksag
34fb909180
Fixed #12982 -- Added a get_or_set() method to the BaseCache backend.
2015-03-14 20:07:16 +02:00
Loic Bistuer
bed504d70b
Fixed #24351 , #24346 -- Changed the signature of allow_migrate().
...
The new signature enables better support for routing RunPython and
RunSQL operations, especially w.r.t. reusable and third-party apps.
This commit also takes advantage of the deprecation cycle for the old
signature to remove the backward incompatibility introduced in #22583 ;
RunPython and RunSQL won't call allow_migrate() when when the router
has the old signature.
Thanks Aymeric Augustin and Tim Graham for helping shape up the patch.
Refs 22583.
2015-02-20 21:34:09 +07:00
Tim Graham
0ed7d15563
Sorted imports with isort; refs #23860 .
2015-02-06 08:16:28 -05:00
Tim Graham
40d6b376d4
Removed BaseMemcachedCacheMethods._get_memcache_timeout backwards compatibility shim.
...
Per deprecation timeline; refs #21147 .
2015-01-17 19:32:54 -05:00
Tim Graham
d038c547b5
Removed django.core.cache.get_cache() per deprecation timeline; refs #21012 .
2015-01-17 09:55:18 -05:00
Michael Manfre
bc8abe36ba
Fixed #16358 - Made memcache backend delete old value on a failure to set.
...
Default Memcached configuration allows for a maximum object of 1MB and
will fail to set the key if it is too large. The key will be deleted from
memcached if it fails to be set. This is needed to avoid an issue with
cache_db session backend using the old value stored in memcached, instead
of the newer value stored in the database.
2014-11-13 00:46:03 -05:00
Thomas Chaumeny
6448dd8335
Fixed #23642 -- Made LocMemCache.incr() thread-safe as documented
2014-10-12 23:47:48 +07:00
Jaap Roes
1b5918f160
Fixed #23625 -- Removed CacheClass shim
2014-10-10 08:43:26 -04:00
Vincent-Vega
4529af9ecf
Fixed #22845 -- Correctly handled memcached default timeout value.
2014-06-16 16:34:00 -04:00
Malcolm Box
66880e4cd1
Fixed #22606 -- Locmemcache has_key() failed for infinite cache expiry
...
Refactored cache expiry logic for Locmemcache to make consistent across
all places where accessed, and correctly handle None as expiry time.
2014-05-09 18:35:07 +02:00
Malcolm Box
af5f688392
Fixed #22495 -- Locmem cache.add() failed with infinite timeouts
...
cache.add() incorrectly succeeded when there was an existing key
with an infinite (None) timeout.
2014-04-23 14:49:46 +02:00
Claude Paroz
210d0489c5
Fixed #21188 -- Introduced subclasses for to-be-removed-in-django-XX warnings
...
Thanks Anssi Kääriäinen for the idea and Simon Charette for the
review.
2014-03-08 09:57:40 +01:00
zedr
6fe22b30e0
Fixed #22085 -- Added a feature for setting non-expiring keys as the default.
...
This feature allows the default `TIMEOUT` Cache argument to be set to `None`,
so that cache instances can set a non-expiring key as the default,
instead of using the default value of 5 minutes.
Previously, this was possible only by passing `None` as an argument to
the set() method of objects of type `BaseCache` (and subtypes).
2014-03-04 21:16:35 +01:00
Berker Peksag
5d263dee30
Fixed #21674 -- Deprecated the import_by_path() function in favor of import_string().
...
Thanks Aymeric Augustin for the suggestion and review.
2014-02-08 11:12:19 -05:00
Michael Manfre
3ffeb93186
Ensure cursors are closed when no longer needed.
...
This commit touchs various parts of the code base and test framework. Any
found usage of opening a cursor for the sake of initializing a connection
has been replaced with 'ensure_connection()'.
2014-02-02 12:47:21 -05:00
Alex Gaynor
83ab04c6d6
flake8 fixes
2013-11-24 21:07:21 -06:00
Florian Apolloner
d47f794f8f
Properly closed cache connections at the end of the request.
...
This only affects the new cache api and not the deprecated get_cache.
Refs #21012
2013-11-24 16:23:28 +01:00
Florian Apolloner
cf7ddc5765
Follow up to e112654fc8
...
Actually comitted the code now :þ
2013-11-23 18:55:28 +01:00
Alex Gaynor
0ec712dd11
A handful of flake8 fixes
2013-11-23 08:26:11 -08:00
Curtis Maloney
ffc37e2343
Fixed #21012 -- New API to access cache backends.
...
Thanks Curtis Malony and Florian Apolloner.
Squashed commit of the following:
commit 3380495e93
Author: Aymeric Augustin <aymeric.augustin@m4x.org>
Date: Sat Nov 23 14:18:07 2013 +0100
Looked up the template_fragments cache at runtime.
commit 905a74f52b
Author: Aymeric Augustin <aymeric.augustin@m4x.org>
Date: Sat Nov 23 14:19:48 2013 +0100
Removed all uses of create_cache.
Refactored the cache tests significantly.
Made it safe to override the CACHES setting.
commit 35e289fe92
Author: Aymeric Augustin <aymeric.augustin@m4x.org>
Date: Sat Nov 23 12:23:57 2013 +0100
Removed create_cache function.
commit 8e274f747a
Author: Aymeric Augustin <aymeric.augustin@m4x.org>
Date: Sat Nov 23 12:04:52 2013 +0100
Updated docs to describe a simplified cache backend API.
commit ee7eb0f73e
Author: Curtis Maloney <curtis@tinbrain.net>
Date: Sat Oct 19 09:49:24 2013 +1100
Fixed #21012 -- Thread-local caches, like databases.
2013-11-23 15:06:59 +01:00
Tim Graham
536c447820
Fixed a couple flake8 warnings.
2013-11-07 20:10:25 -05:00
Jaap Roes
7be638390e
Fixed #20536 -- rewrite of the file based cache backend
...
* Safer for use in multiprocess environments
* Better random culling
* Cache files use less disk space
* Safer delete behavior
Also fixed #15806 , fixed #15825 .
2013-11-07 16:12:15 +02:00
Alex Gaynor
c347f78cc1
Fixed all E226 violations
2013-11-03 10:08:55 -08:00
coagulant
3bc0d46a84
Fixed all E261 warnings
2013-11-02 18:20:39 -04:00
Alex Gaynor
7548aa8ffd
More attacking E302 violators
2013-11-02 13:12:09 -07:00
Tim Graham
36ded01527
Fixed #21302 -- Fixed unused imports and import *.
2013-11-02 15:24:56 -04:00
Alex Gaynor
9bf5610890
Start attacking E231 violations
2013-10-24 10:30:03 -07:00
Michael Manfre
bf757a2f4d
Fixed #21147 -- Avoided time.time precision issue with cache backends.
...
The precision of time.time() is OS specific and it is possible for the
resolution to be low enough to allow reading a cache key previously set
with a timeout of 0.
2013-10-01 13:42:59 -04:00
Michael Manfre
d5606b5763
Fixed #21146 - DatabaseCache converts expires to python value
...
DatabaseCache uses raw cursors to bypass the ORM. This prevents it from
being used by database backends that require special handling of datetime
values.
There is no easy way to test this, so no tests added.
2013-09-26 13:11:43 +03:00
Curtis Maloney
4e9f800742
Fixed #21125 -- Removed support for cache URI syntax
2013-09-19 10:01:39 -04:00
Gregor MacGregor
b2b763448f
Fixed #20841 -- Added messages to NotImplementedErrors
...
Thanks joseph at vertstudios.com for the suggestion.
2013-09-10 11:09:59 -04:00
Alex Gaynor
2530735d2d
Fixed a number of flake8 errors -- particularly around unused imports and local variables
2013-09-06 21:56:40 -07:00
Aymeric Augustin
6a6428a36f
Took advantage of django.utils.six.moves.urllib.*.
2013-09-05 14:39:23 -05:00
Simon Charette
11cd7388f7
Fixed #20989 -- Removed useless explicit list comprehensions.
2013-08-30 10:57:51 -04:00
Claude Paroz
5c1143910e
Removed most of absolute_import imports
...
Should be unneeded with Python 2.7 and up.
Added some unicode_literals along the way.
2013-07-29 20:28:13 +02:00
Claude Paroz
fdd7a355bf
Deprecated django.utils.importlib
...
This was a shim for pre-Python 2.7 support.
2013-07-29 17:10:22 +02:00
Tim Graham
3c736207a3
Fixed #20722 -- Fixed MemcachedCache backend get_many on Python 3.
2013-07-09 11:55:45 -04:00
Alex Gaynor
db2727f952
A few cleanups to capture the minimum amount of code in try/except blocks.
2013-07-08 09:26:52 +10:00
ersran9
76ee39ce14
Fixed 20613 - moved pickle loads/dumps outside with self._lock.reader()/writer() blocks
...
Additionaly added pickled=None initially and check for none before
returning in get
2013-07-06 02:09:52 +05:30