code: def safe_name(value):
      typ = type(value)
      if is_any(typ, *safe_name_types):
          return value.__name__
      elif value is typing.Optional:
          return "Optional"
      elif value is typing.Union:
          return "Union"
      elif is_any(typ, *typing_annotation_types):
          return getattr(value, "__name__", None) or getattr(
              value, "_name", None
          )
      else:
          return None
  
imports: from collections import OrderedDict, deque
  from datetime import date, time, datetime
  from decimal import Decimal
  from fractions import Fraction
  import ast
  import enum
  import typing
label_desc: Use image node_id 8 for calling a global function with example usage: safe_name(value) and returns: value, str, str, unknown, None