fdemmer-easy-thumbnails 3.0a1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. fdemmer_easy_thumbnails-3.0a1/CHANGES.rst +325 -0
  2. fdemmer_easy_thumbnails-3.0a1/LICENSE +25 -0
  3. fdemmer_easy_thumbnails-3.0a1/MANIFEST.in +5 -0
  4. fdemmer_easy_thumbnails-3.0a1/PKG-INFO +558 -0
  5. fdemmer_easy_thumbnails-3.0a1/README.rst +196 -0
  6. fdemmer_easy_thumbnails-3.0a1/docs/Makefile +88 -0
  7. fdemmer_easy_thumbnails-3.0a1/docs/commands.rst +122 -0
  8. fdemmer_easy_thumbnails-3.0a1/docs/conf.py +206 -0
  9. fdemmer_easy_thumbnails-3.0a1/docs/index.rst +32 -0
  10. fdemmer_easy_thumbnails-3.0a1/docs/install.rst +54 -0
  11. fdemmer_easy_thumbnails-3.0a1/docs/make.bat +112 -0
  12. fdemmer_easy_thumbnails-3.0a1/docs/ref/files.rst +10 -0
  13. fdemmer_easy_thumbnails-3.0a1/docs/ref/optimize.rst +45 -0
  14. fdemmer_easy_thumbnails-3.0a1/docs/ref/processors.rst +76 -0
  15. fdemmer_easy_thumbnails-3.0a1/docs/ref/settings.rst +6 -0
  16. fdemmer_easy_thumbnails-3.0a1/docs/ref/source_generators.rst +17 -0
  17. fdemmer_easy_thumbnails-3.0a1/docs/ref/svg.rst +26 -0
  18. fdemmer_easy_thumbnails-3.0a1/docs/ref/webp.rst +73 -0
  19. fdemmer_easy_thumbnails-3.0a1/docs/requirements.txt +2 -0
  20. fdemmer_easy_thumbnails-3.0a1/docs/usage.rst +330 -0
  21. fdemmer_easy_thumbnails-3.0a1/pyproject.toml +100 -0
  22. fdemmer_easy_thumbnails-3.0a1/setup.cfg +4 -0
  23. fdemmer_easy_thumbnails-3.0a1/src/easy_thumbnails/VIL/Image.py +193 -0
  24. fdemmer_easy_thumbnails-3.0a1/src/easy_thumbnails/VIL/ImageDraw.py +22 -0
  25. fdemmer_easy_thumbnails-3.0a1/src/easy_thumbnails/VIL/__init__.py +10 -0
  26. fdemmer_easy_thumbnails-3.0a1/src/easy_thumbnails/__init__.py +12 -0
  27. fdemmer_easy_thumbnails-3.0a1/src/easy_thumbnails/alias.py +120 -0
  28. fdemmer_easy_thumbnails-3.0a1/src/easy_thumbnails/apps.py +7 -0
  29. fdemmer_easy_thumbnails-3.0a1/src/easy_thumbnails/conf.py +327 -0
  30. fdemmer_easy_thumbnails-3.0a1/src/easy_thumbnails/engine.py +147 -0
  31. fdemmer_easy_thumbnails-3.0a1/src/easy_thumbnails/exceptions.py +11 -0
  32. fdemmer_easy_thumbnails-3.0a1/src/easy_thumbnails/fields.py +48 -0
  33. fdemmer_easy_thumbnails-3.0a1/src/easy_thumbnails/files.py +804 -0
  34. fdemmer_easy_thumbnails-3.0a1/src/easy_thumbnails/management/__init__.py +149 -0
  35. fdemmer_easy_thumbnails-3.0a1/src/easy_thumbnails/management/commands/__init__.py +0 -0
  36. fdemmer_easy_thumbnails-3.0a1/src/easy_thumbnails/management/commands/thumbnail_cleanup.py +192 -0
  37. fdemmer_easy_thumbnails-3.0a1/src/easy_thumbnails/migrations/0001_initial.py +65 -0
  38. fdemmer_easy_thumbnails-3.0a1/src/easy_thumbnails/migrations/0002_thumbnaildimensions.py +36 -0
  39. fdemmer_easy_thumbnails-3.0a1/src/easy_thumbnails/migrations/__init__.py +0 -0
  40. fdemmer_easy_thumbnails-3.0a1/src/easy_thumbnails/models.py +106 -0
  41. fdemmer_easy_thumbnails-3.0a1/src/easy_thumbnails/namers.py +70 -0
  42. fdemmer_easy_thumbnails-3.0a1/src/easy_thumbnails/optimize/__init__.py +13 -0
  43. fdemmer_easy_thumbnails-3.0a1/src/easy_thumbnails/optimize/conf.py +27 -0
  44. fdemmer_easy_thumbnails-3.0a1/src/easy_thumbnails/optimize/post_processor.py +63 -0
  45. fdemmer_easy_thumbnails-3.0a1/src/easy_thumbnails/options.py +42 -0
  46. fdemmer_easy_thumbnails-3.0a1/src/easy_thumbnails/processors.py +332 -0
  47. fdemmer_easy_thumbnails-3.0a1/src/easy_thumbnails/signal_handlers.py +57 -0
  48. fdemmer_easy_thumbnails-3.0a1/src/easy_thumbnails/signals.py +25 -0
  49. fdemmer_easy_thumbnails-3.0a1/src/easy_thumbnails/source_generators.py +58 -0
  50. fdemmer_easy_thumbnails-3.0a1/src/easy_thumbnails/storage.py +36 -0
  51. fdemmer_easy_thumbnails-3.0a1/src/easy_thumbnails/templatetags/__init__.py +0 -0
  52. fdemmer_easy_thumbnails-3.0a1/src/easy_thumbnails/templatetags/easy_thumbnails_tags.py +9 -0
  53. fdemmer_easy_thumbnails-3.0a1/src/easy_thumbnails/templatetags/thumbnail.py +322 -0
  54. fdemmer_easy_thumbnails-3.0a1/src/easy_thumbnails/utils.py +170 -0
  55. fdemmer_easy_thumbnails-3.0a1/src/easy_thumbnails/version_utils.py +61 -0
  56. fdemmer_easy_thumbnails-3.0a1/src/easy_thumbnails/widgets.py +63 -0
  57. fdemmer_easy_thumbnails-3.0a1/src/fdemmer_easy_thumbnails.egg-info/PKG-INFO +558 -0
  58. fdemmer_easy_thumbnails-3.0a1/src/fdemmer_easy_thumbnails.egg-info/SOURCES.txt +72 -0
  59. fdemmer_easy_thumbnails-3.0a1/src/fdemmer_easy_thumbnails.egg-info/dependency_links.txt +1 -0
  60. fdemmer_easy_thumbnails-3.0a1/src/fdemmer_easy_thumbnails.egg-info/requires.txt +6 -0
  61. fdemmer_easy_thumbnails-3.0a1/src/fdemmer_easy_thumbnails.egg-info/top_level.txt +1 -0
  62. fdemmer_easy_thumbnails-3.0a1/tests/test_aliases.py +316 -0
  63. fdemmer_easy_thumbnails-3.0a1/tests/test_engine.py +36 -0
  64. fdemmer_easy_thumbnails-3.0a1/tests/test_fields.py +132 -0
  65. fdemmer_easy_thumbnails-3.0a1/tests/test_files.py +461 -0
  66. fdemmer_easy_thumbnails-3.0a1/tests/test_management.py +228 -0
  67. fdemmer_easy_thumbnails-3.0a1/tests/test_models.py +65 -0
  68. fdemmer_easy_thumbnails-3.0a1/tests/test_namers.py +72 -0
  69. fdemmer_easy_thumbnails-3.0a1/tests/test_pixel_processors.py +264 -0
  70. fdemmer_easy_thumbnails-3.0a1/tests/test_source_generators.py +91 -0
  71. fdemmer_easy_thumbnails-3.0a1/tests/test_svg_processors.py +63 -0
  72. fdemmer_easy_thumbnails-3.0a1/tests/test_templatetags.py +512 -0
  73. fdemmer_easy_thumbnails-3.0a1/tests/test_thumbnail_cleanup.py +154 -0
  74. fdemmer_easy_thumbnails-3.0a1/tests/test_widgets.py +138 -0
@@ -0,0 +1,325 @@
1
+ Changes
2
+ =======
3
+
4
+ 3.0.0a1 (2026-04-16)
5
+ ---------------------
6
+
7
+ * Fork published as ``fdemmer-easy-thumbnails`` on PyPI.
8
+ * Major modernization: migrated to ``src/`` layout, ``pyproject.toml``-only
9
+ build configuration, pytest, uv/tox, and pathlib.
10
+ * Drop support for Python < 3.9 and Django < 4.2.
11
+ * Add support for Django 5.2 and 6.0, Python 3.13 and 3.14.
12
+ * Add ``thumbnail_cleanup`` management command documentation.
13
+
14
+
15
+ 2.10.2 (2025-02-11)
16
+ -------------------
17
+
18
+ * Removed due to problems with MPO (Multi-Picture Format) images:
19
+ Experimental support for animated image formats.
20
+
21
+
22
+ 2.10.1 (2025-01-25)
23
+ -------------------
24
+
25
+ * Fix for non-filesystem storage (regression in 26e8f9f of 2.8.5)
26
+
27
+
28
+ 2.10 (2024-09-11)
29
+ -----------------
30
+ * Drop support for Python-3.8.
31
+ * Drop support for Django-4.1 and earlier.
32
+ * Add support for Django-5.1.
33
+ * Experimental support for animated image formats. See documentation for more infos.
34
+ * Fix #642: Do not scale images (SVG) without size information.
35
+ * Fix #366: Keep ICC profile when saving image, if present.
36
+
37
+
38
+ 2.9 (2024-07-25)
39
+ ----------------
40
+ * Add support for Django 4.2 storages (mandatory in Django 5.1).
41
+
42
+
43
+ 2.8.5 (2023-01-09)
44
+ ------------------
45
+ * Fix regression introduced in version 2.8.4. Argument ``quality`` is not removed for images
46
+ of type ``.webp``.
47
+
48
+
49
+ 2.8.4 (2022-12-19)
50
+ ------------------
51
+ * Fix problem when thumbnailing images of type TIFF. PIL's ``TiffImagePlugin`` doesn't
52
+ like argument ``quality``.
53
+ * Replace deprecated Pillow constants against newer counterparts. Check
54
+ https://pillow.readthedocs.io/en/stable/releasenotes/9.1.0.html#deprecations for details.
55
+
56
+
57
+ 2.8.3 (2022-08-02)
58
+ ------------------
59
+ * Fix regression in library detection introduced in version 2.8.2.
60
+
61
+
62
+ 2.8.2 (2022-07-31)
63
+ ------------------
64
+ * Installation of easy-thumbnails now optionally depends on the reportlab library.
65
+
66
+
67
+ 2.8.1 (2022-01-20)
68
+ ------------------
69
+
70
+ * Add support for Django 4.
71
+ * New ``THUMBNAIL_IMAGE_SAVE_OPTIONS`` setting.
72
+ * Fix #587: Uploading SVG Images to S3 storage.
73
+
74
+
75
+ 2.8.0 (2021-11-03)
76
+ ------------------
77
+
78
+ * Add support for thumbnailing SVG images. This is done by adding an emulation layer named VIL,
79
+ which aims to be compatible with PIL. All thumbnailing operations, such as scaling and cropping
80
+ behave like pixel images.
81
+ * Remove configuration directives ``THUMBNAIL_HIGH_RESOLUTION`` and ``THUMBNAIL_HIGHRES_INFIX``
82
+ from easy-thumbnails setting directives.
83
+
84
+
85
+ 2.7.2 (2021-10-17)
86
+ ------------------
87
+
88
+ * Add support for Django 3.2 and Python-3.10.
89
+ * Fix #563: Do not close image after loading content.
90
+ * In management command ``thumbnail_cleanup``, replace ``print``-statements
91
+ against ``stdout.write``.
92
+ * Use Python format strings whereever possible.
93
+
94
+
95
+ 2.7.1 (2020-11-23)
96
+ ------------------
97
+
98
+ * Add support for Django 3.1
99
+
100
+
101
+ 2.7.0 (2019-12-15)
102
+ ------------------
103
+
104
+ * Add support for Django 3.0
105
+ * Drop support for Python 2
106
+ * Drop support for Django < 1.11
107
+ * Drop support for Django 2.0, 2.1
108
+
109
+
110
+ 2.6.0 (2019-02-03)
111
+ ------------------
112
+
113
+ * Added testing for Django 2.2 (no code changes required).
114
+
115
+
116
+ 2.5.0 (2017-10-31)
117
+ ------------------
118
+
119
+ * Support Django versions up to 1.11. Version 2.0 is in beta.
120
+
121
+ * Fix: Pickle/unpickle machine. The ThumbnailerField fields no longer
122
+ generated thumbnails.
123
+
124
+ * Removed all references to South migrations.
125
+
126
+
127
+ 2.4.2 (2017-09-14)
128
+ ------------------
129
+
130
+ * Supported Django versions are now 1.8 or 1.10+, Python 2.7 minimum.
131
+
132
+ * Fix IOError saving JPEG files with transparency on Pillow 4.2+.
133
+
134
+ * Fix #450, #473: fixed int/string is not a callable in management command.
135
+
136
+ * Fix #456: Delete method of ThumbnailerFieldFile is called twice.
137
+
138
+
139
+ 2.4.1 (2017-04-05)
140
+ ------------------
141
+
142
+ * New minimum requirement of Django 1.4 or 1.7+.
143
+
144
+ * Fix EXIF orientation to use transpose.
145
+
146
+ * Upgrades to avoid deprecation warnings.
147
+
148
+ * Fix app settings not working in Django 1.11.
149
+
150
+ * Fix a bad conditional check causing incorrect behaviour in autocropping
151
+ transparent images.
152
+
153
+ * Django 1.8+ compatibility for ``thumbnail_cleanup`` command.
154
+
155
+ * Add ``easy_thumbnails_tags`` template tag mirror to allow multiple
156
+ thumbnailer libraries to coexist happily.
157
+
158
+ * Limit pillow to its final compatible version when on Python 2.6
159
+
160
+ * Fix tests.
161
+
162
+ 2.3 (2015-12-11)
163
+ ----------------
164
+
165
+ * New ``Alias`` namer.
166
+
167
+ * Avoid a potential concurrency issue with creating the cache.
168
+
169
+ * Fix incorrect use of select_related for source thumbnail model.
170
+
171
+ * Removed some vestigal processor arguments.
172
+
173
+ * Allow ``HIGH_RESOLUTION`` argument on thumbnail template tag.
174
+
175
+ * Add logic to correctly handle thumbnail images on deferred models (e.g. when
176
+ using ``.only()``).
177
+
178
+ * Add a ``data_uri`` filter to allow rendering of an image inline as a data
179
+ uri.
180
+
181
+ 2.2.1 (2014-12-30)
182
+ ------------------
183
+
184
+ * Fixed: Option ``zoom`` can also be used by itself, without combining it with
185
+ ``crop``.
186
+
187
+ 2.2 (2014-10-04)
188
+ ----------------
189
+
190
+ * Fix migrations for Django 1.7 final.
191
+
192
+ * Fix contain bad image EXIFs being able to still raise an exception.
193
+
194
+ 2.1 (2014-08-13)
195
+ ----------------
196
+
197
+ * Fix Python 3.4 installation issue.
198
+
199
+ * Avoid an OverflowError due to invalid EXIF data.
200
+
201
+ * Fix bug causing JPEG images to be saved without optimization :(
202
+
203
+ * JPEG files can now be saved with progressive encoding. By default, any image
204
+ with a dimension larger than 100px will be saved progressively. Configured
205
+ with the ``THUMBNAILER_PROGRESSIVE`` setting.
206
+
207
+ 2.0.1 (2014-04-26)
208
+ ------------------
209
+
210
+ * Fix packaging issue with old south migrations.
211
+
212
+ 2.0 (2014-04-25)
213
+ ----------------
214
+
215
+ * Use Django 1.7 migrations. Thanks Trey Hunner.
216
+ **Note**: if using South, read the installation docs for required settings
217
+ changes.
218
+
219
+ * Make ThumbnailerImageField.resize_source reflect change in extension.
220
+
221
+ * Add ``target`` option to the scale_and_crop processor, allowing for image
222
+ focal points when cropping (or zooming) an image.
223
+
224
+ * Add a THUMBNAIL_NAMER option which takes a function used to customize
225
+ the thumbnail filename.
226
+
227
+ * New ``subsampling`` option to reduce color subsampling of JPEG images,
228
+ providing sharper color borders for a small increase in file size.
229
+
230
+ * Reimplementation of the ``thumbnail_cleanup`` command. Thanks Jørgen
231
+ Abrahamsen
232
+
233
+ * More efficient thumbnail default storage. Thanks Sandip Agarwal.
234
+
235
+ 1.5 (2014-03-05)
236
+ ----------------
237
+
238
+ * Better support for multiple source generators.
239
+
240
+ * Update method used to check for modification dates of source and thumbnail
241
+ images. Thanks Ben Roberts.
242
+
243
+ * Better thumbnail_high_resolution handling, including the ability to switch on
244
+ and off explicitly with a ``HIGH_RESOLUTION`` thumbnail option.
245
+
246
+ * Added configuration option to specify the infix used for high resolution
247
+ image handling.
248
+
249
+ * Optional postprocessor for image optimization. Thanks Jacob Rief!
250
+
251
+ * More remote storages optimization
252
+
253
+ * Thumbnail dimensions can now optionally be cached. Thanks David Novakovic.
254
+
255
+ * New ``zoom`` option to generate a thumbnail of a source image with a
256
+ percentage clipped off each side.
257
+
258
+ * New ``background`` source processor that can add a border color to ensure
259
+ scaled images fit within the exact dimensions given.
260
+
261
+ 1.4 (2013-09-23)
262
+ ----------------
263
+
264
+ * Considerable speed up for remote storages by reducing queries.
265
+ Brent O'Connor spent a lot of time debugging this, so thank you epicserve!
266
+
267
+ * Allow the ``{% thumbnail %}`` tag to also accept aliases. Thanks Simon Meers!
268
+
269
+ * Make ``replace_alpha`` actually work correctly.
270
+
271
+ * Fixes exception being raised when image exists in cache but is doesn't
272
+ actually exist in the storage.
273
+
274
+ * Fixes Python 2.5 compatibility.
275
+
276
+ 1.3 (2013-06-17)
277
+ ----------------
278
+
279
+ * Some more Django 1.5 fixes.
280
+
281
+ * Fix an issue with ``Thumbnail.url`` not working correctly.
282
+
283
+ * Add the ability to generate retina quality thumbnails in addition to the
284
+ standard ones (off by default).
285
+
286
+ 1.2 (2013-01-23)
287
+ ----------------
288
+
289
+ * Django 1.5 compatibility.
290
+
291
+ * Fixed a problem with the ``ImageClearableFileInput`` widget.
292
+
293
+ 1.1 (2012-08-29)
294
+ ----------------
295
+
296
+ * Added a way to avoid generating thumbnails if they don't exist already (with
297
+ a signal to deal with them elsewhere).
298
+
299
+ * Added a ``thumbnailer_passive`` filter to allow templates to use the
300
+ non-generating thumbnails functionality when dealing with aliases.
301
+
302
+ 1.0.3 (2012-05-30)
303
+ ------------------
304
+
305
+ * Changed the exception to catch from 1.0.2 to IOError.
306
+
307
+ 1.0.2 (2012-05-29)
308
+ ------------------
309
+
310
+ * Catch an OSError exception when trying to get the EXIF data of a touchy
311
+ image.
312
+
313
+ 1.0.1 (2012-05-23)
314
+ ------------------
315
+
316
+ * Fix a Django 1.2 backwards incompatibility in ``easy_thumbnails.conf``
317
+
318
+ * Introduced a ``thumbnail_created`` signal.
319
+
320
+ 1.0 (2012-05-07)
321
+ ----------------
322
+
323
+ * Introduction of aliased thumbnails.
324
+
325
+ * Start of sane versioning numbers.
@@ -0,0 +1,25 @@
1
+ Copyright (c) 2009, Chris Beaven
2
+ All rights reserved.
3
+
4
+ Redistribution and use in source and binary forms, with or without
5
+ modification, are permitted provided that the following conditions are met:
6
+
7
+ * Redistributions of source code must retain the above copyright notice,
8
+ this list of conditions and the following disclaimer.
9
+ * Redistributions in binary form must reproduce the above copyright notice,
10
+ this list of conditions and the following disclaimer in the documentation
11
+ and/or other materials provided with the distribution.
12
+ * Neither the name easy-thumbnails nor the names of its contributors may be
13
+ used to endorse or promote products derived from this software without
14
+ specific prior written permission.
15
+
16
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
17
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
20
+ ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
23
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
@@ -0,0 +1,5 @@
1
+ include LICENSE
2
+ include README.rst
3
+ include CHANGES.rst
4
+ graft docs
5
+ prune docs/_build