def __init__(self, verbose_name=None, default=None, required=None,
                     item_type=None, **kwds):
            """Construct SetProperty.

             :args verbose_name: Optional verbose name.

             :args default: Optional default value; if omitted, an empty
                            set is used.

             :args required: True if field is required, default is False.

             :args item_type: Optional data type of items that set
                              contains.  Used to assist with JSON
                              serialization/deserialization when data is
                              stored/retireved.

             :args **kwds: Optional additional keyword arguments, passed to
                           base class.
             """
            if default is None:
                default = set()
            if item_type is not None and item_type not in ALLOWED_PROPERTY_TYPES:
                raise ValueError('item_type %s not in %s'
                                 % (item_type, ALLOWED_PROPERTY_TYPES))
            self.item_type = item_type
            super(SetProperty, self).__init__(
                verbose_name=verbose_name, default=default, required=required,
                **kwds)
dataset/ETHPy150Open benoitc/couchdbkit/couchdbkit/schema/properties.py/SetProperty.__init__/original