code: def snakify(name: str, sep: str = "_") -> str:
      """Convert CamelCase to snake_case."""
      name = re.sub("([A-Z]+)([A-Z][a-z])", rf"\1{sep}\2", name)
      name = re.sub("([a-z\\d])([A-Z])", rf"\1{sep}\2", name)
      return name.lower()
  
file_path: bokeh/src/bokeh/util/strings.py
imports: from __future__ import annotations
  import logging
  import re
  from typing import Any, Iterable, overload
  from urllib.parse import quote_plus
label_desc: Use image node_id 3 for calling a global function with example usage: snakify(name, sep) and returns: name