code: def split_range(self):
      
      if self.is_single_namespace:
        return [self]
  
      mid_point = (_namespace_to_ord(self.namespace_start) +
                   _namespace_to_ord(self.namespace_end)) // 2
  
      return [NamespaceRange(self.namespace_start,
                             _ord_to_namespace(mid_point),
                             _app=self.app),
              NamespaceRange(_ord_to_namespace(mid_point+1),
                             self.namespace_end,
                             _app=self.app)]
docs: Splits the NamespaceRange into two nearly equal-sized ranges.
  
      Returns:
        If this NamespaceRange contains a single namespace then a list containing
        this NamespaceRange is returned. Otherwise a two-element list containing
        two NamespaceRanges whose total range is identical to this
        NamespaceRange's is returned.