parameters: (self, state)
docstring: This sets the terminal echo mode on or off. Note that anything the
          child sent before the echo will be lost, so you should be sure that
          your input buffer is empty before you call setecho(). For example, the
          following will work as expected::
  
              p = pexpect.spawn('cat')
              p.sendline ('1234') # We will see this twice (once from tty echo and again from cat).
              p.expect (['1234'])
              p.expect (['1234'])
              p.setecho(False) # Turn off tty echo
              p.sendline ('abcd') # We will set this only once (echoed by cat).
              p.sendline ('wxyz') # We will set this only once (echoed by cat)
              p.expect (['abcd'])
              p.expect (['wxyz'])
  
          The following WILL NOT WORK because the lines sent before the setecho
          will be lost::
  
              p = pexpect.spawn('cat')
              p.sendline ('1234') # We will see this twice (once from tty echo and again from cat).
              p.setecho(False) # Turn off tty echo
              p.sendline ('abcd') # We will set this only once (echoed by cat).
              p.sendline ('wxyz') # We will set this only once (echoed by cat)
              p.expect (['1234'])
              p.expect (['1234'])
              p.expect (['abcd'])
              p.expect (['wxyz'])
docstring_summary: This sets the terminal echo mode on or off. Note that anything the
          child sent before the echo will be lost, so you should be sure that
          your input buffer is empty before you call setecho(). For example, the
          following will work as expected::
docstring_tokens: This sets the terminal echo mode on or off . Note that anything the child sent before the echo will be lost so you should be sure that your input buffer is empty before you call setecho () . For example the following will work as expected ::
function: def setecho(self, state):
          """This sets the terminal echo mode on or off. Note that anything the
          child sent before the echo will be lost, so you should be sure that
          your input buffer is empty before you call setecho(). For example, the
          following will work as expected::
  
              p = pexpect.spawn('cat')
              p.sendline ('1234') # We will see this twice (once from tty echo and again from cat).
              p.expect (['1234'])
              p.expect (['1234'])
              p.setecho(False) # Turn off tty echo
              p.sendline ('abcd') # We will set this only once (echoed by cat).
              p.sendline ('wxyz') # We will set this only once (echoed by cat)
              p.expect (['abcd'])
              p.expect (['wxyz'])
  
          The following WILL NOT WORK because the lines sent before the setecho
          will be lost::
  
              p = pexpect.spawn('cat')
              p.sendline ('1234') # We will see this twice (once from tty echo and again from cat).
              p.setecho(False) # Turn off tty echo
              p.sendline ('abcd') # We will set this only once (echoed by cat).
              p.sendline ('wxyz') # We will set this only once (echoed by cat)
              p.expect (['1234'])
              p.expect (['1234'])
              p.expect (['abcd'])
              p.expect (['wxyz'])
          """
  
          self.child_fd
          attr = termios.tcgetattr(self.child_fd)
          if state:
              attr[3] = attr[3] | termios.ECHO
          else:
              attr[3] = attr[3] & ~termios.ECHO
          # I tried TCSADRAIN and TCSAFLUSH, but these were inconsistent
          # and blocked on some platforms. TCSADRAIN is probably ideal if it
          # worked.
          termios.tcsetattr(self.child_fd, termios.TCSANOW, attr)
function_tokens: def setecho ( self , state ) : self . child_fd attr = termios . tcgetattr ( self . child_fd ) if state : attr [ 3 ] = attr [ 3 ] | termios . ECHO else : attr [ 3 ] = attr [ 3 ] & ~ termios . ECHO # I tried TCSADRAIN and TCSAFLUSH, but these were inconsistent # and blocked on some platforms. TCSADRAIN is probably ideal if it # worked. termios . tcsetattr ( self . child_fd , termios . TCSANOW , attr )