~unity-2d-team/unity-2d/Shell-MultiMonitor

« back to all changes in this revision

Viewing changes to grackle/model.py

  • Committer: William Grant
  • Date: 2012-01-23 02:53:38 UTC
  • Revision ID: william.grant@canonical.com-20120123025338-n6lgeh6ra8kyi8h6
Refactor formatters, push headers into a subdict.

Show diffs side-by-side

added added

removed removed

Lines of Context:
127
127
    ])
128
128
 
129
129
 
130
 
def _format_message(want, message):
 
130
def _format_message(message, headers=[], include_raw=False):
131
131
    data = {}
132
 
    for key in want:
133
 
        data[key] = message.get(key)
 
132
 
 
133
    if headers:
 
134
        assert not set(headers).difference(LEGAL_HEADERS)
 
135
        hdict = {}
 
136
        for header in headers:
 
137
            hdict[header] = message.get(header)
 
138
        data['headers'] = hdict
 
139
 
 
140
    if include_raw:
 
141
        data['content'] = message['content']
 
142
 
134
143
    return data
135
144
 
136
145
 
137
 
def _format_all(headers):
138
 
    assert not set(headers).difference(LEGAL_HEADERS)
139
 
    want = list(headers) + ['content']
140
 
    return want, functools.partial(_format_message, want)
141
 
 
142
 
 
143
 
FORMATS = {
144
 
    'all': _format_all,
145
 
    }
146
 
 
147
 
 
148
146
class CassandraConnection(object):
149
147
 
150
148
    def __init__(self, keyspace, host):
220
218
 
221
219
        # We've narrowed down the message references. Fetch the messages.
222
220
        ids = [v for k, v in pairs]
223
 
 
224
 
        wanted_cols, func = FORMATS[format](headers)
225
 
 
 
221
        formatter = functools.partial(
 
222
            _format_message, headers=headers, include_raw=True)
226
223
        # XXX: No need to get all columns. Restrict based on format.
227
224
        messages = self.messages.multiget(ids)
228
225
 
229
226
        return (
230
227
            str(pairs[0][0]),
231
 
            [func(messages[id]) for id in ids],
 
228
            [formatter(messages[id]) for id in ids],
232
229
            str(pairs[-1][0]),
233
230
            )