@@ -1057,7 +1057,7 @@ def __init__(self, freq='Min', closed=None, label=None, how='mean',
1057
1057
convention = None , base = 0 , ** kwargs ):
1058
1058
freq = to_offset (freq )
1059
1059
1060
- end_types = set ([ 'M' , 'A' , 'Q' , 'BM' , 'BA' , 'BQ' , 'W' ])
1060
+ end_types = { 'M' , 'A' , 'Q' , 'BM' , 'BA' , 'BQ' , 'W' }
1061
1061
rule = freq .rule_code
1062
1062
if (rule in end_types or
1063
1063
('-' in rule and rule [:rule .find ('-' )] in end_types )):
@@ -1293,6 +1293,28 @@ def _get_time_period_bins(self, ax):
1293
1293
1294
1294
return binner , bins , labels
1295
1295
1296
+ # _init_defaults is used in __repr__below
1297
+ _init_defaults = Grouper ._init_defaults .copy ()
1298
+ _init_defaults .update (freq = 'Min' , how = 'mean' , nperiods = None , axis = 0 ,
1299
+ fill_method = None , limit = None , loffset = None ,
1300
+ kind = None , convention = 'e' , base = 0 , sort = True )
1301
+ def __repr__ (self ):
1302
+ defaults = self ._init_defaults .copy ()
1303
+ end_types = {'M' , 'A' , 'Q' , 'BM' , 'BA' , 'BQ' , 'W' }
1304
+ rule = self .freq .rule_code
1305
+ if (rule in end_types or
1306
+ ('-' in rule and rule [:rule .find ('-' )] in end_types )):
1307
+ defaults .update (closed = 'right' , label = 'right' )
1308
+ else :
1309
+ defaults .update (closed = 'left' , label = 'left' )
1310
+
1311
+ attrs = {k : v for k , v in self .__dict__ .items ()
1312
+ if k in defaults and v != defaults [k ]}
1313
+ attrs ['freq' ] = attrs ['freq' ].freqstr
1314
+ attrs = ", " .join ("{}={!r}" .format (k , v ) for k , v in attrs .items ())
1315
+ cls_name = self .__class__ .__name__
1316
+ return "{}({})" .format (cls_name , attrs )
1317
+
1296
1318
1297
1319
def _take_new_index (obj , indexer , new_index , axis = 0 ):
1298
1320
from pandas .core .api import Series , DataFrame
0 commit comments