Repository navigation
Releases: weblyzard/inscriptis
Release list
Improvements and Bug Fixes
This release includes improvements to HTML fragment handling, fixes a memory growth issue when processing tables, and adds support for Python 3.15.
Fixes
- Fixed excessive memory growth when processing HTML containing multiple sibling
<table>elements. See GHSA-q87h-c5m7-659j for details. - Fixed HTML fragment handling to prevent synthetic wrapper elements from introducing unwanted spaces or indentation into extracted text.
- Fixed test failures on Windows by explicitly specifying file encodings.
Compatibility
- Added support for Python 3.15.
- Deprecated Python 3.10.
Maintenance
- Updated the GitHub CodeQL Actions dependency.
Credits
Many thanks to @gistrec for identifying and fixing the table-related memory growth issue, and to @OsamaAnsar for improving HTML fragment handling and reporting the Windows-related test issue.
Users of inscriptis 2.0.0–2.7.5 are encouraged to upgrade to benefit from the table-processing fix.
Prevent unbounded allocation from CSS lengths
Fixes a denial-of-service issue where excessively large CSS length values in HTML style attributes could cause get_text() or get_annotated_text() to perform an unbounded string allocation (GHSA-4wxf-43cv-cfxx).
Thanks to @NotAFlightRisk for reporting this issue.
Table annotation fixes, performance improvements and CLI enhancements
- Integrate a bufix contributed by @jimbofreedman that fixes #121 (Annotations in vertically padded table cells are misplaced, or raise IndexError)
- improved performance of
Table.get_annotation. - enhanced
TableCellclass semantics. - set default HTTP user-agent in the
inscriptCLI client and support custom user-agent strings via the--user-agentoption. - improved reporting of benchmark results.
Minor bugfixes and typchecking improvements
- Integrated the following bugfixes contributed by @santhreal
- Improved typechecking via ty
- Use
python:3.14-slimin docker images. - Updated CI-Pipeline
Improved inscriptis compatibility, docker image and CI pipeline
- Removed upper bound on the Python version in accordance with the corresponding Python Packaging Guidelines (Fixes #112)
- Relaxed lxml upper version to < 6.2.0 (Fixes #111)
- Upgrade docker image to python 3.13-slim-bullseye (#110)
- Updated CI pipeline (#106, #107, #108, #109)
- Removed redundant COM rule in
pyproject.toml.
Support for lxml 6.0.x and improved CI
- fixed dependencies to support python-lxml 6.0.x #102
- added Python 3.14 to the CI workflow (i.e., all inscriptis versions are now also tested with Python 3.14)
- minor code style improvement for ruff 0.15.x
Support for list "value" attributes, Python 3.14 and modernized CI/CD pipeline
- Added support for the value attribute in enumerations (fixes #98)
- Python 3.14 support
- modernized CI/CD pipeline
- replace tox with ruff for faster static code analysis
- added additional checks
- updated development dependencies
- removed Python 3.9 support due to EOL
- optimizations, improved code formatting, and enhanced consistency across the codebase.
Improved Annotation Postprocessors
- Improved both the HTML and XML Annotation postprocessors.
- Fixed #94 (XML tags are now closed in the correct order).
- Breaking change:
- the
XmlAnnotationProcessornow uses a mandatory root element to ensure that the create XML is valid. - Impact:
- The created XML will contain a
<content>root element, which contains all annotations. - The name of the root element can be overwritten, if the optional
root_elementparameter is provided to the annotation processor call.
- The created XML will contain a
- the
- Documentation fixes.
- Updated dependencies and added
pytestas a build dependency.
Allow for newer requests versions.
This is a maintenance release which fixes a regression in the package dependencies introduced in 2.5.1.
- merged #91 to allow for newer requests versions.
Python 3.13 support
- added Python 3.13 to the build pipeline.
- deprecated Python 3.8.
- updated dependencies.
- minor optimizations in the attribute handling.