| OLD | NEW |
| (Empty) |
| 1 # Copyright 2014 The Chromium Authors. All rights reserved. | |
| 2 # Use of this source code is governed by a BSD-style license that can be | |
| 3 # found in the LICENSE file. | |
| 4 | |
| 5 import os | |
| 6 import sys | |
| 7 | |
| 8 # Explicit import paths for sub-projects that don't follow the | |
| 9 # 'infra/ext/<package>/<package>/' directory layout. | |
| 10 EXTPACKAGES = { | |
| 11 'httplib2': os.path.join('httplib2', 'python' + str(sys.version_info[0])), | |
| 12 'pytz': os.path.join('pytz', 'src'), | |
| 13 } | |
| 14 | |
| 15 | |
| 16 def _add_ext_dirs_to_path(): | |
| 17 base = os.path.dirname(os.path.abspath(__file__)) | |
| 18 | |
| 19 for d in os.listdir(base): | |
| 20 full = os.path.join(base, EXTPACKAGES.get(d, d)) | |
| 21 if os.path.isdir(full): | |
| 22 # TODO(iannucci): look for egg | |
| 23 # Needed to support absolute imports in sub-projects (e.g. pytz has | |
| 24 # imports like: from pytz.exceptions import AmbiguousTimeError). | |
| 25 sys.path.insert(0, full) | |
| 26 # Needed to support 'import infra.ext.foo' syntax. | |
| 27 __path__.append(full) | |
| 28 | |
| 29 _add_ext_dirs_to_path() | |
| 30 | |
| 31 # Enough of a hint for pylint / jedi (autocompletion) to find and follow the | |
| 32 # imports, but doesn't make python import them immediately at runtime. | |
| 33 # | |
| 34 # This list should always contain a complete list of all modules in ext. | |
| 35 if False: | |
| 36 import argcomplete | |
| 37 import dateutil | |
| 38 import httplib2 | |
| 39 import oauth2client | |
| 40 import pytz | |
| 41 import requests | |
| OLD | NEW |