code: def parse_connection_string_libpq(connection_string):
      
      fields = {}
      while True:
          connection_string = connection_string.strip()
          if not connection_string:
              break
          if "=" not in connection_string:
              raise ValueError("expecting key=value format in connection_string fragment {!r}".format(connection_string))
          key, rem = connection_string.split("=", 1)
          if rem.startswith("'"):
              asis, value = False, ""
              for i in range(1, len(rem)):
                  if asis:
                      value += rem[i]
                      asis = False
                  elif rem[i] == "'":
                      break  # end of entry
                  elif rem[i] == "\\":
                      asis = True
                  else:
                      value += rem[i]
              else:
                  raise ValueError("invalid connection_string fragment {!r}".format(rem))
              connection_string = rem[i + 1:]  # pylint: disable=undefined-loop-variable
          else:
              res = rem.split(None, 1)
              if len(res) > 1:
                  value, connection_string = res
              else:
                  value, connection_string = rem, ""
          fields[key] = value
      return fields
docs: parse a postgresql connection string as defined in
      http://www.postgresql.org/docs/current/static/libpq-connect.html#LIBPQ-CONNSTRING