Revision b7ff6e0c kamaki/cli/argument/__init__.py
b/kamaki/cli/argument/__init__.py | ||
---|---|---|
231 | 231 |
|
232 | 232 |
|
233 | 233 |
class DateArgument(ValueArgument): |
234 |
""" |
|
235 |
:value type: a string formated in an acceptable date format |
|
236 |
|
|
237 |
:value returns: same date in first of DATE_FORMATS |
|
238 |
""" |
|
239 | 234 |
|
240 |
DATE_FORMATS = [ |
|
241 |
"%a %b %d %H:%M:%S %Y", |
|
242 |
"%A, %d-%b-%y %H:%M:%S GMT", |
|
243 |
"%a, %d %b %Y %H:%M:%S GMT"] |
|
235 |
DATE_FORMAT = '%a %b %d %H:%M:%S %Y' |
|
244 | 236 |
|
245 |
INPUT_FORMATS = DATE_FORMATS + ["%d-%m-%Y", "%H:%M:%S %d-%m-%Y"]
|
|
237 |
INPUT_FORMATS = [DATE_FORMAT, '%d-%m-%Y', '%H:%M:%S %d-%m-%Y']
|
|
246 | 238 |
|
247 | 239 |
@property |
248 | 240 |
def timestamp(self): |
... | ... | |
252 | 244 |
@property |
253 | 245 |
def formated(self): |
254 | 246 |
v = getattr(self, '_value', self.default) |
255 |
return v.strftime(self.DATE_FORMATS[0]) if v else None
|
|
247 |
return v.strftime(self.DATE_FORMAT) if v else None |
|
256 | 248 |
|
257 | 249 |
@property |
258 | 250 |
def value(self): |
... | ... | |
260 | 252 |
|
261 | 253 |
@value.setter |
262 | 254 |
def value(self, newvalue): |
263 |
if newvalue: |
|
264 |
self._value = self.format_date(newvalue) |
|
255 |
self._value = self.format_date(newvalue) |
|
265 | 256 |
|
266 | 257 |
def format_date(self, datestr): |
267 | 258 |
for format in self.INPUT_FORMATS: |
... | ... | |
269 | 260 |
t = dtm.strptime(datestr, format) |
270 | 261 |
except ValueError: |
271 | 262 |
continue |
272 |
return t # .strftime(self.DATE_FORMATS[0]) |
|
273 |
raiseCLIError( |
|
274 |
None, |
|
275 |
'Date Argument Error', |
|
276 |
details='%s not a valid date. correct formats:\n\t%s' % ( |
|
277 |
datestr, self.INPUT_FORMATS)) |
|
263 |
return t # .strftime(self.DATE_FORMAT) |
|
264 |
raiseCLIError(None, 'Date Argument Error', details=[ |
|
265 |
'%s not a valid date' % datestr, |
|
266 |
'Correct formats:\n\t%s' % self.INPUT_FORMATS]) |
|
278 | 267 |
|
279 | 268 |
|
280 | 269 |
class VersionArgument(FlagArgument): |
Also available in: Unified diff