summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGuido van Rossum <guido@python.org>2008-02-21 18:18:37 (GMT)
committerGuido van Rossum <guido@python.org>2008-02-21 18:18:37 (GMT)
commit8bc0965adfbe55926a475370c70a8366462daccc (patch)
tree243302c6d0cae2fd0328aab4841409d148a10e80
parentb5e2684a1a7091239109b9f91be6c36fc75fdccb (diff)
downloadcpython-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.py2
-rw-r--r--Lib/copy_reg.py4
-rw-r--r--Lib/distutils/archive_util.py2
-rw-r--r--Lib/distutils/ccompiler.py2
-rw-r--r--Lib/distutils/command/build_ext.py2
-rw-r--r--Lib/distutils/command/install.py2
-rw-r--r--Lib/distutils/command/register.py4
-rw-r--r--Lib/distutils/command/upload.py2
-rw-r--r--Lib/distutils/core.py6
-rw-r--r--Lib/distutils/dir_util.py2
-rw-r--r--Lib/distutils/dist.py8
-rw-r--r--Lib/distutils/fancy_getopt.py8
-rw-r--r--Lib/distutils/msvccompiler.py2
-rw-r--r--Lib/distutils/sysconfig.py22
-rw-r--r--Lib/distutils/text_file.py4
-rw-r--r--Lib/distutils/util.py6
-rw-r--r--Misc/NEWS5
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]
diff --git a/Misc/NEWS b/Misc/NEWS
index 970e230..ca4a415 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -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.