defcreate_subscriber(*topics:str,batch:bool,batch_timeout_ms:int,max_records:Optional[int],# Kafka informationgroup_id:Optional[str],listener:Optional["ConsumerRebalanceListener"],pattern:Optional[str],connection_args:"AnyDict",partitions:Collection["TopicPartition"],is_manual:bool,# Subscriber argsmax_workers:int,no_ack:bool,no_reply:bool,retry:bool,broker_dependencies:Iterable["Depends"],broker_middlewares:Sequence["BrokerMiddleware[Union[ConsumerRecord, Tuple[ConsumerRecord, ...]]]"],# AsyncAPI argstitle_:Optional[str],description_:Optional[str],include_in_schema:bool,)->Union["AsyncAPIDefaultSubscriber","AsyncAPIBatchSubscriber","AsyncAPIConcurrentDefaultSubscriber","AsyncAPIConcurrentBetweenPartitionsSubscriber",]:ifis_manualandnotgroup_id:raiseSetupError("You must use `group_id` with manual commit mode.")ifis_manualandmax_workers>1:iflen(topics)>1:raiseSetupError("You must use a single topic with concurrent manual commit mode.")ifpatternisnotNone:raiseSetupError("You can not use a pattern with concurrent manual commit mode.")ifpartitions:raiseSetupError("Manual partition assignment is not supported with concurrent manual commit mode.")ifnottopicsandnotpartitionsandnotpattern:raiseSetupError("You should provide either `topics` or `partitions` or `pattern`.")eliftopicsandpartitions:raiseSetupError("You can't provide both `topics` and `partitions`.")eliftopicsandpattern:raiseSetupError("You can't provide both `topics` and `pattern`.")elifpartitionsandpattern:raiseSetupError("You can't provide both `partitions` and `pattern`.")ifbatch:returnAsyncAPIBatchSubscriber(*topics,batch_timeout_ms=batch_timeout_ms,max_records=max_records,group_id=group_id,listener=listener,pattern=pattern,connection_args=connection_args,partitions=partitions,is_manual=is_manual,no_ack=no_ack,no_reply=no_reply,retry=retry,broker_dependencies=broker_dependencies,broker_middlewares=broker_middlewares,title_=title_,description_=description_,include_in_schema=include_in_schema,)else:ifmax_workers>1:ifis_manual:returnAsyncAPIConcurrentBetweenPartitionsSubscriber(topics[0],max_workers=max_workers,group_id=group_id,listener=listener,pattern=pattern,connection_args=connection_args,partitions=partitions,is_manual=is_manual,no_ack=no_ack,no_reply=no_reply,retry=retry,broker_dependencies=broker_dependencies,broker_middlewares=broker_middlewares,title_=title_,description_=description_,include_in_schema=include_in_schema,)else:returnAsyncAPIConcurrentDefaultSubscriber(*topics,max_workers=max_workers,group_id=group_id,listener=listener,pattern=pattern,connection_args=connection_args,partitions=partitions,is_manual=is_manual,no_ack=no_ack,no_reply=no_reply,retry=retry,broker_dependencies=broker_dependencies,broker_middlewares=broker_middlewares,title_=title_,description_=description_,include_in_schema=include_in_schema,)else:returnAsyncAPIDefaultSubscriber(*topics,group_id=group_id,listener=listener,pattern=pattern,connection_args=connection_args,partitions=partitions,is_manual=is_manual,no_ack=no_ack,no_reply=no_reply,retry=retry,broker_dependencies=broker_dependencies,broker_middlewares=broker_middlewares,title_=title_,description_=description_,include_in_schema=include_in_schema,)