
    
                     x    S 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  \	" 1 Sk5      r
\	" SS	15      rS
 rS rg)z8Utilities for parsing and validating additional headers.    )absolute_import)division)unicode_literals)arg_parsers)
properties>
   content-md5custom-timecontent-typecache-controlcontent-encodingcontent-languagex-goog-api-versioncontent-dispositionx-goog-if-generation-matchx-goog-if-metageneration-matchzx-goog-meta-zx-amz-meta-c                    ^ 0 nU R                  5        H8  u  mnU4S j[         5       nT[        ;  d  M"  [        U5      (       a  M4  X!T'   M:     U$ )a  Filters out some headers that correspond to metadata fields.

It's not necessarily important that all headers corresponding to metadata
fields are filtered here, but failing to do so for some (e.g. content-type)
can lead to bugs if the user's setting overrides values set by our API
client that are required for it to function properly.

Args:
  headers_dict (dict): Header key:value pairs provided by the user.

Returns:
  A dictionary with a subset of the pairs in headers_dict -- those matching
  some metadata fields are filtered out.
c              3   F   >#    U  H  nTR                  U5      v   M     g 7f)N)
startswith).0prefixheaders     2lib/googlecloudsdk/api_lib/storage/headers_util.py	<genexpr>+_remove_metadata_headers.<locals>.<genexpr>@   s$      (K0If&!!0Is   !)items_METADATA_HEADER_PREFIXES_METADATA_HEADERSany)headers_dictfiltered_headersvalue header_matches_metadata_prefixesr   s       @r   _remove_metadata_headersr#   /   sY     #))+mfe(K0I(K$''011!&v , 
    c                      [         R                  R                  R                  R	                  5       n U (       d  0 $ [
        R                  " 5       nU" U 5      n[        U5      $ )zEGets a dictionary of headers for API calls based on a property value.)r   VALUESstorageadditional_headersGetr   ArgDictr#   )headers_stringparserr   s      r   get_additional_header_dictr-   H   sM    $$,,??CCE.	I &',	!,	//r$   N)__doc__
__future__r   r   r   googlecloudsdk.callioper   googlecloudsdk.corer   	frozensetr   r   r#   r-    r$   r   <module>r4      sM    ? &  ' / *
     &'  20r$   