code: def add_reader(reader_name, check_svn, class_name=None):
      LOGGER.debug(f"Registering {reader_name}")
      try:
          rdr = __import__(
              reader_name, globals(), locals(), ["__all__"], 0
          )
          if class_name:
              cp_reader = rdr.__dict__[class_name]
              assert issubclass(cp_reader, Reader)
          else:
              cp_reader = find_cp_reader(rdr)
          name = cp_reader.reader_name
      except Exception as e:
          reader_name = reader_name.replace(
              "cellprofiler_core.readers.", ""
          )
          LOGGER.warning(f"Could not load {reader_name}", exc_info=True)
          BAD_READERS[reader_name] = traceback.format_exc()
          return
      try:
          if name in ALL_READERS:
              LOGGER.warning(
                  "Multiple definitions of reader %s\n\told in %s\n\tnew in %s",
                  name,
                  sys.modules[ALL_READERS[name].__module__].__file__,
                  rdr.__file__,
              )
          ALL_READERS[name] = cp_reader
      except Exception as e:
          LOGGER.warning("Failed to load %s", name, exc_info=True)
          BAD_READERS[reader_name] = traceback.format_exc()
          if name in ALL_READERS:
              del ALL_READERS[name]
  
file_path: CellProfiler/src/subpackages/core/cellprofiler_core/reader/__init__.py
imports: import os
  import sys
  import traceback
  from ._reader import Reader
  from ..constants.reader import ALL_READERS, builtin_readers, BAD_READERS, AVAILABLE_READERS
  import logging
  from ..preferences import get_force_bioformats, config_read_typed
label_desc: Use image node_id 1 for calling a global function with example usage: add_reader(reader_name, check_svn, class_name) without return types