예제 #1
0
    def read_schedule(self, fname):
        schedule = xml_parse( fname )
        checker = ScheduleChecker()
        if not checker.validate(schedule, fname):
            raise MalformedProjectFile(str(checker))

        activities = Table(default_value=None,
                           col_names=['begin', 'end', 'resource', 'task',
                                      'usage', 'src'])
        tasks = Table(default_value=None,
                      col_names=['begin', 'end', 'status', 'cost', 'unit'])
        costs = Table(default_value=None,
                      col_names=['task', 'resource', 'cost', 'unit'])

        for task in schedule.findall("task"):
            t_id = task.get('id')
            tasks.create_row( t_id )
            global_cost = task.find("global-cost")
            tasks.set_cell_by_ids(t_id, 'unit', global_cost.get('unit'))
            tasks.set_cell_by_ids(t_id, 'cost', float(global_cost.text) )
            tasks.set_cell_by_ids(t_id, 'status', task.find('status').text )
            for cd in task.findall("contraint-date"):
                date = iso_date( cd.text )
                if cd.get('type') == 'begin-at-date':
                    tasks.set_cell_by_ids( t_id, 'begin', date )
                elif cd.get('type') == 'end-at-date':
                    tasks.set_cell_by_ids( t_id, 'end', date )
            for ct in task.findall("constraint-task"):
                pass
                #raise NotImplementedError("constraint-task not implemented in schedule")
            for report in task.findall("report-list/report"):
                activities.append_row( (iso_date(report.get('from')),
                                             iso_date(report.get('to')),
                                             report.get('idref'),
                                             t_id,
                                             float(report.get('usage')) ) )
            for cost in task.findall("costs_list/cost"):
                costs.append_row( (t_id, cost.attrib['idref'],float(cost.text),None) )

        for milestone in schedule.findall("milestone"):
            t_id = milestone.get('id')
            cd = milestone.find("constraint-date")
            date = iso_date( cd.text )
            self.project.milestones[t_id] = date

        self.project.add_schedule(activities)
        self.project.tasks = tasks
        self.project.costs = costs
        self.project.nb_solution = 1 # if we read a schedule from an xml file,
예제 #2
0
 def test_valeur_colonne(self):
     tab = Table()
     tab.create_columns(['col1'])
     tab.append_row([1])
     tab.append_row([2])
     self.assertEqual(tab, [[1], [2]])
     self.assertEqual(tab[:, 0], [1, 2])
예제 #3
0
 def setUp(self):
     self.stream = StringIO()
     self.table = Table()
     self.table.create_rows(['row1', 'row2', 'row3'])
     self.table.create_columns(['col1', 'col2'])
     self.writer = DocbookTableWriter(self.stream, self.table, None)
     self.writer.set_renderer(DocbookRenderer())
예제 #4
0
 def setUp(self):
     self.renderer = DocbookRenderer(alignment=True)
     self.table = Table()
     self.table.create_rows(['row1', 'row2', 'row3'])
     self.table.create_columns(['col1', 'col2'])
     self.style = TableStyle(self.table)
     self.base_renderer = TableCellRenderer()
예제 #5
0
 def setUp(self):
     self.table = Table()
     self.table.create_rows(['row1', 'row2', 'row3'])
     self.table.create_columns(['col1', 'col2'])
     self.style = TableStyle(self.table)
     self._tested_attrs = (('size', '1*'), ('alignment', 'right'), ('unit',
                                                                    ''))
예제 #6
0
 def setUp(self):
     """Creates a default table"""
     # from logilab.common import table
     # reload(table)
     self.table = Table()
     self.table.create_rows(['row1', 'row2', 'row3'])
     self.table.create_columns(['col1', 'col2'])
예제 #7
0
 def test_valeur_scalaire(self):
     tab = Table()
     tab.create_columns(['col1'])
     tab.append_row([1])
     self.assertEqual(tab, [[1]])
     tab.append_row([2])
     self.assertEqual(tab[0, 0], 1)
     self.assertEqual(tab[1, 0], 2)
예제 #8
0
 def setUp(self):
     """Builds a simple table to test the stylesheet
     """
     self.table = Table()
     self.table.create_row('row1')
     self.table.create_columns(['a', 'b', 'c'])
     self.stylesheet = TableStyleSheet()
     # We don't want anything to be printed
     self.stdout_backup = sys.stdout
     sys.stdout = StringIO()
예제 #9
0
 def setUp(self):
     t = Table()
     t.create_columns(['date', 'res', 'task', 'usage'])
     t.append_row(['date1', 'ing1', 'task1', 0.3])
     t.append_row(['date1', 'ing2', 'task2', 0.3])
     t.append_row(['date2', 'ing3', 'task3', 0.3])
     t.append_row(['date3', 'ing4', 'task2', 0.3])
     t.append_row(['date1', 'ing1', 'task3', 0.3])
     t.append_row(['date3', 'ing1', 'task3', 0.3])
     self.table = t
예제 #10
0
 def test_valeur_ligne(self):
     tab = Table()
     tab.create_columns(['col1', 'col2'])
     tab.append_row([1, 2])
     self.assertEqual(tab, [[1, 2]])