-from __future__ import unicode_literals
-
+# This file is part of Librarian, licensed under GNU Affero GPLv3 or later.
+# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
+#
import importlib
from lxml import etree
'application/x-latex': 'librarian.embeds.latex.LaTeX',
}
+
class Embed():
@classmethod
def transforms_to(cls, mime_types, downgrade=False):
return matches
def transform_to(self, mime_type, downgrade=False):
- for name, method in type(cls).__dict__.iteritems():
+ for name, method in type(self).__dict__.iteritems():
if hasattr(method, "embed_converts_to"):
conv_type, conv_downgrade = method.embed_converts_to
if downgrade == conv_downgrade and conv_type == mime_type:
def __init__(self, data=None):
self.data = data
+
class TreeEmbed(Embed):
def __init__(self, tree=None):
if isinstance(tree, etree._Element):
tree = etree.ElementTree(tree)
self.tree = tree
+
def converts_to(mime_type, downgrade=False):
def decorator(method):
method.embed_converts_to = mime_type, downgrade
return method
return decorator
+
def downgrades_to(mime_type):
return converts_to(mime_type, True)
+
def create_embed(mime_type, tree=None, data=None):
embed = known_types.get(mime_type)
if embed is None: