gemini-code-assist[bot] commented on code in PR #35745:
URL: https://github.com/apache/beam/pull/35745#discussion_r2243903937


##########
sdks/python/apache_beam/yaml/yaml_ml.py:
##########
@@ -50,11 +50,11 @@ def _list_submodules(package):
   from apache_beam.ml.transforms import tft
   from apache_beam.ml.transforms.base import MLTransform
   # TODO(robertwb): Is this all of them?
-  _transform_constructors = {}
 except ImportError:
   tft = None  # type: ignore

Review Comment:
   ![high](https://www.gstatic.com/codereviewagent/high-priority.svg)
   
   While this change correctly fixes the `NameError` for 
`_transform_constructors`, a similar issue exists for `MLTransform`. If `from 
apache_beam.ml.transforms.base import MLTransform` fails, `MLTransform` will be 
undefined, causing a `NameError` later in the loop when `issubclass(cls, 
MLTransform)` is called.
   
   To make this more robust, you should also handle the case where 
`MLTransform` is not imported. A simple way is to define a dummy class in the 
`except` block. This would prevent the `NameError` and cause `issubclass` to 
correctly return `False` for any transform.
   
   ```suggestion
   except ImportError:
     tft = None  # type: ignore
     MLTransform = type('MLTransform', (), {})  # Dummy class if import fails
   ```



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: github-unsubscr...@beam.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to