code: def footprints_from_place(place, footprint_type='building', retain_invalid=False):
      
  
      city = gdf_from_place(place)
      polygon = city['geometry'].iloc[0]
      return create_footprints_gdf(polygon, retain_invalid=retain_invalid,
                                   footprint_type=footprint_type)
docs: Get footprints within the boundaries of some place.
  
      The query must be geocodable and OSM must have polygon boundaries for the
      geocode result. If OSM does not have a polygon for this place, you can
      instead get its footprints using the footprints_from_address function, which
      geocodes the place name to a point and gets the footprints within some distance
      of that point.
  
      Parameters
      ----------
      place : string
          the query to geocode to get geojson boundary polygon
      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