Changelog

0.4.1

Released: Sat Dec 15 2012

feature

  • [feature] The function decorated by CacheRegion.cache_on_arguments() now includes a set() method, in addition to the existing invalidate() method. Like invalidate(), it accepts a set of function arguments, but additionally accepts as the first positional argument a new value to place in the cache, to take the place of that key. Courtesy Antoine Bertin.(link)

    pull request 9

  • [feature] Redis backend now accepts optional “url” argument, will be passed to the new StrictRedis.from_url() method to determine connection info. Courtesy Jon Rosebaugh.(link)

  • [feature] Redis backend now accepts optional “password” argument. Courtesy Jon Rosebaugh.(link)

  • [feature] DBM backend has “fallback” when calling dbm.get() to instead use dictionary access + KeyError, in the case that the “gdbm” backend is used which does not include .get(). Courtesy Jon Rosebaugh.(link)

bug

  • [bug] Fixed bug in DBM backend whereby if an error occurred during the “write” operation, the file lock, if enabled, would not be released, thereby deadlocking the app.(link)

    #15

  • [bug] The util.function_key_generator() used by the function decorator no longer coerces non-unicode arguments into a Python unicode object on Python 2.x; this causes failures on backends such as DBM which on Python 2.x apparently require bytestrings. The key_mangler is still needed if actual unicode arguments are being used by the decorated function, however.(link)

    #12

0.4.0

Released: Tue Oct 30 2012

bug

  • [bug] Using dogpile.core 0.4.0 now, fixes a critical bug whereby dogpile pileup could occur on first value get across multiple processes, due to reliance upon a non-shared creation time. This is a dogpile.core issue.(link)

    #1

  • [bug] Fixed missing __future__ with_statement directive in region.py.(link)

0.3.1

Released: Tue Sep 25 2012

bug

  • [bug] Fixed the mako_cache plugin which was not yet covered, and wasn’t implementing the mako plugin API correctly; fixed docs as well. Courtesy Ben Hayden.(link)

  • [bug] Fixed setup so that the tests/* directory isn’t yanked into the install. Courtesy Ben Hayden.(link)

0.3.0

Released: Thu Jun 14 2012

feature

  • [feature] get() method now checks expiration time by default. Use ignore_expiration=True to bypass this.(link)

  • [feature] Added new invalidate() method. Sets the current timestamp as a minimum value that all retrieved values must be created after. Is honored by the get_or_create() and get() methods.(link)

    #7

bug

  • [bug] Fixed bug whereby region.get() didn’t work if the value wasn’t present.(link)

    #8

0.2.4

no release date
  • Fixed py3k issue with config string coerce, courtesy Alexander Fedorov(link)

0.2.3

Released: Wed May 16 2012
  • support “min_compress_len” and “memcached_expire_time” with python-memcached backend. Tests courtesy Justin Azoff(link)

    #3

  • Add support for coercion of string config values to Python objects - ints, “false”, “true”, “None”.(link)

    #4

  • Added support to DBM file lock to allow reentrant access per key within a single thread, so that even though the DBM backend locks for the whole file, a creation function that calls upon a different key in the cache can still proceed.(link)

    #5

  • Fixed DBM glitch where multiple readers could be serialized.(link)

  • Adjust bmemcached backend to work with newly-repaired bmemcached calling API (see bmemcached ef206ed4473fec3b639e).(link)

0.2.2

Released: Thu Apr 19 2012
  • add Redis backend, courtesy Ollie Rutherfurd(link)

0.2.1

Released: Sun Apr 15 2012
  • move tests into tests/cache namespace(link)

  • py3k compatibility is in-place now, no 2to3 needed.(link)

0.2.0

Released: Sat Apr 14 2012
  • Based on dogpile.core now, to get the package namespace thing worked out.(link)

0.1.1

Released: Tue Apr 10 2012
  • Fixed the configure_from_config() method of region and backend which wasn’t working. Courtesy Christian Klinger.(link)

0.1.0

Released: Sun Apr 08 2012
  • Initial release.(link)

  • Includes a pylibmc backend and a plain dictionary backend.(link)

Table Of Contents

Previous topic

API

This Page