Add swappable CSS for HTML previews.
[librarian.git] / librarian / packagers.py
index a32a2a0..b3f5548 100644 (file)
@@ -3,10 +3,14 @@
 # This file is part of Librarian, licensed under GNU Affero GPLv3 or later.
 # Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information.
 #
+from __future__ import print_function, unicode_literals
+
 import os
-from librarian import pdf, epub, mobi, DirDocProvider, ParseError, cover
+from librarian import pdf, epub, mobi, DirDocProvider, ParseError
 from librarian.parser import WLDocument
 
+from .util import makedirs
+
 
 class Packager(object):
     cover = None
@@ -23,43 +27,40 @@ class Packager(object):
         slug, ext = os.path.splitext(fname)
 
         if output_dir != '':
-            try:
-                os.makedirs(output_dir)
-            except:
-                pass
+            makedirs(output_dir)
         outfile = os.path.join(output_dir, slug + '.' + cls.ext)
         if os.path.exists(outfile) and not overwrite:
             return
 
         doc = WLDocument.from_file(main_input, provider=provider)
-        output_file = cls.transform(doc,
-                cover=cls.cover, flags=cls.flags)
+        output_file = cls.transform(doc, cover=cls.cover, flags=cls.flags)
         doc.save_output_file(output_file, output_path=outfile)
 
-
     @classmethod
     def prepare(cls, input_filenames, output_dir='', verbose=False, overwrite=False):
         try:
             for main_input in input_filenames:
                 if verbose:
-                    print main_input
+                    print(main_input)
                 cls.prepare_file(main_input, output_dir, verbose, overwrite)
-        except ParseError, e:
-            print '%(file)s:%(name)s:%(message)s' % {
+        except ParseError as e:
+            print('%(file)s:%(name)s:%(message)s' % {
                 'file': main_input,
                 'name': e.__class__.__name__,
                 'message': e.message
-            }
+            })
 
 
 class EpubPackager(Packager):
     converter = epub
     ext = 'epub'
 
+
 class MobiPackager(Packager):
     converter = mobi
     ext = 'mobi'
 
+
 class PdfPackager(Packager):
     converter = pdf
     ext = 'pdf'