code: def register_data_preprocessor(
      cls, name: str
  ) -> typing.Callable[
      [typing.Type[_data_preprocessor.DataPreprocessor]],
      typing.Type[_data_preprocessor.DataPreprocessor],
  ]:
      def register_data_preprocessor(
          data_preprocessor: typing.Type[
              _data_preprocessor.DataPreprocessor
          ],
      ) -> typing.Type[_data_preprocessor.DataPreprocessor]:
          if not issubclass(
              data_preprocessor, _data_preprocessor.DataPreprocessor
          ):
              raise TypeError
          else:
              cls[name] = data_preprocessor
              return data_preprocessor
  
      return register_data_preprocessor
  
imports: import typing
  from autogl.utils import universal_registry
  from .None import _data_preprocessor
label_desc: Use image node_id 1 for calling the DataPreprocessorUniversalRegistry obj's underlying member method code with example usage: obj.register_data_preprocessor(cls, name) and returns: register_data_preprocessor, data_preprocessor