summaryrefslogtreecommitdiff
path: root/src/teradata/picklers.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/teradata/picklers.py')
-rw-r--r--src/teradata/picklers.py17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/teradata/picklers.py b/src/teradata/picklers.py
new file mode 100644
index 0000000..bc0562d
--- /dev/null
+++ b/src/teradata/picklers.py
@@ -0,0 +1,17 @@
+lazy import copyreg
+
+lazy from lxml import html
+lazy from lxml.html._element import HtmlElement
+
+
+def _reduce_html_element(elem: HtmlElement):
+ raw_html = html.tostring(elem)
+ return _rebuild_html_element, (raw_html,)
+
+
+def _rebuild_html_element(raw_html: str) -> HtmlElement:
+ return html.fromstring(raw_html)
+
+
+def register() -> None:
+ copyreg.pickle(HtmlElement, _reduce_html_element)