
                         x   S SK JrJrJr  S SKJr  S SKJr  S SKJ	r	  S SK
Jr  S SKJr  S SKJr  S SKJr  S S	KJr  S S
KJr  S SKJr  S SKJr  S SKJr  S SKJr  S SKJrJ r   S SK!J"r"  S SK#J$r$J%r%  S SK&J'r'  S SK(J)r)  S SK*J+r+  \" SSSS9r,Sr-     S$S\ S\.S\\   S\\+   S\\)   S \\\.\.4      S!\\   S"\4S# jjr/g)%    )AsyncIteratorMappingOptional)BatchSettings)AdminClient)regional_endpoint)PublisherClientId)PublishSequenceNumber)ClientCacheDefaultRoutingPolicy)GapicConnectionFactory)merge_metadata)PartitionCountWatcherImpl)PartitionCountWatchingPublisher)	Publisher)SinglePartitionPublisher)	Partition	TopicPath)topic_routing_metadata)InitialPublishRequestPublishRequest)async_client)ClientOptions)Credentialsi  0 i  g?)	max_bytesmax_messagesmax_latencyiX  Ntopic	transportper_partition_batching_settingscredentialsclient_optionsmetadata	client_idreturnc                 H  ^ ^^^^^^^
 Tc  [         m[        T R                  R                  TTS9nTc&  [	        [        T R                  R                  5      S9m[        UUU4S j5      m
S[        4U
UUUU 4S jjnS[        4S jn	[        [        UT [        5      UU	5      $ )a  
Make a new publisher for the given topic.

Args:
  topic: The topic to publish to.
  transport: The transport type to use.
  per_partition_batching_settings: Settings for batching messages on each partition. The default is reasonable for most cases.
  credentials: The credentials to use to connect. GOOGLE_DEFAULT_CREDENTIALS is used if None.
  client_options: Other options to pass to the client. Note that if you pass any you must set api_endpoint.
  metadata: Additional metadata to send with the RPC.
  client_id: 128-bit unique client id. If set, enables publish idempotency for the session.

Returns:
  A new Publisher.

Throws:
  GoogleApiCallException on any error determining topic structure.
)regionr"   r#   )api_endpointc                  0   > [         R                  " TTT S9$ )N)r"   r    r#   )r   PublisherServiceAsyncClient)r#   r"   r    s   Glib/third_party/google/cloud/pubsublite/internal/wire/make_publisher.py<lambda> make_publisher.<locals>.<lambda>c   s    88#y
    	partitionc                    >^  S[         [           4UUU U4S jjn[        [        T5      T R                  S9nT(       a  TR                  Ul        [        UT[        U5      [        S5      5      $ )Nrequestsc                    > [        T[        TT5      5      nTR                  5       R                  U [	        UR                  5       5      S9$ )N)r$   )r   r   getpublishlistitems)r2   final_metadataclient_cacher$   r0   r   s     r,   connection_factoryEmake_publisher.<locals>.publisher_factory.<locals>.connection_factoryi   sP    +0	BN  ##%--4(<(<(>#? .  r/   )r   r0   r   )	r   r   r   strvaluer%   r   r   r
   )r0   r:   initial_requestr9   r%   r$   r!   r   s   `  r,   publisher_factory)make_publisher.<locals>.publisher_factoryh   sg    	~)F 	 	 0e*	
 (1O%'+"#56!!$	
 	
r/   partition_countc                     [        U 5      $ )Nr   )rA   s    r,   policy_factory&make_publisher.<locals>.policy_factory}   s    #O44r/   )DEFAULT_BATCHING_SETTINGSr   locationr(   r   r   r   r   intr   r   DEFAULT_PARTITION_POLL_PERIOD)r   r    r!   r"   r#   r$   r%   admin_clientr?   rC   r9   s   ```````   @r,   make_publisherrJ   <   s    6 '.*C'~~$$%L
 &*5>>+@+@A
 	
L
Y 
 
*5 5 +!,7TU r/   )NNNNN)0typingr   r   r   google.cloud.pubsub_v1.typesr   $google.cloud.pubsublite.admin_clientr   *google.cloud.pubsublite.internal.endpointsr   4google.cloud.pubsublite.internal.publisher_client_idr	   8google.cloud.pubsublite.internal.publish_sequence_numberr
   2google.cloud.pubsublite.internal.wire.client_cacher   <google.cloud.pubsublite.internal.wire.default_routing_policyr   6google.cloud.pubsublite.internal.wire.gapic_connectionr   4google.cloud.pubsublite.internal.wire.merge_metadatar   Bgoogle.cloud.pubsublite.internal.wire.partition_count_watcher_implr   Hgoogle.cloud.pubsublite.internal.wire.partition_count_watching_publisherr   /google.cloud.pubsublite.internal.wire.publisherr   @google.cloud.pubsublite.internal.wire.single_partition_publisherr   google.cloud.pubsublite.typesr   r   1google.cloud.pubsublite.internal.routing_metadatar   google.cloud.pubsublite_v1r   r   5google.cloud.pubsublite_v1.services.publisher_servicer   google.api_core.client_optionsr   google.auth.credentialsr   rE   rH   r<   rJ    r/   r,   <module>r`      s	   4 3 6 < H R K P F ? T L N 8 /)  !$  @D)-.2,0-1HHH &.m%<H +&	H
 ]+H wsCx()H )*H Hr/   