brewdoc-linux-x64-glibc 0.0.0-stage → 0.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +128 -2
- package/binary/_internal/PIL/_avif.cpython-312-x86_64-linux-gnu.so +0 -0
- package/binary/_internal/PIL/_imaging.cpython-312-x86_64-linux-gnu.so +0 -0
- package/binary/_internal/PIL/_imagingcms.cpython-312-x86_64-linux-gnu.so +0 -0
- package/binary/_internal/PIL/_imagingft.cpython-312-x86_64-linux-gnu.so +0 -0
- package/binary/_internal/PIL/_imagingmath.cpython-312-x86_64-linux-gnu.so +0 -0
- package/binary/_internal/PIL/_imagingtk.cpython-312-x86_64-linux-gnu.so +0 -0
- package/binary/_internal/PIL/_webp.cpython-312-x86_64-linux-gnu.so +0 -0
- package/binary/_internal/_cffi_backend.cpython-312-x86_64-linux-gnu.so +0 -0
- package/binary/_internal/_quickjs.abi3.so +0 -0
- package/binary/_internal/base_library.zip +0 -0
- package/binary/_internal/brewdoc/_urljs/glue.js +858 -0
- package/binary/_internal/brewdoc/_vendor/THIRD_PARTY_NOTICES.txt +342 -0
- package/binary/_internal/brewdoc/_vendor/linkedom-worker.js +12650 -0
- package/binary/_internal/brewdoc-0.3.2.dist-info/INSTALLER +1 -0
- package/binary/_internal/brewdoc-0.3.2.dist-info/METADATA +157 -0
- package/binary/_internal/brewdoc-0.3.2.dist-info/RECORD +30 -0
- package/binary/_internal/brewdoc-0.3.2.dist-info/REQUESTED +0 -0
- package/binary/_internal/brewdoc-0.3.2.dist-info/WHEEL +4 -0
- package/binary/_internal/brewdoc-0.3.2.dist-info/direct_url.json +1 -0
- package/binary/_internal/brewdoc-0.3.2.dist-info/entry_points.txt +2 -0
- package/binary/_internal/brewdoc-0.3.2.dist-info/licenses/LICENSE +21 -0
- package/binary/_internal/brewdoc-0.3.2.dist-info/uv_cache.json +1 -0
- package/binary/_internal/cffi-2.1.1.dist-info/INSTALLER +1 -0
- package/binary/_internal/cffi-2.1.1.dist-info/METADATA +67 -0
- package/binary/_internal/cffi-2.1.1.dist-info/RECORD +34 -0
- package/binary/_internal/cffi-2.1.1.dist-info/REQUESTED +0 -0
- package/binary/_internal/cffi-2.1.1.dist-info/WHEEL +6 -0
- package/binary/_internal/cffi-2.1.1.dist-info/entry_points.txt +5 -0
- package/binary/_internal/cffi-2.1.1.dist-info/licenses/LICENSE +23 -0
- package/binary/_internal/cffi-2.1.1.dist-info/top_level.txt +2 -0
- package/binary/_internal/charset_normalizer/cd.cpython-312-x86_64-linux-gnu.so +0 -0
- package/binary/_internal/charset_normalizer/md.cpython-312-x86_64-linux-gnu.so +0 -0
- package/binary/_internal/charset_normalizer-3.5.2.dist-info/INSTALLER +1 -0
- package/binary/_internal/charset_normalizer-3.5.2.dist-info/METADATA +892 -0
- package/binary/_internal/charset_normalizer-3.5.2.dist-info/RECORD +24 -0
- package/binary/_internal/charset_normalizer-3.5.2.dist-info/REQUESTED +0 -0
- package/binary/_internal/charset_normalizer-3.5.2.dist-info/WHEEL +7 -0
- package/binary/_internal/charset_normalizer-3.5.2.dist-info/entry_points.txt +2 -0
- package/binary/_internal/charset_normalizer-3.5.2.dist-info/licenses/LICENSE +21 -0
- package/binary/_internal/charset_normalizer-3.5.2.dist-info/top_level.txt +1 -0
- package/binary/_internal/cryptography/hazmat/bindings/_rust.abi3.so +0 -0
- package/binary/_internal/cryptography-50.0.2.dist-info/INSTALLER +1 -0
- package/binary/_internal/cryptography-50.0.2.dist-info/METADATA +111 -0
- package/binary/_internal/cryptography-50.0.2.dist-info/RECORD +122 -0
- package/binary/_internal/cryptography-50.0.2.dist-info/REQUESTED +0 -0
- package/binary/_internal/cryptography-50.0.2.dist-info/WHEEL +5 -0
- package/binary/_internal/cryptography-50.0.2.dist-info/licenses/LICENSE +3 -0
- package/binary/_internal/cryptography-50.0.2.dist-info/licenses/LICENSE.APACHE +202 -0
- package/binary/_internal/cryptography-50.0.2.dist-info/licenses/LICENSE.BSD +27 -0
- package/binary/_internal/cryptography-50.0.2.dist-info/sboms/cryptography-rust.cyclonedx.json +1365 -0
- package/binary/_internal/cryptography-50.0.2.dist-info/sboms/sbom.json +43 -0
- package/binary/_internal/libXau-154567c4.so.6.0.0 +0 -0
- package/binary/_internal/libavif-8a7f9d56.so.16.4.2 +0 -0
- package/binary/_internal/libbrotlicommon-53534446.so.1.2.0 +0 -0
- package/binary/_internal/libbrotlidec-7e5462ba.so.1.2.0 +0 -0
- package/binary/_internal/libfreetype-9fc94c80.so.6.20.6 +0 -0
- package/binary/_internal/libgcc_s.so.1 +0 -0
- package/binary/_internal/libharfbuzz-172d1f63.so.0.61421.0 +0 -0
- package/binary/_internal/libjpeg-31e2ca52.so.62.4.0 +0 -0
- package/binary/_internal/liblcms2-dade1fbf.so.2.0.19 +0 -0
- package/binary/_internal/liblzma-2be87c3e.so.5.8.3 +0 -0
- package/binary/_internal/libopenjp2-b07f72ad.so.2.5.4 +0 -0
- package/binary/_internal/libpng16-abb096d5.so.16.58.0 +0 -0
- package/binary/_internal/libpython3.12.so.1.0 +0 -0
- package/binary/_internal/libsharpyuv-0066295b.so.0.1.2 +0 -0
- package/binary/_internal/libstdc++.so.6 +0 -0
- package/binary/_internal/libtiff-fc87e79d.so.6.2.0 +0 -0
- package/binary/_internal/libwebp-51b0b3f7.so.7.2.0 +0 -0
- package/binary/_internal/libwebpdemux-9fe2abcc.so.2.0.17 +0 -0
- package/binary/_internal/libwebpmux-8fb1c9f6.so.3.1.2 +0 -0
- package/binary/_internal/libxcb-ad31f5a3.so.1.1.0 +0 -0
- package/binary/_internal/libz.so.1 +0 -0
- package/binary/_internal/libzstd-44be1190.so.1.5.7 +0 -0
- package/binary/_internal/pdfminer/cmap/78-EUC-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/78-EUC-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/78-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/78-RKSJ-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/78-RKSJ-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/78-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/78ms-RKSJ-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/78ms-RKSJ-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/83pv-RKSJ-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/83pv-RKSJ-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/90ms-RKSJ-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/90ms-RKSJ-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/90msp-RKSJ-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/90msp-RKSJ-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/90pv-RKSJ-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/90pv-RKSJ-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/Add-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/Add-RKSJ-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/Add-RKSJ-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/Add-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/B5-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/B5-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/B5pc-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/B5pc-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/CNS-EUC-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/CNS-EUC-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/CNS1-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/CNS1-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/CNS2-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/CNS2-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/ETHK-B5-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/ETHK-B5-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/ETen-B5-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/ETen-B5-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/ETenms-B5-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/ETenms-B5-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/EUC-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/EUC-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/Ext-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/Ext-RKSJ-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/Ext-RKSJ-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/Ext-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/GB-EUC-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/GB-EUC-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/GB-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/GB-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/GBK-EUC-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/GBK-EUC-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/GBK2K-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/GBK2K-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/GBKp-EUC-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/GBKp-EUC-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/GBT-EUC-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/GBT-EUC-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/GBT-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/GBT-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/GBTpc-EUC-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/GBTpc-EUC-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/GBpc-EUC-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/GBpc-EUC-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/HKdla-B5-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/HKdla-B5-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/HKdlb-B5-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/HKdlb-B5-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/HKgccs-B5-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/HKgccs-B5-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/HKm314-B5-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/HKm314-B5-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/HKm471-B5-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/HKm471-B5-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/HKscs-B5-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/HKscs-B5-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/Hankaku-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/Hankaku-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/Hiragana-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/Hiragana-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/KSC-EUC-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/KSC-EUC-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/KSC-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/KSC-Johab-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/KSC-Johab-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/KSC-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/KSCms-UHC-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/KSCms-UHC-HW-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/KSCms-UHC-HW-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/KSCms-UHC-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/KSCpc-EUC-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/KSCpc-EUC-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/Katakana-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/Katakana-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/NWP-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/NWP-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/README.txt +79 -0
- package/binary/_internal/pdfminer/cmap/RKSJ-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/RKSJ-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/Roman-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/Roman-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/UniCNS-UCS2-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/UniCNS-UCS2-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/UniCNS-UTF16-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/UniCNS-UTF16-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/UniCNS-UTF32-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/UniCNS-UTF32-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/UniCNS-UTF8-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/UniCNS-UTF8-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/UniGB-UCS2-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/UniGB-UCS2-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/UniGB-UTF16-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/UniGB-UTF16-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/UniGB-UTF32-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/UniGB-UTF32-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/UniGB-UTF8-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/UniGB-UTF8-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/UniJIS-UCS2-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/UniJIS-UCS2-HW-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/UniJIS-UCS2-HW-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/UniJIS-UCS2-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/UniJIS-UTF16-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/UniJIS-UTF16-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/UniJIS-UTF32-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/UniJIS-UTF32-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/UniJIS-UTF8-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/UniJIS-UTF8-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/UniJIS2004-UTF16-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/UniJIS2004-UTF16-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/UniJIS2004-UTF32-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/UniJIS2004-UTF32-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/UniJIS2004-UTF8-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/UniJIS2004-UTF8-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/UniJISX0213-UTF32-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/UniJISX0213-UTF32-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/UniJISX02132004-UTF32-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/UniJISX02132004-UTF32-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/UniKS-UCS2-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/UniKS-UCS2-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/UniKS-UTF16-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/UniKS-UTF16-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/UniKS-UTF32-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/UniKS-UTF32-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/UniKS-UTF8-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/UniKS-UTF8-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/WP-Symbol-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/WP-Symbol-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/to-unicode-Adobe-CNS1.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/to-unicode-Adobe-GB1.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/to-unicode-Adobe-Japan1.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/to-unicode-Adobe-Korea1.json.gz +0 -0
- package/binary/_internal/pdfminer/py.typed +0 -0
- package/binary/_internal/pdfminer_six-20260107.dist-info/INSTALLER +1 -0
- package/binary/_internal/pdfminer_six-20260107.dist-info/METADATA +110 -0
- package/binary/_internal/pdfminer_six-20260107.dist-info/RECORD +191 -0
- package/binary/_internal/pdfminer_six-20260107.dist-info/REQUESTED +0 -0
- package/binary/_internal/pdfminer_six-20260107.dist-info/WHEEL +5 -0
- package/binary/_internal/pdfminer_six-20260107.dist-info/licenses/LICENSE +22 -0
- package/binary/_internal/pdfminer_six-20260107.dist-info/top_level.txt +1 -0
- package/binary/_internal/pdfplumber-0.11.10.dist-info/INSTALLER +1 -0
- package/binary/_internal/pdfplumber-0.11.10.dist-info/METADATA +617 -0
- package/binary/_internal/pdfplumber-0.11.10.dist-info/RECORD +30 -0
- package/binary/_internal/pdfplumber-0.11.10.dist-info/REQUESTED +0 -0
- package/binary/_internal/pdfplumber-0.11.10.dist-info/WHEEL +5 -0
- package/binary/_internal/pdfplumber-0.11.10.dist-info/entry_points.txt +2 -0
- package/binary/_internal/pdfplumber-0.11.10.dist-info/licenses/LICENSE.txt +21 -0
- package/binary/_internal/pdfplumber-0.11.10.dist-info/top_level.txt +1 -0
- package/binary/_internal/pillow-12.3.0.dist-info/INSTALLER +1 -0
- package/binary/_internal/pillow-12.3.0.dist-info/METADATA +180 -0
- package/binary/_internal/pillow-12.3.0.dist-info/RECORD +142 -0
- package/binary/_internal/pillow-12.3.0.dist-info/REQUESTED +0 -0
- package/binary/_internal/pillow-12.3.0.dist-info/WHEEL +6 -0
- package/binary/_internal/pillow-12.3.0.dist-info/licenses/LICENSE +1574 -0
- package/binary/_internal/pillow-12.3.0.dist-info/sboms/auditwheel.cdx.json +1 -0
- package/binary/_internal/pillow-12.3.0.dist-info/sboms/pillow-12.3.0.cdx.json +721 -0
- package/binary/_internal/pillow-12.3.0.dist-info/top_level.txt +1 -0
- package/binary/_internal/pillow-12.3.0.dist-info/zip-safe +1 -0
- package/binary/_internal/pillow.libs/libXau-154567c4.so.6.0.0 +0 -0
- package/binary/_internal/pillow.libs/libavif-8a7f9d56.so.16.4.2 +0 -0
- package/binary/_internal/pillow.libs/libbrotlicommon-53534446.so.1.2.0 +0 -0
- package/binary/_internal/pillow.libs/libbrotlidec-7e5462ba.so.1.2.0 +0 -0
- package/binary/_internal/pillow.libs/libfreetype-9fc94c80.so.6.20.6 +0 -0
- package/binary/_internal/pillow.libs/libharfbuzz-172d1f63.so.0.61421.0 +0 -0
- package/binary/_internal/pillow.libs/libjpeg-31e2ca52.so.62.4.0 +0 -0
- package/binary/_internal/pillow.libs/liblcms2-dade1fbf.so.2.0.19 +0 -0
- package/binary/_internal/pillow.libs/liblzma-2be87c3e.so.5.8.3 +0 -0
- package/binary/_internal/pillow.libs/libopenjp2-b07f72ad.so.2.5.4 +0 -0
- package/binary/_internal/pillow.libs/libpng16-abb096d5.so.16.58.0 +0 -0
- package/binary/_internal/pillow.libs/libsharpyuv-0066295b.so.0.1.2 +0 -0
- package/binary/_internal/pillow.libs/libtiff-fc87e79d.so.6.2.0 +0 -0
- package/binary/_internal/pillow.libs/libwebp-51b0b3f7.so.7.2.0 +0 -0
- package/binary/_internal/pillow.libs/libwebpdemux-9fe2abcc.so.2.0.17 +0 -0
- package/binary/_internal/pillow.libs/libwebpmux-8fb1c9f6.so.3.1.2 +0 -0
- package/binary/_internal/pillow.libs/libxcb-ad31f5a3.so.1.1.0 +0 -0
- package/binary/_internal/pillow.libs/libzstd-44be1190.so.1.5.7 +0 -0
- package/binary/_internal/pycparser-3.0.dist-info/INSTALLER +1 -0
- package/binary/_internal/pycparser-3.0.dist-info/METADATA +244 -0
- package/binary/_internal/pycparser-3.0.dist-info/RECORD +15 -0
- package/binary/_internal/pycparser-3.0.dist-info/REQUESTED +0 -0
- package/binary/_internal/pycparser-3.0.dist-info/WHEEL +5 -0
- package/binary/_internal/pycparser-3.0.dist-info/licenses/LICENSE +27 -0
- package/binary/_internal/pycparser-3.0.dist-info/top_level.txt +1 -0
- package/binary/_internal/pypdfium2/version.json +11 -0
- package/binary/_internal/pypdfium2-5.13.0.dist-info/INSTALLER +1 -0
- package/binary/_internal/pypdfium2-5.13.0.dist-info/METADATA +1139 -0
- package/binary/_internal/pypdfium2-5.13.0.dist-info/RECORD +75 -0
- package/binary/_internal/pypdfium2-5.13.0.dist-info/REQUESTED +0 -0
- package/binary/_internal/pypdfium2-5.13.0.dist-info/WHEEL +6 -0
- package/binary/_internal/pypdfium2-5.13.0.dist-info/entry_points.txt +2 -0
- package/binary/_internal/pypdfium2-5.13.0.dist-info/licenses/LICENSES/Apache-2.0.txt +202 -0
- package/binary/_internal/pypdfium2-5.13.0.dist-info/licenses/LICENSES/BSD-3-Clause.txt +26 -0
- package/binary/_internal/pypdfium2-5.13.0.dist-info/licenses/LICENSES/CC-BY-4.0.txt +317 -0
- package/binary/_internal/pypdfium2-5.13.0.dist-info/licenses/data/linux_x64/BUILD_LICENSES/abseil.txt +203 -0
- package/binary/_internal/pypdfium2-5.13.0.dist-info/licenses/data/linux_x64/BUILD_LICENSES/agg23.txt +14 -0
- package/binary/_internal/pypdfium2-5.13.0.dist-info/licenses/data/linux_x64/BUILD_LICENSES/fast_float.txt +27 -0
- package/binary/_internal/pypdfium2-5.13.0.dist-info/licenses/data/linux_x64/BUILD_LICENSES/freetype.txt +169 -0
- package/binary/_internal/pypdfium2-5.13.0.dist-info/licenses/data/linux_x64/BUILD_LICENSES/icu.txt +568 -0
- package/binary/_internal/pypdfium2-5.13.0.dist-info/licenses/data/linux_x64/BUILD_LICENSES/lcms.txt +27 -0
- package/binary/_internal/pypdfium2-5.13.0.dist-info/licenses/data/linux_x64/BUILD_LICENSES/libjpeg_turbo.ijg +260 -0
- package/binary/_internal/pypdfium2-5.13.0.dist-info/licenses/data/linux_x64/BUILD_LICENSES/libjpeg_turbo.md +135 -0
- package/binary/_internal/pypdfium2-5.13.0.dist-info/licenses/data/linux_x64/BUILD_LICENSES/libopenjpeg.txt +32 -0
- package/binary/_internal/pypdfium2-5.13.0.dist-info/licenses/data/linux_x64/BUILD_LICENSES/libpng.txt +134 -0
- package/binary/_internal/pypdfium2-5.13.0.dist-info/licenses/data/linux_x64/BUILD_LICENSES/libtiff.txt +21 -0
- package/binary/_internal/pypdfium2-5.13.0.dist-info/licenses/data/linux_x64/BUILD_LICENSES/llvm-libc.txt +278 -0
- package/binary/_internal/pypdfium2-5.13.0.dist-info/licenses/data/linux_x64/BUILD_LICENSES/pdfium-binaries.txt +9 -0
- package/binary/_internal/pypdfium2-5.13.0.dist-info/licenses/data/linux_x64/BUILD_LICENSES/pdfium.txt +230 -0
- package/binary/_internal/pypdfium2-5.13.0.dist-info/licenses/data/linux_x64/BUILD_LICENSES/simdutf.txt +18 -0
- package/binary/_internal/pypdfium2-5.13.0.dist-info/licenses/data/linux_x64/BUILD_LICENSES/zlib.txt +29 -0
- package/binary/_internal/pypdfium2-5.13.0.dist-info/top_level.txt +4 -0
- package/binary/_internal/pypdfium2_raw/libpdfium.so +0 -0
- package/binary/_internal/pypdfium2_raw/version.json +10 -0
- package/binary/_internal/python_calamine/_python_calamine.cpython-312-x86_64-linux-gnu.so +0 -0
- package/binary/_internal/python_calamine-0.8.2.dist-info/INSTALLER +1 -0
- package/binary/_internal/python_calamine-0.8.2.dist-info/METADATA +94 -0
- package/binary/_internal/python_calamine-0.8.2.dist-info/RECORD +11 -0
- package/binary/_internal/python_calamine-0.8.2.dist-info/REQUESTED +0 -0
- package/binary/_internal/python_calamine-0.8.2.dist-info/WHEEL +5 -0
- package/binary/_internal/python_calamine-0.8.2.dist-info/licenses/LICENSE +21 -0
- package/binary/_internal/python_calamine-0.8.2.dist-info/sboms/python-calamine.cyclonedx.json +1615 -0
- package/binary/_internal/quickjs_ng-0.17.0.1.dist-info/INSTALLER +1 -0
- package/binary/_internal/quickjs_ng-0.17.0.1.dist-info/METADATA +161 -0
- package/binary/_internal/quickjs_ng-0.17.0.1.dist-info/RECORD +9 -0
- package/binary/_internal/quickjs_ng-0.17.0.1.dist-info/REQUESTED +0 -0
- package/binary/_internal/quickjs_ng-0.17.0.1.dist-info/WHEEL +7 -0
- package/binary/_internal/quickjs_ng-0.17.0.1.dist-info/licenses/LICENSE +21 -0
- package/binary/_internal/quickjs_ng-0.17.0.1.dist-info/top_level.txt +2 -0
- package/binary/_internal/selectolax/base.pxi +4 -0
- package/binary/_internal/selectolax/lexbor/attrs.pxi +123 -0
- package/binary/_internal/selectolax/lexbor/fragment_lookup.pxi +52 -0
- package/binary/_internal/selectolax/lexbor/node.pxi +1355 -0
- package/binary/_internal/selectolax/lexbor/node_remove.pxi +29 -0
- package/binary/_internal/selectolax/lexbor/selection.pxi +251 -0
- package/binary/_internal/selectolax/lexbor/util.pxi +114 -0
- package/binary/_internal/selectolax/lexbor.c +66981 -0
- package/binary/_internal/selectolax/lexbor.cpython-312-x86_64-linux-gnu.so +0 -0
- package/binary/_internal/selectolax/lexbor.pxd +682 -0
- package/binary/_internal/selectolax/lexbor.pyi +1534 -0
- package/binary/_internal/selectolax/lexbor.pyx +1046 -0
- package/binary/_internal/selectolax/modest/node.pxi +976 -0
- package/binary/_internal/selectolax/modest/selection.pxi +199 -0
- package/binary/_internal/selectolax/modest/util.pxi +20 -0
- package/binary/_internal/selectolax/py.typed +0 -0
- package/binary/_internal/selectolax/utils.pxi +117 -0
- package/binary/_internal/selectolax-0.4.13.dist-info/INSTALLER +1 -0
- package/binary/_internal/selectolax-0.4.13.dist-info/METADATA +222 -0
- package/binary/_internal/selectolax-0.4.13.dist-info/RECORD +30 -0
- package/binary/_internal/selectolax-0.4.13.dist-info/REQUESTED +0 -0
- package/binary/_internal/selectolax-0.4.13.dist-info/WHEEL +7 -0
- package/binary/_internal/selectolax-0.4.13.dist-info/licenses/LICENSE +10 -0
- package/binary/_internal/selectolax-0.4.13.dist-info/top_level.txt +1 -0
- package/binary/brewdoc +0 -0
- package/binary/licenses/installed/brewdoc/brewdoc/_vendor/THIRD_PARTY_NOTICES.txt +342 -0
- package/binary/licenses/installed/brewdoc/brewdoc-0.3.2.dist-info/licenses/LICENSE +21 -0
- package/binary/licenses/installed/cffi/cffi-2.1.1.dist-info/licenses/LICENSE +23 -0
- package/binary/licenses/installed/charset-normalizer/charset_normalizer-3.5.2.dist-info/licenses/LICENSE +21 -0
- package/binary/licenses/installed/cryptography/cryptography-50.0.2.dist-info/licenses/LICENSE +3 -0
- package/binary/licenses/installed/cryptography/cryptography-50.0.2.dist-info/licenses/LICENSE.APACHE +202 -0
- package/binary/licenses/installed/cryptography/cryptography-50.0.2.dist-info/licenses/LICENSE.BSD +27 -0
- package/binary/licenses/installed/interpreter/LICENSE.txt +279 -0
- package/binary/licenses/installed/native-runtime/GPL-3 +674 -0
- package/binary/licenses/installed/native-runtime/gcc-12-base-amd64-copyright +1512 -0
- package/binary/licenses/installed/pdfminer.six/pdfminer_six-20260107.dist-info/licenses/LICENSE +22 -0
- package/binary/licenses/installed/pdfplumber/pdfplumber-0.11.10.dist-info/licenses/LICENSE.txt +21 -0
- package/binary/licenses/installed/pillow/pillow-12.3.0.dist-info/licenses/LICENSE +1574 -0
- package/binary/licenses/installed/pycparser/pycparser-3.0.dist-info/licenses/LICENSE +27 -0
- package/binary/licenses/installed/pypdfium2/pypdfium2-5.13.0.dist-info/licenses/LICENSES/Apache-2.0.txt +202 -0
- package/binary/licenses/installed/pypdfium2/pypdfium2-5.13.0.dist-info/licenses/LICENSES/BSD-3-Clause.txt +26 -0
- package/binary/licenses/installed/pypdfium2/pypdfium2-5.13.0.dist-info/licenses/LICENSES/CC-BY-4.0.txt +317 -0
- package/binary/licenses/installed/pypdfium2/pypdfium2-5.13.0.dist-info/licenses/data/linux_x64/BUILD_LICENSES/abseil.txt +203 -0
- package/binary/licenses/installed/pypdfium2/pypdfium2-5.13.0.dist-info/licenses/data/linux_x64/BUILD_LICENSES/agg23.txt +14 -0
- package/binary/licenses/installed/pypdfium2/pypdfium2-5.13.0.dist-info/licenses/data/linux_x64/BUILD_LICENSES/fast_float.txt +27 -0
- package/binary/licenses/installed/pypdfium2/pypdfium2-5.13.0.dist-info/licenses/data/linux_x64/BUILD_LICENSES/freetype.txt +169 -0
- package/binary/licenses/installed/pypdfium2/pypdfium2-5.13.0.dist-info/licenses/data/linux_x64/BUILD_LICENSES/icu.txt +568 -0
- package/binary/licenses/installed/pypdfium2/pypdfium2-5.13.0.dist-info/licenses/data/linux_x64/BUILD_LICENSES/lcms.txt +27 -0
- package/binary/licenses/installed/pypdfium2/pypdfium2-5.13.0.dist-info/licenses/data/linux_x64/BUILD_LICENSES/libjpeg_turbo.ijg +260 -0
- package/binary/licenses/installed/pypdfium2/pypdfium2-5.13.0.dist-info/licenses/data/linux_x64/BUILD_LICENSES/libjpeg_turbo.md +135 -0
- package/binary/licenses/installed/pypdfium2/pypdfium2-5.13.0.dist-info/licenses/data/linux_x64/BUILD_LICENSES/libopenjpeg.txt +32 -0
- package/binary/licenses/installed/pypdfium2/pypdfium2-5.13.0.dist-info/licenses/data/linux_x64/BUILD_LICENSES/libpng.txt +134 -0
- package/binary/licenses/installed/pypdfium2/pypdfium2-5.13.0.dist-info/licenses/data/linux_x64/BUILD_LICENSES/libtiff.txt +21 -0
- package/binary/licenses/installed/pypdfium2/pypdfium2-5.13.0.dist-info/licenses/data/linux_x64/BUILD_LICENSES/llvm-libc.txt +278 -0
- package/binary/licenses/installed/pypdfium2/pypdfium2-5.13.0.dist-info/licenses/data/linux_x64/BUILD_LICENSES/pdfium-binaries.txt +9 -0
- package/binary/licenses/installed/pypdfium2/pypdfium2-5.13.0.dist-info/licenses/data/linux_x64/BUILD_LICENSES/pdfium.txt +230 -0
- package/binary/licenses/installed/pypdfium2/pypdfium2-5.13.0.dist-info/licenses/data/linux_x64/BUILD_LICENSES/simdutf.txt +18 -0
- package/binary/licenses/installed/pypdfium2/pypdfium2-5.13.0.dist-info/licenses/data/linux_x64/BUILD_LICENSES/zlib.txt +29 -0
- package/binary/licenses/installed/python-calamine/python_calamine-0.8.2.dist-info/licenses/LICENSE +21 -0
- package/binary/licenses/installed/quickjs-ng/quickjs_ng-0.17.0.1.dist-info/licenses/LICENSE +21 -0
- package/binary/licenses/installed/runtime-hooks/pyi_rth_cryptography_openssl.py +20 -0
- package/binary/licenses/installed/runtime-hooks/pyi_rth_inspect.py +99 -0
- package/binary/licenses/installed/runtime-hooks/pyi_rth_multiprocessing.py +88 -0
- package/binary/licenses/installed/runtime-hooks/pyi_rth_pkgutil.py +64 -0
- package/binary/licenses/installed/selectolax/selectolax-0.4.13.dist-info/licenses/LICENSE +10 -0
- package/binary/licenses/installed-manifest.json +202 -0
- package/binary/licenses/supplemental/openssl/3.5.9/README-copyright.txt +9 -0
- package/binary/licenses/supplemental/openssl/4.0.3/README-copyright.txt +9 -0
- package/binary/licenses/supplemental/provenance.json +2347 -0
- package/binary/licenses/supplemental/pyinstaller-6.22.3/COPYING.txt +648 -0
- package/binary/licenses/supplemental/pyinstaller-6.22.3/bootloader/waflib/LICENSE +25 -0
- package/binary/licenses/supplemental/pyinstaller-6.22.3/bootloader/zlib/LICENSE +22 -0
- package/binary/licenses/supplemental/pyinstaller-6.22.3/doc/license.rst +24 -0
- package/binary/licenses/supplemental/pyinstaller-hooks-contrib-2026.8/LICENSE +521 -0
- package/binary/licenses/supplemental/python-build-standalone-20260929/LICENSE +373 -0
- package/binary/licenses/supplemental/python-build-standalone-20260929/LICENSE.bdb.txt +126 -0
- package/binary/licenses/supplemental/python-build-standalone-20260929/LICENSE.bzip2.txt +37 -0
- package/binary/licenses/supplemental/python-build-standalone-20260929/LICENSE.cpython.txt +771 -0
- package/binary/licenses/supplemental/python-build-standalone-20260929/LICENSE.expat.txt +21 -0
- package/binary/licenses/supplemental/python-build-standalone-20260929/LICENSE.libX11.txt +942 -0
- package/binary/licenses/supplemental/python-build-standalone-20260929/LICENSE.libXau.txt +21 -0
- package/binary/licenses/supplemental/python-build-standalone-20260929/LICENSE.libedit.txt +29 -0
- package/binary/licenses/supplemental/python-build-standalone-20260929/LICENSE.libffi.txt +21 -0
- package/binary/licenses/supplemental/python-build-standalone-20260929/LICENSE.liblzma.txt +13 -0
- package/binary/licenses/supplemental/python-build-standalone-20260929/LICENSE.libuuid.txt +27 -0
- package/binary/licenses/supplemental/python-build-standalone-20260929/LICENSE.libxcb.txt +30 -0
- package/binary/licenses/supplemental/python-build-standalone-20260929/LICENSE.mpdecimal.txt +24 -0
- package/binary/licenses/supplemental/python-build-standalone-20260929/LICENSE.ncurses.txt +29 -0
- package/binary/licenses/supplemental/python-build-standalone-20260929/LICENSE.openssl-1.1.txt +124 -0
- package/binary/licenses/supplemental/python-build-standalone-20260929/LICENSE.openssl-3.txt +177 -0
- package/binary/licenses/supplemental/python-build-standalone-20260929/LICENSE.sqlite.txt +23 -0
- package/binary/licenses/supplemental/python-build-standalone-20260929/LICENSE.tcl.txt +40 -0
- package/binary/licenses/supplemental/python-build-standalone-20260929/LICENSE.tix.txt +54 -0
- package/binary/licenses/supplemental/python-build-standalone-20260929/LICENSE.zlib.txt +21 -0
- package/binary/licenses/supplemental/python-calamine-0.8.2/LICENSE +21 -0
- package/binary/licenses/supplemental/python-calamine-0.8.2/source-identity/Cargo.lock +620 -0
- package/binary/licenses/supplemental/python-calamine-0.8.2/source-identity/Cargo.toml +22 -0
- package/binary/licenses/supplemental/quickjs-ng-0.17.0.1/LICENSE +21 -0
- package/binary/licenses/supplemental/quickjs-ng-0.17.0.1/engine-headers/upstream-quickjs/cutils.h.txt +24 -0
- package/binary/licenses/supplemental/quickjs-ng-0.17.0.1/engine-headers/upstream-quickjs/dtoa.c.txt +23 -0
- package/binary/licenses/supplemental/quickjs-ng-0.17.0.1/engine-headers/upstream-quickjs/dtoa.h.txt +23 -0
- package/binary/licenses/supplemental/quickjs-ng-0.17.0.1/engine-headers/upstream-quickjs/libregexp-opcode.h.txt +23 -0
- package/binary/licenses/supplemental/quickjs-ng-0.17.0.1/engine-headers/upstream-quickjs/libregexp.c.txt +23 -0
- package/binary/licenses/supplemental/quickjs-ng-0.17.0.1/engine-headers/upstream-quickjs/libregexp.h.txt +23 -0
- package/binary/licenses/supplemental/quickjs-ng-0.17.0.1/engine-headers/upstream-quickjs/libunicode.c.txt +23 -0
- package/binary/licenses/supplemental/quickjs-ng-0.17.0.1/engine-headers/upstream-quickjs/libunicode.h.txt +23 -0
- package/binary/licenses/supplemental/quickjs-ng-0.17.0.1/engine-headers/upstream-quickjs/list.h.txt +23 -0
- package/binary/licenses/supplemental/quickjs-ng-0.17.0.1/engine-headers/upstream-quickjs/quickjs-atom.h.txt +24 -0
- package/binary/licenses/supplemental/quickjs-ng-0.17.0.1/engine-headers/upstream-quickjs/quickjs-opcode.h.txt +24 -0
- package/binary/licenses/supplemental/quickjs-ng-0.17.0.1/engine-headers/upstream-quickjs/quickjs.c.txt +26 -0
- package/binary/licenses/supplemental/quickjs-ng-0.17.0.1/engine-headers/upstream-quickjs/quickjs.h.txt +26 -0
- package/binary/licenses/supplemental/rust-adler2-2.0.1/LICENSE-0BSD +12 -0
- package/binary/licenses/supplemental/rust-adler2-2.0.1/LICENSE-APACHE +201 -0
- package/binary/licenses/supplemental/rust-adler2-2.0.1/LICENSE-MIT +23 -0
- package/binary/licenses/supplemental/rust-android_system_properties-0.1.5/LICENSE-APACHE +13 -0
- package/binary/licenses/supplemental/rust-android_system_properties-0.1.5/LICENSE-MIT +20 -0
- package/binary/licenses/supplemental/rust-atoi_simd-0.18.1/LICENSE-APACHE +201 -0
- package/binary/licenses/supplemental/rust-atoi_simd-0.18.1/LICENSE-MIT +25 -0
- package/binary/licenses/supplemental/rust-autocfg-1.5.1/LICENSE-APACHE +201 -0
- package/binary/licenses/supplemental/rust-autocfg-1.5.1/LICENSE-MIT +25 -0
- package/binary/licenses/supplemental/rust-bumpalo-3.20.3/LICENSE-APACHE +201 -0
- package/binary/licenses/supplemental/rust-bumpalo-3.20.3/LICENSE-MIT +25 -0
- package/binary/licenses/supplemental/rust-byteorder-1.5.0/COPYING +3 -0
- package/binary/licenses/supplemental/rust-byteorder-1.5.0/LICENSE-MIT +21 -0
- package/binary/licenses/supplemental/rust-calamine-0.36.0/LICENSE-MIT.md +23 -0
- package/binary/licenses/supplemental/rust-cc-1.2.64/LICENSE-APACHE +201 -0
- package/binary/licenses/supplemental/rust-cc-1.2.64/LICENSE-MIT +25 -0
- package/binary/licenses/supplemental/rust-cfg-if-1.0.4/LICENSE-APACHE +201 -0
- package/binary/licenses/supplemental/rust-cfg-if-1.0.4/LICENSE-MIT +25 -0
- package/binary/licenses/supplemental/rust-chrono-0.4.45/LICENSE.txt +240 -0
- package/binary/licenses/supplemental/rust-codepage-0.1.2/COPYRIGHT +9 -0
- package/binary/licenses/supplemental/rust-codepage-0.1.2/LICENSE-APACHE +202 -0
- package/binary/licenses/supplemental/rust-codepage-0.1.2/LICENSE-MIT +25 -0
- package/binary/licenses/supplemental/rust-core-foundation-sys-0.8.7/LICENSE-APACHE +201 -0
- package/binary/licenses/supplemental/rust-core-foundation-sys-0.8.7/LICENSE-MIT +25 -0
- package/binary/licenses/supplemental/rust-crc32fast-1.5.0/LICENSE-APACHE +202 -0
- package/binary/licenses/supplemental/rust-crc32fast-1.5.0/LICENSE-MIT +21 -0
- package/binary/licenses/supplemental/rust-debug_unsafe-0.1.4/LICENSE-APACHE +201 -0
- package/binary/licenses/supplemental/rust-debug_unsafe-0.1.4/LICENSE-MIT +25 -0
- package/binary/licenses/supplemental/rust-encoding_rs-0.8.35/COPYRIGHT +17 -0
- package/binary/licenses/supplemental/rust-encoding_rs-0.8.35/LICENSE-APACHE +202 -0
- package/binary/licenses/supplemental/rust-encoding_rs-0.8.35/LICENSE-MIT +25 -0
- package/binary/licenses/supplemental/rust-encoding_rs-0.8.35/LICENSE-WHATWG +26 -0
- package/binary/licenses/supplemental/rust-equivalent-1.0.2/LICENSE-APACHE +201 -0
- package/binary/licenses/supplemental/rust-equivalent-1.0.2/LICENSE-MIT +25 -0
- package/binary/licenses/supplemental/rust-fast-float2-0.2.3/LICENSE-APACHE +201 -0
- package/binary/licenses/supplemental/rust-fast-float2-0.2.3/LICENSE-MIT +23 -0
- package/binary/licenses/supplemental/rust-find-msvc-tools-0.1.9/LICENSE-APACHE +201 -0
- package/binary/licenses/supplemental/rust-find-msvc-tools-0.1.9/LICENSE-MIT +25 -0
- package/binary/licenses/supplemental/rust-flate2-1.1.9/LICENSE-APACHE +201 -0
- package/binary/licenses/supplemental/rust-flate2-1.1.9/LICENSE-MIT +25 -0
- package/binary/licenses/supplemental/rust-futures-core-0.3.32/LICENSE-APACHE +202 -0
- package/binary/licenses/supplemental/rust-futures-core-0.3.32/LICENSE-MIT +26 -0
- package/binary/licenses/supplemental/rust-futures-task-0.3.32/LICENSE-APACHE +202 -0
- package/binary/licenses/supplemental/rust-futures-task-0.3.32/LICENSE-MIT +26 -0
- package/binary/licenses/supplemental/rust-futures-util-0.3.32/LICENSE-APACHE +202 -0
- package/binary/licenses/supplemental/rust-futures-util-0.3.32/LICENSE-MIT +26 -0
- package/binary/licenses/supplemental/rust-hashbrown-0.17.1/LICENSE-APACHE +201 -0
- package/binary/licenses/supplemental/rust-hashbrown-0.17.1/LICENSE-MIT +25 -0
- package/binary/licenses/supplemental/rust-heck-0.5.0/LICENSE-APACHE +201 -0
- package/binary/licenses/supplemental/rust-heck-0.5.0/LICENSE-MIT +25 -0
- package/binary/licenses/supplemental/rust-iana-time-zone-0.1.65/LICENSE-APACHE +201 -0
- package/binary/licenses/supplemental/rust-iana-time-zone-0.1.65/LICENSE-MIT +25 -0
- package/binary/licenses/supplemental/rust-iana-time-zone-haiku-0.1.2/LICENSE-APACHE +201 -0
- package/binary/licenses/supplemental/rust-iana-time-zone-haiku-0.1.2/LICENSE-MIT +25 -0
- package/binary/licenses/supplemental/rust-indexmap-2.14.0/LICENSE-APACHE +201 -0
- package/binary/licenses/supplemental/rust-indexmap-2.14.0/LICENSE-MIT +25 -0
- package/binary/licenses/supplemental/rust-js-sys-0.3.102/LICENSE-APACHE +201 -0
- package/binary/licenses/supplemental/rust-js-sys-0.3.102/LICENSE-MIT +25 -0
- package/binary/licenses/supplemental/rust-libc-0.2.186/LICENSE-APACHE +176 -0
- package/binary/licenses/supplemental/rust-libc-0.2.186/LICENSE-MIT +25 -0
- package/binary/licenses/supplemental/rust-log-0.4.32/LICENSE-APACHE +201 -0
- package/binary/licenses/supplemental/rust-log-0.4.32/LICENSE-MIT +25 -0
- package/binary/licenses/supplemental/rust-memchr-2.8.2/COPYING +3 -0
- package/binary/licenses/supplemental/rust-memchr-2.8.2/LICENSE-MIT +21 -0
- package/binary/licenses/supplemental/rust-miniz_oxide-0.8.9/LICENSE +25 -0
- package/binary/licenses/supplemental/rust-miniz_oxide-0.8.9/LICENSE-APACHE.md +177 -0
- package/binary/licenses/supplemental/rust-miniz_oxide-0.8.9/LICENSE-MIT.md +24 -0
- package/binary/licenses/supplemental/rust-miniz_oxide-0.8.9/LICENSE-ZLIB.md +14 -0
- package/binary/licenses/supplemental/rust-num-traits-0.2.19/LICENSE-APACHE +201 -0
- package/binary/licenses/supplemental/rust-num-traits-0.2.19/LICENSE-MIT +25 -0
- package/binary/licenses/supplemental/rust-once_cell-1.21.4/LICENSE-APACHE +201 -0
- package/binary/licenses/supplemental/rust-once_cell-1.21.4/LICENSE-MIT +23 -0
- package/binary/licenses/supplemental/rust-pin-project-lite-0.2.17/LICENSE-APACHE +177 -0
- package/binary/licenses/supplemental/rust-pin-project-lite-0.2.17/LICENSE-MIT +23 -0
- package/binary/licenses/supplemental/rust-portable-atomic-1.13.1/LICENSE-APACHE +177 -0
- package/binary/licenses/supplemental/rust-portable-atomic-1.13.1/LICENSE-MIT +23 -0
- package/binary/licenses/supplemental/rust-proc-macro2-1.0.106/LICENSE-APACHE +176 -0
- package/binary/licenses/supplemental/rust-proc-macro2-1.0.106/LICENSE-MIT +23 -0
- package/binary/licenses/supplemental/rust-pyo3-0.29.0/LICENSE-APACHE +178 -0
- package/binary/licenses/supplemental/rust-pyo3-0.29.0/LICENSE-MIT +25 -0
- package/binary/licenses/supplemental/rust-pyo3-0.29.0/pyo3-runtime/LICENSE-APACHE +178 -0
- package/binary/licenses/supplemental/rust-pyo3-0.29.0/pyo3-runtime/LICENSE-MIT +25 -0
- package/binary/licenses/supplemental/rust-pyo3-build-config-0.29.0/LICENSE-APACHE +178 -0
- package/binary/licenses/supplemental/rust-pyo3-build-config-0.29.0/LICENSE-MIT +25 -0
- package/binary/licenses/supplemental/rust-pyo3-ffi-0.29.0/LICENSE-APACHE +178 -0
- package/binary/licenses/supplemental/rust-pyo3-ffi-0.29.0/LICENSE-MIT +25 -0
- package/binary/licenses/supplemental/rust-pyo3-file-0.16.0/Cargo.toml +14 -0
- package/binary/licenses/supplemental/rust-pyo3-file-0.16.0/README.md +90 -0
- package/binary/licenses/supplemental/rust-pyo3-file-0.16.0/declared-license/Apache-2.0.txt +73 -0
- package/binary/licenses/supplemental/rust-pyo3-macros-0.29.0/LICENSE-APACHE +178 -0
- package/binary/licenses/supplemental/rust-pyo3-macros-0.29.0/LICENSE-MIT +25 -0
- package/binary/licenses/supplemental/rust-pyo3-macros-backend-0.29.0/LICENSE-APACHE +178 -0
- package/binary/licenses/supplemental/rust-pyo3-macros-backend-0.29.0/LICENSE-MIT +25 -0
- package/binary/licenses/supplemental/rust-quick-xml-0.41.0/LICENSE-MIT.md +23 -0
- package/binary/licenses/supplemental/rust-quote-1.0.45/LICENSE-APACHE +176 -0
- package/binary/licenses/supplemental/rust-quote-1.0.45/LICENSE-MIT +23 -0
- package/binary/licenses/supplemental/rust-rustversion-1.0.22/LICENSE-APACHE +176 -0
- package/binary/licenses/supplemental/rust-rustversion-1.0.22/LICENSE-MIT +23 -0
- package/binary/licenses/supplemental/rust-serde-1.0.228/LICENSE-APACHE +176 -0
- package/binary/licenses/supplemental/rust-serde-1.0.228/LICENSE-MIT +23 -0
- package/binary/licenses/supplemental/rust-serde_core-1.0.228/LICENSE-APACHE +176 -0
- package/binary/licenses/supplemental/rust-serde_core-1.0.228/LICENSE-MIT +23 -0
- package/binary/licenses/supplemental/rust-serde_derive-1.0.228/LICENSE-APACHE +176 -0
- package/binary/licenses/supplemental/rust-serde_derive-1.0.228/LICENSE-MIT +23 -0
- package/binary/licenses/supplemental/rust-shlex-2.0.1/LICENSE-APACHE +13 -0
- package/binary/licenses/supplemental/rust-shlex-2.0.1/LICENSE-MIT +21 -0
- package/binary/licenses/supplemental/rust-simd-adler32-0.3.9/LICENSE.md +21 -0
- package/binary/licenses/supplemental/rust-slab-0.4.12/LICENSE +25 -0
- package/binary/licenses/supplemental/rust-syn-2.0.118/LICENSE-APACHE +176 -0
- package/binary/licenses/supplemental/rust-syn-2.0.118/LICENSE-MIT +23 -0
- package/binary/licenses/supplemental/rust-target-lexicon-0.13.5/LICENSE +220 -0
- package/binary/licenses/supplemental/rust-typed-path-0.12.3/LICENSE-APACHE +176 -0
- package/binary/licenses/supplemental/rust-typed-path-0.12.3/LICENSE-MIT +23 -0
- package/binary/licenses/supplemental/rust-unicode-ident-1.0.24/LICENSE-APACHE +176 -0
- package/binary/licenses/supplemental/rust-unicode-ident-1.0.24/LICENSE-MIT +23 -0
- package/binary/licenses/supplemental/rust-unicode-ident-1.0.24/LICENSE-UNICODE +39 -0
- package/binary/licenses/supplemental/rust-wasm-bindgen-0.2.125/LICENSE-APACHE +201 -0
- package/binary/licenses/supplemental/rust-wasm-bindgen-0.2.125/LICENSE-MIT +25 -0
- package/binary/licenses/supplemental/rust-wasm-bindgen-macro-0.2.125/LICENSE-APACHE +201 -0
- package/binary/licenses/supplemental/rust-wasm-bindgen-macro-0.2.125/LICENSE-MIT +25 -0
- package/binary/licenses/supplemental/rust-wasm-bindgen-macro-support-0.2.125/LICENSE-APACHE +201 -0
- package/binary/licenses/supplemental/rust-wasm-bindgen-macro-support-0.2.125/LICENSE-MIT +25 -0
- package/binary/licenses/supplemental/rust-wasm-bindgen-shared-0.2.125/LICENSE-APACHE +201 -0
- package/binary/licenses/supplemental/rust-wasm-bindgen-shared-0.2.125/LICENSE-MIT +25 -0
- package/binary/licenses/supplemental/rust-windows-core-0.62.2/license-apache-2.0 +201 -0
- package/binary/licenses/supplemental/rust-windows-core-0.62.2/license-mit +21 -0
- package/binary/licenses/supplemental/rust-windows-implement-0.60.2/license-apache-2.0 +201 -0
- package/binary/licenses/supplemental/rust-windows-implement-0.60.2/license-mit +21 -0
- package/binary/licenses/supplemental/rust-windows-interface-0.59.3/license-apache-2.0 +201 -0
- package/binary/licenses/supplemental/rust-windows-interface-0.59.3/license-mit +21 -0
- package/binary/licenses/supplemental/rust-windows-link-0.2.1/license-apache-2.0 +201 -0
- package/binary/licenses/supplemental/rust-windows-link-0.2.1/license-mit +21 -0
- package/binary/licenses/supplemental/rust-windows-result-0.4.1/license-apache-2.0 +201 -0
- package/binary/licenses/supplemental/rust-windows-result-0.4.1/license-mit +21 -0
- package/binary/licenses/supplemental/rust-windows-strings-0.5.1/license-apache-2.0 +201 -0
- package/binary/licenses/supplemental/rust-windows-strings-0.5.1/license-mit +21 -0
- package/binary/licenses/supplemental/rust-zip-8.6.0/LICENSE +21 -0
- package/binary/licenses/supplemental/rust-zlib-rs-0.6.3/LICENSE +19 -0
- package/binary/licenses/supplemental/rust-zopfli-0.8.3/COPYING +201 -0
- package/binary/licenses/supplemental/selectolax-0.4.13/LICENSE +10 -0
- package/binary/licenses/supplemental/selectolax-0.4.13/lexbor/LICENSE +223 -0
- package/binary/licenses/supplemental/selectolax-0.4.13/lexbor/NOTICE +16 -0
- package/binary/version.json +6 -0
- package/native-manifest.json +4474 -0
- package/native-verification.json +338 -0
- package/package.json +27 -4
|
@@ -0,0 +1 @@
|
|
|
1
|
+
uv
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: quickjs-ng
|
|
3
|
+
Version: 0.17.0.1
|
|
4
|
+
Summary: Thin Python wrapper of quickjs-ng
|
|
5
|
+
Author-email: Ganesh Viswanathan <dev@genotrance.com>
|
|
6
|
+
Project-URL: Homepage, https://github.com/genotrance/quickjs-ng
|
|
7
|
+
Project-URL: Repository, https://github.com/genotrance/quickjs-ng
|
|
8
|
+
Keywords: quickjs,javascript,embedding
|
|
9
|
+
Classifier: Intended Audience :: Developers
|
|
10
|
+
Classifier: Programming Language :: Python
|
|
11
|
+
Classifier: Programming Language :: Python :: 3
|
|
12
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
13
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
17
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
18
|
+
Requires-Python: <4.0,>=3.10
|
|
19
|
+
Description-Content-Type: text/markdown
|
|
20
|
+
License-File: LICENSE
|
|
21
|
+
Dynamic: license-file
|
|
22
|
+
|
|
23
|
+
# quickjs-ng
|
|
24
|
+
|
|
25
|
+
[](https://github.com/genotrance/quickjs-ng/actions/workflows/main.yml?query=branch%3Amain)
|
|
26
|
+
[](https://img.shields.io/github/license/genotrance/quickjs-ng)
|
|
27
|
+
|
|
28
|
+
Python wrapper around [quickjs-ng](https://github.com/quickjs-ng/quickjs), the actively maintained fork of the [QuickJS](https://bellard.org/quickjs/) JavaScript engine.
|
|
29
|
+
|
|
30
|
+
Drop-in replacement for the archived [quickjs](https://github.com/PetterS/quickjs) package — `import quickjs` works unchanged.
|
|
31
|
+
|
|
32
|
+
## Installation
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
pip install quickjs-ng
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
Requires Python ≥ 3.10. Pre-built wheels are available for Linux (x86_64, i686, aarch64), Windows (AMD64, x86), and macOS (arm64), for CPython 3.10+ and PyPy 3.10/3.11.
|
|
39
|
+
|
|
40
|
+
## Usage
|
|
41
|
+
|
|
42
|
+
```python
|
|
43
|
+
import quickjs
|
|
44
|
+
|
|
45
|
+
# Evaluate expressions
|
|
46
|
+
ctx = quickjs.Context()
|
|
47
|
+
ctx.eval("1 + 2") # => 3
|
|
48
|
+
|
|
49
|
+
# Call JS functions from Python
|
|
50
|
+
ctx.eval("function add(a, b) { return a + b; }")
|
|
51
|
+
add = ctx.get("add")
|
|
52
|
+
add(3, 4) # => 7
|
|
53
|
+
|
|
54
|
+
# Call Python functions from JS
|
|
55
|
+
ctx.add_callable("py_add", lambda a, b: a + b)
|
|
56
|
+
ctx.eval("py_add(3, 4)") # => 7
|
|
57
|
+
|
|
58
|
+
# Use the Function helper for thread-safe execution
|
|
59
|
+
f = quickjs.Function("f", "function f(x) { return x * 2; }")
|
|
60
|
+
f(21) # => 42
|
|
61
|
+
|
|
62
|
+
# Resource limits
|
|
63
|
+
ctx.set_memory_limit(1024 * 1024) # 1 MB
|
|
64
|
+
ctx.set_time_limit(5) # 5 seconds of CPU time
|
|
65
|
+
ctx.set_max_stack_size(512 * 1024) # 512 KB stack
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
## Threading
|
|
69
|
+
|
|
70
|
+
Each `Context` owns an isolated QuickJS runtime — there is no shared state between contexts. A single `Context` is **not thread-safe** and must not be used from multiple threads.
|
|
71
|
+
|
|
72
|
+
**Recommended patterns:**
|
|
73
|
+
|
|
74
|
+
- **Context per thread** — create a separate `Context` in each thread. No locking, no overhead, full parallelism:
|
|
75
|
+
|
|
76
|
+
```python
|
|
77
|
+
import threading, quickjs
|
|
78
|
+
|
|
79
|
+
def worker():
|
|
80
|
+
ctx = quickjs.Context()
|
|
81
|
+
print(ctx.eval("1 + 1"))
|
|
82
|
+
|
|
83
|
+
threads = [threading.Thread(target=worker) for _ in range(4)]
|
|
84
|
+
for t in threads: t.start()
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
- **`Function` helper** — wraps a `Context` with a dedicated worker thread and lock, safe to call from any thread:
|
|
88
|
+
|
|
89
|
+
```python
|
|
90
|
+
f = quickjs.Function("f", "function f(x) { return x * 2; }")
|
|
91
|
+
# safe to call f(21) from any thread
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
| Pattern | Thread-safe | Overhead |
|
|
95
|
+
|---------|:-----------:|----------|
|
|
96
|
+
| Context per thread | ✅ | None |
|
|
97
|
+
| `Function` helper | ✅ | Small (executor dispatch) |
|
|
98
|
+
| Shared `Context` | ❌ | — |
|
|
99
|
+
|
|
100
|
+
**Free-threaded Python (3.13t / 3.14t):** Both patterns remain safe. The GIL was never relied upon for thread-safety.
|
|
101
|
+
|
|
102
|
+
**musl / Alpine:** Worker threads are automatically created with an 8 MB stack (matching glibc defaults) so `set_max_stack_size` and deep recursion work correctly on musl-based systems.
|
|
103
|
+
|
|
104
|
+
## Versioning
|
|
105
|
+
|
|
106
|
+
Version format is `X.Y.Z.P` where `X.Y.Z` matches the upstream quickjs-ng tag and `P` is the wrapper patch (starts at 1 per upstream release). Wheels are built automatically when a new upstream tag is detected.
|
|
107
|
+
|
|
108
|
+
## Development
|
|
109
|
+
|
|
110
|
+
Requires a C compiler and [uv](https://docs.astral.sh/uv/).
|
|
111
|
+
|
|
112
|
+
```bash
|
|
113
|
+
git clone --recurse-submodules https://github.com/genotrance/quickjs-ng.git
|
|
114
|
+
cd quickjs-ng
|
|
115
|
+
make install
|
|
116
|
+
make test
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
| Target | Description |
|
|
120
|
+
|----------------|----------------------------------------------------|
|
|
121
|
+
| `make install` | Create venv, build C extension, install pre-commit |
|
|
122
|
+
| `make test` | Run tests with coverage |
|
|
123
|
+
| `make check` | Run linters and type checking |
|
|
124
|
+
| `make build` | Build sdist and wheel |
|
|
125
|
+
| `make clean` | Remove build artifacts |
|
|
126
|
+
| `make publish` | Publish to PyPI |
|
|
127
|
+
|
|
128
|
+
## Contributing
|
|
129
|
+
|
|
130
|
+
Bug reports and pull requests are welcome at <https://github.com/genotrance/quickjs-ng/issues>.
|
|
131
|
+
|
|
132
|
+
1. Fork and clone with `--recurse-submodules`.
|
|
133
|
+
2. Run `make install` to set up the venv, build the C extension, and install pre-commit hooks.
|
|
134
|
+
3. Create a feature branch, make changes, add tests in `tests/`.
|
|
135
|
+
4. Run `make check && make test` — all checks must pass.
|
|
136
|
+
5. Open a pull request. CI runs on Ubuntu, Windows, and macOS across Python 3.10–3.14 (including free-threaded 3.13t/3.14t) and PyPy 3.10/3.11.
|
|
137
|
+
|
|
138
|
+
## Documentation
|
|
139
|
+
|
|
140
|
+
Full technical documentation is in the [`docs/`](docs/) folder:
|
|
141
|
+
|
|
142
|
+
| File | Contents |
|
|
143
|
+
|------|----------|
|
|
144
|
+
| [docs/porting.md](docs/porting.md) | Porting history from PetterS/quickjs |
|
|
145
|
+
| [docs/c-extension.md](docs/c-extension.md) | C extension design and stable ABI migration |
|
|
146
|
+
| [docs/build.md](docs/build.md) | Build system: setup.py, pyproject.toml, wheels |
|
|
147
|
+
| [docs/ci.md](docs/ci.md) | GitHub Actions workflows |
|
|
148
|
+
| [docs/threading.md](docs/threading.md) | Threading model and musl stack fix |
|
|
149
|
+
| [docs/testing.md](docs/testing.md) | Test suite layout and memory leak tests |
|
|
150
|
+
| [docs/versioning.md](docs/versioning.md) | Version scheme and automated stamping |
|
|
151
|
+
| [docs/typing.md](docs/typing.md) | Type annotations and mypy configuration |
|
|
152
|
+
|
|
153
|
+
## Acknowledgments
|
|
154
|
+
|
|
155
|
+
This project is a fork of [quickjs](https://github.com/PetterS/quickjs) by [Petter Strandmark](https://github.com/PetterS). The original design of the C bindings, the `Function` thread-safety wrapper, and the overall API shape are all his work.
|
|
156
|
+
|
|
157
|
+
The porting to quickjs-ng, the stable ABI migration, the expanded test suite, CICD and all documentation were developed with the assistance of LLMs.
|
|
158
|
+
|
|
159
|
+
## License
|
|
160
|
+
|
|
161
|
+
MIT
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
_quickjs.abi3.so,sha256=r69JxerB7gdTt8VqaD2WJNM-4eyf9V8J-phtgA6SELI,8035944
|
|
2
|
+
quickjs/__init__.py,sha256=BtvPUJD4rt_zUj2riib5xGzWr0tdiP7aIO965Fzd7zg,5664
|
|
3
|
+
quickjs_ng-0.17.0.1.dist-info/INSTALLER,sha256=5hhM4Q4mYTT9z6QB6PGpUAW81PGNFrYrdXMj4oM_6ak,2
|
|
4
|
+
quickjs_ng-0.17.0.1.dist-info/METADATA,sha256=qE5JmkqBZB3CrEKzo6yAoOxNVbV47UBzMO4txx9UIxA,6459
|
|
5
|
+
quickjs_ng-0.17.0.1.dist-info/RECORD,,
|
|
6
|
+
quickjs_ng-0.17.0.1.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
7
|
+
quickjs_ng-0.17.0.1.dist-info/WHEEL,sha256=yGw0S4yb8rUjuiE5T7Lb-hD_2wSDLme4T4CyaKHO-jY,187
|
|
8
|
+
quickjs_ng-0.17.0.1.dist-info/licenses/LICENSE,sha256=HZi7-GDDwPBCgZQeQeVTSk5cNYjapzVrBlwqGC3ifCo,1075
|
|
9
|
+
quickjs_ng-0.17.0.1.dist-info/top_level.txt,sha256=KrXFdJGch2baRcvdgEGjrk8zdolgKFRZ0xx4UhDg7h8,17
|
|
File without changes
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Ganesh Viswanathan
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
cimport cython
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
@cython.final
|
|
5
|
+
cdef class LexborAttributes:
|
|
6
|
+
"""A dict-like object that represents attributes."""
|
|
7
|
+
cdef lxb_dom_node_t *node
|
|
8
|
+
cdef unicode decode_errors
|
|
9
|
+
|
|
10
|
+
@staticmethod
|
|
11
|
+
cdef LexborAttributes create(lxb_dom_node_t *node):
|
|
12
|
+
obj = <LexborAttributes> LexborAttributes.__new__(LexborAttributes)
|
|
13
|
+
obj.node = node
|
|
14
|
+
return obj
|
|
15
|
+
|
|
16
|
+
def __iter__(self):
|
|
17
|
+
cdef lxb_dom_attr_t *attr = lxb_dom_element_first_attribute_noi(<lxb_dom_element_t *> self.node)
|
|
18
|
+
cdef size_t str_len = 0
|
|
19
|
+
|
|
20
|
+
while attr != NULL:
|
|
21
|
+
key = lxb_dom_attr_local_name_noi(attr, &str_len)
|
|
22
|
+
if key is not NULL:
|
|
23
|
+
yield key.decode(_ENCODING)
|
|
24
|
+
attr = attr.next
|
|
25
|
+
|
|
26
|
+
def __setitem__(self, str key, object value):
|
|
27
|
+
value = value
|
|
28
|
+
bytes_key = key.encode(_ENCODING)
|
|
29
|
+
bytes_value = value.encode(_ENCODING) if value else b""
|
|
30
|
+
cdef lxb_dom_attr_t *attr
|
|
31
|
+
cdef lxb_dom_document_t *doc
|
|
32
|
+
|
|
33
|
+
if value is None:
|
|
34
|
+
# N.B. This is suboptimal, but there is not API to set empty attributes
|
|
35
|
+
attr = lxb_dom_element_set_attribute(
|
|
36
|
+
<lxb_dom_element_t *> self.node,
|
|
37
|
+
<lxb_char_t *> bytes_key, len(bytes_key),
|
|
38
|
+
NULL, 0
|
|
39
|
+
)
|
|
40
|
+
if attr == NULL:
|
|
41
|
+
raise MemoryError("Failed to set attribute")
|
|
42
|
+
doc = (<lxb_dom_node_t*>attr).owner_document
|
|
43
|
+
lexbor_str_destroy(attr.value, doc.text, 0)
|
|
44
|
+
attr.value = NULL
|
|
45
|
+
|
|
46
|
+
elif isinstance(value, str) or isinstance(value, unicode) :
|
|
47
|
+
attr = lxb_dom_element_set_attribute(
|
|
48
|
+
<lxb_dom_element_t *> self.node,
|
|
49
|
+
<lxb_char_t *> bytes_key, len(bytes_key),
|
|
50
|
+
<lxb_char_t *> bytes_value, len(bytes_value),
|
|
51
|
+
)
|
|
52
|
+
if attr == NULL:
|
|
53
|
+
raise MemoryError("Failed to set attribute")
|
|
54
|
+
else:
|
|
55
|
+
raise TypeError("Expected str or unicode, got %s" % type(value))
|
|
56
|
+
|
|
57
|
+
def __delitem__(self, key):
|
|
58
|
+
try:
|
|
59
|
+
self.__getitem__(key)
|
|
60
|
+
except KeyError:
|
|
61
|
+
raise KeyError(key)
|
|
62
|
+
bytes_key = key.encode(_ENCODING)
|
|
63
|
+
lxb_dom_element_remove_attribute(
|
|
64
|
+
<lxb_dom_element_t *> self.node,
|
|
65
|
+
<lxb_char_t *> bytes_key, len(bytes_key),
|
|
66
|
+
)
|
|
67
|
+
|
|
68
|
+
def __getitem__(self, str key):
|
|
69
|
+
bytes_key = key.encode(_ENCODING)
|
|
70
|
+
cdef lxb_dom_attr_t * attr = lxb_dom_element_attr_by_name(
|
|
71
|
+
<lxb_dom_element_t *> self.node,
|
|
72
|
+
<lxb_char_t *> bytes_key, len(bytes_key)
|
|
73
|
+
)
|
|
74
|
+
cdef size_t str_len = 0
|
|
75
|
+
if attr != NULL:
|
|
76
|
+
value = lxb_dom_attr_value_noi(attr, &str_len)
|
|
77
|
+
return value.decode(_ENCODING) if value else None
|
|
78
|
+
raise KeyError(key)
|
|
79
|
+
|
|
80
|
+
def __len__(self):
|
|
81
|
+
return len(list(self.__iter__()))
|
|
82
|
+
|
|
83
|
+
def keys(self):
|
|
84
|
+
return self.__iter__()
|
|
85
|
+
|
|
86
|
+
def items(self):
|
|
87
|
+
for key in self.__iter__():
|
|
88
|
+
yield key, self[key]
|
|
89
|
+
|
|
90
|
+
def values(self):
|
|
91
|
+
for key in self.__iter__():
|
|
92
|
+
yield self[key]
|
|
93
|
+
|
|
94
|
+
def get(self, key, default=None):
|
|
95
|
+
try:
|
|
96
|
+
return self[key]
|
|
97
|
+
except KeyError:
|
|
98
|
+
return default
|
|
99
|
+
|
|
100
|
+
def sget(self, key, default=""):
|
|
101
|
+
"""Same as get, but returns empty strings instead of None values for empty attributes."""
|
|
102
|
+
try:
|
|
103
|
+
val = self[key]
|
|
104
|
+
if val is None:
|
|
105
|
+
val = ""
|
|
106
|
+
return val
|
|
107
|
+
except KeyError:
|
|
108
|
+
return default
|
|
109
|
+
|
|
110
|
+
def __contains__(self, key):
|
|
111
|
+
try:
|
|
112
|
+
self[key]
|
|
113
|
+
except KeyError:
|
|
114
|
+
return False
|
|
115
|
+
else:
|
|
116
|
+
return True
|
|
117
|
+
|
|
118
|
+
def __repr__(self):
|
|
119
|
+
cdef lxb_char_t *c_text
|
|
120
|
+
cdef size_t str_len = 0
|
|
121
|
+
c_text = lxb_dom_element_qualified_name(<lxb_dom_element_t *> self.node, &str_len)
|
|
122
|
+
tag_name = c_text.decode(_ENCODING, 'ignore') if c_text != NULL else 'unknown'
|
|
123
|
+
return "<%s attributes, %s items>" % (tag_name, len(self))
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
cdef inline lxb_tag_id_t _fragment_tag_id_from_string(
|
|
2
|
+
lxb_html_document_t *document,
|
|
3
|
+
str fragment_tag,
|
|
4
|
+
) except? 0:
|
|
5
|
+
cdef bytes fragment_tag_bytes
|
|
6
|
+
cdef lxb_tag_id_t tag_id
|
|
7
|
+
|
|
8
|
+
if not fragment_tag:
|
|
9
|
+
raise ValueError("fragment_tag cannot be empty")
|
|
10
|
+
|
|
11
|
+
fragment_tag_bytes = fragment_tag.encode("UTF-8")
|
|
12
|
+
tag_id = lxb_tag_id_by_name_noi(
|
|
13
|
+
document.dom_document.tags,
|
|
14
|
+
<const lxb_char_t *> fragment_tag_bytes,
|
|
15
|
+
len(fragment_tag_bytes),
|
|
16
|
+
)
|
|
17
|
+
if tag_id == LXB_TAG__UNDEF:
|
|
18
|
+
raise ValueError(f"Unknown fragment tag: {fragment_tag!r}")
|
|
19
|
+
|
|
20
|
+
return tag_id
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
cdef inline lxb_ns_id_t _fragment_namespace_id_from_string(
|
|
24
|
+
lxb_html_document_t *document,
|
|
25
|
+
str fragment_namespace,
|
|
26
|
+
) except? 0:
|
|
27
|
+
cdef bytes fragment_namespace_bytes
|
|
28
|
+
cdef const lxb_ns_prefix_data_t *prefix_data
|
|
29
|
+
cdef const lxb_ns_data_t *ns_data
|
|
30
|
+
|
|
31
|
+
if not fragment_namespace:
|
|
32
|
+
raise ValueError("fragment_namespace cannot be empty")
|
|
33
|
+
|
|
34
|
+
fragment_namespace_bytes = fragment_namespace.encode("UTF-8")
|
|
35
|
+
|
|
36
|
+
prefix_data = lxb_ns_prefix_data_by_name(
|
|
37
|
+
document.dom_document.ns,
|
|
38
|
+
<const lxb_char_t *> fragment_namespace_bytes,
|
|
39
|
+
len(fragment_namespace_bytes),
|
|
40
|
+
)
|
|
41
|
+
if prefix_data != NULL:
|
|
42
|
+
return <lxb_ns_id_t> prefix_data.prefix_id
|
|
43
|
+
|
|
44
|
+
ns_data = lxb_ns_data_by_link(
|
|
45
|
+
document.dom_document.ns,
|
|
46
|
+
<const lxb_char_t *> fragment_namespace_bytes,
|
|
47
|
+
len(fragment_namespace_bytes),
|
|
48
|
+
)
|
|
49
|
+
if ns_data != NULL:
|
|
50
|
+
return ns_data.ns_id
|
|
51
|
+
|
|
52
|
+
raise ValueError(f"Unknown fragment namespace: {fragment_namespace!r}")
|