Clarify ImageDraw2 error message when size is missing by radarhere · Pull Request #8165 · python-pillow/Pillow
When creating an ImageDraw2.Draw instance, image can be either an image or a mode string.
If you provide a mode string without a size, you get an error saying that size must be a list or a tuple.
>>> from PIL import ImageDraw2
>>> ImageDraw2.Draw("RGB", size=None)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "PIL/ImageDraw2.py", line 61, in __init__
image = Image.new(image, size, color)
File "PIL/Image.py", line 3061, in new
_check_size(size)
File "PIL/Image.py", line 3029, in _check_size
raise ValueError(msg)
ValueError: Size must be a list or tupleExcept, if you provided an image as the first argument, then size can be None without a problem.
>>> from PIL import Image >>> im = Image.new("RGB", (1, 1)) >>> ImageDraw2.Draw(im, size=None) <PIL.ImageDraw2.Draw object at 0x10084cdf0>
This is conceivably confusing, so this PR clarifies the situation, by changing the error to