this returns an environment dictionary we want to use to run the command

        this will also create a fake pgpass file in order to make it possible for
        the script to be passwordless

def _get_env(self):
        """this returns an environment dictionary we want to use to run the command

        this will also create a fake pgpass file in order to make it possible for
        the script to be passwordless"""
        if hasattr(self, 'env'): return self.env

        # create a temporary pgpass file
        pgpass = self._get_file()
        # format: http://www.postgresql.org/docs/9.2/static/libpq-pgpass.html
        pgpass.write('*:*:*:{}:{}\n'.format(self.username, self.password).encode("utf-8"))
        pgpass.close()
        self.env = dict(os.environ)
        self.env['PGPASSFILE'] = pgpass.name

        # we want to assure a consistent environment
        if 'PGOPTIONS' in self.env: del self.env['PGOPTIONS']
        return self.env