class_docstr: Class which stores vertex and edge properties that can be used to construct
  Graphs from individual property selections and used later to annotate graph
  algorithm results with corresponding properties.
class_docstr_tok: ["Class","which","stores","vertex","and","edge","properties","that","can","be","used","to","construct","Graphs","from","individual","property","selections","and","used","later","to","annotate","graph","algorithm","results","with","corresponding","properties","."]
code: def _has_duplicates(cls, df, cols):
      # empty not supported by dask
      if len(df.columns) == 0:
          return False
  
      unique_pair_len = df.drop_duplicates(
          split_out=df.npartitions, ignore_index=True
      ).shape[0]
      # if unique_pairs == len(df)
      # then no duplicate edges
      return unique_pair_len != df.shape[0]
  
imports: import cudf
  import cupy
  import cugraph
  import dask_cudf
  import cugraph.dask
  from cugraph.utilities.utils import import_optional, create_list_series_from_2d_ar
  from typing import Union
label_desc: Use image node_id 40 for calling the EXPERIMENTAL__MGPropertyGraph obj's underlying member method code with example usage: obj._has_duplicates(cls, df, cols) and returns: unknown, False