(pillow_id='kafka-ucr-main', ucr_division=None,
                         include_ucrs=None, exclude_ucrs=None, topics=None,
                         num_processes=1, process_num=0, dedicated_migration_process=False,
                         processor_chunk_size=DEFAULT_PROCESSOR_CHUNK_SIZE, **kwargs)
return ConfigurableReportKafkaPillow(
        processor=ConfigurableReportPillowProcessor(table_manager),
        pillow_name=pillow_id,
        topics=topics,
        num_processes=num_processes,
        process_num=process_num,
        is_dedicated_migration_process=dedicated_migration_process and (process_num == 0),
        processor_chunk_size=processor_chunk_size,
    )
UCR pillow that reads from all Kafka topics and writes data into the UCR database tables.

        Processors:
          - :py:class:`corehq.apps.userreports.pillow.ConfigurableReportPillowProcessor`
UCR pillow that reads from all Kafka topics and writes data into the UCR database tables.
UCR pillow that reads from all Kafka topics and writes data into the UCR database tables .
def get_kafka_ucr_pillow(pillow_id='kafka-ucr-main', ucr_division=None,
                         include_ucrs=None, exclude_ucrs=None, topics=None,
                         num_processes=1, process_num=0, dedicated_migration_process=False,
                         processor_chunk_size=DEFAULT_PROCESSOR_CHUNK_SIZE, **kwargs):
    """UCR pillow that reads from all Kafka topics and writes data into the UCR database tables.

        Processors:
          - :py:class:`corehq.apps.userreports.pillow.ConfigurableReportPillowProcessor`
    """
    # todo; To remove after full rollout of https://github.com/dimagi/commcare-hq/pull/21329/
    topics = topics or KAFKA_TOPICS
    topics = [t for t in topics]
    table_manager = ConfigurableReportTableManager(
        data_source_providers=[DynamicDataSourceProvider()],
        ucr_division=ucr_division,
        include_ucrs=include_ucrs,
        exclude_ucrs=exclude_ucrs,
        run_migrations=(process_num == 0)  # only first process runs migrations
    )
    return ConfigurableReportKafkaPillow(
        processor=ConfigurableReportPillowProcessor(table_manager),
        pillow_name=pillow_id,
        topics=topics,
        num_processes=num_processes,
        process_num=process_num,
        is_dedicated_migration_process=dedicated_migration_process and (process_num == 0),
        processor_chunk_size=processor_chunk_size,
    )
def get_kafka_ucr_pillow ( pillow_id = 'kafka-ucr-main' , ucr_division = None , include_ucrs = None , exclude_ucrs = None , topics = None , num_processes = 1 , process_num = 0 , dedicated_migration_process = False , processor_chunk_size = DEFAULT_PROCESSOR_CHUNK_SIZE , * * kwargs ) : # todo; To remove after full rollout of https://github.com/dimagi/commcare-hq/pull/21329/ topics = topics or KAFKA_TOPICS topics = [ t for t in topics ] table_manager = ConfigurableReportTableManager ( data_source_providers = [ DynamicDataSourceProvider ( ) ] , ucr_division = ucr_division , include_ucrs = include_ucrs , exclude_ucrs = exclude_ucrs , run_migrations = ( process_num == 0 ) # only first process runs migrations ) return ConfigurableReportKafkaPillow ( processor = ConfigurableReportPillowProcessor ( table_manager ) , pillow_name = pillow_id , topics = topics , num_processes = num_processes , process_num = process_num , is_dedicated_migration_process = dedicated_migration_process and ( process_num == 0 ) , processor_chunk_size = processor_chunk_size , )