return self.aggregate / count
def get_mode(self) -> Tuple[float, int]:
+ """Returns the mode (most common member)."""
+
count: Dict[float, int] = collections.defaultdict(int)
for n in self.lowers:
count[-n] += 1
return string
-def justify_text(text: str, *, width: int = 80, alignment: str = "c") -> str:
+def justify_text(text: str, *, width: int = 80, alignment: str = "c", indent_by: int = 0) -> str:
"""
- Justifies text.
+ Justifies text optionally with initial indentation.
>>> justify_text('This is a test of the emergency broadcast system. This is only a test.',
... width=40, alignment='j') #doctest: +NORMALIZE_WHITESPACE
'This is a test of the emergency\\nbroadcast system. This is only a test.'
"""
- retval = ""
- line = ""
+ retval = ''
+ indent = ''
+ if indent_by > 0:
+ indent += ' ' * indent_by
+ line = indent
+
for word in text.split():
if (
len(string_utils.strip_ansi_sequences(line))
) > width:
line = line[1:]
line = justify_string(line, width=width, alignment=alignment)
- retval = retval + "\n" + line
- line = ""
- line = line + " " + word
+ retval = retval + '\n' + line
+ line = indent
+ line = line + ' ' + word
if len(string_utils.strip_ansi_sequences(line)) > 0:
- retval += "\n" + line[1:]
+ if alignment != 'j':
+ retval += "\n" + justify_string(line[1:], width=width, alignment=alignment)
+ else:
+ retval += "\n" + line[1:]
return retval[1:]