def set_cell_alignment(self, new_alignment):
self._cell_alignment = new_alignment<EOL>self._repack()<EOL>
Specify how widgets should be aligned within their cells.

See `set_alignment()` for information on the possible values for this 
setting.  Note that a widget's alignment value just applies to 
itself, but the "cell alignment" value applies to the grid's 
children.  This is unusual, and brings up the question of what happens 
when two alignment settings apply to the same child widget:

The answer is that the grid's cell alignment is applied before the 
alignments of any of its children.  This means that grid can limit the 
space available to the children, potentially making the children's 
alignment values irrelevant.  For example, if a grid has a cell 
alignment of:

- 'center': All children will be centered within their cells, 
  regardless of their individual alignment values.  This is because the 
  'center' alignment assigns the minimum possible space to a widget, so 
  there is no room for further alignment.

- 'fill horz': All children will be centered vertically within their 
  cells, but their horizontal alignments will depend on their 
  individual alignment values.  For example, children with alignments of 'top 
  left', 'left', and 'bottom left' would all end up centered vertically 
  on the left sides of their cells.

- 'fill': Children will be aligned entirely according to their 
  individual alignment values.  This is the default value (unless 
  `custom_cell_alignment` has been changed) because it provides the 
  most flexibility.