class_docstr: Determines if there are duplicates in the input.
  
  Args:
      skipna (bool): Determines if to use NA/null values.
          Defaults to True to skip NA/null.
  
  Examples:
      >>> has_no_duplicates = HasNoDuplicates()
      >>> has_no_duplicates([1, 1, 2])
      False
      >>> has_no_duplicates([1, 2, 3])
      True
  
      `NaN`s are skipped by default.
  
      >>> has_no_duplicates([1, 2, 3, None, None])
      True
  
      However, the way `NaN`s are treated can be controlled.
  
      >>> has_no_duplicates_skipna = HasNoDuplicates(skipna=False)
      >>> has_no_duplicates_skipna([1, 2, 3, None, None])
      False
      >>> has_no_duplicates_skipna([1, 2, 3, None])
      True
code: def __init__(self, skipna=True):
      self.skipna = skipna
  
imports: from woodwork.column_schema import ColumnSchema
  from woodwork.logical_types import BooleanNullable
  from featuretools.primitives.base import AggregationPrimitive
label_desc: Use image node_id 1 to create a new HasNoDuplicates object from inherited base classes: AggregationPrimitive with example: obj = HasNoDuplicates(skipna)