<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def import_locations(self, kml_file):
 """Import KML data files. ``import_locations()`` returns a dictionary with keys containing the section title, and values consisting of :class:`Placemark` objects. It expects data files in KML format, as specified in `KML Reference`_, which is XML such as:: <?xml version="1.0" encoding="utf-8"?> <kml xmlns="http://earth.google.com/kml/2.1"> <Document> <Placemark id="Home"> <name>Home</name> <Point> <coordinates>-0.221,52.015,60</coordinates> </Point> </Placemark> <Placemark id="Cambridge"> <name>Cambridge</name> <Point> <coordinates>0.390,52.167</coordinates> </Point> </Placemark> </Document> </kml> The reader uses the :mod:`ElementTree` module, so should be very fast when importing data. The above file processed by ``import_locations()`` will return the following ``dict`` object:: {"Home": Placemark(52.015, -0.221, 60), "Cambridge": Placemark(52.167, 0.390, None)} Args: kml_file (iter):
 KML data to read Returns: dict: Named locations with optional comments .. _KML Reference: http://code.google.com/apis/kml/documentation/kmlreference.html """

        self._kml_file = kml_file
        data = utils.prepare_xml_read(kml_file, objectify=True)

        for place in data.Document.Placemark:
            name = place.name.text
            coords = place.Point.coordinates.text
            if coords is None:
                logging.info('No coordinates found for %r entry' % name)
                continue
            coords = coords.split(',')
            if len(coords) == 2:
                longitude, latitude = coords
                altitude = None
            elif len(coords) == 3:
                longitude, latitude, altitude = coords
            else:
                raise ValueError('Unable to handle coordinates value %r'
                                 % coords)
            try:
                description = place.description
            except AttributeError:
                description = None
            self[name] = Placemark(latitude, longitude, altitude, name,
                                   description)