docstr: Calculates overall fairness regardless of the group_attributes.
  Searches for 'False' parity determinations across group_attributes and
  outputs 'True' determination if all group_attributes are fair.
  
  :param group_attribute_df: the output df of the get_group_attributes_fairness
  :return: A dictionary of overall, unsupervised, and supervised fairness determinations
code: def get_overall_fairness(self, group_attribute_df):
      """
      Calculates overall fairness regardless of the group_attributes.
      Searches for 'False' parity determinations across group_attributes and
      outputs 'True' determination if all group_attributes are fair.
  
      :param group_attribute_df: the output df of the get_group_attributes_fairness
      :return: A dictionary of overall, unsupervised, and supervised fairness determinations
      """
      overall_fairness = {}
      if "Unsupervised Fairness" in group_attribute_df.columns:
          overall_fairness["Unsupervised Fairness"] = (
              False
              if group_attribute_df["Unsupervised Fairness"].min()
              == False
              else True
          )
  
      if "Supervised Fairness" in group_attribute_df.columns:
          overall_fairness["Supervised Fairness"] = (
              False
              if group_attribute_df["Supervised Fairness"].min()
              == False
              else True
          )
  
      fair_vals = [val for key, val in overall_fairness.items()]
      if False in fair_vals:
          overall_fairness["Overall Fairness"] = False
      elif True in fair_vals:
          overall_fairness["Overall Fairness"] = True
      else:
          overall_fairness["Overall Fairness"] = "Undefined"
      return overall_fairness
  
file_path: aequitas/src/aequitas/fairness.py
imports: import logging
  import numpy
  import pandas
label_desc: Use image node_id 6 for calling the Fairness obj's underlying member method code with example usage: obj.get_overall_fairness(group_attribute_df) and returns: overall_fairness