
    p                         S r SSKJr  SSKJr  SSKJr  SSK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r " S S\R                  5      rg)zBThis package provides tools for appending layers to docker images.    )absolute_import)division)print_functionN)docker_name)docker_digest)docker_http)docker_image)metadatazGsha256:a3ed95caeb02ffe68cdd9fd84406680ae93d633cb16422d00e8a7c22955b46d4c                   D    \ rS rSrSr  SS j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.
Nc                 <   Xl         [        R                  " U R                   R                  5       5      n[        R                  " U R                   R	                  5       5      nU=(       d    [
        R                  " 5       nUR                  [        R                  S9nU(       a  X l
        [        R                  " U R                  5      U l        US   R                  U R                  [        R                   [#        U R                  5      S.5        U(       d/  [        R                  " U R%                  U R                  5      5      nUR                  U[#        S5      S /S9nO%UR                  [        R                  " SS5      /S9n[
        R                  " Xd5      n[        R&                  " US	S
9U l        U R(                  R+                  S5      n[        R                  " U5      US   S'   [#        U5      US   S'   [        R&                  " US	S
9U l        g)a  Creates a new layer on top of a base with optional tar.gz.

Args:
  base: a base DockerImage for a new layer.
  tar_gz: an optional gzipped tarball passed as a bytes with filesystem
      changeset.
  diff_id: an optional string containing the digest of the
      uncompressed tar_gz.
  overrides: an optional metadata.Overrides object of properties to override
      on the base image.
)
created_bylayers)digest	mediaTypesizezsha256:N)r        T)	sort_keysutf8configr   r   )_basejsonloadsmanifestconfig_filer
   	OverridesOverrider   
USER_AGENT_blobr   SHA256	_blob_sumappendr   
LAYER_MIMElenuncompressed_blobdumps_config_fileencode	_manifest)selfbasetar_gzdiff_id	overridesr   r   utf8_encoded_configs           8lib/third_party/containerregistry/client/v2_2/append_.py__init__Layer.__init__'   s     Jzz$**--/0H**TZZ3356K1X//1I""k.D.D"EIj$++DJJ7dnxNN"--djj/! 	
 &&t'='=dnn'MN $$WS^_-E,F$Gi $$]-A-A#r-J,K$Li##K;K

;$?D++226:#0#7#78K#LHXx !$%8!9HXvZZD9DNr   c                     U R                   $ 	Override.)r+   r,   s    r2   r   Layer.manifestW   s    >>r   c                     U R                   $ r6   )r)   r8   s    r2   r   Layer.config_file[   s    r   c                 n    XR                   :X  a  U R                  $ U R                  R                  U5      $ r6   )r#   r!   r   blob)r,   r   s     r2   r=   
Layer.blob_   s)    ZZ::??6""r   c                     U $ r6    r8   s    r2   	__enter__Layer.__enter__f   s    Kr   c                     g)r7   Nr@   )r,   unused_typeunused_valueunused_tracebacks       r2   __exit__Layer.__exit__j   s    
r   )r   r!   r#   r)   r+   )NN)__name__
__module____qualname____firstlineno____doc__r3   r   r   r=   rA   rG   __static_attributes__r@   r   r2   r   r       s.     	.:`#r   r   )rM   
__future__r   r   r   r   containerregistry.clientr   containerregistry.client.v2_2r   r   r	    containerregistry.transform.v2_2r
   _EMPTY_LAYER_TAR_IDDockerImager   r@   r   r2   <module>rU      sC    I &  %  0 7 5 6 5 ` LL$$ Lr   