Imports rearrangements, readme reformat, basic stuff.

Smoke tests are 100/100.
This commit is contained in:
2026-05-13 22:13:58 +02:00
parent 3d38ae9633
commit fa24530bc5
13 changed files with 53 additions and 47 deletions
+3 -2
View File
@@ -2,12 +2,12 @@
Command line interface to conversion sub-system
"""
import collections
import importlib.resources
import json
import mimetypes
import numbers
import optparse
import os
from importlib.resources import files
import re
import sys
@@ -351,7 +351,8 @@ def read_sr_patterns(path, log=None):
def main(args=sys.argv):
log = logging.default_log
mimetypes.init([str(files('ebook_converter').joinpath('data/mime.types'))])
mimetypes.init([str(importlib.resources.files('ebook_converter') /
'data/mime.types')])
parser, plumber = create_option_parser(args, log)
opts, leftover_args = parser.parse_args(args)
if len(leftover_args) > 3:
@@ -1,9 +1,9 @@
"""
Convert .fb2 files to .lrf
"""
import importlib.resources
import mimetypes
import os
from importlib.resources import files
import re
from lxml import etree
@@ -85,8 +85,8 @@ class FB2Input(InputFormatPlugin):
css = re.sub(r'name\s*=\s*', 'class=', css)
self.extract_embedded_content(doc)
log.debug('Converting XML to HTML...')
with open(str(files('ebook_converter')
.joinpath('data/fb2.xsl'))) as f:
with open(importlib.resources.files('ebook_converter') /
'data/fb2.xsl') as f:
ss = f.read()
ss = ss.replace("__FB_NS__", fb_ns)
if options.no_inline_fb2_toc:
@@ -1,5 +1,5 @@
import importlib.resources
import os
from importlib.resources import files
import re
import shutil
@@ -92,27 +92,24 @@ class HTMLOutput(OutputFormatPlugin):
with open(opts.template_html_index, 'rb') as f:
template_html_index_data = f.read()
else:
with open(str(files('ebook_converter')
.joinpath('data/html_export_default_index.tmpl'))
) as fobj:
with open(importlib.resources.files('ebook_converter') /
'data/html_export_default_index.tmpl') as fobj:
template_html_index_data = fobj.read().decode()
if opts.template_html is not None:
with open(opts.template_html, 'rb') as f:
template_html_data = f.read()
else:
with open(str(files('ebook_converter')
.joinpath('data/html_export_default.tmpl'))
) as fobj:
with open(importlib.resources.files('ebook_converter') /
'data/html_export_default.tmpl') as fobj:
template_html_data = fobj.read().decode()
if opts.template_css is not None:
with open(opts.template_css, 'rb') as f:
template_css_data = f.read()
else:
with open(str(files('ebook_converter')
.joinpath('data/html_export_default.css'))
) as fobj:
with open(importlib.resources.files('ebook_converter') /
'data/html_export_default.css') as fobj:
template_css_data = fobj.read().decode()
template_html_index_data = template_html_index_data.decode('utf-8')
@@ -1,6 +1,6 @@
import importlib.resources
import os
import sys
from importlib.resources import files
from lxml import etree
@@ -52,8 +52,8 @@ class LRFInput(InputFormatPlugin):
self.log.info('Converting XML to HTML...')
with open(str(files('ebook_converter')
.joinpath('data/lrf.xsl'))) as fobj:
with open(importlib.resources.files('ebook_converter') /
'data/lrf.xsl') as fobj:
# TODO(gryf): change this nonsense to etree.parse() instead.
styledoc = etree.fromstring(fobj.read())
media_type = MediaType()
@@ -1,6 +1,6 @@
import importlib.resources
import glob
import os
from importlib.resources import files
import re
import textwrap
@@ -288,8 +288,8 @@ class RTFInput(InputFormatPlugin):
self.log.info('Converting XML to HTML...')
inline_class = InlineClass(self.log)
with open(str(files('ebook_converter')
.joinpath('data/rtf.xsl'))) as fobj:
with open(importlib.resources.files('ebook_converter') /
'data/rtf.xsl') as fobj:
styledoc = etree.fromstring(fobj.read())
extensions = {('calibre', 'inline-class'): inline_class}
transform = etree.XSLT(styledoc, extensions=extensions)
+5 -4
View File
@@ -1,7 +1,7 @@
import collections
import functools
import importlib.resources
import operator
from importlib.resources import files
import re
import urllib.parse
@@ -719,8 +719,8 @@ def commit_nav_toc(container, toc, lang=None, landmarks=None,
if previous_nav is not None:
root = previous_nav[1]
else:
with open(str(files('ebook_converter')
.joinpath('data/new_nav.html'))) as fobj:
with open(importlib.resources.file('ebook_converter') /
'data/new_nav.html') as fobj:
root = container.parse_xhtml(fobj.read())
container.replace(tocname, root)
else:
@@ -873,7 +873,8 @@ def toc_to_html(toc, container, toc_name, title, lang=None):
E = ElementMaker(namespace=const.XHTML_NS, nsmap={None: const.XHTML_NS})
# TODO(gryf): revisit lack of css.
css_f = str(files('ebook_converter').joinpath('data/inline_toc_styles.css'))
css_f = str(importlib.resources.files('ebook_converter') /
'data/inline_toc_styles.css')
html = E.html(E.head(E.title(title),
E.style(css_f, type='text/css')),
E.body(E.h2(title), E.ul(),
+10 -3
View File
@@ -1,8 +1,14 @@
"""
CSS property propagation class.
"""
import os, re, logging, copy, unicodedata, numbers
from importlib.resources import files
import copy
import importlib.resources
import logging
import numbers
import os
import re
import unicodedata
from operator import itemgetter
from weakref import WeakKeyDictionary
from xml.dom import SyntaxErr as CSSSyntaxError
@@ -28,7 +34,8 @@ _html_css_stylesheet = None
def html_css_stylesheet():
global _html_css_stylesheet
if _html_css_stylesheet is None:
with open(str(files('ebook_converter').joinpath('data/html.css')), 'rb') as f:
with open(importlib.resources.files('ebook_converter') /
'data/html.css', 'rb') as f:
html_css = f.read().decode('utf-8')
_html_css_stylesheet = parseString(html_css, validate=False)
return _html_css_stylesheet
+2 -2
View File
@@ -1,7 +1,8 @@
"""
Read content from txt file.
"""
import os, re
import re
import os
from ebook_converter.ebooks.metadata.opf2 import OPFCreator
@@ -101,7 +102,6 @@ DEFAULT_MD_EXTENSIONS = ('footnotes', 'tables', 'toc')
def create_markdown_object(extensions):
# Need to load markdown extensions without relying on pkg_resources
import importlib
from ebook_converter.ebooks.markdown import Markdown
from markdown import Extension