@@ -85,11 +85,11 @@ def __new__(cls, data=None, categories=None, ordered=None, dtype=None,
8585 name = data .name
8686
8787 if isinstance (data , ABCCategorical ):
88- data = cls ._create_categorical (cls , data , categories , ordered ,
88+ data = cls ._create_categorical (data , categories , ordered ,
8989 dtype )
9090 elif isinstance (data , CategoricalIndex ):
9191 data = data ._data
92- data = cls ._create_categorical (cls , data , categories , ordered ,
92+ data = cls ._create_categorical (data , categories , ordered ,
9393 dtype )
9494 else :
9595
@@ -99,7 +99,7 @@ def __new__(cls, data=None, categories=None, ordered=None, dtype=None,
9999 if data is not None or categories is None :
100100 cls ._scalar_data_error (data )
101101 data = []
102- data = cls ._create_categorical (cls , data , categories , ordered ,
102+ data = cls ._create_categorical (data , categories , ordered ,
103103 dtype )
104104
105105 if copy :
@@ -136,8 +136,8 @@ def _create_from_codes(self, codes, categories=None, ordered=None,
136136 ordered = self .ordered )
137137 return CategoricalIndex (cat , name = name )
138138
139- @staticmethod
140- def _create_categorical (self , data , categories = None , ordered = None ,
139+ @classmethod
140+ def _create_categorical (cls , data , categories = None , ordered = None ,
141141 dtype = None ):
142142 """
143143 *this is an internal non-public method*
@@ -155,7 +155,7 @@ def _create_categorical(self, data, categories=None, ordered=None,
155155 -------
156156 Categorical
157157 """
158- if (isinstance (data , (ABCSeries , type ( self ) )) and
158+ if (isinstance (data , (cls , ABCSeries )) and
159159 is_categorical_dtype (data )):
160160 data = data .values
161161
@@ -179,7 +179,7 @@ def _simple_new(cls, values, name=None, categories=None, ordered=None,
179179 dtype = None , ** kwargs ):
180180 result = object .__new__ (cls )
181181
182- values = cls ._create_categorical (cls , values , categories , ordered ,
182+ values = cls ._create_categorical (values , categories , ordered ,
183183 dtype = dtype )
184184 result ._data = values
185185 result .name = name
@@ -236,7 +236,7 @@ def _is_dtype_compat(self, other):
236236 if not is_list_like (values ):
237237 values = [values ]
238238 other = CategoricalIndex (self ._create_categorical (
239- self , other , categories = self .categories , ordered = self .ordered ))
239+ other , categories = self .categories , ordered = self .ordered ))
240240 if not other .isin (values ).all ():
241241 raise TypeError ("cannot append a non-category item to a "
242242 "CategoricalIndex" )
@@ -798,7 +798,7 @@ def _evaluate_compare(self, other):
798798 other = other ._values
799799 elif isinstance (other , Index ):
800800 other = self ._create_categorical (
801- self , other ._values , categories = self .categories ,
801+ other ._values , categories = self .categories ,
802802 ordered = self .ordered )
803803
804804 if isinstance (other , (ABCCategorical , np .ndarray ,
0 commit comments