code: def __getitem__(self, i: type) -> Optional[Any]:
      target_type = get_origin(i)
      # Check if this is a non-generic type, and return the whole dict if it is
      if target_type is None:
          return self._reg[i]
  
      target_subtypes = get_args(i)
      target_list = self._reg.setdefault(target_type, {})
      for subtype in target_subtypes:
          target_list = target_list.setdefault(subtype, {})
      return target_list
  
file_path: Ciphey/ciphey/iface/_registry.py
imports: from typing import Any, Dict, List, Optional, Set, Tuple, Type, Union
  from .None import _fwd
  from ._modules import *
label_desc: Use image node_id 5 for calling the Registry obj's underlying member method code with example usage: obj.__getitem__(i) and returns: target_list, self