Example #1
0
    def test_round_trip(self):
        fact = Fact.parse(
            "11:00 12:00 activity, with comma@category,, description, with comma #and #tags"
        )
        dbus_fact = to_dbus_fact_json(fact)
        return_fact = from_dbus_fact_json(dbus_fact)
        self.assertEqual(return_fact, fact)

        dbus_fact = to_dbus_fact(fact)
        return_fact = from_dbus_fact(dbus_fact)
        self.assertEqual(return_fact, fact)

        fact = Fact.parse("11:00 activity")
        dbus_fact = to_dbus_fact_json(fact)
        return_fact = from_dbus_fact_json(dbus_fact)
        self.assertEqual(return_fact, fact)

        dbus_fact = to_dbus_fact(fact)
        return_fact = from_dbus_fact(dbus_fact)
        self.assertEqual(return_fact, fact)

        range, __ = dt.Range.parse("2020-01-19 11:00 - 2020-01-19 12:00")
        dbus_range = to_dbus_range(range)
        return_range = from_dbus_range(dbus_range)
        self.assertEqual(return_range, range)
Example #2
0
    def GetTodaysFacts(self):
        """Gets facts of today,
           respecting hamster midnight. See GetFacts for return info.

           Legacy, to be superceded by GetTodaysFactsJSON at some point.
        """
        return [to_dbus_fact(fact) for fact in self.get_todays_facts()]
Example #3
0
    def update_fact(self, fact_id, fact, temporary_activity=False):
        """Update fact values. See add_fact for rules.
        Update is performed via remove/insert, so the
        fact_id after update should not be used anymore. Instead use the ID
        from the fact dict that is returned by this function"""

        dbus_fact = to_dbus_fact(fact)
        new_id = self.conn.UpdateFactVerbatim(fact_id, dbus_fact)

        return new_id
Example #4
0
    def add_fact(self, fact, temporary_activity=False):
        """Add fact (Fact)."""
        assert fact.activity, "missing activity"

        if not fact.start_time:
            logger.info("Adding fact without any start_time is deprecated")
            fact.start_time = hamster_now()

        dbus_fact = to_dbus_fact(fact)
        new_id = self.conn.AddFactVerbatim(dbus_fact)

        return new_id
Example #5
0
    def check_fact(self, fact, default_day=None):
        """Check Fact validity for inclusion in the storage.

        default_day (date): Default hamster day,
                            used to simplify some hint messages
                            (remove unnecessary dates).
                            None is safe (always show dates).
        """
        if not fact.start_time:
            # Do not even try to pass fact through D-Bus as
            # conversions would fail in this case.
            raise FactError("Missing start time")
        dbus_fact = to_dbus_fact(fact)
        dbus_day = to_dbus_date(default_day)
        success, message = self.conn.CheckFact(dbus_fact, dbus_day)
        if not success:
            raise FactError(message)
        return success, message
    def GetFacts(self, start_date, end_date, search_terms):
        """Gets facts between the day of start_date and the day of end_date.
        Parameters:
        i start_date: Seconds since epoch (timestamp). Use 0 for today
        i end_date: Seconds since epoch (timestamp). Use 0 for today
        s search_terms: Bleh. If starts with "not ", the search terms will be reversed
        Returns an array of D-Bus fact structures.
        """
        #TODO: Assert start > end ?
        start = dt.date.today()
        if start_date:
            start = dt.datetime.utcfromtimestamp(start_date).date()

        end = None
        if end_date:
            end = dt.datetime.utcfromtimestamp(end_date).date()

        return [to_dbus_fact(fact) for fact in self.get_facts(start, end, search_terms)]
Example #7
0
 def GetTodaysFacts(self):
     """Gets facts of today, respecting hamster midnight. See GetFacts for
     return info"""
     return [to_dbus_fact(fact) for fact in self.get_todays_facts()]
Example #8
0
 def GetFact(self, fact_id):
     """Get fact by id. For output format see GetFacts"""
     fact = self.get_fact(fact_id)
     return to_dbus_fact(fact)