code: def generate_classes_files(
      project_shortname, metadata, *component_generators
  ):
      components = []
      for component_path, component_data in metadata.items():
          component_name = component_path.split("/")[-1].split(".")[0]
          components.append(component_name)
  
          for generator in component_generators:
              generator(
                  component_name,
                  component_data["props"],
                  component_data["description"],
                  project_shortname,
              )
  
      return components
  
imports: from collections import OrderedDict
  import copy
  import os
  from textwrap import fill, dedent
  from dash.development.base_component import _explicitize_args
  from dash.exceptions import NonExistentEventException
  from ._all_keywords import python_keywords
  from ._collect_nodes import collect_nodes, filter_base_nodes
  from .base_component import Component
label_desc: Use image node_id 4 for calling a global function with example usage: generate_classes_files(project_shortname, metadata) and returns: components