def run(cls, reactor, argv, env):
        """
        Run a Python process connected to a new instance of this protocol
        class.  Return the protocol instance.

        The Python process is given C{self.program} on the command line to
        execute, in addition to anything specified by C{argv}.  C{env} is
        the complete environment.
        """
        self = cls()
        reactor.spawnProcess(
            self, pyExe, [pyExe, b"-u", b"-m", self.programName] + argv,
            env=env)
        return self

        Run a Python process connected to a new instance of this protocol
        class.  Return the protocol instance.

        The Python process is given C{self.program} on the command line to
        execute, in addition to anything specified by C{argv}.  C{env} is
        the complete environment.
        
stackoverflow/venv/lib/python3.6/site-packages/twisted/test/test_process.py