Skip to content

Docstrings for release 1.55.0#14185

Merged
sfc-gh-dmatthews merged 20 commits intodevelopfrom
docs-1.55
Mar 3, 2026
Merged

Docstrings for release 1.55.0#14185
sfc-gh-dmatthews merged 20 commits intodevelopfrom
docs-1.55

Conversation

@sfc-gh-dmatthews
Copy link
Copy Markdown
Contributor

Describe your changes

  • Added custom CSS colors to Markdown support
  • Added auto-escaping to limited Markdown fields like widget labels
  • Added limited Mardown support to st.Page, st.navigation,
  • Added Markdown support to
  • Unified and expanded the description of key
  • Unified and clarified query parameter in widgets (that have been released so far)
  • Added support for hidden pages
  • Unified docstrings for dynamic containers st.tabs, st.expander, and st.popover
  • Added DeltaGenerator subclasses for dynamic containers (without mentioning DeltaGenerator) with six new embedded examples for dynamic containers

Screenshot or video (only for visual changes)

GitHub Issue Link (if applicable)

Testing Plan

  • Explanation of why no additional tests are needed
  • Unit Tests (JS and/or Python)
  • E2E Tests
  • Any manual testing needed?

Contribution License Agreement

By submitting this pull request you agree that all contributions to this project are made under the Apache 2.0 license.

Copilot AI review requested due to automatic review settings March 3, 2026 00:33
@snyk-io
Copy link
Copy Markdown
Contributor

snyk-io bot commented Mar 3, 2026

Snyk checks have passed. No issues have been found so far.

Status Scanner Critical High Medium Low Total (0)
Open Source Security 0 0 0 0 0 issues
Licenses 0 0 0 0 0 issues

💻 Catch issues earlier using the plugins for VS Code, JetBrains IDEs, Visual Studio, and Eclipse.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Mar 3, 2026

✅ PR preview is ready!

Name Link
📦 Wheel file https://core-previews.s3-us-west-2.amazonaws.com/pr-14185/streamlit-1.54.0-py3-none-any.whl
📦 @streamlit/component-v2-lib Download from artifacts
🕹️ Preview app pr-14185.streamlit.app (☁️ Deploy here if not accessible)

@sfc-gh-dmatthews sfc-gh-dmatthews added security-assessment-completed impact:internal PR changes only affect internal code change:docs PR contains documentation change ai-review If applied to PR or issue will run AI review workflow labels Mar 3, 2026
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates Streamlit’s public-facing docstrings for the 1.55.0 release, primarily to standardize Markdown/label behavior descriptions, unify key and query-parameter binding documentation across widgets/elements, and expand docs for dynamic containers (st.tabs, st.expander, st.popover) including their .open state.

Changes:

  • Expanded and standardized Markdown support descriptions (including custom CSS colors in st.markdown, and label auto-escaping behavior).
  • Unified/expanded key and bind="query-params" documentation across multiple widgets and chart elements.
  • Added/expanded docstrings and examples for dynamic container return types (TabContainer, ExpanderContainer, PopoverContainer) and stateful lazy execution via .open.

Reviewed changes

Copilot reviewed 37 out of 37 changed files in this pull request and generated 7 comments.

Show a summary per file
File Description
lib/streamlit/navigation/page.py Clarifies Markdown support for page titles/labels and adds a note for hidden-page URL access behavior.
lib/streamlit/commands/navigation.py Points section-label Markdown support to the st.Page title rules.
lib/streamlit/elements/markdown.py Expands Markdown docs with custom CSS color support and clarifies width="auto" behavior.
lib/streamlit/elements/layouts.py Updates docs for st.tabs, st.expander, st.popover (lazy execution/state tracking, examples, and return container descriptions).
lib/streamlit/elements/lib/mutable_tab_container.py Expands TabContainer docstring (incl. .open semantics and examples).
lib/streamlit/elements/lib/mutable_expander_container.py Expands ExpanderContainer docstring (incl. .open semantics and examples).
lib/streamlit/elements/lib/mutable_popover_container.py Expands PopoverContainer docstring (incl. .open semantics and examples).
lib/streamlit/elements/widgets/*.py Standardizes label Markdown escaping wording and expands key + bind="query-params" documentation across many widgets.
lib/streamlit/elements/vega_charts.py Updates chart key docs and selection guidance text.
lib/streamlit/elements/plotly_chart.py Updates chart key docs to include widget-behavior link and CSS class note.
lib/streamlit/elements/deck_gl_json_chart.py Updates chart key docs to include widget-behavior link and CSS class note.
lib/streamlit/elements/arrow.py Updates dataframe key docs to include widget-behavior link and CSS class note.
lib/streamlit/elements/table.py Clarifies sticky index-column behavior vs width/overflow.
lib/streamlit/elements/image.py Tweaks link parameter wording/examples.
lib/streamlit/connections/snowpark_connection.py Switches deprecation wording to a .. deprecated:: block.
lib/streamlit/config.py Clarifies theme option descriptions for metric font size/weight.

@github-actions github-actions bot removed the ai-review If applied to PR or issue will run AI review workflow label Mar 3, 2026
@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Mar 3, 2026

Summary

This PR is a comprehensive docstring and documentation refresh across ~37 Python files in the Streamlit library for the 1.55.0 release. All modifications are documentation-only — no functional code is changed. Key improvements include:

  • Unified and expanded key parameter descriptions across all widgets (explaining Session State access, CSS class behavior, and widget identity stabilization).
  • Unified bind / query parameter descriptions with consistent structure.
  • Updated Markdown auto-escaping description (replacing manual backslash-escaping advice).
  • Added custom CSS color documentation to st.markdown.
  • Added rich docstrings (with examples) for ExpanderContainer, PopoverContainer, and TabContainer subclasses.
  • Converted dynamic container examples from doctest (>>>) to .. code-block:: python format.
  • Added Returns sections for st.expander and st.popover.
  • Changed SnowparkConnection to use the .. deprecated:: RST directive.
  • Added hidden page documentation and notes to st.Page.
  • Clarified metric value config options.

Code Quality

The docstrings are well-written and follow the NumPy-style conventions documented in lib/streamlit/AGENTS.md. Both reviewers agreed the changes are consistent with repository conventions. However, the detailed review identified several concrete issues that should be addressed:

  1. [Bug] Self-referential expander "rerun" description (lib/streamlit/elements/layouts.py, lines 1032–1038): The "rerun" option text says "returns its state like when on_change="rerun"" — but this IS the "rerun" option, making the sentence circular. It also incorrectly mentions "your callback" and "using a callback", which only apply to the callable option. This is a copy-paste error from the callable bullet. Compare with the correct popover "rerun" description (lines 1357–1362) which properly says "returns the current state, which is True if the popover is open and False if it's closed". Both reviewers effectively agree this is an issue (the first reviewer's general approval didn't examine individual line-level correctness).

    Suggested fix:

    - ``"rerun"``: The expander tracks state. Streamlit reruns the app
      when the user expands or collapses the expander. The ``.open``
      attribute of the expander container returns the current state,
      which is ``True`` if the expander is open and ``False`` if it's
      collapsed. This lets you skip expensive work when the expander
      is closed.
    
  2. [Minor] Missing article (lib/streamlit/elements/layouts.py, line 712): "If you need to access label of the current tab" should be "If you need to access the label of the current tab".

  3. [Minor] Inconsistent DeltaGenerator mention in TabContainer (lib/streamlit/elements/lib/mutable_tab_container.py, line 32): The docstring says "TabContainer is a DeltaGenerator subclass" while ExpanderContainer and PopoverContainer consistently say "Streamlit container". The PR description explicitly states these were written "without mentioning DeltaGenerator", so this appears to be an oversight. Should be changed to match the others.

  4. [Minor] Unused import time in TabContainer Example 2 (lib/streamlit/elements/lib/mutable_tab_container.py, line 83): The callback example imports time but never uses it. This should be removed.

Test Coverage

Both reviewers agreed: no tests are needed for this PR since all changes are documentation-only. No functional behavior was modified.

Backwards Compatibility

Both reviewers agreed: no backwards compatibility concerns. All changes are confined to docstrings with no changes to function signatures, behavior, or return types.

Security & Risk

Both reviewers agreed: no security concerns. Regression risk is low because the changes do not modify runtime logic.

Accessibility

Both reviewers agreed: no frontend changes are included, so accessibility is not affected.

Reviewer Agreement & Disagreement

Agreement:

  • Both reviewers agree the PR is documentation-focused, well-structured, and follows repository conventions.
  • Both agree no tests are needed, no backwards compatibility or security concerns exist.
  • Both agree on low regression risk.

Disagreement:

  • gpt-5.3-codex-high approved the PR without identifying specific issues. opus-4.6-thinking identified four concrete issues (one significant copy-paste error, three minor).
  • Upon independent verification, all four issues identified by opus-4.6-thinking are confirmed to be real and valid. The expander "rerun" description is clearly self-referential and mentions callbacks inappropriately.

Resolution: The copy-paste error in the expander "rerun" description (issue #1) produces incorrect/confusing documentation that would be user-facing. While the PR is otherwise high quality, this should be fixed before merge. The three minor issues are low-effort fixes that should also be addressed.

Recommendations

  1. Fix the self-referential expander "rerun" description — this is the blocking issue.
  2. Add missing article ("the label of the current tab").
  3. Replace "DeltaGenerator subclass" with "Streamlit container" in TabContainer docstring.
  4. Remove unused import time from TabContainer Example 2.
  5. Optionally run/verify internal docs rendering checks for updated examples and RST links.

Verdict

CHANGES REQUESTED: The documentation updates are thorough and high quality overall, but the expander "rerun" option has a copy-paste error that makes it self-referential and incorrectly mentions callbacks. This should be fixed before merging, along with the minor issues noted above. All four issues are straightforward to fix.


Consolidated review by opus-4.6-thinking.


📋 Review by `gpt-5.3-codex-high`

Summary

This PR is a broad docstring/documentation refresh across Streamlit's Python API surface for 1.55.0. The changes mainly standardize parameter wording (especially key and Markdown behavior), add/clarify examples, and improve consistency for dynamic container docs (st.tabs, st.expander, st.popover) plus related navigation/page documentation.

Code Quality

The changes are consistent with the docstring conventions in AGENTS.md (lib/AGENTS.md and lib/streamlit/AGENTS.md), including Numpydoc structure and clearer parameter semantics.
No maintainability or structural code-quality concerns were found in implementation logic; the patch is documentation-focused.

Test Coverage

No unit or e2e tests were added or modified. Given the PR scope is docstrings and descriptive text (no runtime behavior changes in the touched APIs), this is acceptable.
Residual gap: there is no automated check in this PR that validates rendered doc examples or prose correctness end-to-end.

Backwards Compatibility

No breaking API behavior changes were identified in the PR diff. Functionality appears backwards compatible; changes are explanatory and editorial.

Security & Risk

No security-impacting changes were found. Regression risk is low because the changes do not modify runtime logic for widgets/elements.

Accessibility

No frontend rendering or interaction behavior was changed. Accessibility risk from this PR is negligible.

Recommendations

  1. Optionally run/verify internal docs rendering checks for updated examples and RST links to catch any formatting regressions before release.

Verdict

APPROVED: The PR is documentation-focused, consistent with repository conventions, low risk, and ready to merge.


This is an automated AI review by gpt-5.3-codex-high. Please verify the feedback and use your judgment.

📋 Review by `opus-4.6-thinking`

Summary

This PR updates docstrings across 37 Python files in the Streamlit library for the 1.55.0 release. No functional code is changed — all modifications are to docstrings and inline documentation. Key improvements include:

  • Unified and expanded key parameter descriptions across all widgets (explaining Session State access, CSS class behavior, and widget identity stabilization).
  • Unified bind / query parameter descriptions with consistent structure across widgets.
  • Updated Markdown auto-escaping description (replacing manual backslash-escaping advice).
  • Added custom CSS color documentation to st.markdown.
  • Added rich docstrings (with examples) for ExpanderContainer, PopoverContainer, and TabContainer subclasses.
  • Converted dynamic container examples from doctest (>>>) to .. code-block:: python format per AGENTS.md guidelines.
  • Added Returns sections for st.expander and st.popover.
  • Changed SnowparkConnection to use the .. deprecated:: RST directive.
  • Added hidden page documentation and notes to st.Page.
  • Clarified metric value config options.

Code Quality

The docstrings are well-written, consistent, and follow the NumPy-style conventions documented in lib/streamlit/AGENTS.md. The use of .. code-block:: python with :filename: and .. output:: directives matches the documented best practices. However, there are a few issues:

  1. Self-referential text in expander "rerun" bullet (lib/streamlit/elements/layouts.py, lines 1032–1038): The "rerun" option says "The .open attribute of the expander container returns its state like when on_change="rerun"" — but this IS the "rerun" option, making the sentence self-referential. Additionally, it mentions "your callback" and "using a callback", which don't apply to "rerun". Compare with the correct popover "rerun" description (lines 1357–1362) which says "returns the current state, which is True if the popover is open and False if it's closed". The expander "rerun" bullet appears to be a copy-paste error from the callable bullet.

  2. Missing article in tabs on_change callable description (lib/streamlit/elements/layouts.py, line 712): "If you need to access label of the current tab" should be "If you need to access the label of the current tab".

  3. Inconsistent DeltaGenerator mention in TabContainer (lib/streamlit/elements/lib/mutable_tab_container.py, line 32): The docstring says "TabContainer is a DeltaGenerator subclass" while ExpanderContainer and PopoverContainer say "Streamlit container" and avoid mentioning DeltaGenerator. The PR description explicitly states these were written "without mentioning DeltaGenerator", so this appears to be an oversight.

  4. Unused import time in TabContainer Example 2 (lib/streamlit/elements/lib/mutable_tab_container.py, line 83): The callback example imports time but never uses it.

Test Coverage

No tests are needed for this PR since all changes are documentation-only (docstrings). No functional behavior was modified.

Backwards Compatibility

No backwards compatibility concerns. All changes are confined to docstrings and documentation strings, with no changes to function signatures, behavior, or return types.

Security & Risk

No security concerns. The changes are documentation-only and don't introduce any new code paths, dependencies, or configuration options.

Accessibility

No frontend changes are included in this PR, so accessibility is not affected.

Recommendations

  1. Fix the self-referential expander "rerun" description in lib/streamlit/elements/layouts.py lines 1032–1038. The "rerun" bullet should describe the .open behavior directly (like the popover does), and should not mention "callback" since that only applies to the callable option. Suggested fix:

    - ``"rerun"``: The expander tracks state. Streamlit reruns the app
      when the user expands or collapses the expander. The ``.open``
      attribute of the expander container returns the current state,
      which is ``True`` if the expander is open and ``False`` if it's
      collapsed. This lets you skip expensive work when the expander
      is closed.
    
  2. Add missing article in lib/streamlit/elements/layouts.py line 712: Change "access label of" to "access the label of".

  3. Replace "DeltaGenerator subclass" with "Streamlit container" in lib/streamlit/elements/lib/mutable_tab_container.py line 32, to be consistent with ExpanderContainer and PopoverContainer and the stated PR goal.

  4. Remove unused import time from Example 2 in lib/streamlit/elements/lib/mutable_tab_container.py line 83.

Verdict

CHANGES REQUESTED: The docstring updates are thorough and high quality overall, but the expander "rerun" option has a copy-paste error that makes it self-referential and incorrectly mentions callbacks. This should be fixed before merging along with the minor issues noted above.


This is an automated AI review by opus-4.6-thinking.

@github-actions github-actions bot added the do-not-merge PR is blocked from merging label Mar 3, 2026
@sfc-gh-dmatthews sfc-gh-dmatthews added ai-review If applied to PR or issue will run AI review workflow and removed do-not-merge PR is blocked from merging labels Mar 3, 2026
@github-actions github-actions bot removed the ai-review If applied to PR or issue will run AI review workflow label Mar 3, 2026
@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Mar 3, 2026

Consolidated Code Review

Summary

This is a documentation-only PR that updates and unifies Python API docstrings across the Streamlit library for the 1.55.0 release. The changes span navigation, layouts, widgets, container return types, config option descriptions, and a deprecation marker for SnowparkConnection. No runtime logic changes are included.

Key improvements include:

  • Unified key parameter descriptions across all widgets with a consistent three-paragraph structure.
  • Unified bind (query-params) descriptions with a consistent format.
  • Updated Markdown escape behavior for widget labels (auto-escaping replaces manual backslash guidance).
  • Expanded st.markdown docs covering custom CSS colors via :color[...]{foreground="..." background="..."}.
  • Improved dynamic container docstrings (TabContainer, ExpanderContainer, PopoverContainer) with Attributes, Examples, and Returns sections.
  • Updated st.Page / st.navigation docstrings with Markdown support info and hidden page notes.
  • Changed SnowparkConnection deprecation from .. warning:: to .. deprecated:: directive.
  • Converted code examples from >>> doctest format to .. code-block:: python.

Code Quality

Both reviewers found the docstrings well-structured, consistent, and following NumPy-style conventions. The following specific issues were identified (verified against the codebase):

  1. Missing article "the" in lib/streamlit/elements/layouts.py line 712:

    "If you need to access label of the current tab inside your callback"

    Should be: "If you need to access the label of the current tab inside your callback". (Raised by opus-4.6-thinking; verified.)

  2. Unused import time in Example 2 code blocks:

    • lib/streamlit/elements/lib/mutable_popover_container.py line 68: import time is imported but never used in Example 2.
    • lib/streamlit/elements/lib/mutable_tab_container.py line 83: import time is imported but never used in Example 2.

    (Raised by opus-4.6-thinking; verified — time is only used in Example 1 of each file.)

  3. Inconsistent DeltaGenerator mention across container class docstrings:

    • TabContainer (line 32): says "TabContainer is a DeltaGenerator subclass"
    • ExpanderContainer (line 32): says "ExpanderContainer is a Streamlit container"
    • PopoverContainer (line 32): says "PopoverContainer is a Streamlit container"

    Consider using "Streamlit container" consistently for all three. (Raised by opus-4.6-thinking; verified.)

  4. .. deprecated:: directive without version in lib/streamlit/connections/snowpark_connection.py line 64: The Sphinx deprecated directive typically expects a version argument (e.g., .. deprecated:: 1.55.0). Without it, rendering may vary. (Raised by opus-4.6-thinking; verified.)

  5. st.tabs on_change default wording: Consider clarifying wording so it aligns explicitly with the signature (None accepted, behavior equivalent to "ignore"). (Raised by gpt-5.3-codex-high; minor.)

Reviewer Agreement

  • Both reviewers agree that the PR is documentation-only, low risk, and ready to merge.
  • Both reviewers agree no tests are needed since there are no behavioral changes.
  • Both reviewers agree there are no backwards compatibility, security, or accessibility concerns.
  • Both reviewers agree the docstrings are well-structured and consistent.
  • opus-4.6-thinking provided more granular findings (items 1–4 above), all of which were verified as accurate. These are minor/non-blocking.
  • gpt-5.3-codex-high raised a minor suggestion about st.tabs on_change default wording.

No disagreements between reviewers.

Test Coverage

No unit or e2e tests were added or modified. This is appropriate for a documentation-only PR with no behavioral changes.

Backwards Compatibility

No breaking API or behavior changes. Function signatures and runtime paths remain unchanged.

Security & Risk

No security concerns. Risk is low and limited to documentation rendering/accuracy.

Accessibility

No frontend changes; no accessibility impact.

Recommendations

  1. Fix the missing article "the" in layouts.py line 712: change "access label" to "access the label".
  2. Remove unused import time from Example 2 in both mutable_popover_container.py and mutable_tab_container.py.
  3. Align TabContainer docstring with ExpanderContainer and PopoverContainer by replacing "a DeltaGenerator subclass" with "a Streamlit container".
  4. Add a version to .. deprecated:: in snowpark_connection.py (e.g., .. deprecated:: 1.55.0) for proper Sphinx rendering.
  5. Optionally verify doc rendering to catch any reStructuredText formatting/link regressions.

Verdict

APPROVED: Both reviewers approve. This is a thorough, high-quality documentation update that significantly improves consistency across the Streamlit API. The five items noted above are minor, non-blocking improvements.


Consolidated review by opus-4.6-thinking. Based on 2 of 2 expected reviews (all models completed successfully).


📋 Review by `gpt-5.3-codex-high`

Summary

This PR updates Python API docstrings for the 1.55 release across navigation, layouts, widgets, and container return types, plus small wording updates in config option descriptions and a deprecation marker for SnowparkConnection.
The changes are documentation-focused; I did not find runtime logic changes in the modified paths.

Code Quality

Docstring updates are broadly consistent with existing Numpydoc/reStructuredText patterns in lib/streamlit, including clearer parameter semantics, state behavior (on_change, .open), and cross-links to widget behavior documentation.
No maintainability or structural code issues were identified.

Test Coverage

No unit or e2e tests were added or modified in this PR. Given that the diff is documentation-only (no behavioral/path logic changes), this is acceptable.
Residual risk is limited to documentation rendering/accuracy rather than runtime regressions.

Backwards Compatibility

No breaking API or behavior changes were identified. Function signatures and runtime paths remain unchanged in the reviewed diff scope.
This should be backwards compatible for existing users.

Security & Risk

No security concerns were identified.
Risk is low and primarily limited to potential doc wording inconsistencies.

Accessibility

No frontend implementation changes are included, so there is no direct accessibility impact from this PR.

Recommendations

  1. Optionally run/verify doc rendering checks for this PR class to catch reStructuredText formatting/link regressions early.
  2. Consider clarifying the st.tabs on_change default wording so it aligns explicitly with the signature (None accepted, behavior equivalent to "ignore"), to reduce potential reader confusion.

Verdict

APPROVED: Documentation updates are consistent, low risk, and ready to merge.


This is an automated AI review by gpt-5.3-codex-high. Please verify the feedback and use your judgment.

📋 Review by `opus-4.6-thinking`

Summary

This is a documentation-only PR that updates and unifies docstrings across the Streamlit Python library for the 1.55.0 release. No behavioral code changes are included. The main improvements are:

  • Unified key parameter descriptions across all widgets with a consistent three-paragraph structure (identity, Session State access, CSS class).
  • Unified bind (query-params) descriptions with a consistent format explaining syncing, default cleanup, and edge cases.
  • Updated Markdown escape behavior for widget labels: replaced the manual backslash-escaping guidance with the new auto-escaping description.
  • Expanded st.markdown docs to cover custom CSS colors via :color[...]{foreground="..." background="..."}.
  • Improved dynamic container docstrings (TabContainer, ExpanderContainer, PopoverContainer) with Attributes, Examples, and Returns sections.
  • Updated st.Page / st.navigation docstrings with Markdown support info and hidden page notes.
  • Changed SnowparkConnection deprecation from .. warning:: to .. deprecated:: directive.
  • Converted code examples from >>> doctest format to .. code-block:: python for st.tabs, st.expander, and st.popover.

Code Quality

The docstrings are well-structured, consistent, and follow NumPy-style conventions. The unified patterns for key and bind parameters are a significant improvement in consistency. A few minor issues:

  1. Missing article "the" in lib/streamlit/elements/layouts.py line 711-712:

    "If you need to access label of the current tab inside your callback"

    Should be: "If you need to access the label of the current tab inside your callback".

  2. Unused import time in code examples:

    • lib/streamlit/elements/lib/mutable_popover_container.py line 68 (Example 2): import time is imported but never used.
    • lib/streamlit/elements/lib/mutable_tab_container.py line 83 (Example 2): import time is imported but never used.
  3. Inconsistent DeltaGenerator mention across container class docstrings:

    • TabContainer (line 32): says "TabContainer is a DeltaGenerator subclass"
    • ExpanderContainer (line 32): says "ExpanderContainer is a Streamlit container"
    • PopoverContainer (line 32): says "PopoverContainer is a Streamlit container"

    The PR description states these are "without mentioning DeltaGenerator", but TabContainer still references it. Consider using "Streamlit container" for consistency.

  4. .. deprecated:: directive without version in lib/streamlit/connections/snowpark_connection.py line 64: The Sphinx deprecated directive typically expects a version argument (e.g., .. deprecated:: 1.55.0). Without it, rendering may vary across Sphinx versions.

Test Coverage

This is a documentation-only PR with no behavioral changes, so no new tests are needed. The existing test suite remains valid since no runtime behavior was modified.

Backwards Compatibility

No backwards compatibility concerns. All changes are confined to docstrings and do not affect runtime behavior, function signatures, or return types.

Security & Risk

No security concerns. The changes are purely documentation updates with no code execution impact.

Accessibility

Not applicable — the changes are limited to Python docstrings and do not affect the frontend UI or rendered HTML.

Recommendations

  1. Fix the missing article "the" in layouts.py line 712: change "access label" to "access the label".
  2. Remove unused import time from Example 2 in both mutable_popover_container.py and mutable_tab_container.py.
  3. Consider aligning TabContainer's class docstring with ExpanderContainer and PopoverContainer by replacing "a DeltaGenerator subclass" with "a Streamlit container".
  4. Consider adding a version to .. deprecated:: in snowpark_connection.py (e.g., .. deprecated:: 1.55.0) for proper Sphinx rendering.

Verdict

APPROVED: A thorough, high-quality documentation update that significantly improves consistency across the Streamlit API. The four items noted above are minor and non-blocking.


This is an automated AI review by opus-4.6-thinking.

st.image("https://static.streamlit.io/examples/dog.jpg", width=200)
with tab3:
st.header("An owl")
st.image("https://static.streamlit.io/examples/owl.jpg", width=200)
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does it make sense to also add an example with lazy loaded tabs?

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

seems like there are some examples on the tab/popover/expander container itself

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, I put the examples that use the property on the DG subclass itself.

Copy link
Copy Markdown
Collaborator

@lukasmasuch lukasmasuch left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM 👍 You might to update the branch to get the CI working again

@sfc-gh-dmatthews sfc-gh-dmatthews enabled auto-merge (squash) March 3, 2026 20:51
@sfc-gh-dmatthews sfc-gh-dmatthews enabled auto-merge (squash) March 3, 2026 20:56
@sfc-gh-dmatthews sfc-gh-dmatthews merged commit 52396d8 into develop Mar 3, 2026
43 checks passed
@sfc-gh-dmatthews sfc-gh-dmatthews deleted the docs-1.55 branch March 3, 2026 21:14
github-actions bot pushed a commit that referenced this pull request Mar 3, 2026
## Describe your changes

* Added custom CSS colors to Markdown support
* Added auto-escaping to limited Markdown fields like widget labels
* Added limited Mardown support to `st.Page`, `st.navigation`, 
* Added Markdown support to 
* Unified and expanded the description of `key`
* Unified and clarified query parameter in widgets (that have been
released so far)
* Added support for hidden pages
* Unified docstrings for dynamic containers `st.tabs`, `st.expander`,
and `st.popover`
* Added DeltaGenerator subclasses for dynamic containers (without
mentioning DeltaGenerator) with six new embedded examples for dynamic
containers

## Screenshot or video (only for visual changes)

## GitHub Issue Link (if applicable)

## Testing Plan

- Explanation of why no additional tests are needed
- Unit Tests (JS and/or Python)
- E2E Tests
- Any manual testing needed?

---

**Contribution License Agreement**

By submitting this pull request you agree that all contributions to this
project are made under the Apache 2.0 license.

---------

Co-authored-by: Lukas Masuch <[email protected]>
GorML pushed a commit to GorML/streamlit that referenced this pull request Mar 8, 2026
* Added custom CSS colors to Markdown support
* Added auto-escaping to limited Markdown fields like widget labels
* Added limited Mardown support to `st.Page`, `st.navigation`,
* Added Markdown support to
* Unified and expanded the description of `key`
* Unified and clarified query parameter in widgets (that have been
released so far)
* Added support for hidden pages
* Unified docstrings for dynamic containers `st.tabs`, `st.expander`,
and `st.popover`
* Added DeltaGenerator subclasses for dynamic containers (without
mentioning DeltaGenerator) with six new embedded examples for dynamic
containers

- Explanation of why no additional tests are needed
- Unit Tests (JS and/or Python)
- E2E Tests
- Any manual testing needed?

---

**Contribution License Agreement**

By submitting this pull request you agree that all contributions to this
project are made under the Apache 2.0 license.

---------

Co-authored-by: Lukas Masuch <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

change:docs PR contains documentation change impact:internal PR changes only affect internal code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants