code: def create_pgpass_file(connection_string_or_info):
      
      info = pgutil.get_connection_info(connection_string_or_info)
      if "password" not in info:
          return pgutil.create_connection_string(info)
      linekey = "{host}:{port}:{dbname}:{user}:".format(
          host=info.get("host", "localhost"),
          port=info.get("port", 5432),
          user=info.get("user", ""),
          dbname=info.get("dbname", "*"))
      pwline = "{linekey}{password}".format(linekey=linekey, password=info.pop("password"))
      pgpass_path = os.path.join(os.environ.get("HOME"), ".pgpass")
      if os.path.exists(pgpass_path):
          with open(pgpass_path, "r") as fp:
              pgpass_lines = fp.read().splitlines()
      else:
          pgpass_lines = []
      if pwline in pgpass_lines:
          LOG.debug("Not adding authentication data to: %s since it's already there", pgpass_path)
      else:
          # filter out any existing lines with our linekey and add the new line
          pgpass_lines = [line for line in pgpass_lines if not line.startswith(linekey)] + [pwline]
          content = "\n".join(pgpass_lines) + "\n"
          with open(pgpass_path, "w") as fp:
              os.fchmod(fp.fileno(), 0o600)
              fp.write(content)
          LOG.debug("Wrote %r to %r", pwline, pgpass_path)
      return pgutil.create_connection_string(info)
docs: Look up password from the given object which can be a dict or a
      string and write a possible password in a pgpass file;
      returns a connection_string without a password in it