class_docstr: Utility to map Kinesis shards to Flink subtask indices. Users can provide a Java
  KinesisShardAssigner in Python if they want to provide custom shared assigner.
class_docstr_tok: ["Utility","to","map","Kinesis","shards","to","Flink","subtask","indices",".","Users","can","provide","a","Java","KinesisShardAssigner","in","Python","if","they","want","to","provide","custom","shared","assigner","."]
docstr: A KinesisShardAssigner that maps Kinesis shard hash-key ranges to Flink subtasks.
  It creates a more uniform distribution of shards across subtasks than org.apache.flink.         streaming.connectors.kinesis.internals.KinesisDataFetcher.DEFAULT_SHARD_ASSIGNER when the
  Kinesis records in the stream have hash keys that are uniformly distributed over all
  possible hash keys, which is the case if records have randomly-generated partition keys.
  (This is the same assumption made if you use the Kinesis UpdateShardCount operation with
  UNIFORM_SCALING.)
docstr_tok: ["A","KinesisShardAssigner","that","maps","Kinesis","shard","hash-key","ranges","to","Flink","subtasks",".","It","creates","a","more","uniform","distribution","of","shards","across","subtasks","than","org.apache.flink",".","streaming.connectors.kinesis.internals.KinesisDataFetcher.DEFAULT_SHARD_ASSIGNER","when","the","Kinesis","records","in","the","stream","have","hash","keys","that","are","uniformly","distributed","over","all","possible","hash","keys",",","which","is","the","case","if","records","have","randomly-generated","partition","keys",".","(","This","is","the","same","assumption","made","if","you","use","the","Kinesis","UpdateShardCount","operation","with","UNIFORM_SCALING",".",")"]
code: def uniform_shard_assigner() -> "KinesisShardAssigner":
      """
          A KinesisShardAssigner that maps Kinesis shard hash-key ranges to Flink subtasks.
          It creates a more uniform distribution of shards across subtasks than org.apache.flink. \
          streaming.connectors.kinesis.internals.KinesisDataFetcher.DEFAULT_SHARD_ASSIGNER when the
          Kinesis records in the stream have hash keys that are uniformly distributed over all
          possible hash keys, which is the case if records have randomly-generated partition keys.
          (This is the same assumption made if you use the Kinesis UpdateShardCount operation with
          UNIFORM_SCALING.)
          """
      return KinesisShardAssigner(
          get_gateway().jvm.org.apache.flink.streaming.connectors.kinesis.util.UniformShardAssigner()
      )
  
imports: from typing import Dict, Union, List
  from pyflink.common import SerializationSchema, DeserializationSchema, AssignerWithPeriodicWatermarksWrapper
  from pyflink.datastream.functions import SourceFunction
  from pyflink.datastream.connectors import Sink
  from pyflink.java_gateway import get_gateway
label_desc: Use image node_id 3 for calling the KinesisShardAssigner obj's underlying member method code with example usage: obj.uniform_shard_assigner() and returns: KinesisShardAssigner