mirror of
https://github.com/clinton-hall/nzbToMedia.git
synced 2024-11-14 17:40:24 -08:00
f05b09f349
Updates rarfile to 3.1 Updates stevedore to 3.5.0 Updates appdirs to 1.4.4 Updates click to 8.1.3 Updates decorator to 5.1.1 Updates dogpile.cache to 1.1.8 Updates pbr to 5.11.0 Updates pysrt to 1.1.2 Updates pytz to 2022.6 Adds importlib-metadata version 3.1.1 Adds typing-extensions version 4.1.1 Adds zipp version 3.11.0
50 lines
1.3 KiB
Python
50 lines
1.3 KiB
Python
import textwrap
|
|
import typing as t
|
|
from contextlib import contextmanager
|
|
|
|
|
|
class TextWrapper(textwrap.TextWrapper):
|
|
def _handle_long_word(
|
|
self,
|
|
reversed_chunks: t.List[str],
|
|
cur_line: t.List[str],
|
|
cur_len: int,
|
|
width: int,
|
|
) -> None:
|
|
space_left = max(width - cur_len, 1)
|
|
|
|
if self.break_long_words:
|
|
last = reversed_chunks[-1]
|
|
cut = last[:space_left]
|
|
res = last[space_left:]
|
|
cur_line.append(cut)
|
|
reversed_chunks[-1] = res
|
|
elif not cur_line:
|
|
cur_line.append(reversed_chunks.pop())
|
|
|
|
@contextmanager
|
|
def extra_indent(self, indent: str) -> t.Iterator[None]:
|
|
old_initial_indent = self.initial_indent
|
|
old_subsequent_indent = self.subsequent_indent
|
|
self.initial_indent += indent
|
|
self.subsequent_indent += indent
|
|
|
|
try:
|
|
yield
|
|
finally:
|
|
self.initial_indent = old_initial_indent
|
|
self.subsequent_indent = old_subsequent_indent
|
|
|
|
def indent_only(self, text: str) -> str:
|
|
rv = []
|
|
|
|
for idx, line in enumerate(text.splitlines()):
|
|
indent = self.initial_indent
|
|
|
|
if idx > 0:
|
|
indent = self.subsequent_indent
|
|
|
|
rv.append(f"{indent}{line}")
|
|
|
|
return "\n".join(rv)
|