コード例 #1
0
ファイル: markup.py プロジェクト: yask123/final
    def _open(self, bind, kwargs):
        """Return a ``'<partial'`` opener tag with no terminator."""
        contents = kwargs.pop('contents', None)

        if PY2:
            attributes = _unicode_keyed(kwargs)
        else:
            attributes = kwargs
        tagname = self.tagname
        new_contents = transform(
            tagname, attributes, contents, self._context, bind)

        if not new_contents:
            new_contents = u''
        elif hasattr(new_contents, '__html__'):
            new_contents = _unpack(new_contents)
        self.contents = self._markup(new_contents)

        if self._context[u'ordered_attributes']:
            pairs = sorted(attributes.items(), key=_attribute_sort_key)
        else:
            pairs = iteritems(attributes)
        guts = u' '.join(u'%s="%s"' % (k, _attribute_escape(v))
                         for k, v in pairs)
        if guts:
            return u'<' + tagname + u' ' + guts
        else:
            return u'<' + tagname
コード例 #2
0
ファイル: genshi.py プロジェクト: yask123/final
def _simplify_stream(stream, ctxt, vars):
    # consumes stream, send a list
    parts = []
    for idx, (kind, data, pos) in enumerate(stream):
        if kind is TEXT:
            parts.append(data)
        elif kind is EXPR:
            value = _eval_expr(data, ctxt, vars)
            if hasattr(value, '__html__'):
                value = _unpack(value)
            if hasattr(value, '__next__') or hasattr(value, 'next'):
                while hasattr(value, '__next__') or hasattr(value, 'next'):
                    value = list(value)
                    value = _simplify_stream(value, ctxt, vars)
                if not isinstance(value, text_type):
                    stream[idx:idx + 1] = value
                else:
                    stream[idx] = (TEXT, value, pos)
            elif isinstance(value, bytestring_type):
                value = value.decode('utf8', 'replace')
            elif not isinstance(value, text_type):
                value = text_type(value)
            parts.append(value)
        else:
            return stream
    return u''.join(parts)
コード例 #3
0
    def _open(self, bind, kwargs):
        """Return a ``'<partial'`` opener tag with no terminator."""
        contents = kwargs.pop('contents', None)

        if PY2:
            attributes = _unicode_keyed(kwargs)
        else:
            attributes = kwargs
        tagname = self.tagname
        new_contents = transform(tagname, attributes, contents, self._context,
                                 bind)

        if not new_contents:
            new_contents = u''
        elif hasattr(new_contents, '__html__'):
            new_contents = _unpack(new_contents)
        self.contents = self._markup(new_contents)

        if self._context[u'ordered_attributes']:
            pairs = sorted(attributes.items(), key=_attribute_sort_key)
        else:
            pairs = iteritems(attributes)
        guts = u' '.join(u'%s="%s"' % (k, _attribute_escape(v))
                         for k, v in pairs)
        if guts:
            return u'<' + tagname + u' ' + guts
        else:
            return u'<' + tagname
コード例 #4
0
ファイル: genshi.py プロジェクト: Zeii2024/RL
def _simplify_stream(stream, ctxt, vars):
    # consumes stream, send a list
    parts = []
    for idx, (kind, data, pos) in enumerate(stream):
        if kind is TEXT:
            parts.append(data)
        elif kind is EXPR:
            value = _eval_expr(data, ctxt, vars)
            if hasattr(value, '__html__'):
                value = _unpack(value)
            if hasattr(value, '__next__') or hasattr(value, 'next'):
                while hasattr(value, '__next__') or hasattr(value, 'next'):
                    value = list(value)
                    value = _simplify_stream(value, ctxt, vars)
                if not isinstance(value, text_type):
                    stream[idx:idx + 1] = value
                else:
                    stream[idx] = (TEXT, value, pos)
            elif isinstance(value, bytestring_type):
                value = value.decode('utf8', 'replace')
            elif not isinstance(value, text_type):
                value = text_type(value)
            parts.append(value)
        else:
            return stream
    return u''.join(parts)
コード例 #5
0
ファイル: markup.py プロジェクト: dag/flatland
def _attribute_escape(string):
    if not string:
        return u''
    elif hasattr(string, '__html__'):
        return _unpack(string)
    else:
        return string. \
               replace(u'&', u'&amp;'). \
               replace(u'<', u'&lt;'). \
               replace(u'>', u'&gt;'). \
               replace(u'"', u'&quot;')
コード例 #6
0
ファイル: markup.py プロジェクト: mbr/flatland0
def _attribute_escape(string):
    if not string:
        return u''
    elif hasattr(string, '__html__'):
        return _unpack(string)
    else:
        return string. \
               replace(u'&', u'&amp;'). \
               replace(u'<', u'&lt;'). \
               replace(u'>', u'&gt;'). \
               replace(u'"', u'&quot;')
コード例 #7
0
ファイル: markup.py プロジェクト: dag/flatland
 def __call__(self, bind=None, **attributes):
     """Return a complete, closed markup string."""
     header = self._open(bind, attributes)
     contents = self.contents
     if not contents:
         if not self._always_paired:
             if self._context.xml:
                 return self._markup(header + u' />')
             elif self._html_dangle:
                 return self._markup(header + u'>')
     if hasattr(contents, '__html__'):
         contents = _unpack(contents)
     return self._markup(header + u'>' + contents + self._close())
コード例 #8
0
ファイル: markup.py プロジェクト: mbr/flatland0
 def __call__(self, bind=None, **attributes):
     """Return a complete, closed markup string."""
     header = self._open(bind, attributes)
     contents = self.contents
     if not contents:
         if not self._always_paired:
             if self._context.xml:
                 return self._markup(header + u' />')
             elif self._html_dangle:
                 return self._markup(header + u'>')
     if hasattr(contents, '__html__'):
         contents = _unpack(contents)
     return self._markup(header + u'>' + contents + self._close())