⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 __init__.py

📁 Requirement =====================================================================================
💻 PY
📖 第 1 页 / 共 4 页
字号:
        self.body.append('</td>\n')    def visit_field_list(self, node):        self.context.append((self.compact_field_list, self.compact_p))        self.compact_p = None        if 'compact' in node['classes']:            self.compact_field_list = 1        elif (self.settings.compact_field_lists              and 'open' not in node['classes']):            self.compact_field_list = 1        if self.compact_field_list:            for field in node:                field_body = field[-1]                assert isinstance(field_body, nodes.field_body)                children = [n for n in field_body                            if not isinstance(n, nodes.Invisible)]                if not (len(children) == 0 or                        len(children) == 1 and                        isinstance(children[0], nodes.paragraph)):                    self.compact_field_list = 0                    break        self.body.append(self.starttag(node, 'table', frame='void',                                       rules='none',                                       CLASS='docutils field-list'))        self.body.append('<col class="field-name" />\n'                         '<col class="field-body" />\n'                         '<tbody valign="top">\n')    def depart_field_list(self, node):        self.body.append('</tbody>\n</table>\n')        self.compact_field_list, self.compact_p = self.context.pop()    def visit_field_name(self, node):        atts = {}        if self.in_docinfo:            atts['class'] = 'docinfo-name'        else:            atts['class'] = 'field-name'        if ( self.settings.field_name_limit             and len(node.astext()) > self.settings.field_name_limit):            atts['colspan'] = 2            self.context.append('</tr>\n<tr><td>&nbsp;</td>')        else:            self.context.append('')        self.body.append(self.starttag(node, 'th', '', **atts))    def depart_field_name(self, node):        self.body.append(':</th>')        self.body.append(self.context.pop())    def visit_figure(self, node):        atts = {'class': 'figure'}        if node.get('width'):            atts['style'] = 'width: %spx' % node['width']        if node.get('align'):            atts['align'] = node['align']        self.body.append(self.starttag(node, 'div', **atts))    def depart_figure(self, node):        self.body.append('</div>\n')    def visit_footer(self, node):        self.context.append(len(self.body))    def depart_footer(self, node):        start = self.context.pop()        footer = [self.starttag(node, 'div', CLASS='footer'),                  '<hr class="footer" />\n']        footer.extend(self.body[start:])        footer.append('\n</div>\n')        self.footer.extend(footer)        self.body_suffix[:0] = footer        del self.body[start:]    def visit_footnote(self, node):        self.body.append(self.starttag(node, 'table',                                       CLASS='docutils footnote',                                       frame="void", rules="none"))        self.body.append('<colgroup><col class="label" /><col /></colgroup>\n'                         '<tbody valign="top">\n'                         '<tr>')        self.footnote_backrefs(node)    def footnote_backrefs(self, node):        backlinks = []        backrefs = node['backrefs']        if self.settings.footnote_backlinks and backrefs:            if len(backrefs) == 1:                self.context.append('')                self.context.append(                    '<a class="fn-backref" href="#%s" name="%s">'                    % (backrefs[0], node['ids'][0]))            else:                i = 1                for backref in backrefs:                    backlinks.append('<a class="fn-backref" href="#%s">%s</a>'                                     % (backref, i))                    i += 1                self.context.append('<em>(%s)</em> ' % ', '.join(backlinks))                self.context.append('<a name="%s">' % node['ids'][0])        else:            self.context.append('')            self.context.append('<a name="%s">' % node['ids'][0])        # If the node does not only consist of a label.        if len(node) > 1:            # If there are preceding backlinks, we do not set class            # 'first', because we need to retain the top-margin.            if not backlinks:                node[1]['classes'].append('first')            node[-1]['classes'].append('last')    def depart_footnote(self, node):        self.body.append('</td></tr>\n'                         '</tbody>\n</table>\n')    def visit_footnote_reference(self, node):        href = '#' + node['refid']        format = self.settings.footnote_references        if format == 'brackets':            suffix = '['            self.context.append(']')        else:            assert format == 'superscript'            suffix = '<sup>'            self.context.append('</sup>')        self.body.append(self.starttag(node, 'a', suffix,                                       CLASS='footnote-reference', href=href))    def depart_footnote_reference(self, node):        self.body.append(self.context.pop() + '</a>')    def visit_generated(self, node):        pass    def depart_generated(self, node):        pass    def visit_header(self, node):        self.context.append(len(self.body))    def depart_header(self, node):        start = self.context.pop()        header = [self.starttag(node, 'div', CLASS='header')]        header.extend(self.body[start:])        header.append('\n<hr class="header"/>\n</div>\n')        self.body_prefix.extend(header)        self.header.extend(header)        del self.body[start:]    def visit_hint(self, node):        self.visit_admonition(node, 'hint')    def depart_hint(self, node):        self.depart_admonition()    def visit_image(self, node):        atts = {}        atts['src'] = node['uri']        if node.has_key('width'):            atts['width'] = node['width']        if node.has_key('height'):            atts['height'] = node['height']        if node.has_key('scale'):            if Image and not (node.has_key('width')                              and node.has_key('height')):                try:                    im = Image.open(str(atts['src']))                except (IOError, # Source image can't be found or opened                        UnicodeError):  # PIL doesn't like Unicode paths.                    pass                else:                    if not atts.has_key('width'):                        atts['width'] = str(im.size[0])                    if not atts.has_key('height'):                        atts['height'] = str(im.size[1])                    del im            for att_name in 'width', 'height':                if atts.has_key(att_name):                    match = re.match(r'([0-9.]+)(\S*)$', atts[att_name])                    assert match                    atts[att_name] = '%s%s' % (                        float(match.group(1)) * (float(node['scale']) / 100),                        match.group(2))        style = []        for att_name in 'width', 'height':            if atts.has_key(att_name):                if re.match(r'^[0-9.]+$', atts[att_name]):                    # Interpret unitless values as pixels.                    atts[att_name] += 'px'                style.append('%s: %s;' % (att_name, atts[att_name]))                del atts[att_name]        if style:            atts['style'] = ' '.join(style)        atts['alt'] = node.get('alt', atts['src'])        if (isinstance(node.parent, nodes.TextElement) or            (isinstance(node.parent, nodes.reference) and             not isinstance(node.parent.parent, nodes.TextElement))):            # Inline context or surrounded by <a>...</a>.            suffix = ''        else:            suffix = '\n'        if node.has_key('align'):            if node['align'] == 'center':                # "align" attribute is set in surrounding "div" element.                self.body.append('<div align="center" class="align-center">')                self.context.append('</div>\n')                suffix = ''            else:                # "align" attribute is set in "img" element.                atts['align'] = node['align']                self.context.append('')            atts['class'] = 'align-%s' % node['align']        else:            self.context.append('')        self.body.append(self.emptytag(node, 'img', suffix, **atts))    def depart_image(self, node):        self.body.append(self.context.pop())    def visit_important(self, node):        self.visit_admonition(node, 'important')    def depart_important(self, node):        self.depart_admonition()    def visit_inline(self, node):        self.body.append(self.starttag(node, 'span', ''))    def depart_inline(self, node):        self.body.append('</span>')    def visit_label(self, node):        self.body.append(self.starttag(node, 'td', '%s[' % self.context.pop(),                                       CLASS='label'))    def depart_label(self, node):        self.body.append(']</a></td><td>%s' % self.context.pop())    def visit_legend(self, node):        self.body.append(self.starttag(node, 'div', CLASS='legend'))    def depart_legend(self, node):        self.body.append('</div>\n')    def visit_line(self, node):        self.body.append(self.starttag(node, 'div', suffix='', CLASS='line'))        if not len(node):            self.body.append('<br />')    def depart_line(self, node):        self.body.append('</div>\n')    def visit_line_block(self, node):        self.body.append(self.starttag(node, 'div', CLASS='line-block'))    def depart_line_block(self, node):        self.body.append('</div>\n')    def visit_list_item(self, node):        self.body.append(self.starttag(node, 'li', ''))        if len(node):            node[0]['classes'].append('first')    def depart_list_item(self, node):        self.body.append('</li>\n')    def visit_literal(self, node):        """Process text to prevent tokens from wrapping."""        self.body.append(            self.starttag(node, 'tt', '', CLASS='docutils literal'))        text = node.astext()        for token in self.words_and_spaces.findall(text):            if token.strip():                # Protect text like "--an-option" from bad line wrapping:                self.body.append('<span class="pre">%s</span>'                                 % self.encode(token))            elif token in ('\n', ' '):                # Allow breaks at whitespace:                self.body.append(token)            else:                # Protect runs of multiple spaces; the last space can wrap:                self.body.append('&nbsp;' * (len(token) - 1) + ' ')        self.body.append('</tt>')        # Content already processed:        raise nodes.SkipNode    def visit_literal_block(self, node):        self.body.append(self.starttag(node, 'pre', CLASS='literal-block'))    def depart_literal_block(self, node):        self.body.append('\n</pre>\n')    def visit_meta(self, node):        meta = self.emptytag(node, 'meta', **node.non_default_attributes())        self.add_meta(meta)    def depart_meta(self, node):        pass    def add_meta(self, tag):        self.meta.append(tag)        self.head.append(tag)    def visit_note(self, node):        self.visit_admonition(node, 'note')    def depart_note(self, node):        self.depart_admonition()    def visit_option(self, node):        if self.context[-1]:            self.body.append(', ')        self.body.append(self.starttag(node, 'span', '', CLASS='option'))    def depart_option(self, node):        self.body.append('</span>')        self.context[-1] += 1    def visit_option_argument(self, node):        self.body.append(node.get('delimiter', ' '))        self.body.append(self.starttag(node, 'var', ''))    def depart_option_argument(self, node):        self.body.append('</var>')    def visit_option_group(self, node):        atts = {}        if ( self.settings.option_limit             and len(node.astext()) > self.settings.option_limit):            atts['colspan'] = 2            self.context.append('</tr>\n<tr><td>&nbsp;</td>')        else:            self.context.append('')        self.body.append(            self.starttag(node, 'td', CLASS='option-group', **atts))        self.body.append('<kbd>')        self.context.append(0)          # count number of options    def depart_option_group(self, node):        self.context.pop()        self.body.append('</kbd></td>\n')        self.body.append(self.context.pop())    def visit_option_list(self, node):        self.body.append(              self.starttag(node, 'table', CLASS='docutils option-list',                            frame="void", rules="none"))        self.body.append('<col class="option" />\n'                         '<col class="description" />\n'                         '<tbody valign="top">\n')    def depart_option_list(self, node):        self.body.append('</tbody>\n</table>\n')    def visit_option_list_item(self, node):        self.body.append(self.starttag(node, 'tr', ''))    def depart_option_list_item(self, node):        self.body.append('</tr>\n')    def visit_option_string(self, node):        pass    def depart_option_string(self, node):        pass    def visit_organization(self, node):        self.visit_docinfo_item(node, 'organization')    def depart_organization(self, node):        self.depart_docinfo_item()    def should_be_compact_paragraph(self, node):        """        Determine if the <p> tags around paragraph ``node`` can be omitted.        """        if (isinstance(node.parent, nodes.document) or            isinstance(node.parent, nodes.compound)):            # Never compact paragraphs in document or compound.            return 0        for key, value in node.attlist():            if (node.is_not_default(key) and                not (key == 'classes' and value in                     ([], ['first'], ['last'], ['first', 'last']))):                # Attribute which needs to survive.                return 0        first = isinstance(node.parent[0], nodes.label) # skip label        for child in node.parent.children[first:]:            # only first paragraph can be compact            if isinstance(child, nodes.Invisible):                continue            if child is node:                break            return 0        if ( self.compact_simple             or self.compact_field_list             or (self.compact_p                 and (len(node.parent) == 1                      or len(node.parent) == 2                      and isinstance(node.parent[0], nodes.label)))):            return 1

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -