code: def _is_compliant_shape(a, b):
      """Compares the shapes of two arguments.
  
      If size of a dimensions is None, this dimension size is ignored.
  
      Example:
  
      >>> assert _is_compliant_shape((1, 2, 3), (1, 2, 3))
      >>> assert _is_compliant_shape((1, 2, 3), (1, None, 3))
      >>> assert not _is_compliant_shape((1, 2, 3), (1, 10, 3))
      >>> assert not _is_compliant_shape((1, 2), (1,))
  
      :return: True, if the shapes are compliant
      """
      if len(a) != len(b):
          return False
      for i in range(len(a)):
          if a[i] and b[i]:
              if a[i] != b[i]:
                  return False
      return True
  
imports: from abc import abstractmethod
  from io import BytesIO
  import numpy
label_desc: Use image node_id 1 for calling a global function with example usage: _is_compliant_shape(a, b) and returns: True, False, False