[tor-commits] [sbws/master] Reorder methods in BWV3Header
juga at torproject.org
juga at torproject.org
Tue Sep 18 09:26:11 UTC 2018
commit 40a76cc7d6566626a871abf0934a379b3cad40bb
Author: juga0 <juga at riseup.net>
Date: Wed Aug 29 14:40:28 2018 +0000
Reorder methods in BWV3Header
1. magic methods
2. classmethods
3. staticmethods
4. properties
5. methods
---
sbws/lib/v3bwfile.py | 116 +++++++++++++++++++++++++--------------------------
1 file changed, 58 insertions(+), 58 deletions(-)
diff --git a/sbws/lib/v3bwfile.py b/sbws/lib/v3bwfile.py
index ad3e2e2..d663445 100644
--- a/sbws/lib/v3bwfile.py
+++ b/sbws/lib/v3bwfile.py
@@ -109,53 +109,26 @@ class V3BWHeader(object):
[setattr(self, k, v) for k, v in kwargs.items()
if k in EXTRA_ARG_KEYVALUES]
- @property
- def keyvalue_unordered_tuple_ls(self):
- """Return list of KeyValue tuples that do not have specific order."""
- # sort the list to generate determinist headers
- keyvalue_tuple_ls = sorted([(k, v) for k, v in self.__dict__.items()
- if k in UNORDERED_KEYVALUES])
- return keyvalue_tuple_ls
-
- @property
- def keyvalue_tuple_ls(self):
- """Return list of all KeyValue tuples"""
- return [('version', self.version)] + self.keyvalue_unordered_tuple_ls
-
- @property
- def keyvalue_v110str_ls(self):
- """Return KeyValue list of strings following spec v1.1.0."""
- keyvalues = [self.timestamp] + [KEYVALUE_SEP_V110.join([k, v])
- for k, v in self.keyvalue_tuple_ls]
- return keyvalues
-
- @property
- def strv110(self):
- """Return header string following spec v1.1.0."""
- header_str = LINE_SEP.join(self.keyvalue_v110str_ls) + LINE_SEP + \
- LINE_TERMINATOR
- return header_str
-
- @property
- def keyvalue_v200_ls(self):
- """Return KeyValue list of strings following spec v2.0.0."""
- keyvalue = [self.timestamp] + [KEYVALUE_SEP_V200.join([k, v])
- for k, v in self.keyvalue_tuple_ls]
- return keyvalue
-
- @property
- def strv200(self):
- """Return header string following spec v2.0.0."""
- header_str = LINE_SEP.join(self.keyvalue_v200_ls) + LINE_SEP + \
- LINE_TERMINATOR
- return header_str
-
def __str__(self):
if self.version == '1.1.0':
return self.strv110
return self.strv200
@classmethod
+ def from_results(cls, conf, results):
+ kwargs = dict()
+ latest_bandwidth = cls.latest_bandwidth_from_results(results)
+ earliest_bandwidth = cls.earliest_bandwidth_from_results(results)
+ generator_started = cls.generator_started_from_file(conf)
+ timestamp = str(latest_bandwidth)
+ kwargs['latest_bandwidth'] = unixts_to_isodt_str(latest_bandwidth)
+ kwargs['earliest_bandwidth'] = unixts_to_isodt_str(earliest_bandwidth)
+ if generator_started is not None:
+ kwargs['generator_started'] = generator_started
+ h = cls(timestamp, **kwargs)
+ return h
+
+ @classmethod
def from_lines_v110(cls, lines):
"""
:param list lines: list of lines to parse
@@ -184,10 +157,6 @@ class V3BWHeader(object):
assert isinstance(text, str)
return self.from_lines_v110(text.split(LINE_SEP))
- @property
- def num_lines(self):
- return len(self.__str__().split(LINE_SEP))
-
@staticmethod
def generator_started_from_file(conf):
'''
@@ -208,19 +177,50 @@ class V3BWHeader(object):
def earliest_bandwidth_from_results(results):
return round(min([r.time for fp in results for r in results[fp]]))
- @classmethod
- def from_results(cls, conf, results):
- kwargs = dict()
- latest_bandwidth = cls.latest_bandwidth_from_results(results)
- earliest_bandwidth = cls.earliest_bandwidth_from_results(results)
- generator_started = cls.generator_started_from_file(conf)
- timestamp = str(latest_bandwidth)
- kwargs['latest_bandwidth'] = unixts_to_isodt_str(latest_bandwidth)
- kwargs['earliest_bandwidth'] = unixts_to_isodt_str(earliest_bandwidth)
- if generator_started is not None:
- kwargs['generator_started'] = generator_started
- h = cls(timestamp, **kwargs)
- return h
+ @property
+ def keyvalue_unordered_tuple_ls(self):
+ """Return list of KeyValue tuples that do not have specific order."""
+ # sort the list to generate determinist headers
+ keyvalue_tuple_ls = sorted([(k, v) for k, v in self.__dict__.items()
+ if k in UNORDERED_KEYVALUES])
+ return keyvalue_tuple_ls
+
+ @property
+ def keyvalue_tuple_ls(self):
+ """Return list of all KeyValue tuples"""
+ return [('version', self.version)] + self.keyvalue_unordered_tuple_ls
+
+ @property
+ def keyvalue_v110str_ls(self):
+ """Return KeyValue list of strings following spec v1.1.0."""
+ keyvalues = [self.timestamp] + [KEYVALUE_SEP_V110.join([k, v])
+ for k, v in self.keyvalue_tuple_ls]
+ return keyvalues
+
+ @property
+ def strv110(self):
+ """Return header string following spec v1.1.0."""
+ header_str = LINE_SEP.join(self.keyvalue_v110str_ls) + LINE_SEP + \
+ LINE_TERMINATOR
+ return header_str
+
+ @property
+ def keyvalue_v200_ls(self):
+ """Return KeyValue list of strings following spec v2.0.0."""
+ keyvalue = [self.timestamp] + [KEYVALUE_SEP_V200.join([k, v])
+ for k, v in self.keyvalue_tuple_ls]
+ return keyvalue
+
+ @property
+ def strv200(self):
+ """Return header string following spec v2.0.0."""
+ header_str = LINE_SEP.join(self.keyvalue_v200_ls) + LINE_SEP + \
+ LINE_TERMINATOR
+ return header_str
+
+ @property
+ def num_lines(self):
+ return len(self.__str__().split(LINE_SEP))
class V3BWLine(object):
More information about the tor-commits
mailing list