class_docstr: Shared methods across categorical transformers.
  
  - BaseEstimator brings methods get_params() and set_params().
  - TransformerMixin brings method fit_transform()
  - GetFeatureNamesOutMixin brings method get_feature_names_out().
class_docstr_tok: ["Shared","methods","across","categorical","transformers",".","-","BaseEstimator","brings","methods","get_params","(",")","and","set_params","(",")",".","-","TransformerMixin","brings","method","fit_transform","(",")","-","GetFeatureNamesOutMixin","brings","method","get_feature_names_out","(",")","."]
docstr: Returns attributes `featrure_names_in_` and `n_feature_names_in_`, which are
  standard for all transformers in the library.
docstr_tok: ["Returns","attributes","`","featrure_names_in_","`","and","`","n_feature_names_in_","`",",","which","are","standard","for","all","transformers","in","the","library","."]
code: def _get_feature_names_in(self, X: pd.DataFrame):
      """
      Returns attributes `featrure_names_in_` and `n_feature_names_in_`, which are
      standard for all transformers in the library.
      """
  
      # save input features
      self.feature_names_in_ = X.columns.tolist()
  
      # save train set shape
      self.n_features_in_ = X.shape[1]
  
imports: import warnings
  from typing import List, Union
  import pandas
  from sklearn.base import BaseEstimator, TransformerMixin
  from sklearn.utils.validation import check_is_fitted
  from feature_engine._base_transformers.mixins import GetFeatureNamesOutMixin
  from feature_engine._docstrings.init_parameters import _ignore_format_docstring, _variables_categorical_docstring
  from feature_engine._docstrings.substitute import Substitution
  from feature_engine._variable_handling.init_parameter_checks import _check_init_parameter_variables
  from feature_engine._variable_handling.variable_type_selection import _find_all_variables, _find_or_check_categorical_variables
  from feature_engine.dataframe_checks import _check_contains_na, _check_X_matches_training_df, check_X
  from feature_engine.tags import _return_tags
label_desc: Use image node_id 3 for calling the CategoricalMethodsMixin obj's underlying member method code with example usage: obj._get_feature_names_in(X) without return types