Path 1: 253 calls (0.63)

1def close(self):
2        fileobj = self.fileobj
3        if fileobj is None:
4            return
5        self.fileobj = None
6        try:
7            if self.mode == WRITE:
8                fileobj.write(self.compress.flush())
9                write32u(fileobj, self.crc)
10                # self.size may exceed 2 GiB, or even 4 GiB
11                write32u(fileobj, self.size & 0xffffffff)
12            elif self.mode == READ:
13                self._buffer.close()
14        finally:
15            myfileobj = self.myfileobj
16            if myfileobj:
17                self.myfileobj = None
18                myfileobj.close()
            

Path 2: 49 calls (0.12)

1def close(self):
2        fileobj = self.fileobj
3        if fileobj is None:
4            return
5        self.fileobj = None
6        try:
7            if self.mode == WRITE:
8                fileobj.write(self.compress.flush())
9                write32u(fileobj, self.crc)
10                # self.size may exceed 2 GiB, or even 4 GiB
11                write32u(fileobj, self.size & 0xffffffff)
12            elif self.mode == READ:
13                self._buffer.close()
14        finally:
15            myfileobj = self.myfileobj
16            if myfileobj:
17                self.myfileobj = None
18                myfileobj.close()
            

Path 3: 35 calls (0.09)

1def close(self):
2        fileobj = self.fileobj
3        if fileobj is None:
4            return
5        self.fileobj = None
6        try:
7            if self.mode == WRITE:
8                fileobj.write(self.compress.flush())
9                write32u(fileobj, self.crc)
10                # self.size may exceed 2 GiB, or even 4 GiB
11                write32u(fileobj, self.size & 0xffffffff)
12            elif self.mode == READ:
13                self._buffer.close()
14        finally:
15            myfileobj = self.myfileobj
16            if myfileobj:
17                self.myfileobj = None
18                myfileobj.close()
            

Path 4: 34 calls (0.09)

1def close(self):
2        fileobj = self.fileobj
3        if fileobj is None:
4            return
5        self.fileobj = None
6        try:
7            if self.mode == WRITE:
8                fileobj.write(self.compress.flush())
9                write32u(fileobj, self.crc)
10                # self.size may exceed 2 GiB, or even 4 GiB
11                write32u(fileobj, self.size & 0xffffffff)
12            elif self.mode == READ:
13                self._buffer.close()
14        finally:
15            myfileobj = self.myfileobj
16            if myfileobj:
17                self.myfileobj = None
18                myfileobj.close()
            

Path 5: 28 calls (0.07)

None (28)

1def close(self):
2        fileobj = self.fileobj
3        if fileobj is None:
4            return
5        self.fileobj = None
6        try:
7            if self.mode == WRITE:
8                fileobj.write(self.compress.flush())
9                write32u(fileobj, self.crc)
10                # self.size may exceed 2 GiB, or even 4 GiB
11                write32u(fileobj, self.size & 0xffffffff)
12            elif self.mode == READ:
13                self._buffer.close()
14        finally:
15            myfileobj = self.myfileobj
16            if myfileobj:
17                self.myfileobj = None
18                myfileobj.close()