Skip to content

Commit 55c6886

Browse files
committed
ENH14194: switch index_hidden to index_visible
1 parent fab4256 commit 55c6886

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
@@ -70,8 +70,14 @@ class Styler(object):
7070
a unique identifier to avoid CSS collisons; generated automatically
7171
caption: str, default None
7272
caption to attach to the table
73-
index_hidden: bool, default False
74-
hides the index in the html output
73+
index: bool, default True
74+
determines if the index is rendered in the html output
75+
76+
.. versionadded:: 0.20.1
77+
78+
hidden_cols: IndexSlice, default None
79+
hides a subset of columns from rendering
80+
7581
.. versionadded:: 0.20.1
7682
7783
Attributes
@@ -121,7 +127,7 @@ class Styler(object):
121127
template = env.get_template("html.tpl")
122128

123129
def __init__(self, data, precision=None, table_styles=None, uuid=None,
124-
caption=None, table_attributes=None, index_hidden=False,
130+
caption=None, table_attributes=None, index=True,
125131
hidden_cols=None):
126132
self.ctx = defaultdict(list)
127133
self._todo = []
@@ -144,7 +150,7 @@ def __init__(self, data, precision=None, table_styles=None, uuid=None,
144150
precision = get_option('display.precision')
145151
self.precision = precision
146152
self.table_attributes = table_attributes
147-
self.index_hidden = index_hidden
153+
self.index_visible = index
148154
if hidden_cols is None:
149155
hidden_cols = []
150156
self.hidden_cols = hidden_cols
@@ -196,7 +202,7 @@ def _translate(self):
196202
caption = self.caption
197203
ctx = self.ctx
198204
precision = self.precision
199-
index_hidden = self.index_hidden
205+
index_visible = self.index_visible
200206
hidden_cols = self.hidden_cols
201207
uuid = self.uuid or str(uuid1()).replace("-", "_")
202208
ROW_HEADING_CLASS = "row_heading"
@@ -235,7 +241,7 @@ def format_attr(pair):
235241
row_es = [{"type": "th",
236242
"value": BLANK_VALUE,
237243
"display_value": BLANK_VALUE,
238-
"is_visible": (not index_hidden),
244+
"is_visible": index_visible,
239245
"class": " ".join([BLANK_CLASS])}] * (n_rlvls - 1)
240246

241247
# ... except maybe the last for columns.names
@@ -247,7 +253,7 @@ def format_attr(pair):
247253
"value": name,
248254
"display_value": name,
249255
"class": " ".join(cs),
250-
"is_visible": (not index_hidden)})
256+
"is_visible": index_visible})
251257

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

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

@@ -294,7 +300,7 @@ def format_attr(pair):
294300
es = {
295301
"type": "th",
296302
"is_visible": (_is_visible(r, c, idx_lengths) &
297-
(~index_hidden)),
303+
index_visible),
298304
"value": value,
299305
"display_value": value,
300306
"class": " ".join([ROW_HEADING_CLASS, "level%s" % c,
@@ -475,7 +481,7 @@ def _copy(self, deepcopy=False):
475481
styler = Styler(self.data, precision=self.precision,
476482
caption=self.caption, uuid=self.uuid,
477483
table_styles=self.table_styles,
478-
index_hidden=self.index_hidden,
484+
index=self.index_visible,
479485
hidden_cols=self.hidden_cols)
480486
if deepcopy:
481487
styler.ctx = copy.deepcopy(self.ctx)
@@ -788,7 +794,7 @@ def hide_index(self):
788794
-------
789795
self : Styler
790796
"""
791-
self.index_hidden = True
797+
self.index_visible = False
792798
return self
793799

794800
def hide_columns(self, subset):

pandas/tests/io/formats/test_style.py

+24-24
Original file line numberDiff line numberDiff line change
@@ -814,17 +814,17 @@ def test_mi_sparse_column_names(self):
814814
def test_hide_single_index(self):
815815
# single unnamed index
816816
ctx = self.df.style._translate()
817-
self.assertTrue(ctx['body'][0][0]['is_visible'])
818-
self.assertTrue(ctx['head'][0][0]['is_visible'])
817+
assert(ctx['body'][0][0]['is_visible'])
818+
assert(ctx['head'][0][0]['is_visible'])
819819
ctx2 = self.df.style.hide_index()._translate()
820820
self.assertFalse(ctx2['body'][0][0]['is_visible'])
821821
self.assertFalse(ctx2['head'][0][0]['is_visible'])
822822

823823
# single named index
824824
ctx3 = self.df.set_index('A').style._translate()
825-
self.assertTrue(ctx3['body'][0][0]['is_visible'])
825+
assert(ctx3['body'][0][0]['is_visible'])
826826
self.assertEqual(len(ctx3['head']), 2) # 2 header levels
827-
self.assertTrue(ctx3['head'][0][0]['is_visible'])
827+
assert(ctx3['head'][0][0]['is_visible'])
828828

829829
ctx4 = self.df.set_index('A').style.hide_index()._translate()
830830
self.assertFalse(ctx4['body'][0][0]['is_visible'])
@@ -838,11 +838,11 @@ def test_hide_multiindex(self):
838838
)
839839
ctx1 = df.style._translate()
840840
# tests for 'a' and '0'
841-
self.assertTrue(ctx1['body'][0][0]['is_visible'])
842-
self.assertTrue(ctx1['body'][0][1]['is_visible'])
841+
assert(ctx1['body'][0][0]['is_visible'])
842+
assert(ctx1['body'][0][1]['is_visible'])
843843
# check for blank header rows
844-
self.assertTrue(ctx1['head'][0][0]['is_visible'])
845-
self.assertTrue(ctx1['head'][0][1]['is_visible'])
844+
assert(ctx1['head'][0][0]['is_visible'])
845+
assert(ctx1['head'][0][1]['is_visible'])
846846

847847
ctx2 = df.style.hide_index()._translate()
848848
# tests for 'a' and '0'
@@ -855,17 +855,17 @@ def test_hide_multiindex(self):
855855
def test_hide_columns_single_level(self):
856856
# test hiding single column
857857
ctx = self.df.style._translate()
858-
self.assertTrue(ctx['head'][0][1]['is_visible'])
858+
assert(ctx['head'][0][1]['is_visible'])
859859
self.assertEqual(ctx['head'][0][1]['display_value'], 'A')
860-
self.assertTrue(ctx['head'][0][2]['is_visible'])
860+
assert(ctx['head'][0][2]['is_visible'])
861861
self.assertEqual(ctx['head'][0][2]['display_value'], 'B')
862-
self.assertTrue(ctx['body'][0][1]['is_visible']) # col A, row 1
863-
self.assertTrue(ctx['body'][1][2]['is_visible']) # col B, row 1
862+
assert(ctx['body'][0][1]['is_visible']) # col A, row 1
863+
assert(ctx['body'][1][2]['is_visible']) # col B, row 1
864864

865865
ctx = self.df.style.hide_columns('A')._translate()
866866
self.assertFalse(ctx['head'][0][1]['is_visible'])
867867
self.assertFalse(ctx['body'][0][1]['is_visible']) # col A, row 1
868-
self.assertTrue(ctx['body'][1][2]['is_visible']) # col B, row 1
868+
assert(ctx['body'][1][2]['is_visible']) # col B, row 1
869869

870870
# test hiding mulitiple columns
871871
ctx = self.df.style.hide_columns(['A', 'B'])._translate()
@@ -885,40 +885,40 @@ def test_hide_columns_mult_levels(self):
885885
df = pd.DataFrame([[1, 2], [3, 4]], index=i1, columns=i2)
886886
ctx = df.style._translate()
887887
# column headers
888-
self.assertTrue(ctx['head'][0][2]['is_visible'])
889-
self.assertTrue(ctx['head'][1][2]['is_visible'])
888+
assert(ctx['head'][0][2]['is_visible'])
889+
assert(ctx['head'][1][2]['is_visible'])
890890
self.assertEqual(ctx['head'][1][3]['display_value'], 1)
891891
# indices
892-
self.assertTrue(ctx['body'][0][0]['is_visible'])
892+
assert(ctx['body'][0][0]['is_visible'])
893893
# data
894-
self.assertTrue(ctx['body'][1][2]['is_visible'])
894+
assert(ctx['body'][1][2]['is_visible'])
895895
self.assertEqual(ctx['body'][1][2]['display_value'], 3)
896-
self.assertTrue(ctx['body'][1][3]['is_visible'])
896+
assert(ctx['body'][1][3]['is_visible'])
897897
self.assertEqual(ctx['body'][1][3]['display_value'], 4)
898898

899899
# hide top column level, which hides both columns
900900
ctx = df.style.hide_columns('b')._translate()
901901
self.assertFalse(ctx['head'][0][2]['is_visible']) # b
902902
self.assertFalse(ctx['head'][1][2]['is_visible']) # 0
903903
self.assertFalse(ctx['body'][1][2]['is_visible']) # 3
904-
self.assertTrue(ctx['body'][0][0]['is_visible']) # index
904+
assert(ctx['body'][0][0]['is_visible']) # index
905905

906906
# hide first column only
907907
ctx = df.style.hide_columns([('b', 0)])._translate()
908-
self.assertTrue(ctx['head'][0][2]['is_visible']) # b
908+
assert(ctx['head'][0][2]['is_visible']) # b
909909
self.assertFalse(ctx['head'][1][2]['is_visible']) # 0
910910
self.assertFalse(ctx['body'][1][2]['is_visible']) # 3
911-
self.assertTrue(ctx['body'][1][3]['is_visible'])
911+
assert(ctx['body'][1][3]['is_visible'])
912912
self.assertEqual(ctx['body'][1][3]['display_value'], 4)
913913

914914
# hide second column and index
915915
ctx = df.style.hide_columns([('b', 1)]).hide_index()._translate()
916916
self.assertFalse(ctx['body'][0][0]['is_visible']) # index
917-
self.assertTrue(ctx['head'][0][2]['is_visible']) # b
918-
self.assertTrue(ctx['head'][1][2]['is_visible']) # 0
917+
assert(ctx['head'][0][2]['is_visible']) # b
918+
assert(ctx['head'][1][2]['is_visible']) # 0
919919
self.assertFalse(ctx['head'][1][3]['is_visible']) # 1
920920
self.assertFalse(ctx['body'][1][3]['is_visible']) # 4
921-
self.assertTrue(ctx['body'][1][2]['is_visible'])
921+
assert(ctx['body'][1][2]['is_visible'])
922922
self.assertEqual(ctx['body'][1][2]['display_value'], 3)
923923

924924

0 commit comments

Comments
 (0)