def__init__(self,stream:str,polling_interval:Optional[int]=100,group:Optional[str]=None,consumer:Optional[str]=None,batch:bool=False,no_ack:bool=False,last_id:Optional[str]=None,maxlen:Optional[int]=None,max_records:Optional[int]=None,)->None:if(groupandnotconsumer)or(notgroupandconsumer):raiseSetupError("You should specify `group` and `consumer` both")ifgroupandconsumerandno_ack:warnings.warn(message="`no_ack` has no effect with consumer group",category=RuntimeWarning,stacklevel=1,)iflast_idisNone:last_id="$"super().__init__(stream)self.group=groupself.consumer=consumerself.polling_interval=polling_intervalself.batch=batchself.no_ack=no_ackself.last_id=last_idself.maxlen=maxlenself.max_records=max_records
@classmethoddefvalidate(cls:Type[NameRequiredCls],value:Union[str,NameRequiredCls,None],**kwargs:Any,)->Optional[NameRequiredCls]:"""Factory to create object."""ifvalueisnotNoneandisinstance(value,str):value=cls(value,**kwargs)returnvalue