Not yet, I have yet to commit my most recent changes as I wanted to do a 
few more tests. 

I forgot to mention that I noticed this error on a vanilla 3.8.2 setup.py 
install method. I'll try out a packaged version and commit my changes and 
will let you know. 

On Wednesday, September 5, 2018 at 7:01:06 PM UTC-4, gjr80 wrote:
>
> Interesting, WeeWX-WD installs 4 skins and I have never had a case where 
> --uninstall has not removed them all. Pushed for time this morning but I 
> will sit down and have a play with this this arvo. Pat, I presume the just 
> use your repo as per the latest commit?
>
> Gary
>
> On Thursday, 6 September 2018 03:54:27 UTC+10, Pat O'Brien wrote:
>>
>> I'm working on an update to my Belchertown skin which will really add 2 
>> skins to SKIN_ROOT. One skin is the HTML files, and the other is a 
>> highcharts fork. Certain users are having a high latency running the skin 
>> as it is today, so splitting into 2 offers a faster generation time since 
>> highcharts has a lot database queries, and a separate skin offers less SLE 
>> loops.  
>>
>> During my testing I found that the --uninstall function does not remove 
>> multiple SKIN_ROOT directories that the install.py placed there. 
>>
>> I found in weecfg/extensions.py, the uninstaller command is only 
>> removing those directories with the most common root - which does not apply 
>> to all SKIN_ROOT directories since there are multiple roots. 
>>
>> I made a small change to the extensions.py (diff below) which handles 
>> the multiple root directory removal. Instead of finding the commonprefix, 
>> I just loop through the directory_list, then loop through each item for 
>> removal. 
>>
>> root@setuppy:~# diff extension.py extension_updated.py
>> 402,407c402,407
>> <         # Start by finding the directory closest to root
>> <         most_root = os.path.commonprefix(directory_list)
>> <         # Now delete the directories under it, from the bottom up.
>> <         for dirpath, _, _ in os.walk(most_root, topdown=False):
>> <             if dirpath in directory_list:
>> <                 self.delete_directory(dirpath)
>> ---
>> >         for dir in directory_list:
>> >             # Loop through each directory listing
>> >             for dirpath, _, _ in os.walk(dir, topdown=False):
>> >                 # Delete the directory
>> >                 if dirpath in directory_list:
>> >                     self.delete_directory(dirpath)
>>
>>
>> I wanted to raise it here to see if this is a valid change and discuss. 
>> Happy to create an issue and PR if so. 
>>
>

Reply via email to