UPDATE: The consensus seems to be overwhelmingly in favour of the match variant. And not to worry, I have replaced the magic numbers with an enum. Will try to remember to merge the branch tomorrow
Does an if-statement block or a switch statement fit better here? For context (and advertisement), this is part of my all-purpose utility plugin ( Codeberg link)
The code:
# Method 1 (Yandere Dev Technique)
if self.throw_errors and status==MpupTest.TESTSTATUS.ERROR:
push_error(result)
if self.throw_warnings and status==MpupTest.TESTSTATUS.WARNING:
push_warning(result)
# Method 2 (Pirate Software Technique)
match status:
MpupTest.TESTSTATUS.ERROR:
if self.throw_errors:
push_error(result)
MpupTest.TESTSTATUS.WARNING:
if self.throw_warnings:
push_warning(result)


Yea, basically. Like, the users shouldn’t have to look at your implementation to find that out what it will return. My example here would be
Square.area(). Maybe they would have to look at the method’s docs though to find out what unit the result is in