Skip to content

Commit 9ef5d76

Browse files
committed
fix: reorder pydyf.PDF monkeypatch before importing WeasyPrint.HTML
1 parent 629f8a1 commit 9ef5d76

File tree

1 file changed

+28
-0
lines changed

1 file changed

+28
-0
lines changed

api/nodes/pdf_builder_node.py

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,38 @@
33
import base64
44
from typing import List, Optional
55

6+
# Core imports
67
import httpx
78
import logging
9+
10+
# Monkey-patch PyDyf PDF constructor to accept extra args for compatibility
11+
try:
12+
import pydyf
13+
_orig_pdf_init = pydyf.PDF.__init__
14+
def _patched_pdf_init(self, *args, **kwargs):
15+
return _orig_pdf_init(self)
16+
pydyf.PDF.__init__ = _patched_pdf_init
17+
logging.getLogger(__name__).info("Patched pydyf.PDF.__init__ to accept extra args")
18+
except ImportError:
19+
logging.getLogger(__name__).warning("pydyf not installed; cannot patch PDF constructor")
20+
except Exception as e:
21+
logging.getLogger(__name__).error(f"Error patching pydyf.PDF.__init__: {e}")
22+
823
from weasyprint import HTML
924

25+
# Monkey-patch PyDyf PDF constructor to accept extra args for compatibility
26+
try:
27+
import pydyf
28+
_orig_pdf_init = pydyf.PDF.__init__
29+
def _patched_pdf_init(self, *args, **kwargs):
30+
return _orig_pdf_init(self)
31+
pydyf.PDF.__init__ = _patched_pdf_init
32+
logging.getLogger(__name__).info("Patched pydyf.PDF.__init__ to accept extra args")
33+
except ImportError:
34+
logging.getLogger(__name__).warning("pydyf not installed; cannot patch PDF constructor")
35+
except Exception as e:
36+
logging.getLogger(__name__).error(f"Error patching pydyf.PDF.__init__: {e}")
37+
1038
# Node decorator with retry logic
1139
class Node:
1240
def __init__(self, retries: int = 0):

0 commit comments

Comments
 (0)