scripts: Renamed Attr -> CsvAttr
Mainly to avoid confusion with littlefs's attrs, uattrs, rattrs, etc. This risked things getting _really_ confusing as the scripts evolve.
This commit is contained in:
+8
-8
@@ -236,7 +236,7 @@ def dat(x, *args):
|
|||||||
raise
|
raise
|
||||||
|
|
||||||
# a representation of optionally key-mapped attrs
|
# a representation of optionally key-mapped attrs
|
||||||
class Attr:
|
class CsvAttr:
|
||||||
def __init__(self, attrs, defaults=None):
|
def __init__(self, attrs, defaults=None):
|
||||||
if attrs is None:
|
if attrs is None:
|
||||||
attrs = []
|
attrs = []
|
||||||
@@ -260,20 +260,20 @@ class Attr:
|
|||||||
self.keyed[attr[0]].append(attr[1])
|
self.keyed[attr[0]].append(attr[1])
|
||||||
|
|
||||||
# create attrs object for defaults
|
# create attrs object for defaults
|
||||||
if isinstance(defaults, Attr):
|
if isinstance(defaults, CsvAttr):
|
||||||
self.defaults = defaults
|
self.defaults = defaults
|
||||||
elif defaults is not None:
|
elif defaults is not None:
|
||||||
self.defaults = Attr(defaults)
|
self.defaults = CsvAttr(defaults)
|
||||||
else:
|
else:
|
||||||
self.defaults = None
|
self.defaults = None
|
||||||
|
|
||||||
def __repr__(self):
|
def __repr__(self):
|
||||||
if self.defaults is None:
|
if self.defaults is None:
|
||||||
return 'Attr(%r)' % (
|
return 'CsvAttr(%r)' % (
|
||||||
[(','.join(attr[0]), attr[1])
|
[(','.join(attr[0]), attr[1])
|
||||||
for attr in self.attrs])
|
for attr in self.attrs])
|
||||||
else:
|
else:
|
||||||
return 'Attr(%r, %r)' % (
|
return 'CsvAttr(%r, %r)' % (
|
||||||
[(','.join(attr[0]), attr[1])
|
[(','.join(attr[0]), attr[1])
|
||||||
for attr in self.attrs],
|
for attr in self.attrs],
|
||||||
[(','.join(attr[0]), attr[1])
|
[(','.join(attr[0]), attr[1])
|
||||||
@@ -979,11 +979,11 @@ def main_(ring, paths, *,
|
|||||||
chars_.extend((char[0], c) for c in psplit(char[1]))
|
chars_.extend((char[0], c) for c in psplit(char[1]))
|
||||||
else:
|
else:
|
||||||
chars_.extend(psplit(char))
|
chars_.extend(psplit(char))
|
||||||
chars_ = Attr(chars_)
|
chars_ = CsvAttr(chars_)
|
||||||
|
|
||||||
colors_ = Attr(colors, defaults=COLORS)
|
colors_ = CsvAttr(colors, defaults=COLORS)
|
||||||
|
|
||||||
labels_ = Attr(labels)
|
labels_ = CsvAttr(labels)
|
||||||
|
|
||||||
# figure out width/height
|
# figure out width/height
|
||||||
if width is None:
|
if width is None:
|
||||||
|
|||||||
@@ -105,7 +105,7 @@ def dat(x, *args):
|
|||||||
raise
|
raise
|
||||||
|
|
||||||
# a representation of optionally key-mapped attrs
|
# a representation of optionally key-mapped attrs
|
||||||
class Attr:
|
class CsvAttr:
|
||||||
def __init__(self, attrs, defaults=None):
|
def __init__(self, attrs, defaults=None):
|
||||||
if attrs is None:
|
if attrs is None:
|
||||||
attrs = []
|
attrs = []
|
||||||
@@ -129,20 +129,20 @@ class Attr:
|
|||||||
self.keyed[attr[0]].append(attr[1])
|
self.keyed[attr[0]].append(attr[1])
|
||||||
|
|
||||||
# create attrs object for defaults
|
# create attrs object for defaults
|
||||||
if isinstance(defaults, Attr):
|
if isinstance(defaults, CsvAttr):
|
||||||
self.defaults = defaults
|
self.defaults = defaults
|
||||||
elif defaults is not None:
|
elif defaults is not None:
|
||||||
self.defaults = Attr(defaults)
|
self.defaults = CsvAttr(defaults)
|
||||||
else:
|
else:
|
||||||
self.defaults = None
|
self.defaults = None
|
||||||
|
|
||||||
def __repr__(self):
|
def __repr__(self):
|
||||||
if self.defaults is None:
|
if self.defaults is None:
|
||||||
return 'Attr(%r)' % (
|
return 'CsvAttr(%r)' % (
|
||||||
[(','.join(attr[0]), attr[1])
|
[(','.join(attr[0]), attr[1])
|
||||||
for attr in self.attrs])
|
for attr in self.attrs])
|
||||||
else:
|
else:
|
||||||
return 'Attr(%r, %r)' % (
|
return 'CsvAttr(%r, %r)' % (
|
||||||
[(','.join(attr[0]), attr[1])
|
[(','.join(attr[0]), attr[1])
|
||||||
for attr in self.attrs],
|
for attr in self.attrs],
|
||||||
[(','.join(attr[0]), attr[1])
|
[(','.join(attr[0]), attr[1])
|
||||||
@@ -681,9 +681,9 @@ def main(paths, output, *,
|
|||||||
mode_callers = True
|
mode_callers = True
|
||||||
|
|
||||||
# what colors/labels to use?
|
# what colors/labels to use?
|
||||||
colors_ = Attr(colors, defaults=COLORS_DARK if dark else COLORS)
|
colors_ = CsvAttr(colors, defaults=COLORS_DARK if dark else COLORS)
|
||||||
|
|
||||||
labels_ = Attr(labels)
|
labels_ = CsvAttr(labels)
|
||||||
|
|
||||||
if background is not None:
|
if background is not None:
|
||||||
background_ = background
|
background_ = background
|
||||||
|
|||||||
+7
-7
@@ -3800,7 +3800,7 @@ class RingIO:
|
|||||||
sys.stdout.flush()
|
sys.stdout.flush()
|
||||||
|
|
||||||
# a representation of optionally key-mapped attrs
|
# a representation of optionally key-mapped attrs
|
||||||
class Attr:
|
class CsvAttr:
|
||||||
def __init__(self, attrs, defaults=None):
|
def __init__(self, attrs, defaults=None):
|
||||||
if attrs is None:
|
if attrs is None:
|
||||||
attrs = []
|
attrs = []
|
||||||
@@ -3824,20 +3824,20 @@ class Attr:
|
|||||||
self.keyed[attr[0]].append(attr[1])
|
self.keyed[attr[0]].append(attr[1])
|
||||||
|
|
||||||
# create attrs object for defaults
|
# create attrs object for defaults
|
||||||
if isinstance(defaults, Attr):
|
if isinstance(defaults, CsvAttr):
|
||||||
self.defaults = defaults
|
self.defaults = defaults
|
||||||
elif defaults is not None:
|
elif defaults is not None:
|
||||||
self.defaults = Attr(defaults)
|
self.defaults = CsvAttr(defaults)
|
||||||
else:
|
else:
|
||||||
self.defaults = None
|
self.defaults = None
|
||||||
|
|
||||||
def __repr__(self):
|
def __repr__(self):
|
||||||
if self.defaults is None:
|
if self.defaults is None:
|
||||||
return 'Attr(%r)' % (
|
return 'CsvAttr(%r)' % (
|
||||||
[(','.join(attr[0]), attr[1])
|
[(','.join(attr[0]), attr[1])
|
||||||
for attr in self.attrs])
|
for attr in self.attrs])
|
||||||
else:
|
else:
|
||||||
return 'Attr(%r, %r)' % (
|
return 'CsvAttr(%r, %r)' % (
|
||||||
[(','.join(attr[0]), attr[1])
|
[(','.join(attr[0]), attr[1])
|
||||||
for attr in self.attrs],
|
for attr in self.attrs],
|
||||||
[(','.join(attr[0]), attr[1])
|
[(','.join(attr[0]), attr[1])
|
||||||
@@ -4458,9 +4458,9 @@ def main_(ring, disk, mroots=None, *,
|
|||||||
chars_.extend((char[0], c) for c in psplit(char[1]))
|
chars_.extend((char[0], c) for c in psplit(char[1]))
|
||||||
else:
|
else:
|
||||||
chars_.extend(psplit(char))
|
chars_.extend(psplit(char))
|
||||||
chars_ = Attr(chars_, defaults=[True] if braille or dots else CHARS)
|
chars_ = CsvAttr(chars_, defaults=[True] if braille or dots else CHARS)
|
||||||
|
|
||||||
colors_ = Attr(colors, defaults=COLORS)
|
colors_ = CsvAttr(colors, defaults=COLORS)
|
||||||
|
|
||||||
# figure out width/height
|
# figure out width/height
|
||||||
if width is None:
|
if width is None:
|
||||||
|
|||||||
@@ -3688,7 +3688,7 @@ class Lfs:
|
|||||||
|
|
||||||
|
|
||||||
# a representation of optionally key-mapped attrs
|
# a representation of optionally key-mapped attrs
|
||||||
class Attr:
|
class CsvAttr:
|
||||||
def __init__(self, attrs, defaults=None):
|
def __init__(self, attrs, defaults=None):
|
||||||
if attrs is None:
|
if attrs is None:
|
||||||
attrs = []
|
attrs = []
|
||||||
@@ -3712,20 +3712,20 @@ class Attr:
|
|||||||
self.keyed[attr[0]].append(attr[1])
|
self.keyed[attr[0]].append(attr[1])
|
||||||
|
|
||||||
# create attrs object for defaults
|
# create attrs object for defaults
|
||||||
if isinstance(defaults, Attr):
|
if isinstance(defaults, CsvAttr):
|
||||||
self.defaults = defaults
|
self.defaults = defaults
|
||||||
elif defaults is not None:
|
elif defaults is not None:
|
||||||
self.defaults = Attr(defaults)
|
self.defaults = CsvAttr(defaults)
|
||||||
else:
|
else:
|
||||||
self.defaults = None
|
self.defaults = None
|
||||||
|
|
||||||
def __repr__(self):
|
def __repr__(self):
|
||||||
if self.defaults is None:
|
if self.defaults is None:
|
||||||
return 'Attr(%r)' % (
|
return 'CsvAttr(%r)' % (
|
||||||
[(','.join(attr[0]), attr[1])
|
[(','.join(attr[0]), attr[1])
|
||||||
for attr in self.attrs])
|
for attr in self.attrs])
|
||||||
else:
|
else:
|
||||||
return 'Attr(%r, %r)' % (
|
return 'CsvAttr(%r, %r)' % (
|
||||||
[(','.join(attr[0]), attr[1])
|
[(','.join(attr[0]), attr[1])
|
||||||
for attr in self.attrs],
|
for attr in self.attrs],
|
||||||
[(','.join(attr[0]), attr[1])
|
[(','.join(attr[0]), attr[1])
|
||||||
@@ -4175,9 +4175,9 @@ def main(disk, output, mroots=None, *,
|
|||||||
mode_redund = True
|
mode_redund = True
|
||||||
|
|
||||||
# what colors/labels to use?
|
# what colors/labels to use?
|
||||||
colors_ = Attr(colors, defaults=COLORS_DARK if dark else COLORS)
|
colors_ = CsvAttr(colors, defaults=COLORS_DARK if dark else COLORS)
|
||||||
|
|
||||||
labels_ = Attr(labels)
|
labels_ = CsvAttr(labels)
|
||||||
|
|
||||||
if background is not None:
|
if background is not None:
|
||||||
background_ = background
|
background_ = background
|
||||||
|
|||||||
+9
-9
@@ -251,7 +251,7 @@ class RingIO:
|
|||||||
sys.stdout.flush()
|
sys.stdout.flush()
|
||||||
|
|
||||||
# a representation of optionally key-mapped attrs
|
# a representation of optionally key-mapped attrs
|
||||||
class Attr:
|
class CsvAttr:
|
||||||
def __init__(self, attrs, defaults=None):
|
def __init__(self, attrs, defaults=None):
|
||||||
if attrs is None:
|
if attrs is None:
|
||||||
attrs = []
|
attrs = []
|
||||||
@@ -275,20 +275,20 @@ class Attr:
|
|||||||
self.keyed[attr[0]].append(attr[1])
|
self.keyed[attr[0]].append(attr[1])
|
||||||
|
|
||||||
# create attrs object for defaults
|
# create attrs object for defaults
|
||||||
if isinstance(defaults, Attr):
|
if isinstance(defaults, CsvAttr):
|
||||||
self.defaults = defaults
|
self.defaults = defaults
|
||||||
elif defaults is not None:
|
elif defaults is not None:
|
||||||
self.defaults = Attr(defaults)
|
self.defaults = CsvAttr(defaults)
|
||||||
else:
|
else:
|
||||||
self.defaults = None
|
self.defaults = None
|
||||||
|
|
||||||
def __repr__(self):
|
def __repr__(self):
|
||||||
if self.defaults is None:
|
if self.defaults is None:
|
||||||
return 'Attr(%r)' % (
|
return 'CsvAttr(%r)' % (
|
||||||
[(','.join(attr[0]), attr[1])
|
[(','.join(attr[0]), attr[1])
|
||||||
for attr in self.attrs])
|
for attr in self.attrs])
|
||||||
else:
|
else:
|
||||||
return 'Attr(%r, %r)' % (
|
return 'CsvAttr(%r, %r)' % (
|
||||||
[(','.join(attr[0]), attr[1])
|
[(','.join(attr[0]), attr[1])
|
||||||
for attr in self.attrs],
|
for attr in self.attrs],
|
||||||
[(','.join(attr[0]), attr[1])
|
[(','.join(attr[0]), attr[1])
|
||||||
@@ -1017,7 +1017,7 @@ def main(path='-', *,
|
|||||||
chars_.extend((char[0], c) for c in psplit(char[1]))
|
chars_.extend((char[0], c) for c in psplit(char[1]))
|
||||||
else:
|
else:
|
||||||
chars_.extend(psplit(char))
|
chars_.extend(psplit(char))
|
||||||
chars_ = Attr(chars_,
|
chars_ = CsvAttr(chars_,
|
||||||
defaults=[True] if braille or dots else CHARS)
|
defaults=[True] if braille or dots else CHARS)
|
||||||
|
|
||||||
wear_chars_ = []
|
wear_chars_ = []
|
||||||
@@ -1026,12 +1026,12 @@ def main(path='-', *,
|
|||||||
wear_chars_.extend((char[0], c) for c in psplit(char[1]))
|
wear_chars_.extend((char[0], c) for c in psplit(char[1]))
|
||||||
else:
|
else:
|
||||||
wear_chars_.extend(psplit(char))
|
wear_chars_.extend(psplit(char))
|
||||||
wear_chars_ = Attr(wear_chars_,
|
wear_chars_ = CsvAttr(wear_chars_,
|
||||||
defaults=[True] if braille or dots else WEAR_CHARS)
|
defaults=[True] if braille or dots else WEAR_CHARS)
|
||||||
|
|
||||||
colors_ = Attr(colors, defaults=COLORS)
|
colors_ = CsvAttr(colors, defaults=COLORS)
|
||||||
|
|
||||||
wear_colors_ = Attr(wear_colors, defaults=WEAR_COLORS)
|
wear_colors_ = CsvAttr(wear_colors, defaults=WEAR_COLORS)
|
||||||
|
|
||||||
# is bd geometry specified?
|
# is bd geometry specified?
|
||||||
if isinstance(block_size, tuple):
|
if isinstance(block_size, tuple):
|
||||||
|
|||||||
+9
-9
@@ -442,7 +442,7 @@ def fold(results, by=None, x=None, y=None, defines=[]):
|
|||||||
return datasets, dataattrs
|
return datasets, dataattrs
|
||||||
|
|
||||||
# a representation of optionally key-mapped attrs
|
# a representation of optionally key-mapped attrs
|
||||||
class Attr:
|
class CsvAttr:
|
||||||
def __init__(self, attrs, defaults=None):
|
def __init__(self, attrs, defaults=None):
|
||||||
if attrs is None:
|
if attrs is None:
|
||||||
attrs = []
|
attrs = []
|
||||||
@@ -466,20 +466,20 @@ class Attr:
|
|||||||
self.keyed[attr[0]].append(attr[1])
|
self.keyed[attr[0]].append(attr[1])
|
||||||
|
|
||||||
# create attrs object for defaults
|
# create attrs object for defaults
|
||||||
if isinstance(defaults, Attr):
|
if isinstance(defaults, CsvAttr):
|
||||||
self.defaults = defaults
|
self.defaults = defaults
|
||||||
elif defaults is not None:
|
elif defaults is not None:
|
||||||
self.defaults = Attr(defaults)
|
self.defaults = CsvAttr(defaults)
|
||||||
else:
|
else:
|
||||||
self.defaults = None
|
self.defaults = None
|
||||||
|
|
||||||
def __repr__(self):
|
def __repr__(self):
|
||||||
if self.defaults is None:
|
if self.defaults is None:
|
||||||
return 'Attr(%r)' % (
|
return 'CsvAttr(%r)' % (
|
||||||
[(','.join(attr[0]), attr[1])
|
[(','.join(attr[0]), attr[1])
|
||||||
for attr in self.attrs])
|
for attr in self.attrs])
|
||||||
else:
|
else:
|
||||||
return 'Attr(%r, %r)' % (
|
return 'CsvAttr(%r, %r)' % (
|
||||||
[(','.join(attr[0]), attr[1])
|
[(','.join(attr[0]), attr[1])
|
||||||
for attr in self.attrs],
|
for attr in self.attrs],
|
||||||
[(','.join(attr[0]), attr[1])
|
[(','.join(attr[0]), attr[1])
|
||||||
@@ -1264,7 +1264,7 @@ def main_(ring, csv_paths, *,
|
|||||||
chars_.extend((char[0], c) for c in psplit(char[1]))
|
chars_.extend((char[0], c) for c in psplit(char[1]))
|
||||||
else:
|
else:
|
||||||
chars_.extend(psplit(char))
|
chars_.extend(psplit(char))
|
||||||
chars_ = Attr(chars_, defaults=(
|
chars_ = CsvAttr(chars_, defaults=(
|
||||||
CHARS_POINTS_AND_LINES if points_and_lines
|
CHARS_POINTS_AND_LINES if points_and_lines
|
||||||
else [True]))
|
else [True]))
|
||||||
|
|
||||||
@@ -1274,13 +1274,13 @@ def main_(ring, csv_paths, *,
|
|||||||
line_chars_.extend((line_char[0], c) for c in psplit(line_char[1]))
|
line_chars_.extend((line_char[0], c) for c in psplit(line_char[1]))
|
||||||
else:
|
else:
|
||||||
line_chars_.extend(psplit(line_char))
|
line_chars_.extend(psplit(line_char))
|
||||||
line_chars_ = Attr(line_chars_, defaults=(
|
line_chars_ = CsvAttr(line_chars_, defaults=(
|
||||||
[True] if points_and_lines or not points
|
[True] if points_and_lines or not points
|
||||||
else [False]))
|
else [False]))
|
||||||
|
|
||||||
colors_ = Attr(colors, defaults=COLORS)
|
colors_ = CsvAttr(colors, defaults=COLORS)
|
||||||
|
|
||||||
labels_ = Attr(labels)
|
labels_ = CsvAttr(labels)
|
||||||
|
|
||||||
# split %n newlines early
|
# split %n newlines early
|
||||||
title = (title.replace('%n', '\n').split('\n')
|
title = (title.replace('%n', '\n').split('\n')
|
||||||
|
|||||||
+8
-8
@@ -326,7 +326,7 @@ def fold(results, by=None, x=None, y=None, defines=[]):
|
|||||||
return datasets, dataattrs
|
return datasets, dataattrs
|
||||||
|
|
||||||
# a representation of optionally key-mapped attrs
|
# a representation of optionally key-mapped attrs
|
||||||
class Attr:
|
class CsvAttr:
|
||||||
def __init__(self, attrs, defaults=None):
|
def __init__(self, attrs, defaults=None):
|
||||||
if attrs is None:
|
if attrs is None:
|
||||||
attrs = []
|
attrs = []
|
||||||
@@ -350,20 +350,20 @@ class Attr:
|
|||||||
self.keyed[attr[0]].append(attr[1])
|
self.keyed[attr[0]].append(attr[1])
|
||||||
|
|
||||||
# create attrs object for defaults
|
# create attrs object for defaults
|
||||||
if isinstance(defaults, Attr):
|
if isinstance(defaults, CsvAttr):
|
||||||
self.defaults = defaults
|
self.defaults = defaults
|
||||||
elif defaults is not None:
|
elif defaults is not None:
|
||||||
self.defaults = Attr(defaults)
|
self.defaults = CsvAttr(defaults)
|
||||||
else:
|
else:
|
||||||
self.defaults = None
|
self.defaults = None
|
||||||
|
|
||||||
def __repr__(self):
|
def __repr__(self):
|
||||||
if self.defaults is None:
|
if self.defaults is None:
|
||||||
return 'Attr(%r)' % (
|
return 'CsvAttr(%r)' % (
|
||||||
[(','.join(attr[0]), attr[1])
|
[(','.join(attr[0]), attr[1])
|
||||||
for attr in self.attrs])
|
for attr in self.attrs])
|
||||||
else:
|
else:
|
||||||
return 'Attr(%r, %r)' % (
|
return 'CsvAttr(%r, %r)' % (
|
||||||
[(','.join(attr[0]), attr[1])
|
[(','.join(attr[0]), attr[1])
|
||||||
for attr in self.attrs],
|
for attr in self.attrs],
|
||||||
[(','.join(attr[0]), attr[1])
|
[(','.join(attr[0]), attr[1])
|
||||||
@@ -851,14 +851,14 @@ def main(csv_paths, output, *,
|
|||||||
svg = True
|
svg = True
|
||||||
|
|
||||||
# what colors/alphas/formats to use?
|
# what colors/alphas/formats to use?
|
||||||
colors_ = Attr(colors, defaults=COLORS_DARK if dark else COLORS)
|
colors_ = CsvAttr(colors, defaults=COLORS_DARK if dark else COLORS)
|
||||||
|
|
||||||
formats_ = Attr(formats, defaults=(
|
formats_ = CsvAttr(formats, defaults=(
|
||||||
FORMATS_POINTS_AND_LINES if points_and_lines
|
FORMATS_POINTS_AND_LINES if points_and_lines
|
||||||
else FORMATS_POINTS if points
|
else FORMATS_POINTS if points
|
||||||
else FORMATS))
|
else FORMATS))
|
||||||
|
|
||||||
labels_ = Attr(labels)
|
labels_ = CsvAttr(labels)
|
||||||
|
|
||||||
if font_color is not None:
|
if font_color is not None:
|
||||||
font_color_ = font_color
|
font_color_ = font_color
|
||||||
|
|||||||
+8
-8
@@ -309,7 +309,7 @@ def fold(results, by=None, fields=None, defines=[]):
|
|||||||
return datasets, dataattrs
|
return datasets, dataattrs
|
||||||
|
|
||||||
# a representation of optionally key-mapped attrs
|
# a representation of optionally key-mapped attrs
|
||||||
class Attr:
|
class CsvAttr:
|
||||||
def __init__(self, attrs, defaults=None):
|
def __init__(self, attrs, defaults=None):
|
||||||
if attrs is None:
|
if attrs is None:
|
||||||
attrs = []
|
attrs = []
|
||||||
@@ -333,20 +333,20 @@ class Attr:
|
|||||||
self.keyed[attr[0]].append(attr[1])
|
self.keyed[attr[0]].append(attr[1])
|
||||||
|
|
||||||
# create attrs object for defaults
|
# create attrs object for defaults
|
||||||
if isinstance(defaults, Attr):
|
if isinstance(defaults, CsvAttr):
|
||||||
self.defaults = defaults
|
self.defaults = defaults
|
||||||
elif defaults is not None:
|
elif defaults is not None:
|
||||||
self.defaults = Attr(defaults)
|
self.defaults = CsvAttr(defaults)
|
||||||
else:
|
else:
|
||||||
self.defaults = None
|
self.defaults = None
|
||||||
|
|
||||||
def __repr__(self):
|
def __repr__(self):
|
||||||
if self.defaults is None:
|
if self.defaults is None:
|
||||||
return 'Attr(%r)' % (
|
return 'CsvAttr(%r)' % (
|
||||||
[(','.join(attr[0]), attr[1])
|
[(','.join(attr[0]), attr[1])
|
||||||
for attr in self.attrs])
|
for attr in self.attrs])
|
||||||
else:
|
else:
|
||||||
return 'Attr(%r, %r)' % (
|
return 'CsvAttr(%r, %r)' % (
|
||||||
[(','.join(attr[0]), attr[1])
|
[(','.join(attr[0]), attr[1])
|
||||||
for attr in self.attrs],
|
for attr in self.attrs],
|
||||||
[(','.join(attr[0]), attr[1])
|
[(','.join(attr[0]), attr[1])
|
||||||
@@ -988,11 +988,11 @@ def main_(ring, csv_paths, *,
|
|||||||
chars_.extend((char[0], c) for c in psplit(char[1]))
|
chars_.extend((char[0], c) for c in psplit(char[1]))
|
||||||
else:
|
else:
|
||||||
chars_.extend(psplit(char))
|
chars_.extend(psplit(char))
|
||||||
chars_ = Attr(chars_)
|
chars_ = CsvAttr(chars_)
|
||||||
|
|
||||||
colors_ = Attr(colors, defaults=COLORS)
|
colors_ = CsvAttr(colors, defaults=COLORS)
|
||||||
|
|
||||||
labels_ = Attr(labels)
|
labels_ = CsvAttr(labels)
|
||||||
|
|
||||||
# figure out width/height
|
# figure out width/height
|
||||||
if width is None:
|
if width is None:
|
||||||
|
|||||||
@@ -177,7 +177,7 @@ def fold(results, by=None, fields=None, defines=[]):
|
|||||||
return datasets, dataattrs
|
return datasets, dataattrs
|
||||||
|
|
||||||
# a representation of optionally key-mapped attrs
|
# a representation of optionally key-mapped attrs
|
||||||
class Attr:
|
class CsvAttr:
|
||||||
def __init__(self, attrs, defaults=None):
|
def __init__(self, attrs, defaults=None):
|
||||||
if attrs is None:
|
if attrs is None:
|
||||||
attrs = []
|
attrs = []
|
||||||
@@ -201,20 +201,20 @@ class Attr:
|
|||||||
self.keyed[attr[0]].append(attr[1])
|
self.keyed[attr[0]].append(attr[1])
|
||||||
|
|
||||||
# create attrs object for defaults
|
# create attrs object for defaults
|
||||||
if isinstance(defaults, Attr):
|
if isinstance(defaults, CsvAttr):
|
||||||
self.defaults = defaults
|
self.defaults = defaults
|
||||||
elif defaults is not None:
|
elif defaults is not None:
|
||||||
self.defaults = Attr(defaults)
|
self.defaults = CsvAttr(defaults)
|
||||||
else:
|
else:
|
||||||
self.defaults = None
|
self.defaults = None
|
||||||
|
|
||||||
def __repr__(self):
|
def __repr__(self):
|
||||||
if self.defaults is None:
|
if self.defaults is None:
|
||||||
return 'Attr(%r)' % (
|
return 'CsvAttr(%r)' % (
|
||||||
[(','.join(attr[0]), attr[1])
|
[(','.join(attr[0]), attr[1])
|
||||||
for attr in self.attrs])
|
for attr in self.attrs])
|
||||||
else:
|
else:
|
||||||
return 'Attr(%r, %r)' % (
|
return 'CsvAttr(%r, %r)' % (
|
||||||
[(','.join(attr[0]), attr[1])
|
[(','.join(attr[0]), attr[1])
|
||||||
for attr in self.attrs],
|
for attr in self.attrs],
|
||||||
[(','.join(attr[0]), attr[1])
|
[(','.join(attr[0]), attr[1])
|
||||||
@@ -668,9 +668,9 @@ def main(csv_paths, output, *,
|
|||||||
no_header = True
|
no_header = True
|
||||||
|
|
||||||
# what colors/labels to use?
|
# what colors/labels to use?
|
||||||
colors_ = Attr(colors, defaults=COLORS_DARK if dark else COLORS)
|
colors_ = CsvAttr(colors, defaults=COLORS_DARK if dark else COLORS)
|
||||||
|
|
||||||
labels_ = Attr(labels)
|
labels_ = CsvAttr(labels)
|
||||||
|
|
||||||
if background is not None:
|
if background is not None:
|
||||||
background_ = background
|
background_ = background
|
||||||
|
|||||||
Reference in New Issue
Block a user