original_docstring: 
      Fill in a built project csv with project specific customizations.
  
      This can be used to e.g. change the default values of fields or customize
      the list of experimenters to be selected
  
      Parameters
      ----------
      project_built_csv: str
          The filepath to the csv containing the built project (see also `build_project`)
      customization_csv: str
          The filepath to the csv containing the project customizations
      output_file: str
          The path to save the combined csv. Default: None
  
      Returns
      -------
      dataframe
          pandas dataframe csv representation of the customized project definition
      
docstring: Fill in a built project csv with project specific customizations.
  This can be used to e.g. change the default values of fields or customize
  the list of experimenters to be selected
  
  Parameters
  
  str
  The filepath to the csv containing the built project
  customization_csv: str
  The filepath to the csv containing the project customizations
  output_file: str
  The path to save the combined csv. Default: None
  
  Returns
  
  dataframe
  pandas dataframe csv representation of the customized project definition
docstring_tokens: Fill in a built project csv with project specific customizations . This can be used to e . g . change the default values of fields or customize the list of experimenters to be selected Parameters str The filepath to the csv containing the built project customization_csv : str The filepath to the csv containing the project customizations output_file : str The path to save the combined csv . Default : None Returns dataframe pandas dataframe csv representation of the customized project definition
code: def customize_project(project_built_csv, customization_csv, output_file=None):
      """
      Fill in a built project csv with project specific customizations.
  
      This can be used to e.g. change the default values of fields or customize
      the list of experimenters to be selected
  
      Parameters
      ----------
      project_built_csv: str
          The filepath to the csv containing the built project (see also `build_project`)
      customization_csv: str
          The filepath to the csv containing the project customizations
      output_file: str
          The path to save the combined csv. Default: None
  
      Returns
      -------
      dataframe
          pandas dataframe csv representation of the customized project definition
      """
  
      # Loading project and customization data
      project_df = pd.read_csv(project_built_csv, dtype=str)
      project_df.index = project_df['Variable / Field Name']
      customization_df = pd.read_csv(customization_csv, dtype=str)
      customization_df.index = customization_df['Variable / Field Name']
  
      # Utility functions for combining dataframes and series
      def combine_values(value1, value2):
          """
          Combine values by overwriting `na` with data if possible.
  
          Raises:
              ValueError if value1 and value2 contain contradicting data
          """
          # return value if identical or both not available
          if value1 == value2 or (pd.isna(value1) and pd.isna(value2)):
              return value1
          elif pd.isna(value1) and not pd.isna(value2):
              return value2
          elif not pd.isna(value1) and pd.isna(value2):
              return value1
          else:
              raise ValueError(f'Can not merge contradicting entries {value1} '
                               f'and {value2}')
  
      combine_series = lambda x, y: x.combine(y, func=combine_values)
  
      # combine project and customization
      combined_df = project_df.combine(customization_df, combine_series)
  
      # restore the original order of columns and rows
      combined_df = combined_df.reindex(columns=project_df.columns,
                                        index=project_df.index)
  
      if output_file is not None:
          combined_df.to_csv(output_file, index=False)
  
      # print number of customizing field
      print(f"\nCustomizing: {len(customization_df)} fields\n", end='')
  
      # print the field name
      print(f"The following fields were customized:")
      if(len(customization_df)) < 10:
          print(f"{customization_df['Variable / Field Name'].to_csv(index=False)} ", end='')
      else:
          print(f"{customization_df['Variable / Field Name'].values}")
  
      return combined_df
code_tokens: def customize_project ( project_built_csv , customization_csv , output_file = None ) : project_df = pd . read_csv ( project_built_csv , dtype = str ) project_df . index = project_df [ 'Variable / Field Name' ] customization_df = pd . read_csv ( customization_csv , dtype = str ) customization_df . index = customization_df [ 'Variable / Field Name' ] def combine_values ( value1 , value2 ) : """
          Combine values by overwriting `na` with data if possible.
  
          Raises:
              ValueError if value1 and value2 contain contradicting data
          """ if value1 == value2 or ( pd . isna ( value1 ) and pd . isna ( value2 ) ) : return value1 elif pd . isna ( value1 ) and not pd . isna ( value2 ) : return value2 elif not pd . isna ( value1 ) and pd . isna ( value2 ) : return value1 else : raise ValueError ( f'Can not merge contradicting entries {value1} ' f'and {value2}' ) combine_series = lambda x , y : x . combine ( y , func = combine_values ) combined_df = project_df . combine ( customization_df , combine_series ) combined_df = combined_df . reindex ( columns = project_df . columns , index = project_df . index ) if output_file is not None : combined_df . to_csv ( output_file , index = False ) print ( f"\nCustomizing: {len(customization_df)} fields\n" , end = '' ) print ( f"The following fields were customized:" ) if ( len ( customization_df ) ) < 10 : print ( f"{customization_df['Variable / Field Name'].to_csv(index=False)} " , end = '' ) else : print ( f"{customization_df['Variable / Field Name'].values}" ) return combined_df
short_docstring: Fill in a built project csv with project specific customizations.
short_docstring_tokens: Fill in a built project csv with project specific customizations .
comment: """
      Fill in a built project csv with project specific customizations.
  
      This can be used to e.g. change the default values of fields or customize
      the list of experimenters to be selected
  
      Parameters
      ----------
      project_built_csv: str
          The filepath to the csv containing the built project (see also `build_project`)
      customization_csv: str
          The filepath to the csv containing the project customizations
      output_file: str
          The path to save the combined csv. Default: None
  
      Returns
      -------
      dataframe
          pandas dataframe csv representation of the customized project definition
      """$SEP$# Loading project and customization data$SEP$# Utility functions for combining dataframes and series$SEP$"""
          Combine values by overwriting `na` with data if possible.
  
          Raises:
              ValueError if value1 and value2 contain contradicting data
          """$SEP$# return value if identical or both not available$SEP$# combine project and customization$SEP$# restore the original order of columns and rows$SEP$# print number of customizing field$SEP$# print the field name