def load(self):

        self._common_kwargs = self._build_common_election_kwargs()
        self._common_kwargs['reporting_level'] = 'precinct'
        results = []

        with self._file_handle as csvfile:
            party_flag = 0
            district_flag = 0
            reader = unicodecsv.DictReader(
                csvfile, encoding='latin-1', delimiter=',')

            # Declare column indices before the loop so we aren't making
            # a method call for each line in the file

            self.header = [x.replace('"', '') for x in reader.fieldnames]
            self.votes_index = normalize_votes(self.header)
            self.contest_index = normalize_contest(self.header)
            self.candidate_index = normalize_candidate(
                self.header)
            self.precinct_index = normalize_precinct(
                self.header)
            try:
                self.party_index = normalize_party(self.header)
            except __HOLE__:
                pass

            for row in reader:
                if self._skip_row(row):
                    continue
                else:
                    self.jurisdiction = row[self.precinct_index].strip()
                    votes = int(row[self.votes_index].strip())
                    rr_kwargs = self._common_kwargs.copy()
                    rr_kwargs.update(self._build_contest_kwargs(row))
                    rr_kwargs.update(self._build_candidate_kwargs(row))
                    rr_kwargs.update({
                        'reporting_level': 'precinct',
                        'votes': votes,
                        'ocd_id': "{}".format(self._get_ocd_id(
                            self.jurisdiction,
                            precinct=row[self.precinct_index]))
                    })
                    try:
                        rr_kwargs.update({
                            'party': row[self.party_index].strip()
                        })
                    except (IndexError, KeyError):
                        party_flag = 1
                    try:
                        rr_kwargs.update(
                            {'district': normalize_district(self.header, row[self.contest_index], row)})
                    except KeyError:
                        district_flag = 1
                    results.append(RawResult(**rr_kwargs))
            if 0 is not party_flag:
                logger.info('Some rows did not contain party info.')
            if 0 is not district_flag:
                logger.info('Some rows did not contain district info.')

        """
        Many county files *only* have local races, such as schoolboard or
        fire chief races. Since openstates does not want these results,
        the entire files end up being skipped. To clarify the error message,
        we print our own if RawResult tries to insert nothing into mongodb

        """

        try:
            RawResult.objects.insert(results)
        except errors.InvalidOperation:
            logger.error('\tNo raw results loaded')
dataset/ETHPy150Open openelections/openelections-core/openelex/us/wa/load.py/WALoaderPrecincts.load