Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
for i in xrange(fullcols + bool(rem))]
return make_canvas(text, attr, maxcol, apfx+"value")
lprefix = len(self.prefix)
if self.value_str is not None:
if self.var_label is not None:
if len(self.prefix) + text_width(self.var_label) > self.SIZE_LIMIT:
# label too long? generate separate value line
text = [self.prefix + self.var_label,
self.prefix+" " + self.value_str]
attr = [
[(apfx+"label", lprefix+text_width(self.var_label))],
[(apfx+"value", lprefix+2+text_width(self.value_str))]
]
else:
text = [self.prefix + self.var_label + ": " + self.value_str]
attr = [[
(apfx+"label", lprefix+text_width(self.var_label)+2),
(apfx+"value", text_width(self.value_str)),
]]
else:
text = [self.prefix + self.value_str]
attr = [[
(apfx+"label", len(self.prefix)),
(apfx+"value", text_width(self.value_str)),
]]
else:
def _get_text(self, size):
maxcol = size[0] - len(self.prefix) # self.prefix is a padding
var_label = self.var_label or ''
value_str = self.value_str or ''
alltext = var_label + ": " + value_str
# The first line is not indented
firstline = self.prefix + alltext[:maxcol]
if not alltext[maxcol:]:
return [firstline]
fulllines, rest = divmod(text_width(alltext) - maxcol, maxcol - 2)
restlines = [alltext[(maxcol - 2)*i + maxcol:(maxcol - 2)*i + 2*maxcol - 2]
for i in xrange(fulllines + bool(rest))]
return [firstline] + [" " + self.prefix + i for i in restlines]
attr = [[
(apfx+"label", lprefix+text_width(self.var_label)+2),
(apfx+"value", text_width(self.value_str)),
]]
else:
text = [self.prefix + self.value_str]
attr = [[
(apfx+"label", len(self.prefix)),
(apfx+"value", text_width(self.value_str)),
]]
else:
text = [self.prefix + self.var_label]
attr = [[(apfx+"label", lprefix + text_width(self.var_label)), ]]
# Ellipses to show text was cut off
#encoding = urwid.util.detected_encoding
if False: # encoding[:3] == "UTF":
# Unicode is supported, use single character ellipsis
for i in xrange(len(text)):
if len(text[i]) > maxcol:
text[i] = (unicode(text[i][:maxcol-1]) # noqa: F821
+ ELLIPSIS + unicode(text[i][maxcol:])) # noqa: F821
# XXX: This doesn't work. It just gives a ?
# Strangely, the following does work (it gives the …
# three characters from the right):
#
# text[i] = (unicode(text[i][:maxcol-3])
# + unicode(u'…')) + unicode(text[i][maxcol-2:])
def render(self, size, focus=False):
from pudb.ui_tools import make_canvas
maxcol = size[0]
if focus:
apfx = "focused "+self.attr_prefix+" "
else:
apfx = self.attr_prefix+" "
var_label = self.var_label or ''
if self.wrap:
text = self._get_text(size)
extralabel_full, extralabel_rem = divmod(
text_width(var_label[maxcol:]), maxcol)
totallen = sum([text_width(i) for i in text])
labellen = (
len(self.prefix) # Padding of first line
+ (len(self.prefix) + 2) # Padding of subsequent lines
* (extralabel_full + bool(extralabel_rem))
+ text_width(var_label)
+ 2 # for ": "
)
_attr = [(apfx+"label", labellen), (apfx+"value", totallen - labellen)]
from urwid.util import rle_subseg
fullcols, rem = divmod(totallen, maxcol)
if False: # encoding[:3] == "UTF":
# Unicode is supported, use single character ellipsis
for i in xrange(len(text)):
if len(text[i]) > maxcol:
text[i] = (unicode(text[i][:maxcol-1]) # noqa: F821
+ ELLIPSIS + unicode(text[i][maxcol:])) # noqa: F821
# XXX: This doesn't work. It just gives a ?
# Strangely, the following does work (it gives the …
# three characters from the right):
#
# text[i] = (unicode(text[i][:maxcol-3])
# + unicode(u'…')) + unicode(text[i][maxcol-2:])
else:
for i in xrange(len(text)):
if text_width(text[i]) > maxcol:
text[i] = text[i][:maxcol-3] + "..."
return make_canvas(text, attr, maxcol, apfx+"value")
from pudb.ui_tools import make_canvas
maxcol = size[0]
if focus:
apfx = "focused "+self.attr_prefix+" "
else:
apfx = self.attr_prefix+" "
var_label = self.var_label or ''
if self.wrap:
text = self._get_text(size)
extralabel_full, extralabel_rem = divmod(
text_width(var_label[maxcol:]), maxcol)
totallen = sum([text_width(i) for i in text])
labellen = (
len(self.prefix) # Padding of first line
+ (len(self.prefix) + 2) # Padding of subsequent lines
* (extralabel_full + bool(extralabel_rem))
+ text_width(var_label)
+ 2 # for ": "
)
_attr = [(apfx+"label", labellen), (apfx+"value", totallen - labellen)]
from urwid.util import rle_subseg
fullcols, rem = divmod(totallen, maxcol)
var_label = self.var_label or ''
if self.wrap:
text = self._get_text(size)
extralabel_full, extralabel_rem = divmod(
text_width(var_label[maxcol:]), maxcol)
totallen = sum([text_width(i) for i in text])
labellen = (
len(self.prefix) # Padding of first line
+ (len(self.prefix) + 2) # Padding of subsequent lines
* (extralabel_full + bool(extralabel_rem))
+ text_width(var_label)
+ 2 # for ": "
)
_attr = [(apfx+"label", labellen), (apfx+"value", totallen - labellen)]
from urwid.util import rle_subseg
fullcols, rem = divmod(totallen, maxcol)
attr = [rle_subseg(_attr, i*maxcol, (i + 1)*maxcol)
for i in xrange(fullcols + bool(rem))]
return make_canvas(text, attr, maxcol, apfx+"value")
lprefix = len(self.prefix)
def rows(self, size, focus=False):
if self.wrap:
return len(self._get_text(size))
if (self.value_str is not None
and self.var_label is not None
and len(self.prefix) + text_width(self.var_label) > self.SIZE_LIMIT):
return 2
else:
return 1