예제 #1
0
    def test_set_alarm_list_date(self):

        base_time = TimeController.get_epoch(da(1970, 1, 1, 00, 00, 00))
        ma = MultiAlarmTimer(None,
                             register_datetime=datetime.datetime(
                                 1970, 1, 1, 00, 00, 10))
        ma.set_alarm_list_date(
            [da(1970, 1, 1, 00, 00, 12),
             da(1970, 1, 1, 00, 00, 20)])
        self.assertFalse(ma.is_it_time(base_time + 11))
        self.assertTrue(ma.is_it_time(base_time + 12))
        self.assertFalse(ma.is_it_time(base_time + 15))
        self.assertTrue(ma.is_it_time(base_time + 20))
예제 #2
0
 def test_do_trigger(self):
     gen = FakeGen(None)
     base_time = TimeController.get_epoch(da(1970, 1, 1, 00, 00, 00))
     ma = MultiAlarmTimer(gen,
                          register_datetime=datetime.datetime(
                              1970, 1, 1, 00, 00, 10))
     ma.set_alarm_list_date([
         da(1970, 1, 1, 00, 00, 12),
         da(1970, 1, 1, 00, 00, 12),
         da(1970, 1, 1, 00, 00, 20)
     ])
     self.assertEqual(ma.do_trigger(base_time + 11), 0)
     self.assertEqual(ma.do_trigger(base_time + 12), 2)
     self.assertEqual(ma.do_trigger(base_time + 15), 0)
     self.assertEqual(ma.do_trigger(base_time + 20), 1)
     self.assertEqual(gen._count, 3)
    def test_timed_wf_gen(self):

        tg = FakeTraceGenWF(self)
        machine = FakeEdison()
        wg = WorkloadGenerator(machine, tg, ["user1"], ["qos1"],
                               ["partition1"], ["account1"])
        flow = WorkflowGenerator(["manifest_sim.json"], [1.0], wg)

        alarm = MultiAlarmTimer(flow,
                                register_datetime=datetime.datetime(
                                    2015, 1, 1))
        alarm.set_alarm_list_date([
            da(2015, 1, 1, 00, 00, 10),
            da(2015, 1, 1, 00, 00, 10),
            da(2015, 1, 1, 00, 00, 20)
        ])
        alarm2 = MultiAlarmTimer(flow,
                                 register_datetime=datetime.datetime(
                                     2015, 1, 1))
        alarm2.set_alarm_list_date([
            da(2015, 1, 1, 00, 00, 10),
            da(2015, 1, 2, 00, 00, 10),
            da(2015, 1, 2, 00, 00, 20)
        ])
        wg.register_pattern_generator_timer(alarm)
        wg.register_pattern_generator_timer(alarm2)
        wg.generate_trace(datetime.datetime(2015, 1, 1), 100, 100)

        self.assertEqual(tg._workflow_count, 4, "Alarms didn't generate WFs")
        self.assertGreater(tg._job_count, 10)

        self.assertEqual(len(wg._pattern_timers), 1, "Purging does not work")
예제 #4
0
    def test_init(self):
        ma = MultiAlarmTimer(None)
        self.assertEqual(ma._alarm_list, [])
        ma.register_time(100)
        self.assertEqual(ma._current_timestamp, 100)
        self.assertEqual(ma._register_timestamp, 100)

        ma = MultiAlarmTimer(None, 200)
        self.assertEqual(ma._current_timestamp, 200)
        self.assertEqual(ma._register_timestamp, 200)
        base_time = TimeController.get_epoch(da(1970, 1, 1, 00, 00, 00))
        ma = MultiAlarmTimer(None,
                             register_datetime=datetime.datetime(
                                 1970, 1, 1, 00, 00, 10))
        self.assertEqual(ma._current_timestamp, base_time + 10)
        self.assertEqual(ma._register_timestamp, base_time + 10)
예제 #5
0
    template = Environment().from_string(MD)

    root = ET.parse(argv[1]).getroot()
    for child in root:
        article = {}
        article["pmid"] = child.find(".//PMID").text
        article["title"] = child.find(".//ArticleTitle").text
        if child.find(".//AbstractText") is not None:
            article["abstract"] = child.find(".//AbstractText").text
        else:
            article["abstract"] = ""
        article["authors"] = ", ".join([
            '"' + x.find("ForeName").text + " " + x.find("LastName").text + '"'
            for x in child.findall(".//Author")
            ])
        article["keywords"] = ", ".join([
            '"' + x.text + '"' for x in child.findall(".//Keyword")
            ])
        article["doi"] = child.find(
            ".//ArticleId[@IdType='doi']").text
        article["journal"] = child.find(".//Journal/Title").text
        date = child.find(".//PubMedPubDate[@PubStatus='pubmed']")
        article["date"] = da(int(date.find("Year").text),
                             int(date.find("Month").text),
                             int(date.find("Day").text)).isoformat()
        print(article["keywords"])
        filename = "content/pubs/PM{}.md".format(article["pmid"])
        if not exists(filename):
            with open(filename, "w") as f:
                f.write(template.render(**article))
예제 #6
0
            ],
            id="header",
            className="row flex-display",
            style={"margin-bottom": "25px"},
        ),
        html.Div(
            [
                html.Div(
                    [
                        html.P(
                            "Select by Date:",
                            className="control_label",
                        ),
                        dcc.DatePickerSingle(
                            id='stream-date',
                            min_date_allowed=da(2020, 6, 1),
                            max_date_allowed=da(2020, 6, 7),
                            initial_visible_month=da(2020, 6, 1),
                            date=str(da(2020, 6, 25, 23, 59, 59)),
                            className="dcc_control",
                            ),

                        html.P("Filter by Keywords:", className="control_label"),
                        dcc.RadioItems(
                            id="keywords_selector",
                            options=[
                                {"label": "All ", "value": "all"},
                                {"label": "Customize ", "value": "custom"},
                            ],
                            value="all",
                            labelStyle={"display": "inline-block"},