docstr: Determine columns used by encoder.
  
  Note that the implementation also deals with re-fitting the same encoder object with different columns.
  
  :param X: input data frame
  :return: none, sets self.cols as a side effect
docstr_tok: ["Determine","columns","used","by","encoder",".","Note","that","the","implementation","also","deals","with","re-fitting","the","same","encoder","object","with","different","columns",".",":","param","X",":","input","data","frame",":","return",":","none",",","sets","self.cols","as","a","side","effect"]
code: def _determine_fit_columns(self, X: pd.DataFrame) -> None:
      """Determine columns used by encoder.
  
      Note that the implementation also deals with re-fitting the same encoder object with different columns.
  
      :param X: input data frame
      :return: none, sets self.cols as a side effect
      """
      # if columns aren't passed, just use every string column
      if self.use_default_cols:
          self.cols = get_categorical_cols(X)
      else:
          self.cols = convert_cols_to_list(self.cols)
  
imports: from abc import abstractmethod
  from enum import Enum, auto
  import warnings
  import pandas
  import numpy
  import sklearn.base
  from pandas.api.types import is_object_dtype, is_string_dtype, is_numeric_dtype
  from pandas.core.dtypes.dtypes import CategoricalDtype
  from sklearn.base import BaseEstimator, TransformerMixin
  from sklearn.exceptions import NotFittedError
  from typing import Dict, List, Optional, Union
  from scipy.sparse import csr_matrix
  from sklearn.preprocessing import LabelEncoder
label_desc: Use image node_id 6 for calling the BaseEncoder obj's underlying member method code with example usage: obj._determine_fit_columns(X) without return types