comparison piecrust/page.py @ 108:b6ec402d32bb

Properly add the config time to a page's datetime.
author Ludovic Chabant <ludovic@chabant.com>
date Wed, 15 Oct 2014 23:01:43 -0700
parents 0445a2232de7
children d31cbbdb4ecc
comparison
equal deleted inserted replaced
107:10fc9c8bf682 108:b6ec402d32bb
91 parsed_t = dateutil.parser.parse(page_time) 91 parsed_t = dateutil.parser.parse(page_time)
92 except Exception as ex: 92 except Exception as ex:
93 raise ConfigurationError( 93 raise ConfigurationError(
94 "Invalid time '%s' in page: %s" % 94 "Invalid time '%s' in page: %s" %
95 (page_time, self.path)) from ex 95 (page_time, self.path)) from ex
96 page_time = datetime.time(parsed_t.hour, 96 page_time = datetime.timedelta(
97 parsed_t.minute, parsed_t.second) 97 hours=parsed_t.hour,
98 minutes=parsed_t.minute,
99 seconds=parsed_t.second)
98 100
99 elif isinstance(page_time, int): 101 elif isinstance(page_time, int):
100 # Total seconds... convert to a time struct. 102 # Total seconds... convert to a time struct.
101 delta = datetime.timedelta(seconds=page_time) 103 page_time = datetime.timedelta(seconds=page_time)
102 dummy = datetime.datetime(1970, 1, 1) 104
103 dummy += delta 105 elif not isinstance(page_time, datetime.timedelta):
104 page_time = dummy.time() 106 raise ConfigurationError(
107 "Invalid time '%s' in page: %s" %
108 (page_time, self.path))
105 109
106 try: 110 try:
107 self._datetime = datetime.datetime.combine( 111 self._datetime = datetime.datetime(
108 page_date, page_time) 112 page_date.year,
113 page_date.month,
114 page_date.day) + page_time
109 except Exception as ex: 115 except Exception as ex:
110 raise ConfigurationError( 116 raise ConfigurationError(
111 "Invalid page time '%s' for: %s" % ( 117 "Invalid page time '%s' for: %s" % (
112 page_time, self.path)) from ex 118 page_time, self.path)) from ex
113 else: 119 else: