`resize.Crop` actually hasn't been moved to `crop.Crop` (as the removed
class claimed). In fact, what used to be called `resize.Crop` is now
`resize.Fill`. The confusion is understandable, since it's what
motivated the change in the first place!
This way, there's a creation counterpart to `delete()`. The user
shouldn't have to deal with storage backends to create and delete the
files, and now they don't.
* release/1.1.0:
Adding (crude) changelog information for 1.1.0.
Bumping the version number.
Removing Pillow from requirements.txt and adding a note about PIL/Pillow to the README. References #72.
Being a bit friendlier to Python 2.5 users... or is it 2.4. Fixes#82.
* release/1.1.0: (28 commits)
Adding (crude) changelog information for 1.1.0.
Bumping the version number.
Removing Pillow from requirements.txt and adding a note about PIL/Pillow to the README. References #72.
Being a bit friendlier to Python 2.5 users... or is it 2.4. Fixes#82.
Change handling of spec deletion
No need to check for None
Catch KeyError on image.info dictionary
Using difference instead of subtract
Indentation tweak
Makes evaluation of `source_file` lazy
Test illustrating #75, #74
Separate create_photo method
avoid Transpose to crash when exif data doesn't exists
Allows `None` value for `processors` argument
Remove _Resize class
Adds crop module to docs
Explicitly import crop module
Renames processor to `TrimBorderColor`
Gives precedence to user options
Replaces `quality` argument with `options` dict
...
Though it's not the case with `FileSystemStorage`, attempting to delete
a nonexistent file can cause an exception (as in #80). We want to avoid
these errors but don't want to suppress others raised in the process of
deleting the file, so we first check to see if the file exists.