Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(986)

Unified Diff: third_party/gsutil/gslib/__init__.py

Issue 1377933002: [catapult] - Copy Telemetry's gsutilz over to third_party. (Closed) Base URL: https://github.com/catapult-project/catapult.git@master
Patch Set: Rename to gsutil. Created 5 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « third_party/gsutil/gslib/README ('k') | third_party/gsutil/gslib/__main__.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: third_party/gsutil/gslib/__init__.py
diff --git a/third_party/gsutil/gslib/__init__.py b/third_party/gsutil/gslib/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..b9cb647a1063ded3fdca9eda5289a6fb9cfbdb30
--- /dev/null
+++ b/third_party/gsutil/gslib/__init__.py
@@ -0,0 +1,119 @@
+# -*- coding: utf-8 -*-
+# Copyright 2010 Google Inc. All Rights Reserved.
+#
+# Permission is hereby granted, free of charge, to any person obtaining a
+# copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish, dis-
+# tribute, sublicense, and/or sell copies of the Software, and to permit
+# persons to whom the Software is furnished to do so, subject to the fol-
+# lowing conditions:
+#
+# The above copyright notice and this permission notice shall be included
+# in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABIL-
+# ITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
+# SHALL THE AUTHOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+# IN THE SOFTWARE.
+"""Package marker file."""
+
+from __future__ import absolute_import
+
+import os
+import pkgutil
+import sys
+import tempfile
+
+import gslib.exception
+
+coverage_outfile = os.getenv('GSUTIL_COVERAGE_OUTPUT_FILE', None)
+if coverage_outfile:
+ try:
+ import coverage # pylint: disable=g-import-not-at-top
+ coverage_controller = coverage.coverage(
+ data_file=coverage_outfile, data_suffix=True, auto_data=True,
+ source=['gslib'], omit=['gslib/third_party/*', 'gslib/tests/*',
+ tempfile.gettempdir() + '*'])
+ coverage_controller.start()
+ except ImportError:
+ pass
+
+
+# Directory containing the gslib module.
+GSLIB_DIR = os.path.dirname(os.path.realpath(__file__))
+# Path to gsutil executable. This assumes gsutil is the running script.
+GSUTIL_PATH = os.path.realpath(sys.argv[0])
+# The directory that contains the gsutil executable.
+GSUTIL_DIR = os.path.dirname(GSUTIL_PATH)
+
+# Whether or not this was installed via a package manager like pip, deb, rpm,
+# etc. If installed by just extracting a tarball or zip file, this will be
+# False.
+IS_PACKAGE_INSTALL = True
+
+# Whether or not this was installed via setup.py develop mode. This creates a
+# symlink directly to the source directory.
+IS_EDITABLE_INSTALL = False
+
+# Directory where program files like VERSION and CHECKSUM will be. When
+# installed via tarball, this is the gsutil directory, but the files are moved
+# to the gslib directory when installed via setup.py.
+PROGRAM_FILES_DIR = GSLIB_DIR
+
+# The gslib directory will be underneath the gsutil directory when installed
+# from a tarball, but somewhere else on the machine if installed via setup.py.
+if (not os.path.isfile(os.path.join(PROGRAM_FILES_DIR, 'VERSION')) and
+ os.path.commonprefix((GSUTIL_DIR, GSLIB_DIR)) == GSUTIL_DIR):
+ IS_PACKAGE_INSTALL = False
+ PROGRAM_FILES_DIR = GSUTIL_DIR
+
+# If the module was installed from source using editable mode
+# (i.e. pip install -e) then the files might be one directory up.
+if not os.path.isfile(os.path.join(PROGRAM_FILES_DIR, 'VERSION')):
+ PROGRAM_FILES_DIR = os.path.normpath(os.path.join(GSLIB_DIR, '..'))
+ IS_EDITABLE_INSTALL = True
+
+# If installed via editable mode, we have to add the mock_storage_service
+# module to the Python path, since the gsutil script path munging is not
+# executed in this mode.
+if IS_EDITABLE_INSTALL:
+ mock_storage_location = os.path.join(
+ PROGRAM_FILES_DIR, 'third_party', 'boto', 'tests', 'integration', 's3')
+ sys.path.append(mock_storage_location)
+
+
+def _GetFileContents(filename):
+ """Tries to find the given filename on disk or via pkgutil.get_data.
+
+ Args:
+ filename: String name of the file.
+
+ Returns:
+ A tuple containing the absolute path to the requested file and the file's
+ contents. If the file is not actually on disk, the file path will be None.
+ """
+ fpath = os.path.join(PROGRAM_FILES_DIR, filename)
+ if os.path.isfile(fpath):
+ with open(fpath, 'r') as f:
+ content = f.read()
+ else:
+ content = pkgutil.get_data('gslib', filename)
+ fpath = None
+ return (fpath, content.strip())
+
+# Get the version file and store it.
+VERSION_FILE, VERSION = _GetFileContents('VERSION')
+if not VERSION:
+ raise gslib.exception.CommandException(
+ 'VERSION file not found. Please reinstall gsutil from scratch')
+__version__ = VERSION
+
+# Get the checksum file and store it.
+CHECKSUM_FILE, CHECKSUM = _GetFileContents('CHECKSUM')
+if not CHECKSUM:
+ raise gslib.exception.CommandException(
+ 'CHECKSUM file not found. Please reinstall gsutil from scratch')
« no previous file with comments | « third_party/gsutil/gslib/README ('k') | third_party/gsutil/gslib/__main__.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698