Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
C
cpython
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
cpython
Commits
994f04db
Commit
994f04db
authored
Dec 27, 2016
by
Serhiy Storchaka
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Issue #28998: More APIs now support longs as well as ints.
parent
58c2c6eb
Changes
23
Hide whitespace changes
Inline
Side-by-side
Showing
23 changed files
with
70 additions
and
44 deletions
+70
-44
Lib/asynchat.py
Lib/asynchat.py
+1
-1
Lib/compiler/pyassem.py
Lib/compiler/pyassem.py
+1
-1
Lib/compiler/transformer.py
Lib/compiler/transformer.py
+1
-1
Lib/idlelib/PyShell.py
Lib/idlelib/PyShell.py
+2
-2
Lib/imaplib.py
Lib/imaplib.py
+1
-1
Lib/lib-tk/Tkinter.py
Lib/lib-tk/Tkinter.py
+2
-2
Lib/lib-tk/turtle.py
Lib/lib-tk/turtle.py
+2
-2
Lib/lib2to3/pgen2/pgen.py
Lib/lib2to3/pgen2/pgen.py
+1
-1
Lib/logging/__init__.py
Lib/logging/__init__.py
+1
-1
Lib/multiprocessing/pool.py
Lib/multiprocessing/pool.py
+1
-1
Lib/multiprocessing/process.py
Lib/multiprocessing/process.py
+3
-3
Lib/multiprocessing/util.py
Lib/multiprocessing/util.py
+1
-1
Lib/pickletools.py
Lib/pickletools.py
+2
-2
Lib/subprocess.py
Lib/subprocess.py
+6
-6
Lib/unittest/signals.py
Lib/unittest/signals.py
+1
-1
Lib/warnings.py
Lib/warnings.py
+4
-4
Misc/NEWS
Misc/NEWS
+2
-0
Modules/_csv.c
Modules/_csv.c
+12
-5
Modules/_cursesmodule.c
Modules/_cursesmodule.c
+11
-3
Modules/dlmodule.c
Modules/dlmodule.c
+4
-1
Modules/svmodule.c
Modules/svmodule.c
+2
-2
Modules/termios.c
Modules/termios.c
+4
-1
Objects/intobject.c
Objects/intobject.c
+5
-2
No files found.
Lib/asynchat.py
View file @
994f04db
...
...
@@ -133,7 +133,7 @@ class async_chat (asyncore.dispatcher):
# no terminator, collect it all
self
.
collect_incoming_data
(
self
.
ac_in_buffer
)
self
.
ac_in_buffer
=
''
elif
isinstance
(
terminator
,
int
)
or
isinstance
(
terminator
,
long
):
elif
isinstance
(
terminator
,
(
int
,
long
)
):
# numeric terminator
n
=
terminator
if
lb
<
n
:
...
...
Lib/compiler/pyassem.py
View file @
994f04db
...
...
@@ -581,7 +581,7 @@ def getArgCount(args):
def
twobyte
(
val
):
"""Convert an int argument into high and low bytes"""
assert
isinstance
(
val
,
int
)
assert
isinstance
(
val
,
(
int
,
long
)
)
return
divmod
(
val
,
256
)
class
LineAddrTable
:
...
...
Lib/compiler/transformer.py
View file @
994f04db
...
...
@@ -1526,7 +1526,7 @@ for k, v in token.tok_name.items():
def
debug_tree
(
tree
):
l
=
[]
for
elt
in
tree
:
if
isinstance
(
elt
,
int
):
if
isinstance
(
elt
,
(
int
,
long
)
):
l
.
append
(
_names
.
get
(
elt
,
elt
))
elif
isinstance
(
elt
,
str
):
l
.
append
(
elt
)
...
...
Lib/idlelib/PyShell.py
View file @
994f04db
...
...
@@ -1370,7 +1370,7 @@ class PseudoInputFile(PseudoFile):
raise
ValueError
(
"read from closed file"
)
if
size
is
None
:
size
=
-
1
elif
not
isinstance
(
size
,
int
):
elif
not
isinstance
(
size
,
(
int
,
long
)
):
raise
TypeError
(
'must be int, not '
+
type
(
size
).
__name__
)
result
=
self
.
_line_buffer
self
.
_line_buffer
=
''
...
...
@@ -1393,7 +1393,7 @@ class PseudoInputFile(PseudoFile):
raise
ValueError
(
"read from closed file"
)
if
size
is
None
:
size
=
-
1
elif
not
isinstance
(
size
,
int
):
elif
not
isinstance
(
size
,
(
int
,
long
)
):
raise
TypeError
(
'must be int, not '
+
type
(
size
).
__name__
)
line
=
self
.
_line_buffer
or
self
.
shell
.
readline
()
if
size
<
0
:
...
...
Lib/imaplib.py
View file @
994f04db
...
...
@@ -1409,7 +1409,7 @@ def Time2Internaldate(date_time):
be in the correct format.
"""
if
isinstance
(
date_time
,
(
int
,
float
)):
if
isinstance
(
date_time
,
(
int
,
long
,
float
)):
tt
=
time
.
localtime
(
date_time
)
elif
isinstance
(
date_time
,
(
tuple
,
time
.
struct_time
)):
tt
=
date_time
...
...
Lib/lib-tk/Tkinter.py
View file @
994f04db
...
...
@@ -1174,9 +1174,9 @@ class Misc:
elif isinstance(v, (tuple, list)):
nv = []
for item in v:
if not isinstance(item, (basestring, int)):
if not isinstance(item, (basestring, int
, long
)):
break
elif isinstance(item,
int
):
elif isinstance(item,
(int, long)
):
nv.append('%d' % item)
else:
# format it to proper Tcl code if it contains space
...
...
Lib/lib-tk/turtle.py
View file @
994f04db
...
...
@@ -276,7 +276,7 @@ class Vec2D(tuple):
return
self
[
0
]
*
other
[
0
]
+
self
[
1
]
*
other
[
1
]
return
Vec2D
(
self
[
0
]
*
other
,
self
[
1
]
*
other
)
def
__rmul__
(
self
,
other
):
if
isinstance
(
other
,
int
)
or
isinstance
(
other
,
float
):
if
isinstance
(
other
,
(
int
,
long
,
float
)
):
return
Vec2D
(
self
[
0
]
*
other
,
self
[
1
]
*
other
)
def
__sub__
(
self
,
other
):
return
Vec2D
(
self
[
0
]
-
other
[
0
],
self
[
1
]
-
other
[
1
])
...
...
@@ -2352,7 +2352,7 @@ class TPen(object):
self
.
_resizemode
=
p
[
"resizemode"
]
if
"stretchfactor"
in
p
:
sf
=
p
[
"stretchfactor"
]
if
isinstance
(
sf
,
(
int
,
float
)):
if
isinstance
(
sf
,
(
int
,
long
,
float
)):
sf
=
(
sf
,
sf
)
self
.
_stretchfactor
=
sf
if
"outline"
in
p
:
...
...
Lib/lib2to3/pgen2/pgen.py
View file @
994f04db
...
...
@@ -74,7 +74,7 @@ class ParserGenerator(object):
else
:
# A named token (NAME, NUMBER, STRING)
itoken
=
getattr
(
token
,
label
,
None
)
assert
isinstance
(
itoken
,
int
),
label
assert
isinstance
(
itoken
,
(
int
,
long
)
),
label
assert
itoken
in
token
.
tok_name
,
label
if
itoken
in
c
.
tokens
:
return
c
.
tokens
[
itoken
]
...
...
Lib/logging/__init__.py
View file @
994f04db
...
...
@@ -1222,7 +1222,7 @@ class Logger(Filterer):
logger.log(level, "We have a %s", "mysterious problem", exc_info=1)
"""
if
not
isinstance
(
level
,
int
):
if
not
isinstance
(
level
,
(
int
,
long
)
):
if
raiseExceptions
:
raise
TypeError
(
"level must be an integer"
)
else
:
...
...
Lib/multiprocessing/pool.py
View file @
994f04db
...
...
@@ -86,7 +86,7 @@ class MaybeEncodingError(Exception):
def
worker
(
inqueue
,
outqueue
,
initializer
=
None
,
initargs
=
(),
maxtasks
=
None
):
assert
maxtasks
is
None
or
(
type
(
maxtasks
)
==
int
and
maxtasks
>
0
)
assert
maxtasks
is
None
or
(
type
(
maxtasks
)
in
(
int
,
long
)
and
maxtasks
>
0
)
put
=
outqueue
.
put
get
=
inqueue
.
get
if
hasattr
(
inqueue
,
'_writer'
):
...
...
Lib/multiprocessing/process.py
View file @
994f04db
...
...
@@ -227,7 +227,7 @@ class Process(object):
else
:
status
=
'started'
if
type
(
status
)
i
s
int
:
if
type
(
status
)
i
n
(
int
,
long
)
:
if
status
==
0
:
status
=
'stopped'
else
:
...
...
@@ -262,8 +262,8 @@ class Process(object):
except
SystemExit
,
e
:
if
not
e
.
args
:
exitcode
=
1
elif
isinstance
(
e
.
args
[
0
],
int
):
exitcode
=
e
.
args
[
0
]
elif
isinstance
(
e
.
args
[
0
],
(
int
,
long
)
):
exitcode
=
int
(
e
.
args
[
0
])
else
:
sys
.
stderr
.
write
(
str
(
e
.
args
[
0
])
+
'
\
n
'
)
sys
.
stderr
.
flush
()
...
...
Lib/multiprocessing/util.py
View file @
994f04db
...
...
@@ -174,7 +174,7 @@ class Finalize(object):
Class which supports object finalization using weakrefs
'''
def
__init__
(
self
,
obj
,
callback
,
args
=
(),
kwargs
=
None
,
exitpriority
=
None
):
assert
exitpriority
is
None
or
type
(
exitpriority
)
i
s
int
assert
exitpriority
is
None
or
type
(
exitpriority
)
i
n
(
int
,
long
)
if
obj
is
not
None
:
self
.
_weakref
=
weakref
.
ref
(
obj
,
self
)
...
...
Lib/pickletools.py
View file @
994f04db
...
...
@@ -185,7 +185,7 @@ class ArgumentDescriptor(object):
assert
isinstance
(
name
,
str
)
self
.
name
=
name
assert
isinstance
(
n
,
int
)
and
(
n
>=
0
or
assert
isinstance
(
n
,
(
int
,
long
)
)
and
(
n
>=
0
or
n
in
(
UP_TO_NEWLINE
,
TAKEN_FROM_ARGUMENT1
,
TAKEN_FROM_ARGUMENT4
))
...
...
@@ -873,7 +873,7 @@ class OpcodeInfo(object):
assert
isinstance
(
x
,
StackObject
)
self
.
stack_after
=
stack_after
assert
isinstance
(
proto
,
int
)
and
0
<=
proto
<=
2
assert
isinstance
(
proto
,
(
int
,
long
)
)
and
0
<=
proto
<=
2
self
.
proto
=
proto
assert
isinstance
(
doc
,
str
)
...
...
Lib/subprocess.py
View file @
994f04db
...
...
@@ -507,7 +507,7 @@ class Popen(object):
p2cread
,
_
=
_subprocess
.
CreatePipe
(
None
,
0
)
elif
stdin
==
PIPE
:
p2cread
,
p2cwrite
=
_subprocess
.
CreatePipe
(
None
,
0
)
elif
isinstance
(
stdin
,
int
):
elif
isinstance
(
stdin
,
(
int
,
long
)
):
p2cread
=
msvcrt
.
get_osfhandle
(
stdin
)
else
:
# Assuming file-like object
...
...
@@ -524,7 +524,7 @@ class Popen(object):
_
,
c2pwrite
=
_subprocess
.
CreatePipe
(
None
,
0
)
elif
stdout
==
PIPE
:
c2pread
,
c2pwrite
=
_subprocess
.
CreatePipe
(
None
,
0
)
elif
isinstance
(
stdout
,
int
):
elif
isinstance
(
stdout
,
(
int
,
long
)
):
c2pwrite
=
msvcrt
.
get_osfhandle
(
stdout
)
else
:
# Assuming file-like object
...
...
@@ -543,7 +543,7 @@ class Popen(object):
errread
,
errwrite
=
_subprocess
.
CreatePipe
(
None
,
0
)
elif
stderr
==
STDOUT
:
errwrite
=
c2pwrite
elif
isinstance
(
stderr
,
int
):
elif
isinstance
(
stderr
,
(
int
,
long
)
):
errwrite
=
msvcrt
.
get_osfhandle
(
stderr
)
else
:
# Assuming file-like object
...
...
@@ -800,7 +800,7 @@ class Popen(object):
elif
stdin
==
PIPE
:
p2cread
,
p2cwrite
=
self
.
pipe_cloexec
()
to_close
.
update
((
p2cread
,
p2cwrite
))
elif
isinstance
(
stdin
,
int
):
elif
isinstance
(
stdin
,
(
int
,
long
)
):
p2cread
=
stdin
else
:
# Assuming file-like object
...
...
@@ -811,7 +811,7 @@ class Popen(object):
elif
stdout
==
PIPE
:
c2pread
,
c2pwrite
=
self
.
pipe_cloexec
()
to_close
.
update
((
c2pread
,
c2pwrite
))
elif
isinstance
(
stdout
,
int
):
elif
isinstance
(
stdout
,
(
int
,
long
)
):
c2pwrite
=
stdout
else
:
# Assuming file-like object
...
...
@@ -827,7 +827,7 @@ class Popen(object):
errwrite
=
c2pwrite
else
:
# child's stdout is not set, use parent's stdout
errwrite
=
sys
.
__stdout__
.
fileno
()
elif
isinstance
(
stderr
,
int
):
elif
isinstance
(
stderr
,
(
int
,
long
)
):
errwrite
=
stderr
else
:
# Assuming file-like object
...
...
Lib/unittest/signals.py
View file @
994f04db
...
...
@@ -10,7 +10,7 @@ class _InterruptHandler(object):
def
__init__
(
self
,
default_handler
):
self
.
called
=
False
self
.
original_handler
=
default_handler
if
isinstance
(
default_handler
,
int
):
if
isinstance
(
default_handler
,
(
int
,
long
)
):
if
default_handler
==
signal
.
SIG_DFL
:
# Pretend it's signal.default_int_handler instead.
default_handler
=
signal
.
default_int_handler
...
...
Lib/warnings.py
View file @
994f04db
...
...
@@ -84,10 +84,10 @@ def filterwarnings(action, message="", category=Warning, module="", lineno=0,
"category must be a class"
assert
issubclass
(
category
,
Warning
),
"category must be a Warning subclass"
assert
isinstance
(
module
,
basestring
),
"module must be a string"
assert
isinstance
(
lineno
,
int
)
and
lineno
>=
0
,
\
assert
isinstance
(
lineno
,
(
int
,
long
)
)
and
lineno
>=
0
,
\
"lineno must be an int >= 0"
item
=
(
action
,
re
.
compile
(
message
,
re
.
I
),
category
,
re
.
compile
(
module
),
lineno
)
re
.
compile
(
module
),
int
(
lineno
)
)
if
append
:
filters
.
append
(
item
)
else
:
...
...
@@ -105,9 +105,9 @@ def simplefilter(action, category=Warning, lineno=0, append=0):
"""
assert
action
in
(
"error"
,
"ignore"
,
"always"
,
"default"
,
"module"
,
"once"
),
"invalid action: %r"
%
(
action
,)
assert
isinstance
(
lineno
,
int
)
and
lineno
>=
0
,
\
assert
isinstance
(
lineno
,
(
int
,
long
)
)
and
lineno
>=
0
,
\
"lineno must be an int >= 0"
item
=
(
action
,
None
,
category
,
None
,
lineno
)
item
=
(
action
,
None
,
category
,
None
,
int
(
lineno
)
)
if
append
:
filters
.
append
(
item
)
else
:
...
...
Misc/NEWS
View file @
994f04db
...
...
@@ -15,6 +15,8 @@ Core and Builtins
Library
-------
- Issue #28998: More APIs now support longs as well as ints.
- Issue 28923: Remove editor artifacts from Tix.py,
including encoding not recognized by codecs.lookup.
...
...
Modules/_csv.c
View file @
994f04db
...
...
@@ -220,15 +220,19 @@ _set_bool(const char *name, int *target, PyObject *src, int dflt)
static
int
_set_int
(
const
char
*
name
,
int
*
target
,
PyObject
*
src
,
int
dflt
)
{
int
value
;
if
(
src
==
NULL
)
*
target
=
dflt
;
else
{
if
(
!
PyInt_Check
(
src
))
{
if
(
!
PyInt_Check
(
src
)
&&
!
PyLong_Check
(
src
)
)
{
PyErr_Format
(
PyExc_TypeError
,
"
\"
%s
\"
must be an integer"
,
name
);
return
-
1
;
}
*
target
=
PyInt_AsLong
(
src
);
value
=
PyInt_AsLong
(
src
);
if
(
value
==
-
1
&&
PyErr_Occurred
())
return
-
1
;
*
target
=
value
;
}
return
0
;
}
...
...
@@ -1443,17 +1447,20 @@ static PyObject *
csv_field_size_limit
(
PyObject
*
module
,
PyObject
*
args
)
{
PyObject
*
new_limit
=
NULL
;
long
old_limit
=
field_limit
;
long
old_limit
=
field_limit
,
limit
;
if
(
!
PyArg_UnpackTuple
(
args
,
"field_size_limit"
,
0
,
1
,
&
new_limit
))
return
NULL
;
if
(
new_limit
!=
NULL
)
{
if
(
!
PyInt_Check
(
new_limit
))
{
if
(
!
PyInt_Check
(
new_limit
)
&&
!
PyLong_Check
(
new_limit
)
)
{
PyErr_Format
(
PyExc_TypeError
,
"limit must be an integer"
);
return
NULL
;
}
field_limit
=
PyInt_AsLong
(
new_limit
);
limit
=
PyInt_AsLong
(
new_limit
);
if
(
limit
==
-
1
&&
PyErr_Occurred
())
return
NULL
;
field_limit
=
limit
;
}
return
PyInt_FromLong
(
old_limit
);
}
...
...
Modules/_cursesmodule.c
View file @
994f04db
...
...
@@ -194,8 +194,10 @@ PyCursesCheckERR(int code, char *fname)
static
int
PyCurses_ConvertToChtype
(
PyObject
*
obj
,
chtype
*
ch
)
{
if
(
PyInt_Check
(
obj
))
{
if
(
PyInt_Check
(
obj
)
||
PyLong_Check
(
obj
)
)
{
*
ch
=
(
chtype
)
PyInt_AsLong
(
obj
);
if
(
*
ch
==
(
chtype
)
-
1
&&
PyErr_Occurred
())
return
0
;
}
else
if
(
PyString_Check
(
obj
)
&&
(
PyString_Size
(
obj
)
==
1
))
{
*
ch
=
(
chtype
)
*
PyString_AsString
(
obj
);
...
...
@@ -2576,8 +2578,11 @@ PyCurses_UnCtrl(PyObject *self, PyObject *args)
if
(
!
PyArg_ParseTuple
(
args
,
"O;ch or int"
,
&
temp
))
return
NULL
;
if
(
PyInt_Check
(
temp
)
)
if
(
PyInt_Check
(
temp
)
||
PyLong_Check
(
temp
))
{
ch
=
(
chtype
)
PyInt_AsLong
(
temp
);
if
(
ch
==
(
chtype
)
-
1
&&
PyErr_Occurred
())
return
NULL
;
}
else
if
(
PyString_Check
(
temp
))
ch
=
(
chtype
)
*
PyString_AsString
(
temp
);
else
{
...
...
@@ -2598,8 +2603,11 @@ PyCurses_UngetCh(PyObject *self, PyObject *args)
if
(
!
PyArg_ParseTuple
(
args
,
"O;ch or int"
,
&
temp
))
return
NULL
;
if
(
PyInt_Check
(
temp
)
)
if
(
PyInt_Check
(
temp
)
||
PyLong_Check
(
temp
))
{
ch
=
(
int
)
PyInt_AsLong
(
temp
);
if
(
ch
==
-
1
&&
PyErr_Occurred
())
return
NULL
;
}
else
if
(
PyString_Check
(
temp
))
ch
=
(
int
)
*
PyString_AsString
(
temp
);
else
{
...
...
Modules/dlmodule.c
View file @
994f04db
...
...
@@ -107,8 +107,11 @@ dl_call(dlobject *xp, PyObject *args)
}
for
(
i
=
1
;
i
<
n
;
i
++
)
{
PyObject
*
v
=
PyTuple_GetItem
(
args
,
i
);
if
(
PyInt_Check
(
v
)
)
if
(
PyInt_Check
(
v
)
||
PyLong_Check
(
v
))
{
alist
[
i
-
1
]
=
PyInt_AsLong
(
v
);
if
(
alist
[
i
-
1
]
==
-
1
&&
PyErr_Occurred
())
return
NULL
;
}
else
if
(
PyString_Check
(
v
))
alist
[
i
-
1
]
=
(
long
)
PyString_AsString
(
v
);
else
if
(
v
==
Py_None
)
...
...
Modules/svmodule.c
View file @
994f04db
...
...
@@ -686,7 +686,7 @@ sv_LoadMap(svobject *self, PyObject *args)
if
(
!
cell
)
goto
finally
;
if
(
!
PyInt_Check
(
cell
))
{
if
(
!
PyInt_Check
(
cell
)
&&
!
PyLong_Check
(
cell
)
)
{
PyErr_BadArgument
();
goto
finally
;
}
...
...
@@ -757,7 +757,7 @@ doParams(svobject *self, PyObject *args,
if
(
!
v
)
goto
finally
;
if
(
!
PyInt_Check
(
v
))
{
if
(
!
PyInt_Check
(
v
)
&&
!
PyLong_Check
(
v
)
)
{
PyErr_BadArgument
();
goto
finally
;
}
...
...
Modules/termios.c
View file @
994f04db
...
...
@@ -185,8 +185,11 @@ termios_tcsetattr(PyObject *self, PyObject *args)
if
(
PyString_Check
(
v
)
&&
PyString_Size
(
v
)
==
1
)
mode
.
c_cc
[
i
]
=
(
cc_t
)
*
PyString_AsString
(
v
);
else
if
(
PyInt_Check
(
v
)
)
else
if
(
PyInt_Check
(
v
)
||
PyLong_Check
(
v
))
{
mode
.
c_cc
[
i
]
=
(
cc_t
)
PyInt_AsLong
(
v
);
if
(
mode
.
c_cc
[
i
]
==
(
cc_t
)
-
1
&&
PyErr_Occurred
())
return
NULL
;
}
else
{
PyErr_SetString
(
PyExc_TypeError
,
"tcsetattr: elements of attributes must be characters or integers"
);
...
...
Objects/intobject.c
View file @
994f04db
...
...
@@ -155,6 +155,11 @@ PyInt_AsLong(register PyObject *op)
return
-
1
;
}
if
(
PyLong_CheckExact
(
op
))
{
/* avoid creating temporary int object */
return
PyLong_AsLong
(
op
);
}
io
=
(
PyIntObject
*
)
(
*
nb
->
nb_int
)
(
op
);
if
(
io
==
NULL
)
return
-
1
;
...
...
@@ -163,8 +168,6 @@ PyInt_AsLong(register PyObject *op)
/* got a long? => retry int conversion */
val
=
PyLong_AsLong
((
PyObject
*
)
io
);
Py_DECREF
(
io
);
if
((
val
==
-
1
)
&&
PyErr_Occurred
())
return
-
1
;
return
val
;
}
else
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment