Retrieve a global or user variable
        :param name: The name of the variable to retrieve
        :type  name: str

        :param user: If retrieving a user variable, the user identifier
        :type  user: str or None

        :rtype: str

        :raises UserNotDefinedError: The specified user does not exist
        :raises VarNotDefinedError: The requested variable has not been defined

def get_var(self, name, user=None):
        """
        Retrieve a global or user variable
        :param name: The name of the variable to retrieve
        :type  name: str

        :param user: If retrieving a user variable, the user identifier
        :type  user: str or None

        :rtype: str

        :raises UserNotDefinedError: The specified user does not exist
        :raises VarNotDefinedError: The requested variable has not been defined
        """
        # Retrieve a user variable
        if user is not None:
            if user not in self._users:
                raise UserNotDefinedError

            return self._users[user].get_var(name)

        # Retrieve a global variable
        if name not in self._global_vars:
            raise VarNotDefinedError

        return self._global_vars[name]