code: def generate_class_string(
      name, props, description, project_shortname, prefix
  ):
      # Ensure props are ordered with children first
      filtered_props = reorder_props(filter_props(props))
  
      prop_keys = list(filtered_props.keys())
  
      docstring = (
          create_docstring_jl(
              component_name=name,
              props=filtered_props,
              description=description,
          )
          .replace("\r\n", "\n")
          .replace("$", "\\$")
      )
  
      wclist = get_wildcards_jl(props)
      default_paramtext = ""
  
      # Filter props to remove those we don't want to expose
      for item in prop_keys[:]:
          if item.endswith("-*") or item == "setProps":
              prop_keys.remove(item)
          elif item in julia_keywords:
              prop_keys.remove(item)
              warnings.warn(
                  (
                      'WARNING: prop "{}" in component "{}" is a Julia keyword'
                      " - REMOVED FROM THE JULIA COMPONENT"
                  ).format(item, name)
              )
  
      default_paramtext += ", ".join(":{}".format(p) for p in prop_keys)
  
      has_children = "children" in prop_keys
      funcname = format_fn_name(prefix, name)
      children_signatures = (
          jl_children_signatures.format(funcname=funcname)
          if has_children
          else ""
      )
      children_definitions = (
          jl_children_definitions.format(funcname=funcname)
          if has_children
          else ""
      )
      return jl_component_string.format(
          funcname=format_fn_name(prefix, name),
          docstring=docstring,
          component_props=default_paramtext,
          wildcard_symbols=stringify_wildcards(wclist, no_symbol=False),
          wildcard_names=stringify_wildcards(wclist, no_symbol=True),
          element_name=name,
          module_name=project_shortname,
          children_signatures=children_signatures,
          children_definitions=children_definitions,
      )
  
imports: import copy
  import os
  import shutil
  import warnings
  import sys
  import importlib
  import uuid
  import hashlib
  from ._all_keywords import julia_keywords
  from ._py_components_generation import reorder_props
label_desc: Use image node_id 17 for calling a global function with example usage: generate_class_string(name, props, description, project_shortname, prefix) and returns: jl_component_string