
    5                         S r SSKJr  SSKJr  SSKJr  SSKrSSKrSSKrSSKJ	r	  SSKJ
r
  SSKJr  S	r " S
 S\
R                  5      rg)zEThis package provides DockerImage for examining docker_build outputs.    )absolute_import)division)print_functionN)docker_digest)docker_image)utilzGsha256:a3ed95caeb02ffe68cdd9fd84406680ae93d633cb16422d00e8a7c22955b46d4c                   6    \ rS rSrSrS rS rS rS rS r	Sr
g	)
Layer    zAppends a new layer on top of a base image.

This augments a base docker image with new files from a gzipped tarball,
adds environment variables and exposes a port.
c           	         Xl         [        R                  " U R                   R                  5       5      u  pV[        R
                  " U5      n[        R
                  " US   S   S   5      nU(       a1  X l        [        R                  " U R                  5      U l	        SUS'   O[        U l	        SU l        SUS'   US   R                  SS	U R                  05        US
   US'   [        R                  " [        R                  " S5      5      R!                  S5      US
'   UR#                  S0 5      =(       d    0 n	[%        U5      nU(       ap  U V
s/ s H  oR'                  S5      S   PM     nn
U	R#                  S/ 5      =(       d    / nU V
s/ s H  oR'                  S5      S   U;  d  M  U
PM      nn
X-   U	S'   Ub#  U	R#                  S0 5      =(       d    0 n0 X'   XS'   XS'   US   R                  SS[        R(                  " USS905        [        R*                  " [        R(                  " USS95      U l        gs  sn
f s  sn
f )a  Creates a new layer on top of a base with optional tar.gz, port or envs.

Args:
  base: a base DockerImage for a new layer.
  tar_gz: an optional gzipped tarball passed as a string with filesystem
      changeset.
  port: an optional port to be exposed, passed as a string. For example:
      '8080/tcp'.
  *envs: environment variables passed as strings in the format:
      'ENV_ONE=val', 'ENV_TWO=val2'.
historyr   v1CompatibilityF	throwaway    TfsLayersblobSumidparentr   utf8config=EnvNExposedPorts)	sort_keys)_baser   DetachSignaturesmanifestjsonloads_blobr   SHA256	_blob_sum_EMPTY_LAYER_TAR_IDinsertbinasciihexlifyosurandomdecodegetlistsplitdumpsSign	_manifest)selfbasetar_gzportenvsunsigned_manifestunused_signaturesr   	v1_compatr   envenv_keysold_envs	old_portss                 6lib/third_party/containerregistry/client/v2/append_.py__init__Layer.__init__'   s    J+/+@+@

,(zz+,H

8I.q12CDEIj$++DJJ7dn$i*dndj#iZIt~~#>?#D/Ih&&rzz"~6==fEIdO]]8R(.BF:D/34t))C.#th4E2&,"h!)O#YYs^A->h-N#hOofUm**^R06Biio(^ hY	tzz)tDEGYYtzz(dCDDN 5Os   I I.Ic                     U R                   $ 	Override.)r/   r0   s    r<   r   Layer.manifestY   s    >>r   c                 n    XR                   :X  a  U R                  $ U R                  R                  U5      $ r@   )r"   r    r   blob)r0   digests     r<   rE   
Layer.blob]   s)    ZZ::??6""r   c                     U $ r@    rB   s    r<   	__enter__Layer.__enter__d   s    Kr   c                     g)rA   NrI   )r0   unused_typeunused_valueunused_tracebacks       r<   __exit__Layer.__exit__h   s    
r   )r   r    r"   r/   N)__name__
__module____qualname____firstlineno____doc__r=   r   rE   rJ   rP   __static_attributes__rI   r   r<   r
   r
       s"    0Ed#r   r
   )rV   
__future__r   r   r   r%   r   r'   containerregistry.client.v2r   r   r   r#   DockerImager
   rI   r   r<   <module>r[      sC    L &  %   	 5 4 , ` JL$$ Jr   