'Path to workflow\'s root directory (where ``info.plist`` is).
:returns: full path to workflow root directory
:rtype: ``unicode``'

@property
def workflowdir(self):

    if (not self._workflowdir):
        candidates = [os.path.abspath(os.getcwdu()), os.path.dirname(os.path.abspath(os.path.dirname(__file__)))]
        for dirpath in candidates:
            dirpath = self.decode(dirpath)
            while True:
                if os.path.exists(os.path.join(dirpath, u'info.plist')):
                    self._workflowdir = dirpath
                    break
                elif (dirpath == u'/'):
                    break
                dirpath = os.path.dirname(dirpath)
            if self._workflowdir:
                break
        if (not self._workflowdir):
            raise IOError(u"'info.plist'    not    found    in    directory    tree")
    return self._workflowdir
