bpo-29776: Use decorator syntax for properties. (#585) · python/cpython@bdf6b91 (original) (raw)

10 files changed

lines changed

Original file line number Diff line number Diff line change
@@ -1674,13 +1674,13 @@ def __int__(self):
1674 1674
1675 1675 __trunc__ = __int__
1676 1676
1677 +@property
1677 1678 def real(self):
1678 1679 return self
1679 -real = property(real)
1680 1680
1681 +@property
1681 1682 def imag(self):
1682 1683 return Decimal(0)
1683 -imag = property(imag)
1684 1684
1685 1685 def conjugate(self):
1686 1686 return self
Original file line number Diff line number Diff line change
@@ -271,20 +271,20 @@ def pre_order(self):
271 271 for child in self.children:
272 272 yield from child.pre_order()
273 273
274 -def _prefix_getter(self):
274 +@property
275 +def prefix(self):
275 276 """
276 277 The whitespace and comments preceding this node in the input.
277 278 """
278 279 if not self.children:
279 280 return ""
280 281 return self.children[0].prefix
281 282
282 -def _prefix_setter(self, prefix):
283 +@prefix.setter
284 +def prefix(self, prefix):
283 285 if self.children:
284 286 self.children[0].prefix = prefix
285 287
286 -prefix = property(_prefix_getter, _prefix_setter)
287 -
288 288 def set_child(self, i, child):
289 289 """
290 290 Equivalent to 'node.children[i] = child'. This method also sets the
@@ -380,18 +380,18 @@ def pre_order(self):
380 380 """Return a pre-order iterator for the tree."""
381 381 yield self
382 382
383 -def _prefix_getter(self):
383 +@property
384 +def prefix(self):
384 385 """
385 386 The whitespace and comments preceding this token in the input.
386 387 """
387 388 return self._prefix
388 389
389 -def _prefix_setter(self, prefix):
390 +@prefix.setter
391 +def prefix(self, prefix):
390 392 self.changed()
391 393 self._prefix = prefix
392 394
393 -prefix = property(_prefix_getter, _prefix_setter)
394 -
395 395 def convert(gr, raw_node):
396 396 """
397 397 Convert raw node information to a Node or Leaf instance.
Original file line number Diff line number Diff line change
@@ -465,8 +465,13 @@ def close(self):
465 465 self._listener = None
466 466 listener.close()
467 467
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
470 475
471 476 def __enter__(self):
472 477 return self
Original file line number Diff line number Diff line change
@@ -98,11 +98,15 @@ class Value(object):
98 98 def __init__(self, typecode, value, lock=True):
99 99 self._typecode = typecode
100 100 self._value = value
101 -def _get(self):
101 +
102 +@property
103 +def value(self):
102 104 return self._value
103 -def _set(self, value):
105 +
106 +@value.setter
107 +def value(self, value):
104 108 self._value = value
105 - value = property(_get, _set)
109 +
106 110 def __repr__(self):
107 111 return '<%s(%r, %r)>'%(type(self).__name__,self._typecode,self._value)
108 112
Original file line number Diff line number Diff line change
@@ -26,7 +26,9 @@ def accept(self):
26 26 def close(self):
27 27 self._backlog_queue = None
28 28
29 -address = property(lambda self: self._backlog_queue)
29 +@property
30 +def address(self):
31 +return self._backlog_queue
30 32
31 33 def __enter__(self):
32 34 return self
Original file line number Diff line number Diff line change
@@ -628,7 +628,9 @@ def _finalize_manager(process, address, authkey, state, _Client):
628 628 except KeyError:
629 629 pass
630 630
631 -address = property(lambda self: self._address)
631 +@property
632 +def address(self):
633 +return self._address
632 634
633 635 @classmethod
634 636 def register(cls, typeid, callable=None, proxytype=None, exposed=None,
Original file line number Diff line number Diff line change
@@ -1868,8 +1868,13 @@ def __init__(self, input=None, output=None):
1868 1868 self._input = input
1869 1869 self._output = output
1870 1870
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
1873 1878
1874 1879 def __repr__(self):
1875 1880 if inspect.stack()[1][3] == '?':
Original file line number Diff line number Diff line change
@@ -761,17 +761,21 @@ def __init__(self, name=""):
761 761
762 762 # In pax headers the "name" and "linkname" field are called
763 763 # "path" and "linkpath".
764 -def _getpath(self):
764 +@property
765 +def path(self):
765 766 return self.name
766 -def _setpath(self, name):
767 +
768 +@path.setter
769 +def path(self, name):
767 770 self.name = name
768 -path = property(_getpath, _setpath)
769 771
770 -def _getlinkpath(self):
772 +@property
773 +def linkpath(self):
771 774 return self.linkname
772 -def _setlinkpath(self, linkname):
775 +
776 +@linkpath.setter
777 +def linkpath(self, linkname):
773 778 self.linkname = linkname
774 -linkpath = property(_getlinkpath, _setlinkpath)
775 779
776 780 def __repr__(self):
777 781 return "<%s %r at %#x>" % (self.__class__.__name__,self.name,id(self))
Original file line number Diff line number Diff line change
@@ -160,7 +160,7 @@ def test_others(self):
160 160 cm('aifc', ignore=('openfp', '_aifc_params')) # set with = in module
161 161 cm('sre_parse', ignore=('dump', 'groups', 'pos')) # from sre_constants import *; property
162 162 cm('pdb')
163 -cm('pydoc')
163 +cm('pydoc', ignore=('input', 'output',)) # properties
164 164
165 165 # Tests for modules inside packages
166 166 cm('email.parser')
Original file line number Diff line number Diff line change
@@ -1577,20 +1577,17 @@ def adjust_label():
1577 1577 self.label['text'] = newval
1578 1578 self.after_idle(adjust_label)
1579 1579
1580 -
1581 -def _get_value(self):
1580 + @property
1581 +def value(self):
1582 1582 """Return current scale value."""
1583 1583 return self._variable.get()
1584 1584
1585 -
1586 -def _set_value(self, val):
1585 + @value.setter
1586 +def value(self, val):
1587 1587 """Set new scale value."""
1588 1588 self._variable.set(val)
1589 1589
1590 1590
1591 -value = property(_get_value, _set_value)
1592 -
1593 -
1594 1591 class OptionMenu(Menubutton):
1595 1592 """Themed OptionMenu, based after tkinter's OptionMenu, which allows
1596 1593 the user to select a value from a menu."""