def expand(self, s):
        """
        Expands all occurrences of "@{...}" within the string with the actual values currently stored
        in internal storage.

        :param s: the string to expand
        :type s: str
        :return: the expanded string
        :rtype: str
        """
        result = s
        while result.find("@{") > -1:
            start = result.index("@{")
            end = result.index("}", start)
            name = result[start + 2:end]
            value = self.storage[name]
            if value is None:
                raise("Storage value '" + name + "' not present, failed to expand string: " + s)
            else:
                result = result[0:start] + str(value) + result[end + 1:]
        return result
def expand ( self , s ) : result = s while result . find ( "@{" ) > - 1 : start = result . index ( "@{" ) end = result . index ( "}" , start ) name = result [ start + 2 : end ] value = self . storage [ name ] if value is None : raise ( "Storage value '" + name + "' not present, failed to expand string: " + s ) else : result = result [ 0 : start ] + str ( value ) + result [ end + 1 : ] return result
Expands all occurrences of "@{...}" within the string with the actual values currently stored
        in internal storage.

        :param s: the string to expand
        :type s: str
        :return: the expanded string
        :rtype: str