def read_pkt_line(self):
        if self._readahead is None:
            read = self.read
        else:
            read = self._readahead.read
            self._readahead = None

        try:
            sizestr = read(4)
            if not sizestr:
                raise HangupException()
            size = int(sizestr, 16)
            if size == 0:
                if self.report_activity:
                    self.report_activity(4, 'read')
                return None
            if self.report_activity:
                self.report_activity(size, 'read')
            return read(size-4)
        except socket.error, e:
            raise GitProtocolError(e)
Test the attributes properties.
dataset/ETHPy150Open natestedman/Observatory/observatory/lib/dulwich/protocol.py/Protocol.read_pkt_line--crossover with--dataset/ETHPy150Open log2timeline/dfvfs/tests/vfs/ntfs_file_entry.py/NTFSFileEntryTest.testAttributes