Avoid circular dependency

This commit is contained in:
Andrew Murray 2022-02-15 22:30:12 +11:00
parent a2313be894
commit 3bbcad1ad2

View File

@ -13,7 +13,7 @@
# See the README file for information on usage and redistribution. # See the README file for information on usage and redistribution.
# #
from PIL import Image import sys
# mode descriptor cache # mode descriptor cache
_modes = None _modes = None
@ -39,13 +39,14 @@ def getmode(mode):
if not _modes: if not _modes:
# initialize mode cache # initialize mode cache
modes = {} modes = {}
endian = "<" if sys.byteorder == "little" else ">"
for m, (basemode, basetype, bands, typestr) in { for m, (basemode, basetype, bands, typestr) in {
# core modes # core modes
# Bits need to be extended to bytes # Bits need to be extended to bytes
"1": ("L", "L", ("1",), "|b1"), "1": ("L", "L", ("1",), "|b1"),
"L": ("L", "L", ("L",), "|u1"), "L": ("L", "L", ("L",), "|u1"),
"I": ("L", "I", ("I",), Image._ENDIAN + "i4"), "I": ("L", "I", ("I",), endian + "i4"),
"F": ("L", "F", ("F",), Image._ENDIAN + "f4"), "F": ("L", "F", ("F",), endian + "f4"),
"P": ("P", "L", ("P",), "|u1"), "P": ("P", "L", ("P",), "|u1"),
"RGB": ("RGB", "L", ("R", "G", "B"), "|u1"), "RGB": ("RGB", "L", ("R", "G", "B"), "|u1"),
"RGBX": ("RGB", "L", ("R", "G", "B", "X"), "|u1"), "RGBX": ("RGB", "L", ("R", "G", "B", "X"), "|u1"),
@ -75,8 +76,8 @@ def getmode(mode):
"I;16LS": "<i2", "I;16LS": "<i2",
"I;16B": ">u2", "I;16B": ">u2",
"I;16BS": ">i2", "I;16BS": ">i2",
"I;16N": Image._ENDIAN + "u2", "I;16N": endian + "u2",
"I;16NS": Image._ENDIAN + "i2", "I;16NS": endian + "i2",
"I;32": "<u4", "I;32": "<u4",
"I;32B": ">u4", "I;32B": ">u4",
"I;32L": "<u4", "I;32L": "<u4",