
    hv              	           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Jr  SSKJr  \	R                  " S	5      \" S
SS9\" \R                   " 5       SSSS94S\S\4S jj5       rSS.S\S\S\4S jjrg)    )Path)msg   )load_project_configlogger   )Argapp)RemoteStorageget_command_hash)update_lockfilepulldefaultzName or path of remote storage)helpzELocation of project directory. Defaults to current working directory.TF)r   exists	file_okayremoteproject_dirc                 n    [        X5       H&  u  p#Uc  M
  [        R                  " SU SU 35        M(     g)a\  Retrieve available precomputed outputs from a remote storage.
You can alias remotes in your project.yml by mapping them to storage paths.
A storage can be anything that the smart_open library can upload to, e.g.
AWS, Google Cloud Storage, SSH, local directories etc.

DOCS: https://github.com/explosion/weasel/tree/main/docs/cli.md#arrow_down-push
NzPulled z from )project_pullr   good)r   r   urloutput_paths       I/home/james-whalen/.local/lib/python3.13/site-packages/weasel/cli/pull.pyproject_pull_clir      s4     )=?HHw{m6#78 >    )verboser   c             #   ^  #    [        U 5      nXR                  S0 5      ;   a  US   U   n[        X5      n[        UR                  S/ 5      5      nU(       GaI  [	        [        U5      5       GH$  u  pg[
        R                  " SUS   5        UR                  S/ 5       Vs/ s H  oU-  PM	     n	n[        S U	 5       5      (       a  [        SSXS   5      n
UR                  S	/ 5       H0  nUR                  XS
9n[
        R                  " SUUU
5        X4v   M2     UR                  S	/ 5       Vs/ s H  oU-  PM	     nn[        S U 5       5      (       a  [        X5        UR                  U5          O [
        R                  " SUS   5        GM'     g U(       a  GMH  g g s  snf s  snf 7f)NremotescommandszCMD: %s.namedepsc              3   @   #    U  H  oR                  5       v   M     g 7fNr   ).0deps     r   	<genexpr>project_pull.<locals>.<genexpr>-   s     04C::<<4    scriptoutputs)command_hashz#URL: %s for %s with command hash %sc              3   @   #    U  H  oR                  5       v   M     g 7fr$   r%   )r&   locs     r   r(   r)   :   s     8xzz||xr*   z(Dependency missing. Skipping %s outputs.)r   getr   list	enumerater   debugallr   r   r   pop)r   r   r   configstorager    icmdr'   r"   cmd_hashr   r   outout_locss                  r   r   r      s     !-FIr**	"6*K0GFJJz2./H X/FALLS[1141DE1D##%1DDE04000+BDh-H#&779b#9K!,,{,JCLL=# 	 ** $: :=B9OP9O##-9OP8x888#K5 QGVU/ 04 7 ( F Qs&   BF-!F#/BF-2F( AF-!F-N)pathlibr   wasabir   utilr   r   mainr	   r
   remote_storager   r   runr   commandcwdstrr   boolr    r   r   <module>rI      s      .  ;   V i&FGDHHJ-t  ~B  NS  T99 9 9$ EJ &d &C &T &r   