Trees | Indices | Help |
|
---|
|
1 """ 2 I define the class OwnGroup. 3 4 This class is intended to be used only inside class Package. 5 """ 6 7 from advene.model.core.group import GroupMixin 8 from advene.util.autoproperty import autoproperty11 12 # TODO filtering parameters in iter_X and count_X have not been all added 13 # because of a lack of time, not for some good reason. 14 # So they shall be added whenever needed, or systematically when someone 15 # get the time to do it 16 19 20 @autoproperty14922 return self._owner2325 # the element is constructed, so if it belongs to the package, it must 26 # be present in its _elements attribute 27 return getattr(element, "_owner", None) is self._owner \ 28 and element._id in self._owner._elements29 3435 - def iter_annotations(self, media=None, 36 begin=None, begin_min=None, begin_max=None, 37 end=None, end_min=None, end_max=None, 38 at=None):39 if hasattr(media, '_get_uriref'): 40 media = media._get_uriref() 41 elif media is not None: 42 # It should be a sequence/iterator of medias 43 media = (m._get_uriref() for m in media) 44 if at is not None: 45 begin_max = end_min = at 46 o = self._owner 47 for i in o._backend.iter_annotations((o._id,), None, 48 media, 49 begin, begin_min, begin_max, 50 end, end_min, end_max): 51 yield o.get_element(i)5254 assert position is None or member is not None 55 if member: 56 member = member._get_uriref() 57 o = self._owner 58 for i in o._backend.iter_relations((o._id,), None, member, position): 59 yield o.get_element(i)60 65 70 7678 assert position is None or item is not None 79 if item: item = item._get_uriref() 80 if meta: meta = _prepare_meta(meta) 81 o = self._owner 82 for i in o._backend.iter_lists((o._id,), None, item, position, meta): 83 yield o.get_element(i)84 8991 o = self._owner 92 for i in o._backend.iter_imports((o._id,), None, url, uri): 93 yield o.get_element(i)94 9899 - def count_annotations(self, media=None, 100 begin=None, begin_min=None, begin_max=None, 101 end=None, end_min=None, end_max=None, 102 at=None):103 if hasattr(media, '_get_uriref'): 104 media = media._get_uriref() 105 elif media is not None: 106 # It should be a sequence/iterator of medias 107 media = (m._get_uriref() for m in media) 108 if at is not None: 109 begin_max = end_min = at 110 o = self._owner 111 return o._backend.count_annotations((o._id,), None, 112 media, 113 begin, begin_min, begin_max,)114116 assert position is None or member is not None 117 if member: 118 member = member._get_uriref() 119 o = self._owner 120 return o._backend.count_relations((o._id,), None, member, position)121 125 129 134136 assert position is None or item is not None 137 if item: item = item._get_uriref() 138 if meta: meta = _prepare_meta(meta) 139 o = self._owner 140 return o._backend.count_lists((o._id,), None, item, position, meta)141 145151 """ 152 Convert parameter meta as expected by the backend. 153 154 The input is a list of pairs (key, value) where value is either None, a 155 unicode or an instance of PackageElement. 156 157 The outpur is a list of 3-uples as expected by the backend. 158 """ 159 assert meta is not None 160 r = [] 161 for k,v in meta: 162 if v is None: 163 r.append((k, None, None)) 164 elif hasattr(v, "_get_uriref"): 165 r.append((k, v._get_uriref(), True)) 166 else: 167 r.append((k, unicode(v), False)) 168 return r169 # 170
Trees | Indices | Help |
|
---|
Generated by Epydoc 3.0.1 on Wed Jul 8 16:00:08 2009 | http://epydoc.sourceforge.net |