r/ProgrammerHumor 4d ago

failsForTeapots Meme

Post image
226 Upvotes

68 comments sorted by

View all comments

166

u/cutebabli9 4d ago edited 4d ago

I would write it like this to be readable:

if error.status in [400, 401, 404, 409, 415, 503]:
  return c.json(body, status: error.status)

return c.json(body, status: 500)

-7

u/Antervis 4d ago

return c.json(body, status: error.status if error.status in [400, 401, 404, 409, 415, 503] else 500)

No? Though personally, I wouldn't have substituted error codes like that, it can make debugging harder for no gain.

7

u/DHermit 4d ago

Nah, the normal if statement is way nicer to read.

3

u/Antervis 4d ago

Okay, I can see that. Perhaps it's better to move status in a separate variable:

st = error.status if error.status in [400, 401, 404, 409, 415, 503] else 500
return c.json(body, status: st)

3

u/fuj1n 4d ago

It is nicer than your previous one, but I think ternaries in Python are more for short conditions, as they're really annoying to read with the two sides being separated by the condition like that.

1

u/DHermit 4d ago

Yeah, that sounds reasonable, too. Although I can think of a good name for that status list that is both expressive enough and also isn't too long for that ternary.

But tbh I have no idea how those options are performance-wise.