lqs
d20566fe07
Some checks failed
Test / lint (push) Has been cancelled
Test / test (pydantic-v1, 3.10) (push) Has been cancelled
Test / test (pydantic-v1, 3.11) (push) Has been cancelled
Test / test (pydantic-v1, 3.12) (push) Has been cancelled
Test / test (pydantic-v1, 3.8) (push) Has been cancelled
Test / test (pydantic-v1, 3.9) (push) Has been cancelled
Test / test (pydantic-v2, 3.10) (push) Has been cancelled
Test / test (pydantic-v2, 3.11) (push) Has been cancelled
Test / test (pydantic-v2, 3.12) (push) Has been cancelled
Test / test (pydantic-v2, 3.8) (push) Has been cancelled
Test / test (pydantic-v2, 3.9) (push) Has been cancelled
Test / coverage-combine (push) Has been cancelled
Test / check (push) Has been cancelled
Issue Manager / issue-manager (push) Has been cancelled
Label Approved / label-approved (push) Has been cancelled
25 lines
662 B
Python
25 lines
662 B
Python
from contextvars import ContextVar
|
|
|
|
import peewee
|
|
|
|
DATABASE_NAME = "test.db"
|
|
db_state_default = {"closed": None, "conn": None, "ctx": None, "transactions": None}
|
|
db_state = ContextVar("db_state", default=db_state_default.copy())
|
|
|
|
|
|
class PeeweeConnectionState(peewee._ConnectionState):
|
|
def __init__(self, **kwargs):
|
|
super().__setattr__("_state", db_state)
|
|
super().__init__(**kwargs)
|
|
|
|
def __setattr__(self, name, value):
|
|
self._state.get()[name] = value
|
|
|
|
def __getattr__(self, name):
|
|
return self._state.get()[name]
|
|
|
|
|
|
db = peewee.SqliteDatabase(DATABASE_NAME, check_same_thread=False)
|
|
|
|
db._state = PeeweeConnectionState()
|