| Index: third_party/gsutil/gslib/storage_uri_builder.py
 | 
| diff --git a/third_party/gsutil/gslib/storage_uri_builder.py b/third_party/gsutil/gslib/storage_uri_builder.py
 | 
| new file mode 100644
 | 
| index 0000000000000000000000000000000000000000..576978fa7aa696c83b4c48392ec7d88029959a3a
 | 
| --- /dev/null
 | 
| +++ b/third_party/gsutil/gslib/storage_uri_builder.py
 | 
| @@ -0,0 +1,56 @@
 | 
| +# Copyright 2012 Google Inc. All Rights Reserved.
 | 
| +#
 | 
| +# Licensed under the Apache License, Version 2.0 (the "License");
 | 
| +# you may not use this file except in compliance with the License.
 | 
| +# You may obtain a copy of the License at
 | 
| +#
 | 
| +#     http://www.apache.org/licenses/LICENSE-2.0
 | 
| +#
 | 
| +# Unless required by applicable law or agreed to in writing, software
 | 
| +# distributed under the License is distributed on an "AS IS" BASIS,
 | 
| +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
| +# See the License for the specific language governing permissions and
 | 
| +# limitations under the License.
 | 
| +
 | 
| +"""
 | 
| +Class that holds state (bucket_storage_uri_class and debug) needed for
 | 
| +instantiating StorageUri objects. The StorageUri func defined in this class
 | 
| +uses that state plus gsutil default flag values to instantiate this frequently
 | 
| +constructed object with just one param for most cases.
 | 
| +"""
 | 
| +
 | 
| +import boto
 | 
| +from gslib.exception import CommandException
 | 
| +
 | 
| +
 | 
| +class StorageUriBuilder(object):
 | 
| +
 | 
| +  def __init__(self, debug, bucket_storage_uri_class):
 | 
| +    """
 | 
| +    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.
 | 
| +    """
 | 
| +    self.bucket_storage_uri_class = bucket_storage_uri_class
 | 
| +    self.debug = debug
 | 
| +
 | 
| +  def StorageUri(self, uri_str, is_latest=False):
 | 
| +    """
 | 
| +    Instantiates StorageUri using class state and gsutil default flag values.
 | 
| +
 | 
| +    Args:
 | 
| +      uri_str: StorageUri naming bucket or object.
 | 
| +      is_latest: boolean indicating whether this versioned object represents the
 | 
| +          current version.
 | 
| +
 | 
| +    Returns:
 | 
| +      boto.StorageUri for given uri_str.
 | 
| +
 | 
| +    Raises:
 | 
| +      InvalidUriError: if uri_str not valid.
 | 
| +    """
 | 
| +    return boto.storage_uri(
 | 
| +        uri_str, 'file', debug=self.debug, validate=False,
 | 
| +        bucket_storage_uri_class=self.bucket_storage_uri_class,
 | 
| +        suppress_consec_slashes=False, is_latest=is_latest)
 | 
| 
 |