code: def remove_group(self, group):
          
          if not isinstance(group, Group):
              raise TypeError("group must be Group")
          if group not in self.groups:
              raise ValueError("Group doesn't exist / is not bound to this database.")
          
          #save num entries and children before removal to avoid for loop problems
          num_entries = len(group.entries)
          for i in xrange(num_entries):
              self.remove_entry(group.entries[0])
  
          # Recurse down to remove sub-groups
          num_children = len(group.children)
          for i in xrange(num_children): # We may need to copy this to avoid CME (see below)
              self.remove_group(group.children[0])
          
          # Finally remove group from the parent's list.
          group.parent.children.remove(group) # Concurrent modification exception? Parent in recursive stack is iterating ...
          self.groups.remove(group)
docs: Remove the specified group.