Пример #1
0
class SynchronousClient(object):
    """Synchronous client.

    This client should be used in long-polling mode.

    """
    def __init__(self,
                 server_url,
                 parse_event_body=True,
                 last_event_seen=None):
        self.server_url = server_url
        self.last_event_seen = last_event_seen
        self.deserializer = Deserializer()
        self.parse_event_body = parse_event_body
        self.stream_finished = False

    def receive_events(self):
        url = self.server_url
        if self.last_event_seen is not None:
            url += '?last-seen=' + self.last_event_seen
        connection = urllib2.urlopen(url)
        data = connection.read()
        evs = self.deserializer.deserialize(data,
                                            complete=True,
                                            parse_body=self.parse_event_body)
        connection.close()
        if len(evs) > 0:
            self.last_event_seen = evs[-1].event_id
        for event in evs:
            if (isinstance(event, Command)
                    and event.command == 'Stream-Finished'):
                self.stream_finished = True
                break
        return [e for e in evs if not isinstance(e, Command)]
Пример #2
0
class SynchronousClient(object):
    """Synchronous client.

    This client should be used in long-polling mode.

    """
    def __init__(self, server_url, parse_event_body=True,
                 last_event_seen=None):
        self.server_url = server_url
        self.last_event_seen = last_event_seen
        self.deserializer = Deserializer()
        self.parse_event_body = parse_event_body
        self.stream_finished = False

    def receive_events(self):
        url = self.server_url
        if self.last_event_seen is not None:
            url += '?last-seen=' + self.last_event_seen
        connection = urllib2.urlopen(url)
        data = connection.read()
        evs = self.deserializer.deserialize(data, complete=True,
                                            parse_body=self.parse_event_body)
        connection.close()
        if len(evs) > 0:
            self.last_event_seen = evs[-1].event_id
        for event in evs:
            if (isinstance(event, Command)
                and event.command == 'Stream-Finished'):
                self.stream_finished = True
                break
        return [e for e in evs if not isinstance(e, Command)]
Пример #3
0
def count_events(filename):
    """Counts the number of events in a file and their total size.

    Returns a tuple (num_events, num_bytes).

    """
    num_bytes = 0
    num_events = 0
    if filename.endswith('.gz'):
        file_ = gzip.GzipFile(filename, 'r')
    else:
        file_ = open(filename, 'r')
    deserializer = Deserializer()
    while True:
        data = file_.read(1024)
        if data == '':
            break
        evs = deserializer.deserialize(data, parse_body=False, complete=False)
        num_bytes += len(data)
        num_events += len(evs)
    file_.close()
    return num_events, num_bytes
Пример #4
0
def count_events(filename):
    """Counts the number of events in a file and their total size.

    Returns a tuple (num_events, num_bytes).

    """
    num_bytes = 0
    num_events = 0
    if filename.endswith('.gz'):
        file_ = gzip.GzipFile(filename, 'r')
    else:
        file_ = open(filename, 'r')
    deserializer = Deserializer()
    while True:
        data = file_.read(1024)
        if data == '':
            break
        evs = deserializer.deserialize(data, parse_body=False, complete=False)
        num_bytes += len(data)
        num_events += len(evs)
    file_.close()
    return num_events, num_bytes