Skip to content

Commit 4da33af

Browse files
committed
ENH14194: switch index_hidden to index_visible
1 parent 6f3d1d4 commit 4da33af

File tree

2 files changed

+41
-35
lines changed

2 files changed

+41
-35
lines changed

pandas/io/formats/style.py

+17-11
Original file line numberDiff line numberDiff line change
@@ -69,8 +69,14 @@ class Styler(object):
6969
a unique identifier to avoid CSS collisons; generated automatically
7070
caption: str, default None
7171
caption to attach to the table
72-
index_hidden: bool, default False
73-
hides the index in the html output
72+
index: bool, default True
73+
determines if the index is rendered in the html output
74+
75+
.. versionadded:: 0.20.1
76+
77+
hidden_cols: IndexSlice, default None
78+
hides a subset of columns from rendering
79+
7480
.. versionadded:: 0.20.1
7581
7682
Attributes
@@ -120,7 +126,7 @@ class Styler(object):
120126
template = env.get_template("html.tpl")
121127

122128
def __init__(self, data, precision=None, table_styles=None, uuid=None,
123-
caption=None, table_attributes=None, index_hidden=False,
129+
caption=None, table_attributes=None, index=True,
124130
hidden_cols=None):
125131
self.ctx = defaultdict(list)
126132
self._todo = []
@@ -143,7 +149,7 @@ def __init__(self, data, precision=None, table_styles=None, uuid=None,
143149
precision = get_option('display.precision')
144150
self.precision = precision
145151
self.table_attributes = table_attributes
146-
self.index_hidden = index_hidden
152+
self.index_visible = index
147153
if hidden_cols is None:
148154
hidden_cols = []
149155
self.hidden_cols = hidden_cols
@@ -195,7 +201,7 @@ def _translate(self):
195201
caption = self.caption
196202
ctx = self.ctx
197203
precision = self.precision
198-
index_hidden = self.index_hidden
204+
index_visible = self.index_visible
199205
hidden_cols = self.hidden_cols
200206
uuid = self.uuid or str(uuid1()).replace("-", "_")
201207
ROW_HEADING_CLASS = "row_heading"
@@ -234,7 +240,7 @@ def format_attr(pair):
234240
row_es = [{"type": "th",
235241
"value": BLANK_VALUE,
236242
"display_value": BLANK_VALUE,
237-
"is_visible": (not index_hidden),
243+
"is_visible": index_visible,
238244
"class": " ".join([BLANK_CLASS])}] * (n_rlvls - 1)
239245

240246
# ... except maybe the last for columns.names
@@ -246,7 +252,7 @@ def format_attr(pair):
246252
"value": name,
247253
"display_value": name,
248254
"class": " ".join(cs),
249-
"is_visible": (not index_hidden)})
255+
"is_visible": index_visible})
250256

251257
for c, value in enumerate(clabels[r]):
252258
cs = [COL_HEADING_CLASS, "level%s" % r, "col%s" % c]
@@ -267,7 +273,7 @@ def format_attr(pair):
267273
row_es.append(es)
268274
head.append(row_es)
269275

270-
if self.data.index.names and not index_hidden\
276+
if self.data.index.names and index_visible\
271277
and not all(x is None for x in self.data.index.names):
272278
index_header_row = []
273279

@@ -293,7 +299,7 @@ def format_attr(pair):
293299
es = {
294300
"type": "th",
295301
"is_visible": (_is_visible(r, c, idx_lengths) &
296-
(~index_hidden)),
302+
index_visible),
297303
"value": value,
298304
"display_value": value,
299305
"class": " ".join([ROW_HEADING_CLASS, "level%s" % c,
@@ -474,7 +480,7 @@ def _copy(self, deepcopy=False):
474480
styler = Styler(self.data, precision=self.precision,
475481
caption=self.caption, uuid=self.uuid,
476482
table_styles=self.table_styles,
477-
index_hidden=self.index_hidden,
483+
index=self.index_visible,
478484
hidden_cols=self.hidden_cols)
479485
if deepcopy:
480486
styler.ctx = copy.deepcopy(self.ctx)
@@ -787,7 +793,7 @@ def hide_index(self):
787793
-------
788794
self : Styler
789795
"""
790-
self.index_hidden = True
796+
self.index_visible = False
791797
return self
792798

793799
def hide_columns(self, subset):

pandas/tests/io/formats/test_style.py

+24-24
Original file line numberDiff line numberDiff line change
@@ -705,17 +705,17 @@ def test_mi_sparse_column_names(self):
705705
def test_hide_single_index(self):
706706
# single unnamed index
707707
ctx = self.df.style._translate()
708-
self.assertTrue(ctx['body'][0][0]['is_visible'])
709-
self.assertTrue(ctx['head'][0][0]['is_visible'])
708+
assert(ctx['body'][0][0]['is_visible'])
709+
assert(ctx['head'][0][0]['is_visible'])
710710
ctx2 = self.df.style.hide_index()._translate()
711711
self.assertFalse(ctx2['body'][0][0]['is_visible'])
712712
self.assertFalse(ctx2['head'][0][0]['is_visible'])
713713

714714
# single named index
715715
ctx3 = self.df.set_index('A').style._translate()
716-
self.assertTrue(ctx3['body'][0][0]['is_visible'])
716+
assert(ctx3['body'][0][0]['is_visible'])
717717
self.assertEqual(len(ctx3['head']), 2) # 2 header levels
718-
self.assertTrue(ctx3['head'][0][0]['is_visible'])
718+
assert(ctx3['head'][0][0]['is_visible'])
719719

720720
ctx4 = self.df.set_index('A').style.hide_index()._translate()
721721
self.assertFalse(ctx4['body'][0][0]['is_visible'])
@@ -729,11 +729,11 @@ def test_hide_multiindex(self):
729729
)
730730
ctx1 = df.style._translate()
731731
# tests for 'a' and '0'
732-
self.assertTrue(ctx1['body'][0][0]['is_visible'])
733-
self.assertTrue(ctx1['body'][0][1]['is_visible'])
732+
assert(ctx1['body'][0][0]['is_visible'])
733+
assert(ctx1['body'][0][1]['is_visible'])
734734
# check for blank header rows
735-
self.assertTrue(ctx1['head'][0][0]['is_visible'])
736-
self.assertTrue(ctx1['head'][0][1]['is_visible'])
735+
assert(ctx1['head'][0][0]['is_visible'])
736+
assert(ctx1['head'][0][1]['is_visible'])
737737

738738
ctx2 = df.style.hide_index()._translate()
739739
# tests for 'a' and '0'
@@ -746,17 +746,17 @@ def test_hide_multiindex(self):
746746
def test_hide_columns_single_level(self):
747747
# test hiding single column
748748
ctx = self.df.style._translate()
749-
self.assertTrue(ctx['head'][0][1]['is_visible'])
749+
assert(ctx['head'][0][1]['is_visible'])
750750
self.assertEqual(ctx['head'][0][1]['display_value'], 'A')
751-
self.assertTrue(ctx['head'][0][2]['is_visible'])
751+
assert(ctx['head'][0][2]['is_visible'])
752752
self.assertEqual(ctx['head'][0][2]['display_value'], 'B')
753-
self.assertTrue(ctx['body'][0][1]['is_visible']) # col A, row 1
754-
self.assertTrue(ctx['body'][1][2]['is_visible']) # col B, row 1
753+
assert(ctx['body'][0][1]['is_visible']) # col A, row 1
754+
assert(ctx['body'][1][2]['is_visible']) # col B, row 1
755755

756756
ctx = self.df.style.hide_columns('A')._translate()
757757
self.assertFalse(ctx['head'][0][1]['is_visible'])
758758
self.assertFalse(ctx['body'][0][1]['is_visible']) # col A, row 1
759-
self.assertTrue(ctx['body'][1][2]['is_visible']) # col B, row 1
759+
assert(ctx['body'][1][2]['is_visible']) # col B, row 1
760760

761761
# test hiding mulitiple columns
762762
ctx = self.df.style.hide_columns(['A', 'B'])._translate()
@@ -776,40 +776,40 @@ def test_hide_columns_mult_levels(self):
776776
df = pd.DataFrame([[1, 2], [3, 4]], index=i1, columns=i2)
777777
ctx = df.style._translate()
778778
# column headers
779-
self.assertTrue(ctx['head'][0][2]['is_visible'])
780-
self.assertTrue(ctx['head'][1][2]['is_visible'])
779+
assert(ctx['head'][0][2]['is_visible'])
780+
assert(ctx['head'][1][2]['is_visible'])
781781
self.assertEqual(ctx['head'][1][3]['display_value'], 1)
782782
# indices
783-
self.assertTrue(ctx['body'][0][0]['is_visible'])
783+
assert(ctx['body'][0][0]['is_visible'])
784784
# data
785-
self.assertTrue(ctx['body'][1][2]['is_visible'])
785+
assert(ctx['body'][1][2]['is_visible'])
786786
self.assertEqual(ctx['body'][1][2]['display_value'], 3)
787-
self.assertTrue(ctx['body'][1][3]['is_visible'])
787+
assert(ctx['body'][1][3]['is_visible'])
788788
self.assertEqual(ctx['body'][1][3]['display_value'], 4)
789789

790790
# hide top column level, which hides both columns
791791
ctx = df.style.hide_columns('b')._translate()
792792
self.assertFalse(ctx['head'][0][2]['is_visible']) # b
793793
self.assertFalse(ctx['head'][1][2]['is_visible']) # 0
794794
self.assertFalse(ctx['body'][1][2]['is_visible']) # 3
795-
self.assertTrue(ctx['body'][0][0]['is_visible']) # index
795+
assert(ctx['body'][0][0]['is_visible']) # index
796796

797797
# hide first column only
798798
ctx = df.style.hide_columns([('b', 0)])._translate()
799-
self.assertTrue(ctx['head'][0][2]['is_visible']) # b
799+
assert(ctx['head'][0][2]['is_visible']) # b
800800
self.assertFalse(ctx['head'][1][2]['is_visible']) # 0
801801
self.assertFalse(ctx['body'][1][2]['is_visible']) # 3
802-
self.assertTrue(ctx['body'][1][3]['is_visible'])
802+
assert(ctx['body'][1][3]['is_visible'])
803803
self.assertEqual(ctx['body'][1][3]['display_value'], 4)
804804

805805
# hide second column and index
806806
ctx = df.style.hide_columns([('b', 1)]).hide_index()._translate()
807807
self.assertFalse(ctx['body'][0][0]['is_visible']) # index
808-
self.assertTrue(ctx['head'][0][2]['is_visible']) # b
809-
self.assertTrue(ctx['head'][1][2]['is_visible']) # 0
808+
assert(ctx['head'][0][2]['is_visible']) # b
809+
assert(ctx['head'][1][2]['is_visible']) # 0
810810
self.assertFalse(ctx['head'][1][3]['is_visible']) # 1
811811
self.assertFalse(ctx['body'][1][3]['is_visible']) # 4
812-
self.assertTrue(ctx['body'][1][2]['is_visible'])
812+
assert(ctx['body'][1][2]['is_visible'])
813813
self.assertEqual(ctx['body'][1][2]['display_value'], 3)
814814

815815

0 commit comments

Comments
 (0)