docs: def process(self, pq):
          """
          :arg PlaceQuery pq: PlaceQuery instance
          :returns: PlaceQuery instance with :py:attr:`query`
                    converted to individual elements
          """
          if pq.query != '':
              postcode = address = city = ''  # define the vars we'll use
  
              # global regex postcode search, pop off last result
              postcode_matches = self.re_UK_postcode.findall(pq.query)
              if len(postcode_matches) > 0:
                  postcode = postcode_matches[-1]
  
              query_parts = [part.strip() for part in pq.query.split(',')]
  
              if postcode is not '' and re.search(postcode, query_parts[0]):
                  # if postcode is in the first part of query_parts, there are probably no commas
                  # get just the part before the postcode
                  part_before_postcode = query_parts[0].split(postcode)[0].strip()
                  if self.re_blank.search(part_before_postcode) is None:
                      address = part_before_postcode
                  else:
                      address = query_parts[0]  # perhaps it isn't really a postcode (apt num, etc)
              else:
                  address = query_parts[0]  # no postcode to worry about
  
              for part in query_parts[1:]:
                  part = part.strip()
                  if postcode is not '' and re.search(postcode, part) is not None:
                      part = part.replace(postcode, '').strip()  # if postcode is in part, remove it
  
                  if self.re_unit_numbered.search(part) is not None:
                      # test to see if part is secondary address, like "Ste 402"
                      address = self._comma_join(address, part)
                  elif self.re_unit_not_numbered.search(part) is not None:
                      # ! might cause problems if 'Lower' or 'Upper' is in the city name
                      # test to see if part is secondary address, like "Basement"
                      address = self._comma_join(address, part)
                  else:
                      city = self._comma_join(city, part)  # it's probably a city (or "City, County")
              # set pq parts if they aren't already set (we don't want to overwrite explicit params)
              pq.postal = pq.postal or postcode
              pq.address = pq.address or address
              pq.city = pq.city or city
  
          return pq