Package amplee :: Module comparer
[hide private]
[frames] | no frames]

Source Code for Module amplee.comparer

 1  # -*- coding: utf-8 -*- 
 2  from datetime import timedelta 
 3  from amplee.utils import parse_isodate 
 4   
 5  import amara 
 6   
 7  __all__ = ['app_edited_comparer', 'app_updated_comparer'] 
 8   
 9  _zero_delta = timedelta(0) 
10   
11 -def app_edited_comparer(m0, m1):
12 if hasattr(m0, 'atom'): 13 m0 = m0.atom.entry 14 e0 = m0.xml_child_elements.get('edited') 15 if not e0: 16 return 1 17 18 if hasattr(m1, 'atom'): 19 m1 = m1.atom.entry 20 e1 = m1.xml_child_elements.get('edited') 21 if not e1: 22 return -1 23 24 d0 = parse_isodate(str(e0)) 25 d1 = parse_isodate(str(e1)) 26 27 delta = d1 - d0 28 29 if delta == _zero_delta: 30 return 0 31 if delta.days < 0: 32 return -1 33 if delta != _zero_delta: 34 return 1
35
36 -def app_updated_comparer(m0, m1):
37 if hasattr(m0, 'atom'): 38 m0 = m0.atom.entry 39 e0 = m0.xml_child_elements.get('updated') 40 if not e0: 41 return 1 42 43 if hasattr(m1, 'atom'): 44 m1 = m1.atom.entry 45 e1 = m1.xml_child_elements.get('updated') 46 if not e1: 47 return -1 48 49 d0 = parse_isodate(str(e0)) 50 d1 = parse_isodate(str(e1)) 51 52 delta = d1 - d0 53 54 if delta == _zero_delta: 55 return 0 56 if delta.days < 0: 57 return -1 58 if delta != _zero_delta: 59 return 1
60