<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def directory_create_temp(self, template_name, mode, path, secure):
 """Creates a temporary directory in the guest. in template_name of type str Template for the name of the directory to create. This must contain at least one 'X' character. The first group of consecutive 'X' characters in the template will be replaced by a random alphanumeric string to produce a unique name. in mode of type int The UNIX-style access mode mask to create the directory with. Whether/how all three access groups and associated access rights are realized is guest OS dependent. The API does the best it can on each OS. This parameter is ignore if the @a secure parameter is set to @c true. It is strongly recommended to use 0700. in path of type str The path to the directory in which the temporary directory should be created. Guest path style. in secure of type bool Whether to fail if the directory can not be securely created. Currently this means that another unprivileged user cannot manipulate the path specified or remove the temporary directory after it has been created. Also causes the mode specified to be ignored. May not be supported on all guest types. return directory of type str On success this will contain the full path to the created directory. Guest path style. raises :class:`VBoxErrorNotSupported` The operation is not possible as requested on this particular guest type. raises :class:`OleErrorInvalidarg` Invalid argument. This includes an incorrectly formatted template, or a non-absolute path. raises :class:`VBoxErrorIprtError` The temporary directory could not be created. Possible reasons include a non-existing path or an insecure path when the secure option was requested. """

        if not isinstance(template_name, basestring):
            raise TypeError("template_name can only be an instance of type basestring")
        if not isinstance(mode, baseinteger):
            raise TypeError("mode can only be an instance of type baseinteger")
        if not isinstance(path, basestring):
            raise TypeError("path can only be an instance of type basestring")
        if not isinstance(secure, bool):
            raise TypeError("secure can only be an instance of type bool")
        directory = self._call("directoryCreateTemp",
                     in_p=[template_name, mode, path, secure])
        return directory