コード例 #1
0
ファイル: schemaviewer.py プロジェクト: zogzog/cubicweb
 def visit_schema(self, schema, display_relations=0, skiptypes=()):
     """get a layout for a whole schema"""
     title = Title(self._('Schema %s') % schema.name,
                   klass='titleUnderline')
     layout = Section(children=(title, ))
     esection = Section(
         children=(Title(self._('Entities'), klass='titleUnderline'), ))
     layout.append(esection)
     eschemas = [
         eschema for eschema in schema.entities()
         if not (eschema.final or eschema in skiptypes)
     ]
     for eschema in sorted(eschemas, key=TYPE_GETTER):
         esection.append(self.visit_entityschema(eschema, skiptypes))
     if display_relations:
         title = Title(self._('Relations'), klass='titleUnderline')
         rsection = Section(children=(title, ))
         layout.append(rsection)
         relations = [
             rschema
             for rschema in sorted(schema.relations(), key=TYPE_GETTER)
             if not (rschema.final or rschema.type in skiptypes)
         ]
         keys = [(rschema.type, rschema) for rschema in relations]
         for key, rschema in sorted(keys, key=itemgetter(1)):
             relstr = self.visit_relationschema(rschema)
             rsection.append(relstr)
     return layout
コード例 #2
0
ファイル: utils.py プロジェクト: JacobNinja/exercism-analysis
 def make_reports(self, stats, old_stats):
     """render registered reports"""
     sect = Section("Report", "%s statements analysed." % (self.stats["statement"]))
     for checker in self._reports:
         for reportid, r_title, r_cb in self._reports[checker]:
             if not self.report_is_enabled(reportid):
                 continue
             report_sect = Section(r_title)
             try:
                 r_cb(report_sect, stats, old_stats)
             except EmptyReport:
                 continue
             report_sect.report_id = reportid
             sect.append(report_sect)
     return sect
コード例 #3
0
ファイル: utils.py プロジェクト: Pythunder/pylint
 def make_reports(self, stats, old_stats):
     """render registered reports"""
     sect = Section('Report',
                    '%s statements analysed.' % (self.stats['statement']))
     for checker in self.report_order():
         for reportid, r_title, r_cb in self._reports[checker]:
             if not self.report_is_enabled(reportid):
                 continue
             report_sect = Section(r_title)
             try:
                 r_cb(report_sect, stats, old_stats)
             except EmptyReport:
                 continue
             report_sect.report_id = reportid
             sect.append(report_sect)
     return sect
コード例 #4
0
ファイル: html.py プロジェクト: crankycoder/zamboni-lib
 def _display(self, layout):
     """launch layouts display
     
     overridden from BaseReporter to add insert the messages section
     (in add_message, message is not displayed, just collected so it
     can be displayed in an html table)
     """
     if self.msgs:
         # add stored messages to the layout
         msgs = ['type', 'module', 'object', 'line', 'message']
         msgs += self.msgs
         sect = Section('Messages')
         layout.append(sect)
         sect.append(Table(cols=5, children=msgs, rheaders=1))
         self.msgs = []
     HTMLWriter().format(layout, self.out)
コード例 #5
0
ファイル: html.py プロジェクト: 0Chuzz/python-mode
    def _display(self, layout):
        """launch layouts display

        overridden from BaseReporter to add insert the messages section
        (in add_message, message is not displayed, just collected so it
        can be displayed in an html table)
        """
        if self.msgs:
            # add stored messages to the layout
            msgs = ['type', 'module', 'object', 'line', 'col_offset', 'message']
            msgs += self.msgs
            sect = Section('Messages')
            layout.append(sect)
            sect.append(Table(cols=6, children=msgs, rheaders=1))
            self.msgs = []
        HTMLWriter().format(layout, self.out)
コード例 #6
0
ファイル: schemaviewer.py プロジェクト: zogzog/cubicweb
    def visit_entityschema(self, eschema, skiptypes=()):
        """get a layout for an entity schema"""
        etype = eschema.type
        layout = Section(children=' ', klass='clear')
        layout.append(Link(etype, ' ', id=etype))  # anchor
        title = self.format_eschema(eschema)
        boxchild = [Section(children=(title, ), klass='title')]
        data = []
        data.append(Section(children=boxchild, klass='box'))
        data.append(Section(children='', klass='vl'))
        data.append(Section(children='', klass='hl'))
        t_vars = []
        rels = []
        first = True

        rel_defs = sorted(eschema.relation_definitions(),
                          key=lambda el: el[0].type)

        for rschema, targetschemas, role in rel_defs:
            if rschema.type in skiptypes:
                continue
            for oeschema in sorted(targetschemas, key=TYPE_GETTER):
                rdef = rschema.role_rdef(eschema, oeschema, role)
                if not self.may_read(rdef):
                    continue
                label = rschema.type
                if role == 'subject':
                    cards = rschema.rdef(eschema, oeschema).cardinality
                else:
                    cards = rschema.rdef(oeschema, eschema).cardinality
                    cards = cards[::-1]
                label = '%s %s %s' % (CARD_MAP[cards[1]], label,
                                      CARD_MAP[cards[0]])
                rlink = self.format_rschema(rschema, label)
                elink = self.format_eschema(oeschema)
                if first:
                    t_vars.append(Section(children=(elink, ),
                                          klass='firstvar'))
                    rels.append(Section(children=(rlink, ), klass='firstrel'))
                    first = False
                else:
                    t_vars.append(Section(children=(elink, ), klass='var'))
                    rels.append(Section(children=(rlink, ), klass='rel'))
        data.append(Section(children=rels, klass='rels'))
        data.append(Section(children=t_vars, klass='vars'))
        layout.append(Section(children=data, klass='entityAttributes'))
        return layout
コード例 #7
0
 def make_reports(self, stats, old_stats):
     """render registered reports"""
     if self.config.files_output:
         filename = 'pylint_global.' + self.reporter.extension
         self.reporter.set_output(open(filename, 'w'))
     sect = Section('Report',
                    '%s statements analysed.' % (self.stats['statement']))
     for checker in self._reports:
         for reportid, r_title, r_cb in self._reports[checker]:
             if not self.report_is_enabled(reportid):
                 continue
             report_sect = Section(r_title)
             try:
                 r_cb(report_sect, stats, old_stats)
             except EmptyReport:
                 continue
             report_sect.report_id = reportid
             sect.append(report_sect)
     self.reporter.display_results(sect)
コード例 #8
0
ファイル: utils.py プロジェクト: 0Chuzz/python-mode
 def make_reports(self, stats, old_stats):
     """render registered reports"""
     if self.config.files_output:
         filename = 'pylint_global.' + self.reporter.extension
         self.reporter.set_output(open(filename, 'w'))
     sect = Section('Report',
                    '%s statements analysed.'% (self.stats['statement']))
     for checker in self._reports:
         for reportid, r_title, r_cb in self._reports[checker]:
             if not self.report_is_enabled(reportid):
                 continue
             report_sect = Section(r_title)
             try:
                 r_cb(report_sect, stats, old_stats)
             except EmptyReport:
                 continue
             report_sect.report_id = reportid
             sect.append(report_sect)
     self.reporter.display_results(sect)
コード例 #9
0
ファイル: utils.py プロジェクト: imcj/pybbs
 def make_reports(self, stats, old_stats):
     """render registered reports"""
     if self.config.files_output:
         filename = "pylint_global." + self.reporter.extension
         self.reporter.set_output(open(filename, "w"))
     sect = Section("Report", "%s statements analysed." % (self.stats["statement"]))
     checkers = self.sort_checkers(self._reports)
     checkers.reverse()
     for checker in checkers:
         for reportid, r_title, r_cb in self._reports[checker]:
             if not self.is_report_enabled(reportid):
                 continue
             report_sect = Section(r_title)
             try:
                 r_cb(report_sect, stats, old_stats)
             except EmptyReport:
                 continue
             report_sect.report_id = reportid
             sect.append(report_sect)
     self.reporter.display_results(sect)
コード例 #10
0
ファイル: schemaviewer.py プロジェクト: zogzog/cubicweb
    def visit_relationschema(self, rschema, title=True):
        """get a layout for a relation schema"""
        _ = self._
        if title:
            title = self.format_rschema(rschema)
            stereotypes = []
            if rschema.meta:
                stereotypes.append('meta')
            if rschema.symmetric:
                stereotypes.append('symmetric')
            if rschema.inlined:
                stereotypes.append('inlined')
            title = Section(children=(title, ), klass='title')
            if stereotypes:
                title.append(self.stereotype(','.join(stereotypes)))
            layout = Section(children=(title, ), klass='schema')
        else:
            layout = Section(klass='schema')
        data = [_('from'), _('to')]
        schema = rschema.schema
        rschema_objects = rschema.objects()
        if rschema_objects:
            # might be empty
            properties = [
                p for p in RelationDefinitionSchema.rproperty_defs(
                    rschema_objects[0])
                if p not in ('cardinality', 'composite', 'eid')
            ]
        else:
            properties = []
        data += [_(prop) for prop in properties]
        cols = len(data)
        done = set()
        for subjtype, objtypes in sorted(rschema.associations()):
            for objtype in objtypes:
                if (subjtype, objtype) in done:
                    continue
                done.add((subjtype, objtype))
                if rschema.symmetric:
                    done.add((objtype, subjtype))
                data.append(self.format_eschema(schema[subjtype]))
                data.append(self.format_eschema(schema[objtype]))
                rdef = rschema.rdef(subjtype, objtype)
                for prop in properties:
                    val = getattr(rdef, prop)
                    if val is None:
                        val = ''
                    elif prop == 'constraints':
                        val = ', '.join([c.expression for c in val])
                    elif isinstance(val, dict):
                        for key, value in val.items():
                            if isinstance(value, (list, tuple)):
                                val[key] = ', '.join(
                                    sorted(str(v) for v in value))
                        val = str(val)

                    elif isinstance(val, (list, tuple)):
                        val = sorted(val)
                        val = ', '.join(str(v) for v in val)
                    elif val and isinstance(val, str):
                        val = _(val)
                    else:
                        val = str(val)
                    data.append(Text(val))
        table = Table(cols=cols, rheaders=1, children=data, klass='listing')
        layout.append(Section(children=(table, ), klass='relationDefinition'))
        layout.append(Section(children='', klass='clear'))
        return layout