To add, tested on clean versions of Debian 12, Debian 13 and the latest 
Raspberry Pi OS. all are fine though python3-six needs to be installed. 

On Sunday, 26 October 2025 at 08:30:10 UTC Auchtermuchty Weather wrote:

> To add, the ImageFont PIL library needs importing:
>
>     from PIL import Image, ImageColor, ImageDraw, *ImageFont*
>
> On Saturday, 25 October 2025 at 19:32:03 UTC+1 Auchtermuchty Weather wrote:
>
>> I've actually managed to fix my code. I'm amazed! I made a function that 
>> returns width & height from the text & font:
>>
>>     def get_hw(  text, font ):
>>         left, top, right, bottom = font.getbbox( text )
>>         width = right - left
>>         height = bottom - top
>>
>>         return width, height
>>
>> So, e.g.,
>>     self.title_width, self.title_height = 
>> self.draw.textsize(self.title, font=self.label_font)
>>
>> becomes
>>     self.title_width, self.title_height = self.get_hw( self.title, 
>> self.label_font )
>>
>> Will be sorting out my own GitHub maybe tomorrow and testing it on a 
>> fresh Debian 13 installation.
>>
>> The following were the resources that helped me do that:
>>
>> https://github.com/python-pillow/Pillow/issues/6938
>> https://pillow.readthedocs.io/en/stable/deprecations.html
>>
>>
>> On Saturday, 25 October 2025 at 17:15:46 UTC+1 vince wrote:
>>
>>> update - wget 
>>> https://github.com/vinceskahan/upstream-repos/raw/refs/heads/main/weewx-stackedwindrose.tgz
>>>  
>>>
>>> I reorganized a few months ago so locations have changed.  All my 
>>> stashed upstream stuff is in 
>>> https://github.com/vinceskahan/upstream-repos/ - be sure to read the 
>>> README file for how to download pieces rather than the whole directory of 
>>> many upstream pieces of software
>>>
>>> On Saturday, October 25, 2025 at 4:38:14 AM UTC-7 Auchtermuchty Weather 
>>> wrote:
>>>
>>>> Your URL is now a 404 page :(
>>>>
>>>> I am having the same sort of problems, if you could let me have your 
>>>> version with the problem fixed I'd be very grateul.
>>>>
>>>> On Sunday, 10 August 2025 at 20:27:53 UTC+1 vince wrote:
>>>>
>>>>> You have an old version of stackedwindrose.py - you need this version 
>>>>> which works with pillow 10.x
>>>>>
>>>>>   6 July 2023           v3.0.2
>>>>>       - fix error due to deprecated PIL.ImageDraw.textsize() method 
>>>>> being
>>>>>         removed from PIL 10.0
>>>>>
>>>>> I have a .tgz of that version and can put up a github repo later today 
>>>>> if I get a chance.  Have some patience :-)
>>>>>
>>>>> On Sunday, August 10, 2025 at 12:22:58 PM UTC-7 Tom Keffer wrote:
>>>>>
>>>>>> Your analysis is correct. You have two choices: 
>>>>>>
>>>>>> 1. Downgrade to Pillow V9.5, which still uses textsize.
>>>>>> 2. Make the necessary changes to stackedwindrose.py yourself.  This 
>>>>>> involves mostly substituting "textlength" everywhere you see "textsize", 
>>>>>> except that the latter returns a 2-way tuple of (width, length), while 
>>>>>> the 
>>>>>> former is just a simple scalar of width.
>>>>>>
>>>>>> -tk
>>>>>>
>>>>>>
>>>>>>
>>>>>> On Sun, Aug 10, 2025 at 11:52 AM 'Christian Peters' via weewx-user <
>>>>>> [email protected]> wrote:
>>>>>>
>>>>>>> Hi all, 
>>>>>>>
>>>>>>> I noticed that sadly gjr80 and all his great stuff on GIT for weewx 
>>>>>>> seems to be gone!?
>>>>>>>
>>>>>>> Now my Stacked Windrose Image Generator extension stops working on 
>>>>>>> Debian13 AND WEEX 5.1.0 with this error:
>>>>>>>
>>>>>>>  Caught unrecoverable exception in generator 
>>>>>>> 'user.stackedwindrose.StackedWindRoseImageGenerator'
>>>>>>> 2025-08-10T20:42:38.140846+02:00 weewx weewxd[3909]: ERROR 
>>>>>>> weewx.reportengine:         ****  type object 'ImageDraw' has no 
>>>>>>> attribute 
>>>>>>> 'textsize'
>>>>>>> 2025-08-10T20:42:38.143494+02:00 weewx weewxd[3909]: ERROR 
>>>>>>> weewx.reportengine:         ****  Traceback (most recent call last):
>>>>>>> 2025-08-10T20:42:38.143695+02:00 weewx weewxd[3909]: ERROR 
>>>>>>> weewx.reportengine:         ****    File 
>>>>>>> "/usr/share/weewx/weewx/reportengine.py", line 248, in run
>>>>>>> 2025-08-10T20:42:38.143873+02:00 weewx weewxd[3909]: ERROR 
>>>>>>> weewx.reportengine:         ****      obj.start()
>>>>>>> 2025-08-10T20:42:38.144061+02:00 weewx weewxd[3909]: ERROR 
>>>>>>> weewx.reportengine:         ****      ~~~~~~~~~^^
>>>>>>> 2025-08-10T20:42:38.144194+02:00 weewx weewxd[3909]: ERROR 
>>>>>>> weewx.reportengine:         ****    File 
>>>>>>> "/usr/share/weewx/weewx/reportengine.py", line 465, in start
>>>>>>> 2025-08-10T20:42:38.144371+02:00 weewx weewxd[3909]: ERROR 
>>>>>>> weewx.reportengine:         ****      self.run()
>>>>>>> 2025-08-10T20:42:38.144510+02:00 weewx weewxd[3909]: ERROR 
>>>>>>> weewx.reportengine:         ****      ~~~~~~~~^^
>>>>>>> 2025-08-10T20:42:38.144607+02:00 weewx weewxd[3909]: ERROR 
>>>>>>> weewx.reportengine:         ****    File 
>>>>>>> "/etc/weewx/bin/user/stackedwindrose.py", line 228, in run
>>>>>>> 2025-08-10T20:42:38.144717+02:00 weewx weewxd[3909]: ERROR 
>>>>>>> weewx.reportengine:         ****      self.gen_images(self.gen_ts)
>>>>>>> 2025-08-10T20:42:38.144835+02:00 weewx weewxd[3909]: ERROR 
>>>>>>> weewx.reportengine:         ****      ~~~~~~~~~~~~~~~^^^^^^^^^^^^^
>>>>>>> 2025-08-10T20:42:38.144944+02:00 weewx weewxd[3909]: ERROR 
>>>>>>> weewx.reportengine:         ****    File 
>>>>>>> "/etc/weewx/bin/user/stackedwindrose.py", line 447, in gen_images
>>>>>>> 2025-08-10T20:42:38.145061+02:00 weewx weewxd[3909]: ERROR 
>>>>>>> weewx.reportengine:         ****      text_w, text_h = 
>>>>>>> self.draw.textsize("0 (100%)",
>>>>>>> 2025-08-10T20:42:38.145204+02:00 weewx weewxd[3909]: ERROR 
>>>>>>> weewx.reportengine:         ****                       
>>>>>>> ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^
>>>>>>> 2025-08-10T20:42:38.145367+02:00 weewx weewxd[3909]: ERROR 
>>>>>>> weewx.reportengine:         ****                                        
>>>>>>>  
>>>>>>>  font=self.legend_font)
>>>>>>> 2025-08-10T20:42:38.145489+02:00 weewx weewxd[3909]: ERROR 
>>>>>>> weewx.reportengine:         ****                                        
>>>>>>>  
>>>>>>>  ^^^^^^^^^^^^^^^^^^^^^^
>>>>>>> 2025-08-10T20:42:38.145747+02:00 weewx weewxd[3909]: ERROR 
>>>>>>> weewx.reportengine:         ****    File 
>>>>>>> "/etc/weewx/bin/user/stackedwindrose.py", line 822, in textsize
>>>>>>> 2025-08-10T20:42:38.145951+02:00 weewx weewxd[3909]: ERROR 
>>>>>>> weewx.reportengine:         ****      return 
>>>>>>> ImageDraw.ImageDraw.textsize(self, string, **options)
>>>>>>> 2025-08-10T20:42:38.146199+02:00 weewx weewxd[3909]: ERROR 
>>>>>>> weewx.reportengine:         ****             
>>>>>>> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>>>>>>> 2025-08-10T20:42:38.146510+02:00 weewx weewxd[3909]: Traceback (most 
>>>>>>> recent call last):
>>>>>>> 2025-08-10T20:42:38.148982+02:00 weewx weewxd[3909]: ERROR 
>>>>>>> weewx.reportengine:         ****  AttributeError: type object 
>>>>>>> 'ImageDraw' 
>>>>>>> has no attribute 'textsize'
>>>>>>> 2025-08-10T20:42:38.149142+02:00 weewx weewxd[3909]:   File 
>>>>>>> "/usr/share/weewx/weewx/reportengine.py", line 248, in run
>>>>>>> 2025-08-10T20:42:38.151192+02:00 weewx weewxd[3909]:     obj.start()
>>>>>>> 2025-08-10T20:42:38.152532+02:00 weewx weewxd[3909]:     ~~~~~~~~~^^
>>>>>>> 2025-08-10T20:42:38.153693+02:00 weewx weewxd[3909]:   File 
>>>>>>> "/usr/share/weewx/weewx/reportengine.py", line 465, in start
>>>>>>> 2025-08-10T20:42:38.154853+02:00 weewx weewxd[3909]:     self.run()
>>>>>>> 2025-08-10T20:42:38.156503+02:00 weewx weewxd[3909]:     ~~~~~~~~^^
>>>>>>> 2025-08-10T20:42:38.157701+02:00 weewx weewxd[3909]:   File 
>>>>>>> "/etc/weewx/bin/user/stackedwindrose.py", line 228, in run
>>>>>>> 2025-08-10T20:42:38.158983+02:00 weewx weewxd[3909]:     
>>>>>>> self.gen_images(self.gen_ts)
>>>>>>> 2025-08-10T20:42:38.160126+02:00 weewx weewxd[3909]:     
>>>>>>> ~~~~~~~~~~~~~~~^^^^^^^^^^^^^
>>>>>>> 2025-08-10T20:42:38.161340+02:00 weewx weewxd[3909]:   File 
>>>>>>> "/etc/weewx/bin/user/stackedwindrose.py", line 447, in gen_images
>>>>>>> 2025-08-10T20:42:38.162448+02:00 weewx weewxd[3909]:     text_w, 
>>>>>>> text_h = self.draw.textsize("0 (100%)",
>>>>>>> 2025-08-10T20:42:38.163580+02:00 weewx weewxd[3909]:                 
>>>>>>>      ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^
>>>>>>> 2025-08-10T20:42:38.164748+02:00 weewx weewxd[3909]:                 
>>>>>>>                         font=self.legend_font)
>>>>>>> 2025-08-10T20:42:38.165938+02:00 weewx weewxd[3909]:                 
>>>>>>>                         ^^^^^^^^^^^^^^^^^^^^^^
>>>>>>> 2025-08-10T20:42:38.167060+02:00 weewx weewxd[3909]:   File 
>>>>>>> "/etc/weewx/bin/user/stackedwindrose.py", line 822, in textsize
>>>>>>> 2025-08-10T20:42:38.168423+02:00 weewx weewxd[3909]:     return 
>>>>>>> ImageDraw.ImageDraw.textsize(self, string, **options)
>>>>>>> 2025-08-10T20:42:38.169717+02:00 weewx weewxd[3909]:           
>>>>>>>  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>>>>>>> 2025-08-10T20:42:38.170863+02:00 weewx weewxd[3909]: AttributeError: 
>>>>>>> type object 'ImageDraw' has no attribute 'textsize'
>>>>>>> 2025-08-10T20:42:38.172150+02:00 weewx weewxd[3909]: ERROR 
>>>>>>> weewx.reportengine:         ****  Generator terminated
>>>>>>>
>>>>>>> Seems to be because some changes made Pillow 10. 
>>>>>>> My version of stackewindrose extension is Version: 3.0., Date: 7 
>>>>>>> June 2020
>>>>>>>
>>>>>>> Has someone forked it or patched this to get it back working with 
>>>>>>> Pillow 10. 
>>>>>>> Sadly I don't have any skills regarding python. Or can I downgrade 
>>>>>>> to Vers 9.x....!? 
>>>>>>>
>>>>>>>
>>>>>>> Thansk in advance! 
>>>>>>>
>>>>>>> Regards,
>>>>>>>
>>>>>>> Christain 
>>>>>>>
>>>>>>> -- 
>>>>>>> You received this message because you are subscribed to the Google 
>>>>>>> Groups "weewx-user" group.
>>>>>>> To unsubscribe from this group and stop receiving emails from it, 
>>>>>>> send an email to [email protected].
>>>>>>> To view this discussion visit 
>>>>>>> https://groups.google.com/d/msgid/weewx-user/9ce297c8-4b76-497c-9faf-8d0d1d4ab2ffn%40googlegroups.com
>>>>>>>  
>>>>>>> <https://groups.google.com/d/msgid/weewx-user/9ce297c8-4b76-497c-9faf-8d0d1d4ab2ffn%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>>>>> .
>>>>>>>
>>>>>>

-- 
You received this message because you are subscribed to the Google Groups 
"weewx-user" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion visit 
https://groups.google.com/d/msgid/weewx-user/ff996dcf-0ec2-402d-b994-2a4438763bd3n%40googlegroups.com.

Reply via email to