#9595: Add support for cache to not expire -------------------------------------+------------------------------------- Reporter: keseldude | Owner: Type: New feature | otherjacob Component: Core (Cache system) | Status: new Severity: Normal | Version: 1.0 Keywords: cache timeout | Resolution: Has patch: 1 | Triage Stage: Accepted Needs tests: 1 | Needs documentation: 1 Easy pickings: 0 | Patch needs improvement: 1 | UI/UX: 0 -------------------------------------+-------------------------------------
Comment (by aaugustin): Here's the currenty behavior of the cache backends when `cache.set()` is called with `timeout=None` explicitly: - memcached has `def set(..., timeout=0, ...)`, and then there's this line: `timeout = timeout or self.default_timeout` - locmem/filebased/db have `def set(..., timeout=None, ...)`, and then there's `if timeout is None: timeout = self.default_timeout` For all backends except memcached `None` is a guard value that's intended to be replaced by the default timeout. It isn't intended to be passed explicitly (even though, obviously, that works). I don't know why memcached is implemented differently, but as far as I can tell, the intent is the same. Docs say that the "timeout argument is optional" and never show an example of passing None. Therefore, I repeat my support in using `None` for no expiration. Negative integers feels like C, not Python; and once we define an API we'll be stuck with it for the foreseeable future. -- Ticket URL: <https://code.djangoproject.com/ticket/9595#comment:19> Django <https://code.djangoproject.com/> The Web framework for perfectionists with deadlines. -- You received this message because you are subscribed to the Google Groups "Django updates" group. To unsubscribe from this group and stop receiving emails from it, send an email to django-updates+unsubscr...@googlegroups.com. To post to this group, send email to django-updates@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.