Skip to content

bpo-44712: Replace "type(literal)" with corresponding builtin types #27294

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 7 commits into from
May 8, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Lib/cgitb.py
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ def lookup(name, frame, locals):
return 'global', frame.f_globals[name]
if '__builtins__' in frame.f_globals:
builtins = frame.f_globals['__builtins__']
if type(builtins) is type({}):
if isinstance(builtins, dict):
if name in builtins:
return 'builtin', builtins[name]
else:
Expand Down
2 changes: 1 addition & 1 deletion Lib/csv.py
Original file line number Diff line number Diff line change
Expand Up @@ -428,7 +428,7 @@ def has_header(self, sample):
# on whether it's a header
hasHeader = 0
for col, colType in columnTypes.items():
if type(colType) == type(0): # it's a length
if isinstance(colType, int): # it's a length
if len(header[col]) != colType:
hasHeader += 1
else:
Expand Down
8 changes: 4 additions & 4 deletions Lib/curses/ascii.py
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@
]

def _ctoi(c):
if type(c) == type(""):
if isinstance(c, str):
return ord(c)
else:
return c
Expand All @@ -69,19 +69,19 @@ def isctrl(c): return 0 <= _ctoi(c) < 32
def ismeta(c): return _ctoi(c) > 127

def ascii(c):
if type(c) == type(""):
if isinstance(c, str):
return chr(_ctoi(c) & 0x7f)
else:
return _ctoi(c) & 0x7f

def ctrl(c):
if type(c) == type(""):
if isinstance(c, str):
return chr(_ctoi(c) & 0x1f)
else:
return _ctoi(c) & 0x1f

def alt(c):
if type(c) == type(""):
if isinstance(c, str):
return chr(_ctoi(c) | 0x80)
else:
return _ctoi(c) | 0x80
Expand Down
2 changes: 1 addition & 1 deletion Lib/distutils/command/register.py
Original file line number Diff line number Diff line change
Expand Up @@ -260,7 +260,7 @@ def post_to_server(self, data, auth=None):
body = io.StringIO()
for key, value in data.items():
# handle multiple entries for the same name
if type(value) not in (type([]), type( () )):
if not isinstance(value, (list, tuple)):
value = [value]
for value in value:
value = str(value)
Expand Down
2 changes: 1 addition & 1 deletion Lib/ftplib.py
Original file line number Diff line number Diff line change
Expand Up @@ -561,7 +561,7 @@ def dir(self, *args):
LIST command. (This *should* only be used for a pathname.)'''
cmd = 'LIST'
func = None
if args[-1:] and type(args[-1]) != type(''):
if args[-1:] and not isinstance(args[-1], str):
args, func = args[:-1], args[-1]
for arg in args:
if arg:
Expand Down
2 changes: 1 addition & 1 deletion Lib/getopt.py
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ def getopt(args, shortopts, longopts = []):
"""

opts = []
if type(longopts) == type(""):
if isinstance(longopts, str):
longopts = [longopts]
else:
longopts = list(longopts)
Expand Down
2 changes: 1 addition & 1 deletion Lib/idlelib/browser.py
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ def transform_children(child_dict, modname=None):
# If obj.name != key, it has already been suffixed.
supers = []
for sup in obj.super:
if type(sup) is type(''):
if isinstance(sup, str):
sname = sup
else:
sname = sup.name
Expand Down
2 changes: 1 addition & 1 deletion Lib/lib2to3/pgen2/token.py
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@

tok_name = {}
for _name, _value in list(globals().items()):
if type(_value) is type(0):
if isinstance(_value, int):
tok_name[_value] = _name


Expand Down
6 changes: 3 additions & 3 deletions Lib/plistlib.py
Original file line number Diff line number Diff line change
Expand Up @@ -199,7 +199,7 @@ def handle_data(self, data):

def add_object(self, value):
if self.current_key is not None:
if not isinstance(self.stack[-1], type({})):
if not isinstance(self.stack[-1], dict):
raise ValueError("unexpected element at line %d" %
self.parser.CurrentLineNumber)
self.stack[-1][self.current_key] = value
Expand All @@ -208,7 +208,7 @@ def add_object(self, value):
# this is the root object
self.root = value
else:
if not isinstance(self.stack[-1], type([])):
if not isinstance(self.stack[-1], list):
raise ValueError("unexpected element at line %d" %
self.parser.CurrentLineNumber)
self.stack[-1].append(value)
Expand All @@ -232,7 +232,7 @@ def end_dict(self):
self.stack.pop()

def end_key(self):
if self.current_key or not isinstance(self.stack[-1], type({})):
if self.current_key or not isinstance(self.stack[-1], dict):
raise ValueError("unexpected key at line %d" %
self.parser.CurrentLineNumber)
self.current_key = self.get_data()
Expand Down
2 changes: 1 addition & 1 deletion Lib/pty.py
Original file line number Diff line number Diff line change
Expand Up @@ -162,7 +162,7 @@ def _copy(master_fd, master_read=_read, stdin_read=_read):

def spawn(argv, master_read=_read, stdin_read=_read):
"""Create a spawned process."""
if type(argv) == type(''):
if isinstance(argv, str):
argv = (argv,)
sys.audit('pty.spawn', argv)

Expand Down
12 changes: 6 additions & 6 deletions Lib/pydoc.py
Original file line number Diff line number Diff line change
Expand Up @@ -727,7 +727,7 @@ def formattree(self, tree, modname, parent=None):
"""Produce HTML for a class tree as given by inspect.getclasstree()."""
result = ''
for entry in tree:
if type(entry) is type(()):
if isinstance(entry, tuple):
c, bases = entry
result = result + '<dt class="heading-text">'
result = result + self.classlink(c, modname)
Expand All @@ -737,7 +737,7 @@ def formattree(self, tree, modname, parent=None):
parents.append(self.classlink(base, modname))
result = result + '(' + ', '.join(parents) + ')'
result = result + '\n</dt>'
elif type(entry) is type([]):
elif isinstance(entry, list):
result = result + '<dd>\n%s</dd>\n' % self.formattree(
entry, modname, c)
return '<dl>\n%s</dl>\n' % result
Expand Down Expand Up @@ -1190,14 +1190,14 @@ def formattree(self, tree, modname, parent=None, prefix=''):
"""Render in text a class tree as returned by inspect.getclasstree()."""
result = ''
for entry in tree:
if type(entry) is type(()):
if isinstance(entry, tuple):
c, bases = entry
result = result + prefix + classname(c, modname)
if bases and bases != (parent,):
parents = (classname(c, modname) for c in bases)
result = result + '(%s)' % ', '.join(parents)
result = result + '\n'
elif type(entry) is type([]):
elif isinstance(entry, list):
result = result + self.formattree(
entry, modname, c, prefix + ' ')
return result
Expand Down Expand Up @@ -2044,7 +2044,7 @@ def getline(self, prompt):
return self.input.readline()

def help(self, request):
if type(request) is type(''):
if isinstance(request, str):
request = request.strip()
if request == 'keywords': self.listkeywords()
elif request == 'symbols': self.listsymbols()
Expand Down Expand Up @@ -2129,7 +2129,7 @@ def showtopic(self, topic, more_xrefs=''):
if not target:
self.output.write('no documentation found for %s\n' % repr(topic))
return
if type(target) is type(''):
if isinstance(target, str):
return self.showtopic(target, more_xrefs)

label, xrefs = target
Expand Down
4 changes: 2 additions & 2 deletions Lib/sunau.py
Original file line number Diff line number Diff line change
Expand Up @@ -160,7 +160,7 @@ def _write_u32(file, x):
class Au_read:

def __init__(self, f):
if type(f) == type(''):
if isinstance(f, str):
import builtins
f = builtins.open(f, 'rb')
self._opened = True
Expand Down Expand Up @@ -312,7 +312,7 @@ def close(self):
class Au_write:

def __init__(self, f):
if type(f) == type(''):
if isinstance(f, str):
import builtins
f = builtins.open(f, 'wb')
self._opened = True
Expand Down
10 changes: 6 additions & 4 deletions Lib/test/test_copyreg.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,9 @@
class C:
pass

def pickle_C(c):
return C, ()


class WithoutSlots(object):
pass
Expand All @@ -32,16 +35,15 @@ class WithInherited(WithSingleString):
class CopyRegTestCase(unittest.TestCase):

def test_class(self):
self.assertRaises(TypeError, copyreg.pickle,
C, None, None)
copyreg.pickle(C, pickle_C)

def test_noncallable_reduce(self):
self.assertRaises(TypeError, copyreg.pickle,
type(1), "not a callable")
C, "not a callable")

def test_noncallable_constructor(self):
self.assertRaises(TypeError, copyreg.pickle,
type(1), int, "not a callable")
C, pickle_C, "not a callable")

def test_bool(self):
import copy
Expand Down
6 changes: 3 additions & 3 deletions Lib/test/test_descr.py
Original file line number Diff line number Diff line change
Expand Up @@ -426,7 +426,7 @@ def __init__(self_local, *a, **kw):
def __getitem__(self, key):
return self.get(key, 0)
def __setitem__(self_local, key, value):
self.assertIsInstance(key, type(0))
self.assertIsInstance(key, int)
dict.__setitem__(self_local, key, value)
def setstate(self, state):
self.state = state
Expand Down Expand Up @@ -871,7 +871,7 @@ def setstate(self, state):
self.assertEqual(a.getstate(), 10)
class D(dict, C):
def __init__(self):
type({}).__init__(self)
dict.__init__(self)
C.__init__(self)
d = D()
self.assertEqual(list(d.keys()), [])
Expand Down Expand Up @@ -3288,7 +3288,7 @@ class Int(int): __slots__ = []
cant(True, int)
cant(2, bool)
o = object()
cant(o, type(1))
cant(o, int)
cant(o, type(None))
del o
class G(object):
Expand Down
2 changes: 1 addition & 1 deletion Lib/test/test_pprint.py
Original file line number Diff line number Diff line change
Expand Up @@ -203,7 +203,7 @@ def test_knotted(self):
def test_unreadable(self):
# Not recursive but not readable anyway
pp = pprint.PrettyPrinter()
for unreadable in type(3), pprint, pprint.isrecursive:
for unreadable in object(), int, pprint, pprint.isrecursive:
# module-level convenience functions
self.assertFalse(pprint.isrecursive(unreadable),
"expected not isrecursive for %r" % (unreadable,))
Expand Down
4 changes: 2 additions & 2 deletions Lib/test/test_timeout.py
Original file line number Diff line number Diff line change
Expand Up @@ -50,10 +50,10 @@ def testFloatReturnValue(self):
def testReturnType(self):
# Test return type of gettimeout()
self.sock.settimeout(1)
self.assertEqual(type(self.sock.gettimeout()), type(1.0))
self.assertIs(type(self.sock.gettimeout()), float)

self.sock.settimeout(3.9)
self.assertEqual(type(self.sock.gettimeout()), type(1.0))
self.assertIs(type(self.sock.gettimeout()), float)

def testTypeCheck(self):
# Test type checking by settimeout()
Expand Down
4 changes: 2 additions & 2 deletions Lib/xmlrpc/client.py
Original file line number Diff line number Diff line change
Expand Up @@ -850,9 +850,9 @@ def __init__(self, results):

def __getitem__(self, i):
item = self.results[i]
if type(item) == type({}):
if isinstance(item, dict):
raise Fault(item['faultCode'], item['faultString'])
elif type(item) == type([]):
elif isinstance(item, list):
return item[0]
else:
raise ValueError("unexpected type in multicall result")
Expand Down
2 changes: 1 addition & 1 deletion Mac/BuildScript/build-installer.py
Original file line number Diff line number Diff line change
Expand Up @@ -1351,7 +1351,7 @@ def buildPython():
build_time_vars = l_dict['build_time_vars']
vars = {}
for k, v in build_time_vars.items():
if type(v) == type(''):
if isinstance(v, str):
for p in (include_path, lib_path):
v = v.replace(' ' + p, '')
v = v.replace(p + ' ', '')
Expand Down
6 changes: 3 additions & 3 deletions Tools/scripts/mailerdaemon.py
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ def get_errors(self):
# compile the re's in the list and store them in-place.
for i in range(len(emparse_list_list)):
x = emparse_list_list[i]
if type(x) is type(''):
if isinstance(x, str):
x = re.compile(x, re.MULTILINE)
else:
xl = []
Expand Down Expand Up @@ -105,7 +105,7 @@ def emparse_list(fp, sub):
emails = []
reason = None
for regexp in emparse_list_list:
if type(regexp) is type(()):
if isinstance(regexp, tuple):
res = regexp[0].search(data, 0, from_index)
if res is not None:
try:
Expand Down Expand Up @@ -134,7 +134,7 @@ def emparse_list(fp, sub):
if reason[:15] == 'returned mail: ':
reason = reason[15:]
for regexp in emparse_list_reason:
if type(regexp) is type(''):
if isinstance(regexp, str):
for i in range(len(emails)-1,-1,-1):
email = emails[i]
exp = re.compile(re.escape(email).join(regexp.split('<>')), re.MULTILINE)
Expand Down