bito-code-review[bot] commented on code in PR #41970: URL: https://github.com/apache/superset/pull/41970#discussion_r3565449126
########## superset/utils/legacy_thumbnails.py: ########## @@ -0,0 +1,41 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +"""Thumbnail helpers for report screenshots.""" +from io import BytesIO + +from PIL import Image, ImageDraw, ImageFont + +# Module-level: on Pillow >=10 this raises AttributeError at import time. +RESAMPLE_FILTER = Image.ANTIALIAS Review Comment: <div> <div id="suggestion"> <div id="issue"><b>CWE-1104: Pillow 11+ Incompatible API</b></div> <div id="fix"> `Image.ANTIALIAS` was removed in Pillow 10.0.0. With the project's required `Pillow>=11.0.0,<13` (pyproject.toml line), this line will raise `AttributeError` at module import time, crashing the entire process. Replace with `Image.Resampling.LANCZOS`. (See also: [CWE-1104](https://cwe.mitre.org/data/definitions/1104.html)) </div> </div> <small><i>Code Review Run #f0507f</i></small> </div> --- Should Bito avoid suggestions like this for future reviews? (<a href=https://alpha.bito.ai/home/ai-agents/review-rules>Manage Rules</a>) - [ ] Yes, avoid them ########## superset/utils/legacy_thumbnails.py: ########## @@ -0,0 +1,41 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +"""Thumbnail helpers for report screenshots.""" +from io import BytesIO + +from PIL import Image, ImageDraw, ImageFont + +# Module-level: on Pillow >=10 this raises AttributeError at import time. +RESAMPLE_FILTER = Image.ANTIALIAS + + +def generate_thumbnail(image_bytes: bytes, max_size: tuple[int, int] = (400, 300)) -> bytes: + img = Image.open(BytesIO(image_bytes)) + img = img.convert("RGB") + img.thumbnail(max_size, RESAMPLE_FILTER) + + # Stamp a small label in the corner. ImageFont.getsize() was also removed in + # Pillow 10 -- the second API a migration must fix (to getbbox()/getlength()). + draw = ImageDraw.Draw(img) + font = ImageFont.load_default() + label = "thumb" + text_w, text_h = font.getsize(label) Review Comment: <div> <div id="suggestion"> <div id="issue"><b>CWE-1104: Deprecated Pillow API</b></div> <div id="fix"> `ImageFont.getsize()` was deprecated in Pillow 10.2.0 and will be removed in Pillow 13. The comment acknowledges this but doesn't fix it. Replace with `getbbox()` which is the documented replacement. (See also: [CWE-1104](https://cwe.mitre.org/data/definitions/1104.html)) </div> </div> <small><i>Code Review Run #f0507f</i></small> </div> --- Should Bito avoid suggestions like this for future reviews? (<a href=https://alpha.bito.ai/home/ai-agents/review-rules>Manage Rules</a>) - [ ] Yes, avoid them -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
