StrategyWrapper was unnecessarily implemented as a LazyObject
and it triggered a bug in Django (issue 21840).
Changing the lazy object to a function works just as well and
bypasses the bug.
* 'python3' of https://github.com/vstoykov/django-imagekit:
Add Venelin Stoykov to AUTHORS
Improve logic of contributing ImageSpecFields to Models
Use force_bytes from imagekit.lib in test_cachefiles
Remove @vstoykov's note. Seems like the right place to me (:
Move force_bytes into lib module
Don't use a raw string with \u escapes
Fix sanitizing cache key under Python 3
Add module to sys.modules
Test for Python 3
Insert importer at beginning of list
Delay Django import until needed
Add Python 3 suport and drop support for Python 2.5
Conflicts:
imagekit/cachefiles/__init__.py
- If `source` is defined then register source group immediately
- If `source` is not defined then create a signal handler and attach it to
`class_prepared` signal which will see if there is only one ImageField in
the given model.
This will fix problems coused in Python 3 about using ImageSpecField
without providing a `source`.
...for now. Eventually, we will want a signal that tells us when sources
are no longer used, however that isn't just limited to when they're
deleted! This new signal should also be dispatched, for example, when
a source image field is set to `None`. Since none of the built-in
strategies are currently using the source_deleted signal, I've decided
to remove it until we have a more complete solution.
As discussed in #214, source_created and source_changed didn't really
have clear definitions. In truth, their names and separation betray
their origins as model receivers in earlier versions. The "source group"
abstraction helped us get away from thinking about things exclusively in
terms of models, but these remained as an artifact.
Differentiating between when the generated file content is required and
when the generated file is just required to exist gives us more
flexibility with strategies.