def append_panel(panels, size_x, size_y, max_col=12):
    """
    Appends a panel to the list of panels. Finds the highest palce at the left for the new panel.
    :param panels:
    :param size_x:
    :param size_y:
    :param max_col:
    :return: a new panel or None if it is not possible to place a panel with such size_x
    """
    bottom_lines = bottoms(panels)
    shape = find_shape(bottom_lines, max_col)
    lines = longest_lines(shape)
    line = find_place(lines, size_x)
    if not line:
        return
    panel = {
        'col': line['col'],
        'row': line['row'],
        'size_x': size_x,
        'size_y': size_y,
    }
    panels.append(panel)
    return panel
def append_panel ( panels , size_x , size_y , max_col = 12 ) : bottom_lines = bottoms ( panels ) shape = find_shape ( bottom_lines , max_col ) lines = longest_lines ( shape ) line = find_place ( lines , size_x ) if not line : return panel = { 'col' : line [ 'col' ] , 'row' : line [ 'row' ] , 'size_x' : size_x , 'size_y' : size_y , } panels . append ( panel ) return panel
Appends a panel to the list of panels. Finds the highest palce at the left for the new panel.
    :param panels:
    :param size_x:
    :param size_y:
    :param max_col:
    :return: a new panel or None if it is not possible to place a panel with such size_x