def as_geometry_list(geometry, singletype, multitype):
    """Convenience method to return a list with one or more
    
    Polygons/LineString/Point from a given Polygon/LineString/Point
    or MultiPolygon/MultiLineString/MultiPoint.
    
    Parameters
    ----------
    polygon : list or Polygon or MultiPolygon
        Object to be converted
    
    Returns
    -------
    list
        list of Polygons
    """
    if isinstance(geometry, singletype):
        return [geometry]
    elif isinstance(geometry, multitype):
        return [p for p in geometry]
    elif isinstance(geometry, list):
        lst = []
        for item in geometry:
            lst.extend(as_geometry_list(item, singletype, multitype))
        return lst
    else:
        raise TypeError(f'Expected {singletype} or {multitype}. Got '
                        f'"{type(geometry)}"')