code: def bbox(self):
          
          if not hasattr(self, '_bbox'):
              if self.has_pixels():
                  self._bbox = (
                      self._record.left,
                      self._record.top,
                      self._record.right,
                      self._record.bottom,
                  )
              elif self.has_origination() and not any(
                  x.invalidated for x in self.origination
              ):
                  lefts, tops, rights, bottoms = zip(*[
                      x.bbox for x in self.origination
                  ])
                  self._bbox = (
                      int(min(lefts)), int(min(tops)),
                      int(max(rights)), int(max(bottoms))
                  )
              elif self.has_vector_mask():
                  bbox = self.vector_mask.bbox
                  self._bbox = (
                      int(bbox[0] * self._psd.width),
                      int(bbox[1] * self._psd.height),
                      int(bbox[2] * self._psd.width),
                      int(bbox[3] * self._psd.height),
                  )
              else:
                  self._bbox = (0, 0, 0, 0)
          return self._bbox
docs: (left, top, right, bottom) tuple.