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: Checks that the input is a dataframe and of the same size than the one used
  in the fit method. Checks absence of NA.
  
  Parameters
  ----------
  X: Pandas DataFrame
  
  Raises
  ------
  TypeError
      If the input is not a Pandas DataFrame
  ValueError
      - If the variable(s) contain null values.
      - If the df has different number of features than the df used in fit()
  
  Returns
  -------
  X: Pandas DataFrame
      The same dataframe entered by the user.
docstr_tok: ["Checks","that","the","input","is","a","dataframe","and","of","the","same","size","than","the","one","used","in","the","fit","method",".","Checks","absence","of","NA",".","Parameters","--","--","--","--","--","X",":","Pandas","DataFrame","Raises","--","--","--","TypeError","If","the","input","is","not","a","Pandas","DataFrame","ValueError","-","If","the","variable","(","s",")","contain","null","values",".","-","If","the","df","has","different","number","of","features","than","the","df","used","in","fit","(",")","Returns","--","--","--","-","X",":","Pandas","DataFrame","The","same","dataframe","entered","by","the","user","."]
code: def _check_transform_input_and_state(
      self, X: pd.DataFrame
  ) -> pd.DataFrame:
      """
      Checks that the input is a dataframe and of the same size than the one used
      in the fit method. Checks absence of NA.
  
      Parameters
      ----------
      X: Pandas DataFrame
  
      Raises
      ------
      TypeError
          If the input is not a Pandas DataFrame
      ValueError
          - If the variable(s) contain null values.
          - If the df has different number of features than the df used in fit()
  
      Returns
      -------
      X: Pandas DataFrame
          The same dataframe entered by the user.
      """
  
      # Check method fit has been called
      check_is_fitted(self)
  
      # check that input is a dataframe
      X = check_X(X)
  
      # Check input data contains same number of columns as df used to fit
      _check_X_matches_training_df(X, self.n_features_in_)
  
      # reorder df to match train set
      X = X[self.feature_names_in_]
  
      return X
  
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 4 for calling the CategoricalMethodsMixin obj's underlying member method code with example usage: obj._check_transform_input_and_state(X) and returns: X