<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def footprints_from_polygon(polygon, footprint_type='building', retain_invalid=False):
 """ Get footprints within some polygon. Parameters polygon : shapely Polygon or MultiPolygon the shape to get data within. coordinates should be in units of latitude-longitude degrees. footprint_type : string type of footprint to be downloaded. OSM tag key e.g. 'building', 'landuse', 'place', etc. retain_invalid : bool if False discard any footprints with an invalid geometry Returns ------- GeoDataFrame """


    return create_footprints_gdf(polygon=polygon, footprint_type=footprint_type, 
                                 retain_invalid=retain_invalid)