code: def spawn_shell(self, context_file, tmpdir, rcfile=None, norc=False,
                      stdin=False, command=None, env=None, quiet=False,
                      pre_command=None, add_rez=True,
                      package_commands_sourced_first=None, **Popen_args):
          
          raise NotImplementedError
docs: Spawn a possibly interactive subshell.
          Args:
              context:_file File that must be sourced in the new shell, this
                  configures the Rez environment.
              tmpdir: Tempfiles, if needed, should be created within this path.
              rcfile: Custom startup script.
              norc: Don't run startup scripts. Overrides rcfile.
              stdin: If True, read commands from stdin in a non-interactive shell.
                  If a different non-False value, such as subprocess.PIPE, the same
                  occurs, but stdin is also passed to the resulting subprocess.Popen
                  object.
              command: If not None, execute this command in a non-interactive shell.
                  If an empty string, don't run a command, but don't open an
                  interactive shell either.
              env: Environ dict to execute the shell within; uses the current
                  environment if None.
              quiet: If True, don't show the configuration summary, and suppress
                  any stdout from startup scripts.
              pre_command: Command to inject before the shell command itself. This
                  is for internal use.
              add_rez: If True, assume this shell is being used with rez, and do
                  things such as set the prompt etc.
              package_commands_sourced_first: If True, source the context file before
                  sourcing startup scripts (such as .bashrc). If False, source
                  the context file AFTER. If None, use the configured setting.
              popen_args: args to pass to the shell process object constructor.
  
          Returns:
              A subprocess.Popen object representing the shell process.