code: def render_er(input, output, mode='auto', include_tables=None, include_columns=None,
                exclude_tables=None, exclude_columns=None, schema=None):
      
      try:
          tables, relationships = all_to_intermediary(input, schema=schema)
          tables, relationships = filter_resources(tables, relationships,
                                                   include_tables=include_tables, include_columns=include_columns,
                                                   exclude_tables=exclude_tables, exclude_columns=exclude_columns)
          intermediary_to_output = get_output_mode(output, mode)
          intermediary_to_output(tables, relationships, output)
      except ImportError as e:
          module_name = e.message.split()[-1]
          print('Please install {0} using "pip install {0}".'.format(module_name))
      except ParsingException as e:
          sys.stderr.write(e.message)
docs: Transform the metadata into a representation.
      :param input: Possible inputs are instances of:
          MetaData: SQLAlchemy Metadata
          DeclarativeMeta: SQLAlchemy declarative Base
      :param output: name of the file to output the
      :param mode: str in list:
          'er': writes to a file the markup to generate an ER style diagram.
          'graph': writes the image of the ER diagram.
          'dot': write to file the diagram in dot format.
          'auto': choose from the filename:
              '*.er': writes to a file the markup to generate an ER style diagram.
              '.dot': returns the graph in the dot syntax.
              else: return a graph to the format graph
      :param include_tables: lst of str, table names to include, None means include all
      :param include_columns: lst of str, column names to include, None means include all
      :param exclude_tables: lst of str, table names to exclude, None means exclude nothing
      :param exclude_columns: lst of str, field names to exclude, None means exclude nothing
      :param schema: name of the schema