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
973e6c2c
Commit
973e6c2c
authored
Sep 01, 2008
by
Benjamin Peterson
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
remove py3k warnings about the threading api; update docs
Reviewer: Benjamin Peterson
parent
057dfddc
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
29 additions
and
71 deletions
+29
-71
Doc/library/threading.rst
Doc/library/threading.rst
+6
-5
Lib/test/test_py3kwarn.py
Lib/test/test_py3kwarn.py
+0
-35
Lib/threading.py
Lib/threading.py
+21
-31
Misc/NEWS
Misc/NEWS
+2
-0
No files found.
Doc/library/threading.rst
View file @
973e6c2c
...
...
@@ -14,11 +14,12 @@ The :mod:`dummy_threading` module is provided for situations where
.. note::
Some ``camelCase`` names have been converted to their underscored
equivalents. Others have been replaced by properties. Using the old methods
in 2.6 will trigger a :exc:`DeprecationWarning` when Python is run with the
:option:`-3` flag and a full :exc:`DeprecationWarning` in 3.0. The old names
will be removed early in the 3.x series.
Starting with Python 2.6, this module provides PEP 8 compliant aliases and
properties to replace the ``camelCase`` names that were inspired by Java's
threading API. This updated API is compatible with that of the
:mod:`multiprocessing` module. However, no schedule has been set for the
deprecation of the ``camelCase`` names and they remain fully supported in
both Python 2.x and 3.x.
This module defines the following functions and objects:
...
...
Lib/test/test_py3kwarn.py
View file @
973e6c2c
...
...
@@ -272,41 +272,6 @@ class TestPy3KWarnings(unittest.TestCase):
def
__hash__
(
self
):
pass
self
.
assertEqual
(
len
(
w
.
warnings
),
0
)
def
test_pep8ified_threading
(
self
):
import
threading
t
=
threading
.
Thread
()
with
catch_warning
()
as
w
:
msg
=
"isDaemon() is deprecated in favor of the "
\
"Thread.daemon property"
self
.
assertWarning
(
t
.
isDaemon
(),
w
,
msg
)
w
.
reset
()
msg
=
"setDaemon() is deprecated in favor of the "
\
"Thread.daemon property"
self
.
assertWarning
(
t
.
setDaemon
(
True
),
w
,
msg
)
w
.
reset
()
msg
=
"getName() is deprecated in favor of the "
\
"Thread.name property"
self
.
assertWarning
(
t
.
getName
(),
w
,
msg
)
w
.
reset
()
msg
=
"setName() is deprecated in favor of the "
\
"Thread.name property"
self
.
assertWarning
(
t
.
setName
(
"name"
),
w
,
msg
)
w
.
reset
()
msg
=
"isAlive() is deprecated in favor of is_alive()"
self
.
assertWarning
(
t
.
isAlive
(),
w
,
msg
)
w
.
reset
()
e
=
threading
.
Event
()
msg
=
"isSet() is deprecated in favor of is_set()"
self
.
assertWarning
(
e
.
isSet
(),
w
,
msg
)
w
.
reset
()
msg
=
"currentThread() is deprecated in favor of current_thread()"
self
.
assertWarning
(
threading
.
currentThread
(),
w
,
msg
)
w
.
reset
()
msg
=
"activeCount() is deprecated in favor of active_count()"
self
.
assertWarning
(
threading
.
activeCount
(),
w
,
msg
)
class
TestStdlibRemovals
(
unittest
.
TestCase
):
...
...
Lib/threading.py
View file @
973e6c2c
...
...
@@ -15,6 +15,17 @@ from time import time as _time, sleep as _sleep
from
traceback
import
format_exc
as
_format_exc
from
collections
import
deque
# Note regarding PEP 8 compliant aliases
# This threading model was originally inspired by Java, and inherited
# the convention of camelCase function and method names from that
# language. While those names are not in any imminent danger of being
# deprecated, starting with Python 2.6, the module now provides a
# PEP 8 compliant alias for any such method name.
# Using the new PEP 8 compliant names also facilitates substitution
# with the multiprocessing module, which doesn't provide the old
# Java inspired names.
# Rename some stuff so "from threading import *" is safe
__all__
=
[
'activeCount'
,
'active_count'
,
'Condition'
,
'currentThread'
,
'current_thread'
,
'enumerate'
,
'Event'
,
...
...
@@ -33,19 +44,6 @@ del thread
warnings
.
filterwarnings
(
'ignore'
,
category
=
DeprecationWarning
,
module
=
'threading'
,
message
=
'sys.exc_clear'
)
def
_old_api
(
callable
,
old_name
):
if
not
_sys
.
py3kwarning
:
return
callable
@
wraps
(
callable
)
def
old
(
*
args
,
**
kwargs
):
warnings
.
warnpy3k
(
"{0}() is deprecated in favor of {1}()"
.
format
(
old_name
,
callable
.
__name__
),
stacklevel
=
3
)
return
callable
(
*
args
,
**
kwargs
)
old
.
__name__
=
old_name
return
old
# Debug support (adapted from ihooks.py).
# All the major classes here derive from _Verbose. We force that to
# be a new-style class so that all the major classes here are new-style.
...
...
@@ -287,10 +285,10 @@ class _Condition(_Verbose):
except
ValueError
:
pass
def
notify
_a
ll
(
self
):
def
notify
A
ll
(
self
):
self
.
notify
(
len
(
self
.
__waiters
))
notify
All
=
_old_api
(
notify_all
,
"notifyAll"
)
notify
_all
=
notifyAll
def
Semaphore
(
*
args
,
**
kwargs
):
...
...
@@ -368,10 +366,10 @@ class _Event(_Verbose):
self
.
__cond
=
Condition
(
Lock
())
self
.
__flag
=
False
def
is
_s
et
(
self
):
def
is
S
et
(
self
):
return
self
.
__flag
is
Set
=
_old_api
(
is_set
,
"isSet"
)
is
_set
=
isSet
def
set
(
self
):
self
.
__cond
.
acquire
()
...
...
@@ -666,11 +664,11 @@ class Thread(_Verbose):
assert
self
.
__initialized
,
"Thread.__init__() not called"
return
self
.
__ident
def
is
_a
live
(
self
):
def
is
A
live
(
self
):
assert
self
.
__initialized
,
"Thread.__init__() not called"
return
self
.
__started
.
is_set
()
and
not
self
.
__stopped
is
Alive
=
_old_api
(
is_alive
,
"isAlive"
)
is
_alive
=
isAlive
@
property
def
daemon
(
self
):
...
...
@@ -686,23 +684,15 @@ class Thread(_Verbose):
self
.
__daemonic
=
daemonic
def
isDaemon
(
self
):
warnings
.
warnpy3k
(
"isDaemon() is deprecated in favor of the "
\
"Thread.daemon property"
)
return
self
.
daemon
def
setDaemon
(
self
,
daemonic
):
warnings
.
warnpy3k
(
"setDaemon() is deprecated in favor of the "
\
"Thread.daemon property"
)
self
.
daemon
=
daemonic
def
getName
(
self
):
warnings
.
warnpy3k
(
"getName() is deprecated in favor of the "
\
"Thread.name property"
)
return
self
.
name
def
setName
(
self
,
name
):
warnings
.
warnpy3k
(
"setName() is deprecated in favor of the "
\
"Thread.name property"
)
self
.
name
=
name
# The timer class was contributed by Itamar Shtull-Trauring
...
...
@@ -803,22 +793,22 @@ class _DummyThread(Thread):
# Global API functions
def
current
_t
hread
():
def
current
T
hread
():
try
:
return
_active
[
_get_ident
()]
except
KeyError
:
##print "current_thread(): no current thread for", _get_ident()
return
_DummyThread
()
current
Thread
=
_old_api
(
current_thread
,
"currentThread"
)
current
_thread
=
currentThread
def
active
_c
ount
():
def
active
C
ount
():
_active_limbo_lock
.
acquire
()
count
=
len
(
_active
)
+
len
(
_limbo
)
_active_limbo_lock
.
release
()
return
count
active
Count
=
_old_api
(
active_count
,
"activeCount"
)
active
_count
=
activeCount
def
enumerate
():
_active_limbo_lock
.
acquire
()
...
...
Misc/NEWS
View file @
973e6c2c
...
...
@@ -53,6 +53,8 @@ C-API
Library
-------
- The deprecation warnings for the old camelCase threading API were removed.
- logging: fixed lack of use of encoding attribute specified on a stream.
- Silenced a trivial compiler warning in the sqlite module.
...
...
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