code: def type_sorting_key(t):
      """Minimise to None, then non-container types, then container types."""
      if not is_a_type(t):
          raise InvalidArgument("thing=%s must be a type" % (t,))
      if t is None or t is type(None):  # noqa: E721
          return (-1, repr(t))
      if not isinstance(t, type):  # pragma: no cover
          # Some generics in the typing module are not actually types in 3.7
          return (2, repr(t))
      return (int(issubclass(t, abc.Container)), repr(t))
  
imports: from __future__ import absolute_import, division, print_function
  import collections
  import datetime
  import decimal
  import fractions
  import functools
  import inspect
  import io
  import numbers
  import sys
  import uuid
  import hypothesis.strategies
  from hypothesis.errors import InvalidArgument, ResolutionFailed
  from hypothesis.internal.compat import PY2, ForwardRef, abc, binary_type, text_type, typing_root_type
  from hypothesis.strategies._internal.lazy import unwrap_strategies
  from hypothesis.strategies._internal.strategies import OneOfStrategy
label_desc: Use image node_id 1 for calling a global function with example usage: type_sorting_key(t) and returns: int,  repr, unknown,  repr, int,  repr