From 2a0f00c2d55a0083d3102260c547eaf2a1fa2a4c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christopher=20Ram=C3=ADrez?= Date: Fri, 10 Oct 2014 14:16:36 -0600 Subject: [PATCH] fs_loader now accepts a file object as a possible value o media. --- secretary.py | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/secretary.py b/secretary.py index 5501cfc..798d27f 100644 --- a/secretary.py +++ b/secretary.py @@ -345,6 +345,7 @@ class Renderer(object): extension = guess_extension(mime) media_path = 'Pictures/%s%s' % (name, extension) + media.seek(0) self.files[media_path] = media.read(-1) if hasattr(media, 'close'): media.close() @@ -359,10 +360,12 @@ class Renderer(object): def fs_loader(self, media, *args, **kwargs): """Loads a file from the file system. - :param media: relative or absolute path of file to load. + :param media: A file object or a relative or absolute path of a file. :type media: unicode """ - if path.isfile(media): + if hasattr(media, 'seek') and hasattr(media, 'read'): + return (media, 'image/jpeg') + elif path.isfile(media): filename = media else: if not self.media_path: @@ -420,9 +423,10 @@ class Renderer(object): image_node.setAttribute(k, v) # Keep original image reference value - frame.setAttribute('draw:name', - self.template_images[key]['value']) - + if isinstance(self.template_images[key]['value'], basestring): + frame.setAttribute('draw:name', + self.template_images[key]['value']) + # Does the madia loader returned something? if not image: continue