def send(self, data):
try:<EOL><INDENT>proc = subprocess.Popen(self.cmd, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)<EOL><DEDENT>except OSError as exc:<EOL><INDENT>raise URLError("<STR_LIT>" % ('<STR_LIT:U+0020>'.join(self.cmd), exc))<EOL><DEDENT>else:<EOL><INDENT>stdout, stderr = proc.communicate(data)<EOL>if proc.returncode:<EOL><INDENT>raise URLError("<STR_LIT>" % (<EOL>'<STR_LIT:U+0020>'.join(self.cmd), proc.returncode, stderr,<EOL>))<EOL><DEDENT>yield stdout<EOL><DEDENT>
Open transport, send data, and yield response chunks.