Skip to content

chore(deps-dev): bump unstructured from 0.18.14 to 0.27.1 in /backend - #3808

Open
dependabot[bot] wants to merge 1 commit into
developfrom
dependabot/pip/backend/unstructured-0.27.1
Open

chore(deps-dev): bump unstructured from 0.18.14 to 0.27.1 in /backend#3808
dependabot[bot] wants to merge 1 commit into
developfrom
dependabot/pip/backend/unstructured-0.27.1

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Aug 28, 2026

Copy link
Copy Markdown

Bumps unstructured from 0.18.14 to 0.27.1.

Release notes

Sourced from unstructured's releases.

0.27.1

What's Changed

0.27.0

What's Changed

New Contributors

Full Changelog: Unstructured-IO/unstructured@0.25.2...0.27.0

0.25.2

What's Changed

New Contributors

Full Changelog: Unstructured-IO/unstructured@0.25.0...0.25.2

0.25.0

Enhancements

  • Partition arbitrary JSON and NDJSON: partition_json() and partition_ndjson() now handle any valid JSON/NDJSON payload, not just serialized Unstructured output. Arrays (and NDJSON files) of serialized elements keep rehydrating as before; any other valid payload (bare objects, arrays of records, NDJSON lines, scalars) becomes Text elements containing the pretty-printed JSON instead of raising. The schema pre-gates in partition() are removed accordingly, a compact single-line JSON object now detects as FileType.JSON rather than NDJSON (JSON/NDJSON disambiguation examines at most the first 1 MiB of the file), and malformed input still raises ValueError (empty or whitespace-only documents yield no elements). One degraded case: NDJSON whose first record alone exceeds the 1 MiB disambiguation bound now classifies as JSON and fails partition() with ValueError (calling partition_ndjson() directly still handles it). Rehydration is chosen by an explicit shape predicate, with these consequences: an element-shaped payload whose contents cannot be rehydrated (e.g. corrupt metadata) raises ValueError with the underlying error chained, and an array (or NDJSON file) mixing element-shaped and arbitrary items partitions whole as arbitrary JSON - no partial rehydration that silently drops the arbitrary items. An empty JSON object yields one Text containing {} (an empty array yields no elements). One intended routing note: a one-record serialized-element file (a single object, not an array) routed through partition()/detect_filetype() now emits pretty-printed Text with alphabetized keys instead of rehydrating, since rehydration applies only to arrays (direct partition_ndjson() behavior is unchanged).
  • Serialized TableChunk elements now rehydrate: elements_from_dicts() (and with it partition_json() and partition_ndjson()) previously dropped serialized TableChunk elements silently because the type is not in the shared element-type map; it is now special-cased like CheckBox. This completes the table-reconstruction feature (#4291), whose reconstruct_table_from_chunks() expects deserialized chunks and now has a deserialization path to feed it. Behavior change: payloads of serialized chunked output containing split tables now return the TableChunk elements (previously omitted from results).
  • is_json_processable() and is_ndjson_processable() are deprecated: partitioning and file-type detection no longer route through these prefix-sniffing helpers. They keep working unchanged for downstream callers - now emitting a DeprecationWarning - and will be removed in a future release.

0.24.1

What's Changed

Full Changelog: Unstructured-IO/unstructured@0.24.0...0.24.1

0.24.0

What's Changed

New Contributors

... (truncated)

Changelog

Sourced from unstructured's changelog.

0.27.1

Fixes

  • Support Core Metadata 2.5 package publishing: Upgrade the PyPI publishing action and Twine release tooling so artifacts produced by Hatchling 1.32 and later pass metadata validation. Release workflows now validate artifacts before upload and can safely retry a failed upload from an existing published GitHub release tag without moving or recreating that tag.

0.27.0

Enhancements

  • Add privacy-bounded partition runtime telemetry: Each top-level public partition call now makes one best-effort local attempt to send an event with fixed-enum runtime characteristics and aggregate final-element counts. Nested dispatch is suppressed. Delivery uses one non-queued daemon worker with tight connect/read timeouts; it disables redirects, retries, response-body downloads, proxy settings, and netrc credentials. A stuck transport cannot block document processing or process exit, at most one daemon can remain stranded, and later events drop while that slot is occupied. The event contains no document content, filenames, paths, URLs, caller MIME strings, exception details, credentials, or persistent identifiers. Set either DO_NOT_TRACK or SCARF_NO_ANALYTICS to any non-empty value after trimming to disable both startup and runtime telemetry before any runtime telemetry collection or delivery work.

0.26.3

Fixes

  • Use fallback character-set detection for file-like objects: FileTypeDetectionContext.text_head() now applies the same detect_file_encoding() fallback to file-like objects as it does to file paths when the declared encoding cannot decode the content. Previously it decoded with errors="ignore", silently stripping characters and corrupting the text head for non-UTF-8 streams such as S3/GCS objects and API uploads.

0.26.2

Fixes

  • Linear-time inline element merging in HTML partitioning (ML-1713): combine_inline_elements re-parsed the growing merged run on every step and appended text via attribute +=, making a long run of mergeable inline elements O(n²) — seconds for a few hundred elements. Each element's mergeability is now computed once from its own HTML and the run's text is joined once when it closes, so merging is linear with identical output.

0.26.1

Fixes

  • Bound array-stream decoding in is_pdf_too_complex (SEC-146): fixes a quadratic bytes += accumulation over array-based /Contents (CVE-2026-33123) that let a crafted PDF spike CPU/memory. Accumulation now uses a bytearray, with per-page and document-wide caps on decoded bytes and array entries that fail closed on crafted content, and every file is inspected by default (small files are no longer skipped, since a small compressed file can declare huge content). Indirect /Contents arrays are now dereferenced (they were being skipped), a single unreadable stream no longer skips the rest of its page, and operator counting no longer allocates a full match list. Bumps pypdf to >=6.9.1 so its own patched code path is used.

0.26.0

Fixes

  • Restore default-on library-load telemetry: The lightweight library-load ping once again runs by default when unstructured is imported. Set either DO_NOT_TRACK or SCARF_NO_ANALYTICS to any non-empty value (after trimming whitespace) before import to disable it; empty and whitespace-only values retain the default behavior. This removes the UNSTRUCTURED_TELEMETRY_ENABLED explicit opt-in gate introduced by #4281 while preserving the existing endpoint and payload. The best-effort nvidia-smi GPU probe now has a one-second timeout, and GPU-probe and request failures remain non-fatal.

  • Stop the GLOBAL_WORKING_DIR tests from disturbing other pytest-xdist workers: test-only change, no library behavior changes. The two tests exercising GLOBAL_WORKING_DIR_ENABLED now redirect the working dir to a private tmp_path and restore tempfile.tempdir unconditionally, rather than moving the shared pgid-keyed directory aside mid-run and leaving the worker's tempfile.tempdir pointed at it. That shared path made test_dockerfile fail intermittently, with an unrelated test dying inside tempfile.

0.25.2

Enhancements

  • Speed up HTML element hierarchy reconstruction: elements_to_html() now indexes elements by ID before attaching children, avoiding repeated linear parent scans.

  • Add lazy chunking entry points: iter_chunk_elements() and iter_chunks_by_title() yield each chunk as it is formed, alongside the list-returning chunk_elements() and chunk_by_title(), which are now defined in terms of them. Same options, same chunks, same order — chunking was already lazy internally and this exposes that pipeline rather than adding a second one. Chunks are no longer accumulated in a list, so a caller that also reads elements lazily holds only the pre-chunk being formed; see the docstrings for two limits on that — iter_chunks_by_title() reads one pre-chunk ahead in order to combine undersized ones, and the default include_orig_elements=True retains source elements (image_base64 payloads included) in every chunk. Options are validated at the call rather than on first advance, and an unknown tokenizer used with max_tokens now raises there too, in both forms.

Fixes

  • Reject an empty tokenizer when chunking by max_tokens: "" is not None, so it slipped past the "tokenizer is required" check while still leaving the chunkers without a token counter — the window was then silently measured in characters, making max_tokens=20 mean 20 characters. It now raises the same ValueError as omitting tokenizer altogether.

... (truncated)

Commits
  • 3e5482b fix: support core metadata 2.5 publishing (#4452)
  • 94e0204 feat: add partition runtime telemetry (#4442)
  • 104b585 fix: fallback character-set detection for file-like objects (#4438)
  • 6d38340 fix: linear-time inline element merging in HTML partitioning (ML-1713) (#4440)
  • 44f9d74 fix(security): bound quadratic array-stream decoding in is_pdf_too_complex (S...
  • 8c4592a chore: restore telemetry by default (#4431)
  • 114a1d5 test: stop GLOBAL_WORKING_DIR tests from disturbing other xdist workers (#4426)
  • 4c61d87 feat: add lazy chunking entry points (#4423)
  • 441b9d6 perf(html): use indexed parent lookup (#4417)
  • d309caf Terminology update: Platform -> Pipelines in README (#4404)
  • Additional commits viewable in compare view

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Bumps [unstructured](https://github.com/Unstructured-IO/unstructured) from 0.18.14 to 0.27.1.
- [Release notes](https://github.com/Unstructured-IO/unstructured/releases)
- [Changelog](https://github.com/Unstructured-IO/unstructured/blob/main/CHANGELOG.md)
- [Commits](Unstructured-IO/unstructured@unstructured_0.18.14...0.27.1)

---
updated-dependencies:
- dependency-name: unstructured
  dependency-version: 0.27.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot @github

dependabot Bot commented on behalf of github Aug 28, 2026

Copy link
Copy Markdown
Author

Labels

The following labels could not be found: dependencies. Please create it before Dependabot can add it to a pull request.

Please fix the above issues or remove invalid values from dependabot.yml.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants