Make xhtml2pdf and python-bidi optional dependencies for PDF support

python-bidi >= 0.5.0 requires Rust/maturin to build from source, which
fails on platforms like Termux (Android) that lack a Rust toolchain.

Since PDF report generation is an optional feature (--pdf flag), move
xhtml2pdf (which depends on python-bidi, arabic-reshaper, reportlab)
to an optional extras group. Users can install PDF support with:
  pip install maigret[pdf]

Also add graceful error handling in save_pdf_report() when xhtml2pdf
is not installed, with a clear message about how to install it.

Agent-Logs-Url: https://github.com/soxoj/maigret/sessions/ab19aa96-7175-47bd-af88-34b3106269e9

Co-authored-by: soxoj <31013580+soxoj@users.noreply.github.com>
This commit is contained in:
copilot-swe-agent[bot]
2026-04-07 23:16:36 +00:00
committed by GitHub
parent d20aad7dc2
commit 4da640609c
5 changed files with 65 additions and 54 deletions
+4 -6
View File
@@ -8,7 +8,6 @@
aiodns>=3.0.0
aiohttp>=3.8.6
aiohttp-socks>=0.7.1
arabic-reshaper~=3.0.0
async-timeout
attrs>=22.2.0
certifi>=2023.7.22
@@ -24,9 +23,7 @@ MarkupSafe
mock>=4.0.3
multidict
pycountry>=22.3.5
PyPDF2>=3.0.1
PySocks>=1.7.1
python-bidi>=0.4.2
requests
requests-futures>=1.0.0
six>=1.16.0
@@ -37,11 +34,12 @@ torrequest>=0.1.0
tqdm
typing-extensions
webencodings>=0.5.1
svglib
xhtml2pdf~=0.2.11
XMind>=1.2.0
yarl
networkx
pyvis>=0.2.1
reportlab
cloudscraper>=1.2.71
# Optional PDF dependencies (install separately for PDF report support):
# xhtml2pdf~=0.2.11
# arabic-reshaper~=3.0.0
# reportlab