diff options
author | Guido van Rossum <guido@python.org> | 2008-02-21 18:18:37 (GMT) |
---|---|---|
committer | Guido van Rossum <guido@python.org> | 2008-02-21 18:18:37 (GMT) |
commit | 8bc0965adfbe55926a475370c70a8366462daccc (patch) | |
tree | 243302c6d0cae2fd0328aab4841409d148a10e80 | |
parent | b5e2684a1a7091239109b9f91be6c36fc75fdccb (diff) | |
download | cpython-8bc0965adfbe55926a475370c70a8366462daccc.zip cpython-8bc0965adfbe55926a475370c70a8366462daccc.tar.gz cpython-8bc0965adfbe55926a475370c70a8366462daccc.tar.bz2 |
Removed uses of dict.has_key() from distutils, and uses of
callable() from copy_reg.py, so the interpreter now starts up
without warnings when '-3' is given. More work like this needs to
be done in the rest of the stdlib.
-rw-r--r-- | Lib/UserDict.py | 2 | ||||
-rw-r--r-- | Lib/copy_reg.py | 4 | ||||
-rw-r--r-- | Lib/distutils/archive_util.py | 2 | ||||
-rw-r--r-- | Lib/distutils/ccompiler.py | 2 | ||||
-rw-r--r-- | Lib/distutils/command/build_ext.py | 2 | ||||
-rw-r--r-- | Lib/distutils/command/install.py | 2 | ||||
-rw-r--r-- | Lib/distutils/command/register.py | 4 | ||||
-rw-r--r-- | Lib/distutils/command/upload.py | 2 | ||||
-rw-r--r-- | Lib/distutils/core.py | 6 | ||||
-rw-r--r-- | Lib/distutils/dir_util.py | 2 | ||||
-rw-r--r-- | Lib/distutils/dist.py | 8 | ||||
-rw-r--r-- | Lib/distutils/fancy_getopt.py | 8 | ||||
-rw-r--r-- | Lib/distutils/msvccompiler.py | 2 | ||||
-rw-r--r-- | Lib/distutils/sysconfig.py | 22 | ||||
-rw-r--r-- | Lib/distutils/text_file.py | 4 | ||||
-rw-r--r-- | Lib/distutils/util.py | 6 | ||||
-rw-r--r-- | Misc/NEWS | 5 |
17 files changed, 44 insertions, 39 deletions
diff --git a/Lib/UserDict.py b/Lib/UserDict.py index 5e97817..a786ae0 100644 --- a/Lib/UserDict.py +++ b/Lib/UserDict.py @@ -55,7 +55,7 @@ class UserDict: if len(kwargs): self.data.update(kwargs) def get(self, key, failobj=None): - if not self.has_key(key): + if key not in self: return failobj return self[key] def setdefault(self, key, failobj=None): diff --git a/Lib/copy_reg.py b/Lib/copy_reg.py index 0dd94cf..db17150 100644 --- a/Lib/copy_reg.py +++ b/Lib/copy_reg.py @@ -15,7 +15,7 @@ def pickle(ob_type, pickle_function, constructor_ob=None): if type(ob_type) is _ClassType: raise TypeError("copy_reg is not intended for use with classes") - if not callable(pickle_function): + if not hasattr(pickle_function, '__call__'): raise TypeError("reduction functions must be callable") dispatch_table[ob_type] = pickle_function @@ -25,7 +25,7 @@ def pickle(ob_type, pickle_function, constructor_ob=None): constructor(constructor_ob) def constructor(object): - if not callable(object): + if not hasattr(object, '__call__'): raise TypeError("constructors must be callable") # Example: provide pickling support for complex numbers. diff --git a/Lib/distutils/archive_util.py b/Lib/distutils/archive_util.py index 6aa5e63..a9c6a5b 100644 --- a/Lib/distutils/archive_util.py +++ b/Lib/distutils/archive_util.py @@ -124,7 +124,7 @@ ARCHIVE_FORMATS = { def check_archive_formats (formats): for format in formats: - if not ARCHIVE_FORMATS.has_key(format): + if format not in ARCHIVE_FORMATS: return format else: return None diff --git a/Lib/distutils/ccompiler.py b/Lib/distutils/ccompiler.py index 1349abe..0ed9a40 100644 --- a/Lib/distutils/ccompiler.py +++ b/Lib/distutils/ccompiler.py @@ -159,7 +159,7 @@ class CCompiler: # basically the same things with Unix C compilers. for key in args.keys(): - if not self.executables.has_key(key): + if key not in self.executables: raise ValueError, \ "unknown executable '%s' for class %s" % \ (key, self.__class__.__name__) diff --git a/Lib/distutils/command/build_ext.py b/Lib/distutils/command/build_ext.py index 29d5668..3042fe0 100644 --- a/Lib/distutils/command/build_ext.py +++ b/Lib/distutils/command/build_ext.py @@ -362,7 +362,7 @@ class build_ext (Command): # Medium-easy stuff: same syntax/semantics, different names. ext.runtime_library_dirs = build_info.get('rpath') - if build_info.has_key('def_file'): + if 'def_file' in build_info: log.warn("'def_file' element of build info dict " "no longer supported") diff --git a/Lib/distutils/command/install.py b/Lib/distutils/command/install.py index 453151d..c621210 100644 --- a/Lib/distutils/command/install.py +++ b/Lib/distutils/command/install.py @@ -352,7 +352,7 @@ class install (Command): opt_name = opt[0] if opt_name[-1] == "=": opt_name = opt_name[0:-1] - if self.negative_opt.has_key(opt_name): + if opt_name in self.negative_opt: opt_name = string.translate(self.negative_opt[opt_name], longopt_xlate) val = not getattr(self, opt_name) diff --git a/Lib/distutils/command/register.py b/Lib/distutils/command/register.py index 200e61e..d1a9100 100644 --- a/Lib/distutils/command/register.py +++ b/Lib/distutils/command/register.py @@ -120,7 +120,7 @@ class register(Command): # see if we can short-cut and get the username/password from the # config config = None - if os.environ.has_key('HOME'): + if 'HOME' in os.environ: rc = os.path.join(os.environ['HOME'], '.pypirc') if os.path.exists(rc): print 'Using PyPI login from %s'%rc @@ -163,7 +163,7 @@ Your selection [default 1]: ''', print 'Server response (%s): %s'%(code, result) # possibly save the login - if os.environ.has_key('HOME') and config is None and code == 200: + if 'HOME' in os.environ and config is None and code == 200: rc = os.path.join(os.environ['HOME'], '.pypirc') print 'I can store your PyPI login so future submissions will be faster.' print '(the login will be stored in %s)'%rc diff --git a/Lib/distutils/command/upload.py b/Lib/distutils/command/upload.py index 7461e5f..301a159 100644 --- a/Lib/distutils/command/upload.py +++ b/Lib/distutils/command/upload.py @@ -46,7 +46,7 @@ class upload(Command): raise DistutilsOptionError( "Must use --sign for --identity to have meaning" ) - if os.environ.has_key('HOME'): + if 'HOME' in os.environ: rc = os.path.join(os.environ['HOME'], '.pypirc') if os.path.exists(rc): self.announce('Using PyPI login from %s' % rc) diff --git a/Lib/distutils/core.py b/Lib/distutils/core.py index c9c6f03..c40dd0a 100644 --- a/Lib/distutils/core.py +++ b/Lib/distutils/core.py @@ -101,9 +101,9 @@ def setup (**attrs): else: klass = Distribution - if not attrs.has_key('script_name'): + if 'script_name' not in attrs: attrs['script_name'] = os.path.basename(sys.argv[0]) - if not attrs.has_key('script_args'): + if 'script_args' not in attrs: attrs['script_args'] = sys.argv[1:] # Create the Distribution instance, using the remaining arguments @@ -111,7 +111,7 @@ def setup (**attrs): try: _setup_distribution = dist = klass(attrs) except DistutilsSetupError, msg: - if attrs.has_key('name'): + if 'name' in attrs: raise SystemExit, "error in %s setup command: %s" % \ (attrs['name'], msg) else: diff --git a/Lib/distutils/dir_util.py b/Lib/distutils/dir_util.py index 43994db..77f2532 100644 --- a/Lib/distutils/dir_util.py +++ b/Lib/distutils/dir_util.py @@ -207,7 +207,7 @@ def remove_tree (directory, verbose=0, dry_run=0): apply(cmd[0], (cmd[1],)) # remove dir from cache if it's already there abspath = os.path.abspath(cmd[1]) - if _path_created.has_key(abspath): + if abspath in _path_created: del _path_created[abspath] except (IOError, OSError), exc: log.warn(grok_environment_error( diff --git a/Lib/distutils/dist.py b/Lib/distutils/dist.py index ff49886..d098cb9 100644 --- a/Lib/distutils/dist.py +++ b/Lib/distutils/dist.py @@ -239,7 +239,7 @@ Common commands: (see '--help-commands' for more) for (opt, val) in cmd_options.items(): opt_dict[opt] = ("setup script", val) - if attrs.has_key('licence'): + if 'licence' in attrs: attrs['license'] = attrs['licence'] del attrs['licence'] msg = "'licence' distribution option is deprecated; use 'license'" @@ -343,7 +343,7 @@ Common commands: (see '--help-commands' for more) user_filename = "pydistutils.cfg" # And look for the user config file - if os.environ.has_key('HOME'): + if 'HOME' in os.environ: user_file = os.path.join(os.environ.get('HOME'), user_filename) if os.path.isfile(user_file): files.append(user_file) @@ -388,7 +388,7 @@ Common commands: (see '--help-commands' for more) # If there was a "global" section in the config file, use it # to set Distribution options. - if self.command_options.has_key('global'): + if 'global' in self.command_options: for (opt, (src, val)) in self.command_options['global'].items(): alias = self.negative_opt.get(opt) try: @@ -907,7 +907,7 @@ Common commands: (see '--help-commands' for more) try: is_string = type(value) is StringType - if neg_opt.has_key(option) and is_string: + if option in neg_opt and is_string: setattr(command_obj, neg_opt[option], not strtobool(value)) elif option in bool_opts and is_string: setattr(command_obj, option, strtobool(value)) diff --git a/Lib/distutils/fancy_getopt.py b/Lib/distutils/fancy_getopt.py index 218ed73..31cf0c5 100644 --- a/Lib/distutils/fancy_getopt.py +++ b/Lib/distutils/fancy_getopt.py @@ -97,7 +97,7 @@ class FancyGetopt: self._build_index() def add_option (self, long_option, short_option=None, help_string=None): - if self.option_index.has_key(long_option): + if long_option in self.option_index: raise DistutilsGetoptError, \ "option conflict: already an option '%s'" % long_option else: @@ -109,7 +109,7 @@ class FancyGetopt: def has_option (self, long_option): """Return true if the option table for this parser has an option with long name 'long_option'.""" - return self.option_index.has_key(long_option) + return long_option in self.option_index def get_attr_name (self, long_option): """Translate long option name 'long_option' to the form it @@ -121,11 +121,11 @@ class FancyGetopt: def _check_alias_dict (self, aliases, what): assert type(aliases) is DictionaryType for (alias, opt) in aliases.items(): - if not self.option_index.has_key(alias): + if alias not in self.option_index: raise DistutilsGetoptError, \ ("invalid %s '%s': " "option '%s' not defined") % (what, alias, alias) - if not self.option_index.has_key(opt): + if opt not in self.option_index: raise DistutilsGetoptError, \ ("invalid %s '%s': " "aliased option '%s' not defined") % (what, alias, opt) diff --git a/Lib/distutils/msvccompiler.py b/Lib/distutils/msvccompiler.py index fa12346..f3acb53 100644 --- a/Lib/distutils/msvccompiler.py +++ b/Lib/distutils/msvccompiler.py @@ -252,7 +252,7 @@ class MSVCCompiler (CCompiler) : def initialize(self): self.__paths = [] - if os.environ.has_key("DISTUTILS_USE_SDK") and os.environ.has_key("MSSdk") and self.find_exe("cl.exe"): + if "DISTUTILS_USE_SDK" in os.environ and "MSSdk" in os.environ and self.find_exe("cl.exe"): # Assume that the SDK set up everything alright; don't try to be # smarter self.cc = "cl.exe" diff --git a/Lib/distutils/sysconfig.py b/Lib/distutils/sysconfig.py index 1aaaa28..506cf38 100644 --- a/Lib/distutils/sysconfig.py +++ b/Lib/distutils/sysconfig.py @@ -161,22 +161,22 @@ def customize_compiler(compiler): get_config_vars('CC', 'CXX', 'OPT', 'CFLAGS', 'CCSHARED', 'LDSHARED', 'SO') - if os.environ.has_key('CC'): + if 'CC' in os.environ: cc = os.environ['CC'] - if os.environ.has_key('CXX'): + if 'CXX' in os.environ: cxx = os.environ['CXX'] - if os.environ.has_key('LDSHARED'): + if 'LDSHARED' in os.environ: ldshared = os.environ['LDSHARED'] - if os.environ.has_key('CPP'): + if 'CPP' in os.environ: cpp = os.environ['CPP'] else: cpp = cc + " -E" # not always - if os.environ.has_key('LDFLAGS'): + if 'LDFLAGS' in os.environ: ldshared = ldshared + ' ' + os.environ['LDFLAGS'] - if os.environ.has_key('CFLAGS'): + if 'CFLAGS' in os.environ: cflags = opt + ' ' + os.environ['CFLAGS'] ldshared = ldshared + ' ' + os.environ['CFLAGS'] - if os.environ.has_key('CPPFLAGS'): + if 'CPPFLAGS' in os.environ: cpp = cpp + ' ' + os.environ['CPPFLAGS'] cflags = cflags + ' ' + os.environ['CPPFLAGS'] ldshared = ldshared + ' ' + os.environ['CPPFLAGS'] @@ -291,12 +291,12 @@ def parse_makefile(fn, g=None): if m: n = m.group(1) found = True - if done.has_key(n): + if n in done: item = str(done[n]) - elif notdone.has_key(n): + elif n in notdone: # get it on a subsequent round found = False - elif os.environ.has_key(n): + elif n in os.environ: # do it like make: fall back to environment item = os.environ[n] else: @@ -380,7 +380,7 @@ def _init_posix(): # MACOSX_DEPLOYMENT_TARGET: configure bases some choices on it so # it needs to be compatible. # If it isn't set we set it to the configure-time value - if sys.platform == 'darwin' and g.has_key('MACOSX_DEPLOYMENT_TARGET'): + if sys.platform == 'darwin' and 'MACOSX_DEPLOYMENT_TARGET' in g: cfg_target = g['MACOSX_DEPLOYMENT_TARGET'] cur_target = os.getenv('MACOSX_DEPLOYMENT_TARGET', '') if cur_target == '': diff --git a/Lib/distutils/text_file.py b/Lib/distutils/text_file.py index 67efd65..ff2878d 100644 --- a/Lib/distutils/text_file.py +++ b/Lib/distutils/text_file.py @@ -89,7 +89,7 @@ class TextFile: # set values for all options -- either from client option hash # or fallback to default_options for opt in self.default_options.keys(): - if options.has_key (opt): + if opt in options: setattr (self, opt, options[opt]) else: @@ -97,7 +97,7 @@ class TextFile: # sanity check client option hash for opt in options.keys(): - if not self.default_options.has_key (opt): + if opt not in self.default_options: raise KeyError, "invalid TextFile option '%s'" % opt if file is None: diff --git a/Lib/distutils/util.py b/Lib/distutils/util.py index 8979634..deb9a0a 100644 --- a/Lib/distutils/util.py +++ b/Lib/distutils/util.py @@ -219,11 +219,11 @@ def check_environ (): if _environ_checked: return - if os.name == 'posix' and not os.environ.has_key('HOME'): + if os.name == 'posix' and 'HOME' not in os.environ: import pwd os.environ['HOME'] = pwd.getpwuid(os.getuid())[5] - if not os.environ.has_key('PLAT'): + if 'PLAT' not in os.environ: os.environ['PLAT'] = get_platform() _environ_checked = 1 @@ -241,7 +241,7 @@ def subst_vars (s, local_vars): check_environ() def _subst (match, local_vars=local_vars): var_name = match.group(1) - if local_vars.has_key(var_name): + if var_name in local_vars: return str(local_vars[var_name]) else: return os.environ[var_name] @@ -423,6 +423,11 @@ Core and builtins Library ------- +- Removed uses of dict.has_key() from distutils, and uses of + callable() from copy_reg.py, so the interpreter now starts up + without warnings when '-3' is given. More work like this needs to + be done in the rest of the stdlib. + - Issue #1916. Added isgenerator() and isgeneratorfunction() to inspect.py. - #1224: Fixed bad url parsing when path begins with double slash. |