py: Add compiler optimisation for conditions in parenthesis.

Optimises:
    if () -> if False
    if (x,...) -> if True
    if (a and b) -> if a and b
diff --git a/py/compile.c b/py/compile.c
index 49edc3f..267eb2c 100644
--- a/py/compile.c
+++ b/py/compile.c
@@ -713,6 +713,23 @@
         } else if (MP_PARSE_NODE_STRUCT_KIND(pns) == PN_not_test_2) {
             c_if_cond(comp, pns->nodes[0], !jump_if, label);
             return;
+        } else if (MP_PARSE_NODE_STRUCT_KIND(pns) == PN_atom_paren) {
+            // cond is something in parenthesis
+            if (MP_PARSE_NODE_IS_NULL(pns->nodes[0])) {
+                // empty tuple, acts as false for the condition
+                if (jump_if == false) {
+                    EMIT_ARG(jump, label);
+                }
+            } else if (MP_PARSE_NODE_IS_STRUCT_KIND(pns->nodes[0], PN_testlist_comp)) {
+                // non-empty tuple, acts as true for the condition
+                if (jump_if == true) {
+                    EMIT_ARG(jump, label);
+                }
+            } else {
+                // parenthesis around 1 item, is just that item
+                c_if_cond(comp, pns->nodes[0], jump_if, label);
+            }
+            return;
         }
     }