Skip to content

Conversation

@Abhinavexists
Copy link
Contributor

Fix #21831

simple fix which just checks if name_scope_stack is empty or dosen't exist
i will build the test case once the approach is approved

Refactor exit behavior to check _pop_on_exit as a callable
@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello @Abhinavexists, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request enhances the stability of the name_scope context manager by improving its exit logic. It addresses potential issues related to the state of the name_scope_stack during thread-local operations, ensuring that the context manager can safely exit without encountering errors even in unexpected or uninitialized scenarios.

Highlights

  • exit method refactoring: The __exit__ method of the name_scope context manager has been refactored to robustly handle cases where the name_scope_stack might be empty or non-existent, preventing potential runtime errors.
  • Error Handling: Introduced checks for an empty name_scope_stack and wrapped the pop() operation in a try-except block to gracefully handle AttributeError or IndexError.
  • **_pop_on_exitusage**: The_pop_on_exitattribute is now called as a method,_pop_on_exit()`, suggesting a change in its intended usage or implementation.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Code Review

The pull request aims to fix an issue in the __exit__ method of the name_scope context manager by adding checks for the existence and emptiness of name_scope_stack. However, the current implementation introduces a critical bug by attempting to call a boolean attribute as a function. My review provides a correction for this bug and simplifies the logic to be more robust and readable, which also aligns with the Keras API design guideline of minimizing cognitive load.

@codecov-commenter
Copy link

codecov-commenter commented Nov 8, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 82.66%. Comparing base (19ca9c1) to head (85f02ea).

Additional details and impacted files
@@           Coverage Diff           @@
##           master   #21833   +/-   ##
=======================================
  Coverage   82.66%   82.66%           
=======================================
  Files         577      577           
  Lines       59477    59478    +1     
  Branches     9329     9330    +1     
=======================================
+ Hits        49167    49168    +1     
  Misses       7907     7907           
  Partials     2403     2403           
Flag Coverage Δ
keras 82.48% <100.00%> (+<0.01%) ⬆️
keras-jax 63.31% <100.00%> (+<0.01%) ⬆️
keras-numpy 57.55% <100.00%> (+<0.01%) ⬆️
keras-openvino 34.34% <100.00%> (+<0.01%) ⬆️
keras-tensorflow 64.12% <100.00%> (+<0.01%) ⬆️
keras-torch 63.60% <100.00%> (+<0.01%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@Abhinavexists
Copy link
Contributor Author

Abhinavexists commented Nov 8, 2025

I have now added the test cases and have minimised the approach towards handling global_state
cc @fchollet

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

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug] name_scope_stack causing exceptions

3 participants