
    %                        S SK JrJr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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
KJr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%  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K0J1r1  S SK2J3r3  S SK4J5s  J6s  J7s  J8s  J9r:  S SK;J<r<  S SKJ=r=J>r>  S SK?J@r@  S SKAJBrBJCrCJDrDJErEJFrFJGrG  S SKHJIrI  S SKJJKrK  S SKLJMrM  SrNS \>S!\OS"\	S#\\   S$\\\O\O4      S%\'4S& jrPS \>S!\OS"\	S#\\   S$\\\O\O4      S'\S(\ S)\S%\4S* jrQ       S0S \>S!\OS+\S(\\    S,\\   S)\\   S-\\\=      S#\\   S"\\	   S.\\\O\O4      S%\#4S/ jjrRg)1    )OptionalMappingSetAsyncIteratorCallable)uuid4)ClientOptions)Credentials)ReassignmentHandlerDefaultReassignmentHandler)to_cps_subscribe_message#add_id_to_cps_subscribe_transformer)ClientCache)FlowControlSettings)AckSetTrackerImpl)PartitionSubscriberFactoryAssigningSingleSubscriber)SinglePartitionSingleSubscriber)MessageTransformer)NackHandlerDefaultNackHandler)AsyncSingleSubscriber)regional_endpoint)Assigner)AssignerImpl)CommitterImplFixedSetAssigner)GapicConnectionFactory)merge_metadata)pubsub_contextN)SubscriberResetHandler)	PartitionSubscriptionPath)subscription_routing_metadata)SubscribeRequestInitialSubscribeRequestStreamingCommitCursorRequestPartitionAssignmentRequest!InitialPartitionAssignmentRequestInitialCommitCursorRequestSubscriberServiceAsyncClient)%PartitionAssignmentServiceAsyncClientCursorServiceAsyncClientg?subscription	transportclient_optionscredentialsbase_metadatareturnc                    ^^^^ Tc  0 mS[         [           4UUUU4S jjn[        [        [	        U 5      [        5       R                  S9[        U5      5      $ )Nrequestsc                 h   > [        TTTS9nUR                  U [        TR                  5       5      S9$ )Nr4   r2   r3   metadata)r.   assign_partitionslistitems)r8   assignment_clientr5   r3   r4   r2   s     Olib/third_party/google/cloud/pubsublite/cloudpubsub/internal/make_subscriber.pyassignment_connection_factory=_make_dynamic_assigner.<locals>.assignment_connection_factoryb   sI     Bken  @N  O 22tM$7$7$9: 3 
 	
    )r1   	client_id)r   r)   r   r*   strr   bytesr   )r1   r2   r3   r4   r5   rB   s    ```` rA   _make_dynamic_assignerrH   X   sZ     
 :;
 
 )\*egmm	
 	<=	 rD   flow_control_settingsnack_handlermessage_transformerc                    ^ ^^^^^^^^	^
 [        UUU4S j5      m
[        UUU4S j5      m	S[        S[        4UU	UUUU
U 4S jjnU$ )Nc                     > [        TTT S9$ Nr:   r,   r3   r4   r2   s   rA   <lambda>4_make_partition_subscriber_factory.<locals>.<lambda>}   s    ,#y
rD   c                     > [        TTT S9$ rN   r/   rO   s   rA   rP   rQ      s    (#y
rD   	partitionr6   c           
      `  >^ ^^ [        T[        TT 5      5      mS[        [           4UU4S jjmS[        [           4UU4S jjnS[
        4U UU4S jjn[        [        [        T5      T R                  S9[        [        U5      5      n[        U5      n[        UT	UT[        T T
5      5      $ )Nr8   c                 n   > TR                  5       R                  U [        TR                  5       5      S9$ Nr;   )get	subscriber>   r?   )r8   final_metadatasubscribe_client_caches    rA   subscribe_connection_factoryY_make_partition_subscriber_factory.<locals>.factory.<locals>.subscribe_connection_factory   s7    )--/994(<(<(>#? :  rD   c                 n   > TR                  5       R                  U [        TR                  5       5      S9$ rV   )rW   streaming_commit_cursorr>   r?   )r8   cursor_client_cacherY   s    rA   cursor_connection_factoryV_make_partition_subscriber_factory.<locals>.factory.<locals>.cursor_connection_factory   s:     '**,DD4(<(<(>#? E  rD   reset_handlerc                    > [         R                  " [        [        T5      TR                  S9[
        [        T5      U 5      $ )Nr1   rS   )wire_subscriberSubscriberImplr'   rF   value_DEFAULT_FLUSH_SECONDSr   )rb   rS   r[   r1   s    rA   subscriber_factoryO_make_partition_subscriber_factory.<locals>.factory.<locals>.subscriber_factory   s=    "11'!$\!2ioo '&'CD rD   rd   )r    r%   r   r&   r(   r"   r   r+   rF   rg   rh   r   r   r   r   )rS   r`   ri   	committerack_set_trackerrY   r[   r5   r_   rI   rK   rJ   rZ   r1   s   `    @@rA   factory3_make_partition_subscriber_factory.<locals>.factory   s    '8yQ
	=AQ3R 	 	
	#$@A	 		.D 	 	 "& .)// #"#<=
	 ,I6.!/	;NO
 	
rD   )r   r#   r   )r1   r2   r3   r4   r5   rI   rJ   rK   rm   r_   rZ   s   ```````` @@rA   "_make_partition_subscriber_factoryro   r   sI     )	

 &	
)
9 )
)> )
 )
V NrD   #per_partition_flow_control_settingsreassignment_handlerfixed_partitionsr<   c
           
      `  ^ ^^^^^	 [        [        SS9T	5      m	Tc&  [        [        T R                  R
                  5      S9mT(       a  U4S jn
O
UUU	U U4S jn
Uc
  [        5       nUc
  [        5       nUc  [        R                  " [        5      n[        T TTTT	UUU5      n[        XU5      $ )a  
Make a Pub/Sub Lite AsyncSubscriber.

Args:
  subscription: The subscription to subscribe to.
  transport: The transport type to use.
  per_partition_flow_control_settings: The flow control settings for each partition subscribed to. Note that these
    settings apply to each partition individually, not in aggregate.
  nack_handler: An optional handler for when nack() is called on a Message. The default will fail the client.
  message_transformer: An optional transformer from Pub/Sub Lite messages to Cloud Pub/Sub messages.
  fixed_partitions: A fixed set of partitions to subscribe to. If not present, will instead use auto-assignment.
  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.

Returns:
  A new AsyncSubscriber.
CLOUD_PUBSUB_SHIM)	framework)api_endpointc                     > [        T 5      $ Nr   )rr   s   rA   rP   'make_async_subscriber.<locals>.<lambda>   s    #34D#ErD   c                  "   > [        TTT TT5      $ rx   )rH   )r3   r4   r<   r1   r2   s   rA   rP   ry      s    #9$
rD   )r    r!   r	   r   locationregionr   r   r   of_callabler   ro   r   )r1   r2   rp   rJ   rq   rK   rr   r4   r3   r<   assigner_factorypartition_subscriber_factorys   ``    ````  rA   make_async_subscriberr      s    < n7JKXVH&*<+@+@+G+GH
 E
 
 )+#9;"0<<=UV#E+	$  %8L rD   )NNNNNNN)Stypingr   r   r   r   r   uuidr   google.api_core.client_optionsr	   google.auth.credentialsr
   8google.cloud.pubsublite.cloudpubsub.reassignment_handlerr   r   6google.cloud.pubsublite.cloudpubsub.message_transformsr   r   2google.cloud.pubsublite.internal.wire.client_cacher   google.cloud.pubsublite.typesr   Agoogle.cloud.pubsublite.cloudpubsub.internal.ack_set_tracker_implr   Agoogle.cloud.pubsublite.cloudpubsub.internal.assigning_subscriberr   r   Hgoogle.cloud.pubsublite.cloudpubsub.internal.single_partition_subscriberr   7google.cloud.pubsublite.cloudpubsub.message_transformerr   0google.cloud.pubsublite.cloudpubsub.nack_handlerr   r   >google.cloud.pubsublite.cloudpubsub.internal.single_subscriberr   *google.cloud.pubsublite.internal.endpointsr   .google.cloud.pubsublite.internal.wire.assignerr   3google.cloud.pubsublite.internal.wire.assigner_implr   4google.cloud.pubsublite.internal.wire.committer_implr   8google.cloud.pubsublite.internal.wire.fixed_set_assignerr   6google.cloud.pubsublite.internal.wire.gapic_connectionr   4google.cloud.pubsublite.internal.wire.merge_metadatar    4google.cloud.pubsublite.internal.wire.pubsub_contextr!   5google.cloud.pubsublite.internal.wire.subscriber_implcloud
pubsubliteinternalwiresubscriber_implre   >google.cloud.pubsublite.internal.wire.subscriber_reset_handlerr"   r#   r$   1google.cloud.pubsublite.internal.routing_metadatar%   google.cloud.pubsublite_v1r&   r'   r(   r)   r*   r+   Cgoogle.cloud.pubsublite_v1.services.subscriber_service.async_clientr-   Mgoogle.cloud.pubsublite_v1.services.partition_assignment_service.async_clientr.   ?google.cloud.pubsublite_v1.services.cursor_service.async_clientr0   rh   rF   rH   ro   r    rD   rA   <module>r      s0   C B  8 / K = W I C L N U P O O O O F   " " +&	
 GCH-. 4@"@@ "@ +&	@
 GCH-.@ /@ @ ,@  @N +/:>8<15)-.2,0A"AA *=A ;'	A
 ##67A ""45A s9~.A +&A ]+A wsCx()A ArD   