MagicStack / MagicStack/asyncpg
Await connection in debugpy
还没有人认领这个 Issue。
- 主要语言
- Python
- 星标
- 8.1k
- 派生
- 468
- PR 合并指标
- 30 天内没有已合并 PR
描述
* **asyncpg version**: 0.27.0
* **PostgreSQL version**: 15.1
* **Do you use a PostgreSQL SaaS? If so, which? Can you reproduce
the issue with a local PostgreSQL install?**:
* **Python version**: 3.11
* **Platform**: starlite
* **Do you use pgbouncer?**: no
* **Did you install asyncpg with pip?**: poetry
* **If you built asyncpg locally, which version of Cython did you use?**: n/a
* **Can the issue be reproduced under both asyncio and
[uvloop](https://github.com/magicstack/uvloop)?**: not sure
So I am using debugpy for debugging in vscode. Essentially this: `python -m debugpy --listen 0.0.0.0:5678 ./myscript.py`
I am using asyncpg + sqlalchemy. Specifically an [AsyncSession](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#preventing-implicit-io-when-using-asyncsession)
When I set a breakpoint and use the debug console I can normally await async functions.
But when I do this on an async query I get this error:
```
app_dev | Traceback (most recent call last):
app_dev | File "/usr/local/lib/python3.11/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 755, in _start_transaction
app_dev | await self._transaction.start()
app_dev | File "/usr/local/lib/python3.11/site-packages/asyncpg/transaction.py", line 138, in start
app_dev | await self._connection.execute(query)
app_dev | File "/usr/local/lib/python3.11/site-packages/asyncpg/connection.py", line 317, in execute
app_dev | return await self._protocol.query(query, timeout)
app_dev | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
app_dev | File "asyncpg/protocol/protocol.pyx", line 323, in query
app_dev | File "asyncpg/protocol/protocol.pyx", line 707, in asyncpg.protocol.protocol.BaseProtocol._check_state
app_dev | asyncpg.exceptions._base.InterfaceError: cannot perform operation: another operation is in progress
```
Is there a way I can `await` async queries in the debug console?
Please let me know if this is a sqlAlchemy issue.
贡献指南
这个仓库没有索引到贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
调研方向
首先使用 Python 3.11、asyncpg 0.27.0、PostgreSQL 15.1 和 SQLAlchemy AsyncSession 重现 debugpy 命令,然后检查并发操作错误的来源。确定该行为属于 asyncpg、SQLAlchemy 还是 debugpy;完成工作的必要条件是确认修复有效,或明确记录解决方案。
由索引模型根据 Issue 内容生成。
评估
- 技术栈
- postgresql, python, sqlalchemy, vscode
- 领域
- databases, devtools
- Issue 类型
- 缺陷
- 难度
- 5/5
- 预计耗时
- 一周以上
- 活跃度
- 停滞
- 描述清晰度
- 需要澄清
- 新手友好度
- 25/100