Index: third_party/google-endpoints/setuptools/py36compat.py |
diff --git a/third_party/google-endpoints/setuptools/py36compat.py b/third_party/google-endpoints/setuptools/py36compat.py |
new file mode 100644 |
index 0000000000000000000000000000000000000000..f5279696457b690024f9bd0456293f027056bcf1 |
--- /dev/null |
+++ b/third_party/google-endpoints/setuptools/py36compat.py |
@@ -0,0 +1,82 @@ |
+import sys |
+from distutils.errors import DistutilsOptionError |
+from distutils.util import strtobool |
+from distutils.debug import DEBUG |
+ |
+ |
+class Distribution_parse_config_files: |
+ """ |
+ Mix-in providing forward-compatibility for functionality to be |
+ included by default on Python 3.7. |
+ |
+ Do not edit the code in this class except to update functionality |
+ as implemented in distutils. |
+ """ |
+ def parse_config_files(self, filenames=None): |
+ from configparser import ConfigParser |
+ |
+ # Ignore install directory options if we have a venv |
+ if sys.prefix != sys.base_prefix: |
+ ignore_options = [ |
+ 'install-base', 'install-platbase', 'install-lib', |
+ 'install-platlib', 'install-purelib', 'install-headers', |
+ 'install-scripts', 'install-data', 'prefix', 'exec-prefix', |
+ 'home', 'user', 'root'] |
+ else: |
+ ignore_options = [] |
+ |
+ ignore_options = frozenset(ignore_options) |
+ |
+ if filenames is None: |
+ filenames = self.find_config_files() |
+ |
+ if DEBUG: |
+ self.announce("Distribution.parse_config_files():") |
+ |
+ parser = ConfigParser(interpolation=None) |
+ for filename in filenames: |
+ if DEBUG: |
+ self.announce(" reading %s" % filename) |
+ parser.read(filename) |
+ for section in parser.sections(): |
+ options = parser.options(section) |
+ opt_dict = self.get_option_dict(section) |
+ |
+ for opt in options: |
+ if opt != '__name__' and opt not in ignore_options: |
+ val = parser.get(section,opt) |
+ opt = opt.replace('-', '_') |
+ opt_dict[opt] = (filename, val) |
+ |
+ # Make the ConfigParser forget everything (so we retain |
+ # the original filenames that options come from) |
+ parser.__init__() |
+ |
+ # If there was a "global" section in the config file, use it |
+ # to set Distribution options. |
+ |
+ if 'global' in self.command_options: |
+ for (opt, (src, val)) in self.command_options['global'].items(): |
+ alias = self.negative_opt.get(opt) |
+ try: |
+ if alias: |
+ setattr(self, alias, not strtobool(val)) |
+ elif opt in ('verbose', 'dry_run'): # ugh! |
+ setattr(self, opt, strtobool(val)) |
+ else: |
+ setattr(self, opt, val) |
+ except ValueError as msg: |
+ raise DistutilsOptionError(msg) |
+ |
+ |
+if sys.version_info < (3,): |
+ # Python 2 behavior is sufficient |
+ class Distribution_parse_config_files: |
+ pass |
+ |
+ |
+if False: |
+ # When updated behavior is available upstream, |
+ # disable override here. |
+ class Distribution_parse_config_files: |
+ pass |