|
| 1 | +--- ../../../../ebm_builder-GUvbroJI/Lib/site-packages/ebookmaker/packagers/__init__.py 2020-12-27 15:09:18.381644200 -0800 |
| 2 | ++++ ./packagers/__init__.py 2020-06-17 17:06:40.168812700 -0700 |
| 3 | +@@ -18,11 +18,20 @@ |
| 4 | + import gzip |
| 5 | + import zipfile |
| 6 | + |
| 7 | +-from pkg_resources import resource_listdir # pylint: disable=E0611 |
| 8 | ++from importlib import import_module |
| 9 | + |
| 10 | + from libgutenberg.Logger import debug, info, warning, error |
| 11 | + import libgutenberg.GutenbergGlobals as gg |
| 12 | + |
| 13 | ++packagerlist = [ |
| 14 | ++ "GzipPackager", |
| 15 | ++ "HTMLPackager", |
| 16 | ++ "PDFPackager", |
| 17 | ++ "PushPackager", |
| 18 | ++ "RSTPackager", |
| 19 | ++ "TxtPackager", |
| 20 | ++] |
| 21 | ++ |
| 22 | + GZIP_EXTENSION = '.gzip' |
| 23 | + |
| 24 | + class BasePackager (object): |
| 25 | +@@ -157,16 +166,12 @@ |
| 26 | + def load_packagers (cls): |
| 27 | + """ Load the packagers in the packagers directory. """ |
| 28 | + |
| 29 | +- for fn in resource_listdir ('ebookmaker.packagers', ''): |
| 30 | +- modulename, ext = os.path.splitext (fn) |
| 31 | +- if ext == '.py': |
| 32 | +- if modulename.endswith ('Packager'): |
| 33 | +- module = __import__ ('ebookmaker.packagers.' + modulename, |
| 34 | +- fromlist = [modulename]) |
| 35 | +- debug ("Loading packager type: %s from module: %s for formats: %s" % ( |
| 36 | +- module.TYPE, modulename, ', '.join (module.FORMATS))) |
| 37 | +- for format_ in module.FORMATS: |
| 38 | +- cls.packagers[cls.mk_key (module.TYPE, format_)] = module |
| 39 | ++ for modulename in packagerlist: |
| 40 | ++ module = import_module("ebookmaker.packagers." + modulename) |
| 41 | ++ debug ("Loading packager type: %s from module: %s for formats: %s" % ( |
| 42 | ++ module.TYPE, modulename, ', '.join (module.FORMATS))) |
| 43 | ++ for format_ in module.FORMATS: |
| 44 | ++ cls.packagers[cls.mk_key (module.TYPE, format_)] = module |
| 45 | + |
| 46 | + return cls.packagers.keys () |
| 47 | + |
| 48 | +diff -r -u ../../../../ebm_builder-GUvbroJI/Lib/site-packages/ebookmaker/ParserFactory.py ./ParserFactory.py |
| 49 | +--- ../../../../ebm_builder-GUvbroJI/Lib/site-packages/ebookmaker/ParserFactory.py 2020-12-27 15:09:18.357809500 -0800 |
| 50 | ++++ ./ParserFactory.py 2020-06-17 16:28:56.358764100 -0700 |
| 51 | +@@ -18,7 +18,7 @@ |
| 52 | + from six.moves import urllib |
| 53 | + import six |
| 54 | + |
| 55 | +-from pkg_resources import resource_listdir, resource_stream # pylint: disable=E0611 |
| 56 | ++from pkg_resources import resource_stream # pylint: disable=E0611 |
| 57 | + import requests |
| 58 | + |
| 59 | + from libgutenberg.Logger import debug, error |
| 60 | +@@ -27,21 +27,22 @@ |
| 61 | + from ebookmaker.Version import VERSION |
| 62 | + from ebookmaker import parsers |
| 63 | + |
| 64 | ++from importlib import import_module |
| 65 | ++from ebookmaker.parsers import parserlist |
| 66 | ++ |
| 67 | ++ |
| 68 | + options = Options() |
| 69 | + parser_modules = {} |
| 70 | + |
| 71 | + def load_parsers(): |
| 72 | + """ See what types we can parse. """ |
| 73 | + |
| 74 | +- for fn in resource_listdir('ebookmaker.parsers', ''): |
| 75 | +- modulename, ext = os.path.splitext(fn) |
| 76 | +- if ext == '.py': |
| 77 | +- if modulename.endswith('Parser'): |
| 78 | +- module = __import__('ebookmaker.parsers.' + modulename, fromlist=[modulename]) |
| 79 | +- debug("Loading parser from module: %s for mediatypes: %s" % ( |
| 80 | +- modulename, ', '.join(module.mediatypes))) |
| 81 | +- for mediatype in module.mediatypes: |
| 82 | +- parser_modules[mediatype] = module |
| 83 | ++ for modulename in parserlist: |
| 84 | ++ module = import_module("ebookmaker.parsers." + modulename) |
| 85 | ++ debug("Loading parser from module: %s for mediatypes: %s" % ( |
| 86 | ++ modulename, ', '.join(module.mediatypes))) |
| 87 | ++ for mediatype in module.mediatypes: |
| 88 | ++ parser_modules[mediatype] = module |
| 89 | + |
| 90 | + return parser_modules.keys() |
| 91 | + |
| 92 | +diff -r -u ../../../../ebm_builder-GUvbroJI/Lib/site-packages/ebookmaker/parsers/__init__.py ./parsers/__init__.py |
| 93 | +--- ../../../../ebm_builder-GUvbroJI/Lib/site-packages/ebookmaker/parsers/__init__.py 2020-12-27 15:09:18.397267800 -0800 |
| 94 | ++++ ./parsers/__init__.py 2020-06-17 16:29:19.533619300 -0700 |
| 95 | +@@ -31,6 +31,17 @@ |
| 96 | + |
| 97 | + from ebookmaker.CommonCode import Options |
| 98 | + |
| 99 | ++# explicitly define the set of available parsers in this directory |
| 100 | ++parserlist = [ |
| 101 | ++ "AuxParser", |
| 102 | ++ "CSSParser", |
| 103 | ++ "GutenbergTextParser", |
| 104 | ++ "HTMLParser", |
| 105 | ++ "ImageParser", |
| 106 | ++ "RSTParser", |
| 107 | ++ "WrapperParser", |
| 108 | ++] |
| 109 | ++ |
| 110 | + options = Options() |
| 111 | + |
| 112 | + BROKEN = 'resource://ebookmaker.parsers/broken.png' |
| 113 | +diff -r -u ../../../../ebm_builder-GUvbroJI/Lib/site-packages/ebookmaker/WriterFactory.py ./WriterFactory.py |
| 114 | +--- ../../../../ebm_builder-GUvbroJI/Lib/site-packages/ebookmaker/WriterFactory.py 2020-12-27 15:09:18.362809400 -0800 |
| 115 | ++++ ./WriterFactory.py 2020-06-17 16:57:30.094866100 -0700 |
| 116 | +@@ -16,7 +16,8 @@ |
| 117 | + |
| 118 | + import os.path |
| 119 | + |
| 120 | +-from pkg_resources import resource_listdir # pylint: disable=E0611 |
| 121 | ++from importlib import import_module |
| 122 | ++from ebookmaker.writers import writerlist |
| 123 | + |
| 124 | + from libgutenberg.Logger import error, debug |
| 125 | + from ebookmaker.CommonCode import Options |
| 126 | +@@ -28,19 +29,17 @@ |
| 127 | + def __load_writers_from (package_name): |
| 128 | + """ See what types we can write. """ |
| 129 | + |
| 130 | +- for fn in resource_listdir (package_name, ''): |
| 131 | +- modulename, ext = os.path.splitext (fn) |
| 132 | +- if ext == '.py' and modulename.endswith ('Writer'): |
| 133 | +- type_ = modulename.lower ().replace ('writer', '') |
| 134 | +- try: |
| 135 | +- debug ("Loading writer type %s from module %s" % (type_, modulename)) |
| 136 | +- module = __import__ (package_name + '.' + modulename, fromlist = [modulename]) |
| 137 | +- writers[type_] = module |
| 138 | +- except ImportError as what: |
| 139 | +- error ( |
| 140 | +- "Could not load writer type %s from module %s. %s" % |
| 141 | +- (type_, modulename, what) |
| 142 | +- ) |
| 143 | ++ for modulename in writerlist: |
| 144 | ++ type_ = modulename.lower ().replace ('writer', '') |
| 145 | ++ try: |
| 146 | ++ module = import_module("ebookmaker.writers." + modulename) |
| 147 | ++ debug ("Loading writer type %s from module %s" % (type_, modulename)) |
| 148 | ++ writers[type_] = module |
| 149 | ++ except ImportError as what: |
| 150 | ++ error ( |
| 151 | ++ "Could not load writer type %s from module %s. %s" % |
| 152 | ++ (type_, modulename, what) |
| 153 | ++ ) |
| 154 | + |
| 155 | + |
| 156 | + def load_writers (): |
| 157 | +diff -r -u ../../../../ebm_builder-GUvbroJI/Lib/site-packages/ebookmaker/writers/__init__.py ./writers/__init__.py |
| 158 | +--- ../../../../ebm_builder-GUvbroJI/Lib/site-packages/ebookmaker/writers/__init__.py 2020-12-27 15:09:18.412937600 -0800 |
| 159 | ++++ ./writers/__init__.py 2020-06-17 16:53:26.250041000 -0700 |
| 160 | +@@ -29,6 +29,16 @@ |
| 161 | + from ebookmaker.Version import VERSION, GENERATOR |
| 162 | + |
| 163 | + |
| 164 | ++writerlist = [ |
| 165 | ++ "EpubWriter", |
| 166 | ++ "HTMLWriter", |
| 167 | ++ "KindleWriter", |
| 168 | ++ "PDFWriter", |
| 169 | ++ "PicsDirWriter", |
| 170 | ++ "RSTWriter", |
| 171 | ++ "TxtWriter", |
| 172 | ++] |
| 173 | ++ |
| 174 | + class BaseWriter(object): |
| 175 | + """ |
| 176 | + Base class for EpubWriter, PluckerWriter, ... |
0 commit comments