Skip to content

fix: update ITables to 2.4+ - #785

Open
Pybsama wants to merge 2 commits into
aws:mainfrom
Pybsama:codex/update-itables-html-escaping
Open

fix: update ITables to 2.4+#785
Pybsama wants to merge 2 commits into
aws:mainfrom
Pybsama:codex/update-itables-html-escaping

Conversation

@Pybsama

@Pybsama Pybsama commented Jul 31, 2026

Copy link
Copy Markdown

Issue #, if available:

Fixes #780

Description of changes:

  • update the ITables dependency range to >=2.4.0,<3.0.0 in both dependency declarations so raw table content uses the newer default HTML escaping
  • preserve the existing single-encoded display for SPARQL, Gremlin, and openCypher query results without enabling HTML globally
  • encode untrusted query-result column labels on a display-only copy before opting those pre-encoded cells into allow_html=True
  • add regression coverage for raw HTML escaping, double escaping, unsafe headers, source-frame immutability, and RangeIndex preservation

Local validation:

  • 582 unit tests with ITables 2.4.0
  • 582 unit tests with ITables 2.9.1
  • repository CI-equivalent Flake8 checks
  • sdist and wheel build, isolated wheel installation, and pip check

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

@theneelshah
theneelshah self-requested a review July 31, 2026 19:14
@Pybsama

Pybsama commented Aug 29, 2026

Copy link
Copy Markdown
Author

Fresh current-main validation is complete.

  • The public head remains 400560461166dd5ed6d02c6c21be425adbe73074; it is ahead 2 / behind 3 relative to current main 83f55e33a79206ac19155507188d1708245a551a, and the conflict-free merge tree is d21f286d17b75a0a9043a669b2f6f7a3f14862f2.
  • On that exact merge tree, Python 3.9.6 + ITables 2.9.1 and Python 3.9.6 + the minimum ITables 2.4.0 each pass all 594 unit tests. The four focused cell/header escaping contracts pass on both versions, and pip check is clean in both environments.
  • Both repository Flake8 commands pass. A real 5.3.0 sdist and wheel build completed, including the production widget/JupyterLab build; the wheel metadata contains itables<3.0.0,>=2.4.0 and Python <3.14,>=3.9.
  • A clean wheel-only environment installed 140 packages, passed pip check, loaded graph_notebook from site-packages, and passed the four security/compatibility contracts against the installed artifact.
  • The existing public Unit Tests checks for Python 3.9, 3.10, 3.11, 3.12, and 3.13 are all successful. The current-main production build still reports the repository's existing npm audit and bundle-size warnings; this PR does not change frontend dependencies or apply an unrelated audit fix.

Issue #780 remains open with no competing implementation, and current main still constrains ITables to 2.0–2.1. I am marking this PR ready for review without rewriting the two existing GitHub Verified commits.

@Pybsama
Pybsama marked this pull request as ready for review August 29, 2026 08:56
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.

[BUG] Relax itables version to >= 2.4.0

1 participant