def _resize(self, new_rect):
<EOL>if int(new_rect.width) < int(self.claimed_width):<EOL><INDENT>raise UsageError(f"<STR_LIT>")<EOL><DEDENT>if int(new_rect.height) < int(self.claimed_height):<EOL><INDENT>raise UsageError(f"<STR_LIT>")<EOL><DEDENT>self.__assigned_rect = new_rect<EOL>self._realign()<EOL>
Change the size or shape of this widget.

This method is triggered by _repack(), which recursively climbs the 
widget hierarchy to make space for the widgets that need it, then calls 
_resize() on any widget that need to adapt to the new space allocation.

This method should not be called outside of a repack, because it 
assumes that the claims have already been updated.