class_docstr: The ProjectReport class allows to generate general information about a
  Data Science project.
  It analyzes the data and the model used in order to provide interesting
  insights that can be shared with non technical person.
  
  Parameters
  ----------
  explainer : shapash.explainer.smart_explainer.SmartExplainer
      A shapash SmartExplainer object that has already be compiled.
  project_info_file : str
      Path to the yml file containing information about the project (author, description, ...).
  config : dict, optional
      Contains configuration options for the report.
  
  Attributes
  ----------
  explainer : shapash.explainer.smart_explainer.SmartExplainer
       A shapash SmartExplainer object that has already be compiled.
  metadata : dict
      Information about the project (author, description, ...).
  x_train : pd.DataFrame
      DataFrame used for training the model.
  y_test : pd.Series or pd.DataFrame
      Series of labels in the train set.
  y_test : pd.Series or pd.DataFrame
      Series of labels in the test set.
  config : dict, optional
      Configuration options for the report.
class_docstr_tok: ["The","ProjectReport","class","allows","to","generate","general","information","about","a","Data","Science","project",".","It","analyzes","the","data","and","the","model","used","in","order","to","provide","interesting","insights","that","can","be","shared","with","non","technical","person",".","Parameters","--","--","--","--","--","explainer",":","shapash.explainer.smart_explainer.SmartExplainer","A","shapash","SmartExplainer","object","that","has","already","be","compiled",".","project_info_file",":","str","Path","to","the","yml","file","containing","information","about","the","project","(","author",",","description",",","...",")",".","config",":","dict",",","optional","Contains","configuration","options","for","the","report",".","Attributes","--","--","--","--","--","explainer",":","shapash.explainer.smart_explainer.SmartExplainer","A","shapash","SmartExplainer","object","that","has","already","be","compiled",".","metadata",":","dict","Information","about","the","project","(","author",",","description",",","...",")",".","x_train",":","pd.DataFrame","DataFrame","used","for","training","the","model",".","y_test",":","pd.Series","or","pd.DataFrame","Series","of","labels","in","the","train","set",".","y_test",":","pd.Series","or","pd.DataFrame","Series","of","labels","in","the","test","set",".","config",":","dict",",","optional","Configuration","options","for","the","report","."]
docstr: Extracts vales and column name from a Pandas Series, DataFrame, or assign a default
  name if y is a list of values.
  
  Parameters
  ----------
  y : list or pd.Series or pd.DataFrame
      Column we want to extract the name and values
  default_name :
      Name assigned if no name was found for y
  
  Returns
  -------
  values : list
      list of values of y
  name : str
      name of y
docstr_tok: ["Extracts","vales","and","column","name","from","a","Pandas","Series",",","DataFrame",",","or","assign","a","default","name","if","y","is","a","list","of","values",".","Parameters","--","--","--","--","--","y",":","list","or","pd.Series","or","pd.DataFrame","Column","we","want","to","extract","the","name","and","values","default_name",":","Name","assigned","if","no","name","was","found","for","y","Returns","--","--","--","-","values",":","list","list","of","values","of","y","name",":","str","name","of","y"]
code: def _get_values_and_name(
      y: Optional[Union[pd.DataFrame, pd.Series, list]],
      default_name: str,
  ) -> Union[Tuple[list, str], Tuple[None, None]]:
      """
      Extracts vales and column name from a Pandas Series, DataFrame, or assign a default
      name if y is a list of values.
  
      Parameters
      ----------
      y : list or pd.Series or pd.DataFrame
          Column we want to extract the name and values
      default_name :
          Name assigned if no name was found for y
  
      Returns
      -------
      values : list
          list of values of y
      name : str
          name of y
      """
      if y is None:
          return None, None
      elif isinstance(y, pd.DataFrame):
          assert (
              len(y.columns) == 1
          ), "Number of columns found is greater than 1"
          name = y.columns[0]
          values = y.values[:, 0]
      elif isinstance(y, pd.Series):
          name = y.name
          values = y.values
      elif isinstance(y, list):
          name = default_name
          values = y
      else:
          raise ValueError(f"Cannot process following type : {type(y)}")
      return values, name
  
imports: from typing import Optional, Union, Tuple
  import logging
  import sys
  import os
  from numbers import Number
  from datetime import date
  import jinja2
  import pandas
  import numpy
  import plotly
  from shapash.utils.transform import inverse_transform, apply_postprocessing, handle_categorical_missing
  from shapash import SmartExplainer
  from shapash.utils.io import load_yml
  from shapash.utils.utils import get_project_root, truncate_str
  from shapash.report.visualisation import print_md, print_html, print_css_style, convert_fig_to_html, print_javascript_misc
  from shapash.report.data_analysis import perform_global_dataframe_analysis, perform_univariate_dataframe_analysis
  from shapash.report.plots import generate_fig_univariate, generate_confusion_matrix_plot
  from shapash.report.common import series_dtype, get_callable, compute_col_types, VarType, display_value
  from shapash.webapp.utils.utils import round_to_k
label_desc: Use image node_id 2 for calling the ProjectReport obj's underlying member method code with example usage: obj._get_values_and_name(y, default_name) and returns: values,  name, None,  None