def testNamespace(self): pluginklass = PluginManager.get_plugin_class('journal') plugin = pluginklass() notebook = self.setUpNotebook() properties = plugin.notebook_properties(notebook) today = dateclass.today() for namespace in (Path('Calendar'), Path(':')): properties['namespace'] = namespace path = plugin.path_from_date(notebook, today) self.assertTrue(isinstance(path, Path)) self.assertTrue(path.ischild(namespace)) date = plugin.date_from_path(path) self.assertTrue(isinstance(date, dateclass)) self.assertEqual(date, today) from zim.plugins.journal import DAY, WEEK, MONTH, YEAR zim.datetimetz.FIRST_DAY_OF_WEEK = \ zim.datetimetz.MONDAY properties['namespace'] = Path('Calendar') date = dateclass(2012, 4, 27) for setting, wanted, start in ( (DAY, 'Calendar:2012:04:27', dateclass(2012, 4, 27)), (WEEK, 'Calendar:2012:Week 17', dateclass(2012, 4, 23)), (MONTH, 'Calendar:2012:04', dateclass(2012, 4, 1)), (YEAR, 'Calendar:2012', dateclass(2012, 1, 1)), ): properties['granularity'] = setting path = plugin.path_from_date(notebook, date) self.assertEqual(path.name, wanted) self.assertEqual(plugin.date_from_path(path), start) path = plugin.path_for_month_from_date(notebook, date) self.assertEqual(path.name, 'Calendar:2012:04')
def testNamespace(self): pluginklass = zim.plugins.get_plugin_class('calendar') plugin = pluginklass() today = dateclass.today() for namespace in (Path('Calendar'), Path(':')): plugin.preferences['namespace'] = namespace path = plugin.path_from_date(today) self.assertTrue(isinstance(path, Path)) self.assertTrue(path.ischild(namespace)) date = plugin.date_from_path(path) self.assertTrue(isinstance(date, dateclass)) self.assertEqual(date, today) from zim.plugins.calendar import DAY, WEEK, MONTH, YEAR zim.datetimetz.FIRST_DAY_OF_WEEK = \ zim.datetimetz.MONDAY plugin.preferences['namespace'] = Path('Calendar') date = dateclass(2012, 4, 27) for setting, wanted, start in ( (DAY, 'Calendar:2012:04:27', dateclass(2012, 4, 27)), (WEEK, 'Calendar:2012:Week 17', dateclass(2012, 4, 23)), (MONTH, 'Calendar:2012:04', dateclass(2012, 4, 1)), (YEAR, 'Calendar:2012', dateclass(2012, 1, 1)), ): plugin.preferences['granularity'] = setting path = plugin.path_from_date(date) self.assertEqual(path.name, wanted) self.assertEqual(plugin.date_from_path(path), start) path = plugin.path_for_month_from_date(date) self.assertEqual(path.name, 'Calendar:2012:04')
def last_game(data, team, date, n): interval = -1 for i in range(n, 0, -1): if data.iloc[i]['Team'] == team: thatdate = get_date_from_excel(data.iloc[i]['Date']) d0 = dateclass(thatdate[2], thatdate[0], thatdate[1]) d1 = dateclass(date[2], date[0], date[1]) delta = d1 - d0 interval = delta.days break return interval
def games_in_last_seven_days(data, team, date, n): games = 0 for i in range(n, 0, -1): thatdate = get_date_from_excel(data.iloc[i]['Date']) d0 = dateclass(thatdate[2], thatdate[0], thatdate[1]) d1 = dateclass(date[2], date[0], date[1]) delta = d1 - d0 interval = delta.days if interval > 7: break if data.iloc[i]['Team'] == team: games += 1 return games
def testDateRangeFromPath(self): from zim.plugins.journal import daterange_from_path # Day for path in (Path('Foo:2012:04:27'), Path('Foo:2012:4:27')): type, start, end = daterange_from_path(path) self.assertEqual(type, 'day') self.assertEqual(start, dateclass(2012, 4, 27)) self.assertEqual(end, dateclass(2012, 4, 27)) # Week zim.datetimetz.FIRST_DAY_OF_WEEK = \ zim.datetimetz.MONDAY type, start, end = daterange_from_path(Path('Foo:2012:Week 17')) self.assertEqual(type, 'week') self.assertEqual(start, dateclass(2012, 4, 23)) # a monday self.assertEqual(end, dateclass(2012, 4, 29)) # a sunday # Month for path in (Path('Foo:2012:04'), Path('Foo:2012:4')): type, start, end = daterange_from_path(path) self.assertEqual(type, 'month') self.assertEqual(start, dateclass(2012, 4, 1)) self.assertEqual(end, dateclass(2012, 4, 30)) # Year type, start, end = daterange_from_path(Path('Foo:2012')) self.assertEqual(type, 'year') self.assertEqual(start, dateclass(2012, 1, 1)) self.assertEqual(end, dateclass(2012, 12, 31))
def testDateRangeFromPath(self): from zim.plugins.calendar import daterange_from_path # Day for path in (Path('Foo:2012:04:27'), Path('Foo:2012:4:27')): type, start, end = daterange_from_path(path) self.assertEqual(type, 'day') self.assertEqual(start, dateclass(2012, 4, 27)) self.assertEqual(end, dateclass(2012, 4, 27)) # Week zim.datetimetz.FIRST_DAY_OF_WEEK = \ zim.datetimetz.MONDAY type, start, end = daterange_from_path(Path('Foo:2012:Week 17')) self.assertEqual(type, 'week') self.assertEqual(start, dateclass(2012, 4, 23)) # a monday self.assertEqual(end, dateclass(2012, 4, 29)) # a sunday # Month for path in (Path('Foo:2012:04'), Path('Foo:2012:4')): type, start, end = daterange_from_path(path) self.assertEqual(type, 'month') self.assertEqual(start, dateclass(2012, 4, 1)) self.assertEqual(end, dateclass(2012, 4, 30)) # Year type, start, end = daterange_from_path(Path('Foo:2012')) self.assertEqual(type, 'year') self.assertEqual(start, dateclass(2012, 1, 1)) self.assertEqual(end, dateclass(2012, 12, 31))
def testWeekCalendar(self): from zim.plugins.journal import weekcalendar sunday = dateclass(2012, 4, 22) monday = dateclass(2012, 4, 23) nextsunday = dateclass(2012, 4, 29) zim.datetimetz.FIRST_DAY_OF_WEEK = \ zim.datetimetz.MONDAY self.assertEqual(weekcalendar(sunday), (2012, 16, 7)) self.assertEqual(weekcalendar(monday), (2012, 17, 1)) self.assertEqual(weekcalendar(nextsunday), (2012, 17, 7)) zim.datetimetz.FIRST_DAY_OF_WEEK = \ zim.datetimetz.SUNDAY self.assertEqual(weekcalendar(sunday), (2012, 17, 1)) self.assertEqual(weekcalendar(monday), (2012, 17, 2)) self.assertEqual(weekcalendar(nextsunday), (2012, 18, 1)) dec31 = dateclass(2012, 12, 31) jan1 = dateclass(2013, 1, 1) self.assertEqual(weekcalendar(dec31), (2013, 1, 2)) self.assertEqual(weekcalendar(jan1), (2013, 1, 3)) dec31 = dateclass(2009, 12, 31) jan1 = dateclass(2010, 1, 1) self.assertEqual(weekcalendar(dec31), (2009, 53, 5)) self.assertEqual(weekcalendar(jan1), (2009, 53, 6))
def testWeekCalendar(self): from zim.plugins.calendar import weekcalendar sunday = dateclass(2012, 4 ,22) monday = dateclass(2012, 4, 23) nextsunday = dateclass(2012, 4, 29) zim.datetimetz.FIRST_DAY_OF_WEEK = \ zim.datetimetz.MONDAY self.assertEqual(weekcalendar(sunday), (2012, 16, 7)) self.assertEqual(weekcalendar(monday), (2012, 17, 1)) self.assertEqual(weekcalendar(nextsunday), (2012, 17, 7)) zim.datetimetz.FIRST_DAY_OF_WEEK = \ zim.datetimetz.SUNDAY self.assertEqual(weekcalendar(sunday), (2012, 17, 1)) self.assertEqual(weekcalendar(monday), (2012, 17, 2)) self.assertEqual(weekcalendar(nextsunday), (2012, 18, 1)) dec31 = dateclass(2012, 12, 31) jan1 = dateclass(2013, 1, 1) self.assertEqual(weekcalendar(dec31), (2013, 1, 2)) self.assertEqual(weekcalendar(jan1), (2013, 1, 3)) dec31 = dateclass(2009, 12, 31) jan1 = dateclass(2010, 1, 1) self.assertEqual(weekcalendar(dec31), (2009, 53, 5)) self.assertEqual(weekcalendar(jan1), (2009, 53, 6))
def suggest_link(self, source, text): #~ if date_path_re.match(path.text): #~ return Path(text) if re.match(r'^\d{4}-\d{2}-\d{2}$', text): year, month, day = text.split('-') year, month, day = map(int, (year, month, day)) date = dateclass(year, month, day) return self.path_from_date(date) # TODO other formats else: return None
def testDatesForWeeks(self): from zim.plugins.journal import dates_for_week zim.datetimetz.FIRST_DAY_OF_WEEK = \ zim.datetimetz.MONDAY start, end = dates_for_week(2012, 17) self.assertEqual(start, dateclass(2012, 4, 23)) # a monday self.assertEqual(end, dateclass(2012, 4, 29)) # a sunday zim.datetimetz.FIRST_DAY_OF_WEEK = \ zim.datetimetz.SUNDAY start, end = dates_for_week(2012, 17) self.assertEqual(start, dateclass(2012, 4, 22)) # a sunday self.assertEqual(end, dateclass(2012, 4, 28)) # a saturday start, end = dates_for_week(2013, 1) self.assertEqual(start, dateclass(2012, 12, 30)) # a sunday self.assertEqual(end, dateclass(2013, 1, 5)) # a saturday start, end = dates_for_week(2009, 53) self.assertEqual(start, dateclass(2009, 12, 27)) # a sunday self.assertEqual(end, dateclass(2010, 1, 2)) # a saturday
def testDatesForWeeks(self): from zim.plugins.calendar import dates_for_week zim.datetimetz.FIRST_DAY_OF_WEEK = \ zim.datetimetz.MONDAY start, end = dates_for_week(2012, 17) self.assertEqual(start, dateclass(2012, 4, 23)) # a monday self.assertEqual(end, dateclass(2012, 4, 29)) # a sunday zim.datetimetz.FIRST_DAY_OF_WEEK = \ zim.datetimetz.SUNDAY start, end = dates_for_week(2012, 17) self.assertEqual(start, dateclass(2012, 4 ,22)) # a sunday self.assertEqual(end, dateclass(2012, 4, 28)) # a saturday start, end = dates_for_week(2013, 1) self.assertEqual(start, dateclass(2012, 12 ,30)) # a sunday self.assertEqual(end, dateclass(2013, 1, 5)) # a saturday start, end = dates_for_week(2009, 53) self.assertEqual(start, dateclass(2009, 12 ,27)) # a sunday self.assertEqual(end, dateclass(2010, 1, 2)) # a saturday
def get_date(self): '''Get the datetime object for the selected date''' year, month, day = gtk.Calendar.get_date(self) return dateclass(year, month + 1, day)
def date_from_path(self, path): assert date_path_re.match(path.name), 'Not an date path: %s' % path.name year, month, day = path.name.rsplit(':', 3)[-3:] year, month, day = map(int, (year, month, day)) return dateclass(year, month, day)