Underlying Python object.
(self)
| 284 | |
| 285 | @property |
| 286 | def obj(self): |
| 287 | """Underlying Python object.""" |
| 288 | obj = getattr(self, "_obj", None) |
| 289 | if obj is None: |
| 290 | self._obj = obj = self._getobj() |
| 291 | # XXX evil hack |
| 292 | # used to avoid Function marker duplication |
| 293 | if self._ALLOW_MARKERS: |
| 294 | self.own_markers.extend(get_unpacked_marks(self.obj)) |
| 295 | # This assumes that `obj` is called before there is a chance |
| 296 | # to add custom keys to `self.keywords`, so no fear of overriding. |
| 297 | self.keywords.update((mark.name, mark) for mark in self.own_markers) |
| 298 | return obj |
| 299 | |
| 300 | @obj.setter |
| 301 | def obj(self, value): |