From 3f22a9d8153ebc6a13b0083d26196a10847b01eb Mon Sep 17 00:00:00 2001 From: Matt Martz Date: Tue, 22 Dec 2015 15:20:30 -0600 Subject: [PATCH] Move representation methods, and add __repr__ --- speedtest_cli.py | 69 +++++++++++++++++++++++++----------------------- 1 file changed, 36 insertions(+), 33 deletions(-) diff --git a/speedtest_cli.py b/speedtest_cli.py index a3acda9..45d31d0 100755 --- a/speedtest_cli.py +++ b/speedtest_cli.py @@ -464,39 +464,8 @@ class SpeedtestResults(object): self._share = None self.timestamp = datetime.datetime.utcnow().isoformat() - def dict(self): - """Return dictionary of result data""" - - return { - 'download': self.download, - 'upload': self.upload, - 'ping': self.ping, - 'server': self.server, - 'timestamp': self.timestamp - } - - def csv(self, delimiter=','): - """Return data in CSV format""" - - data = self.dict() - out = StringIO() - writer = csv.writer(out, delimiter=delimiter, lineterminator='') - writer.writerow([data['server']['id'], data['server']['sponsor'], - data['server']['name'], data['timestamp'], - data['server']['d'], data['ping'], data['download'], - data['upload']]) - return out.getvalue() - - def json(self, pretty=False): - """Return data in JSON format""" - - kwargs = {} - if pretty: - kwargs.update({ - 'indent': 4, - 'sort_keys': True - }) - return json.dumps(self.dict(), **kwargs) + def __repr__(self): + return repr(self.dict()) def share(self): """POST data to the speedtest.net API to obtain a share results @@ -552,6 +521,40 @@ class SpeedtestResults(object): return self._share + def dict(self): + """Return dictionary of result data""" + + return { + 'download': self.download, + 'upload': self.upload, + 'ping': self.ping, + 'server': self.server, + 'timestamp': self.timestamp + } + + def csv(self, delimiter=','): + """Return data in CSV format""" + + data = self.dict() + out = StringIO() + writer = csv.writer(out, delimiter=delimiter, lineterminator='') + writer.writerow([data['server']['id'], data['server']['sponsor'], + data['server']['name'], data['timestamp'], + data['server']['d'], data['ping'], data['download'], + data['upload']]) + return out.getvalue() + + def json(self, pretty=False): + """Return data in JSON format""" + + kwargs = {} + if pretty: + kwargs.update({ + 'indent': 4, + 'sort_keys': True + }) + return json.dumps(self.dict(), **kwargs) + def simple(self, units=('bit', 8)): return """Ping: %s ms Download: %0.2f M%s/s