docs: def get_locations(self):
          """
          Return the zipcodes mapping as a list of ``{zipcode: location}`` dicts.
          The zipcodes file will be downloaded if necessary.
          """
          if not self.zipcode_mapping:
              self.download(overwrite=False)
  
              zipcode_mapping = {}
              with UnicodeReader(self.file_path, delimiter=';', encoding='latin1') as csv_reader:
                  # Skip header
                  next(csv_reader)
                  for line in csv_reader:
                      zipcode_mapping[int(line[1])] = Location(
                          official_name=line[0],
                          canton=line[5],
                          municipality=line[3]
                      )
              self.zipcode_mapping = zipcode_mapping
  
          return self.zipcode_mapping