docs: def is_type_hint(stmt: str) -> bool:
      '''Try to differentiate
  
      var: type = value
  
      with
  
      action: input = whatever
  
      '''
      if stmt.count('=') > 1:
          return False
  
      if ':' not in stmt:
          return False
  
      #
      # action:
      if not stmt.split(':')[1].strip():
          return False
  
      #
      # action: int
      #
      # or
      #
      # input: variable
      #
      if '=' not in stmt:
          action, par = [x.strip() for x in stmt.split(':', 1)]
      else:
          # one parameter?
          #
          # action: input={'a': b}
          #
          action, par = [x.strip() for x in stmt.split('=', 1)[0].split(':', 1)]
  
      if action in SOS_DIRECTIVES:
          return False
      if par in SOS_ACTION_OPTIONS:
          return False
  
      # if par is something like List[Any], or 'classname'
      if not par.isidentifier():
          return True
  
      # if action is a builtin function, such as sort, it cannot be
      # a variable assignment.
      if action in dir(builtins):
          return False
  
      # if action is registered
      global _action_list
      if _action_list is None:
          import pkg_resources
          _action_list = [
              x.name for x in pkg_resources.iter_entry_points(group='sos_actions')
          ]
      if action in _action_list:
          return False
  
      # if par is something like List, Tuple, str
      if par in dir(typing) or par in dir(builtins):
          return True
  
      # if not quite sure???
      env.logger.debug(
          f"Failed to tell if '{stmt}' is an assignment with type hint or function in script format. Assuming type hint."
      )
      # regular function written in this format?
      return True