
                         V    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r " S S\5      rg)	a  Class that holds state for instantiating StorageUri objects.

The StorageUri func defined in this class uses that state
(bucket_storage_uri_class and debug) needed plus gsutil default flag values to
instantiate this frequently constructed object with just one param for most
cases.
    )absolute_import)print_function)division)unicode_literalsNc                   $    \ rS rSrSrS rS rSrg)StorageUriBuilder   z+Class for instantiating StorageUri objects.c                     X l         Xl        g)zInitializes the builder.

Args:
  debug: Debug level to pass in to boto connection (range 0..3).
  bucket_storage_uri_class: Class to instantiate for cloud StorageUris.
                            Settable for testing/mocking.
Nbucket_storage_uri_classdebug)selfr   r   s      ,platform/gsutil/gslib/storage_uri_builder.py__init__StorageUriBuilder.__init__"   s     %=!J    c           	      \    [         R                  " USU R                  SU R                  SS9$ )zInstantiates StorageUri using class state and gsutil default flag values.

Args:
  uri_str: StorageUri naming bucket or object.

Returns:
  boto.StorageUri for given uri_str.

Raises:
  InvalidUriError: if uri_str not valid.
fileF)r   validater   suppress_consec_slashes)botostorage_urir   r   )r   uri_strs     r   
StorageUriStorageUriBuilder.StorageUri-   s3     jj!%!>!> %' 'r   r   N)__name__
__module____qualname____firstlineno____doc__r   r   __static_attributes__ r   r   r   r      s    3	'r   r   )	r    
__future__r   r   r   r   r   objectr   r"   r   r   <module>r%      s'    ' %  '  '  'r   