code: def make_multi_metatile(parent, tiles, date_time=None):
      
  
      assert parent is not None, \
          "Parent tile must be provided and not None to make a metatile."
  
      if len(tiles) == 0:
          return []
  
      if date_time is None:
          date_time = gmtime()[0:6]
  
      layer = tiles[0]['layer']
  
      buf = StringIO.StringIO()
      with zipfile.ZipFile(buf, mode='w') as z:
          for tile in tiles:
              assert tile['layer'] == layer
  
              coord = tile['coord']
  
              # change in zoom level from parent to coord. since parent should
              # be a parent, its zoom should always be equal or smaller to that
              # of coord.
              delta_z = coord.zoom - parent.zoom
              assert delta_z >= 0, "Coordinates must be descendents of parent"
  
              # change in row/col coordinates are relative to the upper left
              # coordinate at that zoom. both should be positive.
              delta_row = coord.row - (int(parent.row) << delta_z)
              delta_column = coord.column - (int(parent.column) << delta_z)
              assert delta_row >= 0, \
                  "Coordinates must be contained by their parent, but " + \
                  "row is not."
              assert delta_column >= 0, \
                  "Coordinates must be contained by their parent, but " + \
                  "column is not."
  
              tile_name = '%d/%d/%d.%s' % \
                  (delta_z, delta_column, delta_row, tile['format'].extension)
              tile_data = tile['tile']
              info = zipfile.ZipInfo(tile_name, date_time)
              z.writestr(info, tile_data, zipfile.ZIP_DEFLATED)
  
      return [dict(tile=buf.getvalue(), format=zip_format, coord=parent,
                   layer=layer)]
docs: Make a metatile containing a list of tiles all having the same layer,
      with coordinates relative to the given parent. Set date_time to a 6-tuple
      of (year, month, day, hour, minute, second) to set the timestamp for
      members. Otherwise the current wall clock time is used.