1 SUSPECT #1
from contextlib import contextmanager
@contextmanager
def tx(conn):
try:
yield conn
conn.commit()
except Exception:
conn.rollback()
raise
with tx(None) as c:
c.execute("UPDATE users SET x=1") Traceback (most recent call last):
File "lineup.py", line 13, in <module>
c.execute("UPDATE users SET x=1")
^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'execute' 2 SUSPECT #2
from dataclasses import dataclass, field
@dataclass
class Cart:
items: list = []
c = Cart() Traceback (most recent call last):
File "lineup.py", line 5, in <module>
class Cart:
File "lineup.py", line 5, in Cart
items: list = []
ValueError: mutable default <class 'list'> for field items is not allowed: use default_factory 3 SUSPECT #3
import re
pattern = re.compile(r"(\\d+")
print(pattern.match("123")) Traceback (most recent call last):
File "lineup.py", line 2, in <module>
pattern = re.compile(r"(\\d+")
~~~~~~~~~~^^^^^^^^^
re.error: missing ), unterminated subpattern at position 0 4 SUSPECT #4
import asyncio
async def boom():
raise ValueError("nope")
async def main():
return await asyncio.gather(boom(), boom())
asyncio.run(main()) Traceback (most recent call last):
File "lineup.py", line 9, in <module>
asyncio.run(main())
~~~~~~~~~~~^^^^^^^^
File "asyncio/runners.py", line 190, in run
return runner.run(main)
~~~~~~~~~~^^^^^^
Task exception was never retrieved
ValueError: nope 5 SUSPECT #5
from typing import Generic, TypeVar
T = TypeVar("T")
class Box(Generic[T]):
def __init__(self, v: T):
self.v = v
b = Box[int](v="hi")
print(b.v + 1) Traceback (most recent call last):
File "lineup.py", line 10, in <module>
print(b.v + 1)
~~~~^~~
TypeError: can only concatenate str (not "int") to str