Skip to content

Commit bdf6b91

Browse files
bpo-29776: Use decorator syntax for properties. (#585)
1 parent c85a266 commit bdf6b91

File tree

10 files changed

+52
-33
lines changed

10 files changed

+52
-33
lines changed

Lib/_pydecimal.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1674,13 +1674,13 @@ def __int__(self):
16741674

16751675
__trunc__ = __int__
16761676

1677+
@property
16771678
def real(self):
16781679
return self
1679-
real = property(real)
16801680

1681+
@property
16811682
def imag(self):
16821683
return Decimal(0)
1683-
imag = property(imag)
16841684

16851685
def conjugate(self):
16861686
return self

Lib/lib2to3/pytree.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -271,20 +271,20 @@ def pre_order(self):
271271
for child in self.children:
272272
yield from child.pre_order()
273273

274-
def _prefix_getter(self):
274+
@property
275+
def prefix(self):
275276
"""
276277
The whitespace and comments preceding this node in the input.
277278
"""
278279
if not self.children:
279280
return ""
280281
return self.children[0].prefix
281282

282-
def _prefix_setter(self, prefix):
283+
@prefix.setter
284+
def prefix(self, prefix):
283285
if self.children:
284286
self.children[0].prefix = prefix
285287

286-
prefix = property(_prefix_getter, _prefix_setter)
287-
288288
def set_child(self, i, child):
289289
"""
290290
Equivalent to 'node.children[i] = child'. This method also sets the
@@ -380,18 +380,18 @@ def pre_order(self):
380380
"""Return a pre-order iterator for the tree."""
381381
yield self
382382

383-
def _prefix_getter(self):
383+
@property
384+
def prefix(self):
384385
"""
385386
The whitespace and comments preceding this token in the input.
386387
"""
387388
return self._prefix
388389

389-
def _prefix_setter(self, prefix):
390+
@prefix.setter
391+
def prefix(self, prefix):
390392
self.changed()
391393
self._prefix = prefix
392394

393-
prefix = property(_prefix_getter, _prefix_setter)
394-
395395
def convert(gr, raw_node):
396396
"""
397397
Convert raw node information to a Node or Leaf instance.

Lib/multiprocessing/connection.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -465,8 +465,13 @@ def close(self):
465465
self._listener = None
466466
listener.close()
467467

468-
address = property(lambda self: self._listener._address)
469-
last_accepted = property(lambda self: self._listener._last_accepted)
468+
@property
469+
def address(self):
470+
return self._listener._address
471+
472+
@property
473+
def last_accepted(self):
474+
return self._listener._last_accepted
470475

471476
def __enter__(self):
472477
return self

Lib/multiprocessing/dummy/__init__.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -98,11 +98,15 @@ class Value(object):
9898
def __init__(self, typecode, value, lock=True):
9999
self._typecode = typecode
100100
self._value = value
101-
def _get(self):
101+
102+
@property
103+
def value(self):
102104
return self._value
103-
def _set(self, value):
105+
106+
@value.setter
107+
def value(self, value):
104108
self._value = value
105-
value = property(_get, _set)
109+
106110
def __repr__(self):
107111
return '<%s(%r, %r)>'%(type(self).__name__,self._typecode,self._value)
108112

Lib/multiprocessing/dummy/connection.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,9 @@ def accept(self):
2626
def close(self):
2727
self._backlog_queue = None
2828

29-
address = property(lambda self: self._backlog_queue)
29+
@property
30+
def address(self):
31+
return self._backlog_queue
3032

3133
def __enter__(self):
3234
return self

Lib/multiprocessing/managers.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -628,7 +628,9 @@ def _finalize_manager(process, address, authkey, state, _Client):
628628
except KeyError:
629629
pass
630630

631-
address = property(lambda self: self._address)
631+
@property
632+
def address(self):
633+
return self._address
632634

633635
@classmethod
634636
def register(cls, typeid, callable=None, proxytype=None, exposed=None,

Lib/pydoc.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1868,8 +1868,13 @@ def __init__(self, input=None, output=None):
18681868
self._input = input
18691869
self._output = output
18701870

1871-
input = property(lambda self: self._input or sys.stdin)
1872-
output = property(lambda self: self._output or sys.stdout)
1871+
@property
1872+
def input(self):
1873+
return self._input or sys.stdin
1874+
1875+
@property
1876+
def output(self):
1877+
return self._output or sys.stdout
18731878

18741879
def __repr__(self):
18751880
if inspect.stack()[1][3] == '?':

Lib/tarfile.py

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -761,17 +761,21 @@ def __init__(self, name=""):
761761

762762
# In pax headers the "name" and "linkname" field are called
763763
# "path" and "linkpath".
764-
def _getpath(self):
764+
@property
765+
def path(self):
765766
return self.name
766-
def _setpath(self, name):
767+
768+
@path.setter
769+
def path(self, name):
767770
self.name = name
768-
path = property(_getpath, _setpath)
769771

770-
def _getlinkpath(self):
772+
@property
773+
def linkpath(self):
771774
return self.linkname
772-
def _setlinkpath(self, linkname):
775+
776+
@linkpath.setter
777+
def linkpath(self, linkname):
773778
self.linkname = linkname
774-
linkpath = property(_getlinkpath, _setlinkpath)
775779

776780
def __repr__(self):
777781
return "<%s %r at %#x>" % (self.__class__.__name__,self.name,id(self))

Lib/test/test_pyclbr.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -160,7 +160,7 @@ def test_others(self):
160160
cm('aifc', ignore=('openfp', '_aifc_params')) # set with = in module
161161
cm('sre_parse', ignore=('dump', 'groups', 'pos')) # from sre_constants import *; property
162162
cm('pdb')
163-
cm('pydoc')
163+
cm('pydoc', ignore=('input', 'output',)) # properties
164164

165165
# Tests for modules inside packages
166166
cm('email.parser')

Lib/tkinter/ttk.py

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1577,20 +1577,17 @@ def adjust_label():
15771577
self.label['text'] = newval
15781578
self.after_idle(adjust_label)
15791579

1580-
1581-
def _get_value(self):
1580+
@property
1581+
def value(self):
15821582
"""Return current scale value."""
15831583
return self._variable.get()
15841584

1585-
1586-
def _set_value(self, val):
1585+
@value.setter
1586+
def value(self, val):
15871587
"""Set new scale value."""
15881588
self._variable.set(val)
15891589

15901590

1591-
value = property(_get_value, _set_value)
1592-
1593-
15941591
class OptionMenu(Menubutton):
15951592
"""Themed OptionMenu, based after tkinter's OptionMenu, which allows
15961593
the user to select a value from a menu."""

0 commit comments

Comments
 (0)