equal
deleted
inserted
replaced
49 # .limit method |
49 # .limit method |
50 self.limited = None |
50 self.limited = None |
51 # set by the cursor which returned this resultset |
51 # set by the cursor which returned this resultset |
52 self.vreg = None |
52 self.vreg = None |
53 self.req = None |
53 self.req = None |
54 |
54 # actions cache |
|
55 self._rsetactions = None |
|
56 |
55 def __str__(self): |
57 def __str__(self): |
56 if not self.rows: |
58 if not self.rows: |
57 return '<empty resultset %s>' % self.rql |
59 return '<empty resultset %s>' % self.rql |
58 return '<resultset %s (%s rows)>' % (self.rql, len(self.rows)) |
60 return '<resultset %s (%s rows)>' % (self.rql, len(self.rows)) |
59 |
61 |
68 '\n'.join(str(r) for r in rows)) |
70 '\n'.join(str(r) for r in rows)) |
69 return '<resultset %r (%s rows): %s>' % (self.rql, len(self.rows), |
71 return '<resultset %r (%s rows): %s>' % (self.rql, len(self.rows), |
70 '\n'.join('%s (%s)' % (r, d) |
72 '\n'.join('%s (%s)' % (r, d) |
71 for r, d in zip(rows, self.description))) |
73 for r, d in zip(rows, self.description))) |
72 |
74 |
73 @cached |
75 def possible_actions(self, **kwargs): |
74 def possible_actions(self): |
76 if self._rsetactions is None: |
75 return self.vreg.possible_vobjects('actions', self.req, self) |
77 self._rsetactions = {} |
|
78 if kwargs: |
|
79 key = tuple(sorted(kwargs.iteritems())) |
|
80 else: |
|
81 key = None |
|
82 try: |
|
83 return self._rsetactions[key] |
|
84 except KeyError: |
|
85 actions = self.vreg.possible_vobjects('actions', self.req, self, **kwargs) |
|
86 self._rsetactions[key] = actions |
|
87 return actions |
76 |
88 |
77 def __len__(self): |
89 def __len__(self): |
78 """returns the result set's size""" |
90 """returns the result set's size""" |
79 return self.rowcount |
91 return self.rowcount |
80 |
92 |