code: def check_fqn_alias(cls: Union[object, type]) -> Optional[tuple]:
      """Currently, typing.Any has different metaclasses in different versions of Python 🤦‍♂️.
      For Python <=3.10
      Any is an instance of typing._SpecialForm
  
      For Python >=3.11
      Any is an instance of typing._AnyMeta
      Hence adding both the aliases to the type bank.
  
      This would cause issues, when the server and client
      have different python versions.
  
      As their serde is same, we can use the same serde for both of them.
      with aliases for  fully qualified names in type bank
  
      In a similar manner for Enum.
  
      For Python<=3.10:
      Enum is metaclass of enum.EnumMeta
  
      For Python>=3.11:
      Enum is metaclass of enum.EnumType
      """
      if cls == Any:
          return ("typing._AnyMeta", "typing._SpecialForm")
      if cls == EnumMeta:
          return ("enum.EnumMeta", "enum.EnumType")
  
      return None
  
imports: from enum import Enum
  from enum import EnumMeta
  import sys
  import types
  from typing import Any
  from typing import Callable
  from typing import List
  from typing import Optional
  from typing import Set
  from typing import Type
  from typing import Union
  from capnp.lib.capnp import _DynamicStructBuilder
  from pydantic import BaseModel
  import syft
  from ..util.util import get_fully_qualified_name
  from ..util.util import index_syft_by_module_name
  from .capnp import get_capnp_schema
label_desc: Use image node_id 2 for calling a global function with example usage: check_fqn_alias(cls) and returns: None, str,  str, str,  str