unused variable is not identified

Detlev Offenbach detlev at die-offenbachs.de
Sun Jun 21 15:32:03 BST 2026


Hi,

I can confirm, that msg at line 46 is not flagged as unused. The check 
done by 'pyflakes' does not detect that. I cross checked with 'ruff' and 
that checker does not detect it either. That is cause by the use of 
'msg' in the 'unblock' case block. If you change 'msg' of that block to 
e.g. msg_1, the 'msg' on line 46 is flagged as expected.

There is nothing I can do about that because if it is an issue, it is 
outside eric-ide. If two totally different checker packages show the 
same behavior, than that must be the right one (or both have the 
identical faulty behavior).

Regards,
Detlev

Am 21.06.26 um 15:47 schrieb Dmitrey Kroshko:
> hello, check this code (put it into Eric new file and save)
> while it works well with 4-line function myFunction (both variables a 
> and msg are marked as unused), it fails for more complex 
> _operationByMAC (only a is marked as unused and msg is not)
>
> def myFunction(operation = 'lock', macAddress = 'A0:B0:C0:D0:E0:F0'):
>     a = 4
>     msg = f'operation {operation} with macAddress={macAddress} is 
> finished'
>     #print(msg)
>     return r
>
> import paramiko
>
> class EmptyClass:
>     pass
>
> def _operationByMAC(macAddress=None, operation=None, routerIP = None, 
> userName = None, password = None):
>     assert operation in ('unblock', 'block', 'get_state')
>     r = EmptyClass()
>     ssh = paramiko.SSHClient()
>     ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
>     r.ssh = ssh
>
>     ssh.connect(routerIP, username=userName, password=password)
>     command = f'ip firewall filter print where 
> src-mac-address="{macAddress}"'
>     stdin, stdout, stderr = ssh.exec_command(command)
>
>     result = stdout.read().decode()
>     lines = result.split('\n')
>     RuleLine  = None
>     for line in lines:
>         if 'src-mac-address='+macAddress in line:
>             RuleLine = line
>             break
>     if RuleLine is None:
>         match operation:
>             case 'get_state':
>                 r.state = 'unblocked'
>                 print(f'{macAddress} is unblocked')
>                 return r
>             case 'block':
>                 pass
>             case 'unblock':
>                 msg = 'Error: this MAC was not found in firewall rules'
>                 print(msg)
>                 r.msg = msg
>                 r.state = 'unblocked'
>                 return r
>
>     a = 3
>     msg = f'operation {operation} with macAddress={macAddress} is 
> finished'
>     #print(msg)
>     return r
> Regards, Dmitrey
>
> On Sun, 21 Jun 2026 at 16:12, Detlev Offenbach 
> <detlev at die-offenbachs.de> wrote:
>
>     Hello Dmitrey,
>
>     I just tried your code over here and have to admit, that
>     everything works as expected. The 'msg' variable is flagged as
>     unused and an associated message is shown (see attached
>     screenshot). Are you sure, that the Syntax Checker Plugin is
>     active? You may check this via the Plugin Infos dialog. If it is
>     not, just open the context menu in there and selecte 'Activate'.
>     If that does not work, check for an error in the associated plugin
>     details.
>
>     Regards,
>     Detlev
>
>     Am 21.06.26 um 10:16 schrieb Dmitrey Kroshko:
>>     def myFunc(...):
>>         ....
>>         msg = f'operation {operation} with macAddress={macAddress} is
>>     finished'
>>         #print(msg)
>>         return r
>
>     -- 
>     Detlev Offenbach
>     detlev at die-offenbachs.de
>
-- 
Detlev Offenbach
detlev at die-offenbachs.de
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://www.riverbankcomputing.com/pipermail/eric/attachments/20260621/284db9c8/attachment-0001.htm>


More information about the Eric mailing list