跳转到主要内容

在Slack中协同调试Python应用程序

项目描述

https://travis-ci.org/coddingtonbear/slackpdb.svg?branch=master

Slackpdb是rpdb的一个变种,它不是通过打开端口允许您通过telnet进行调试,而是连接到一个可配置的Slack频道,这样您就可以远程协作调试应用程序。

import slackpdb
slackpdb.set_trace(
    token="<your slack token>",
    channel="#debugger_hangout",
)

当达到 set_trace() 时,您的脚本将“挂起”,唯一使其继续运行的方法是通过与连接到上述IRC频道的用户交谈来访问slackpdb。

要与调试器交互,只需在频道中发送以它宣布的用户名作为前缀的消息,或者简单地发送“!”。

例如,以下两个命令是等效的,每个都会显示pdb帮助屏幕(请确保将‘MyHostname’替换为机器人选择的任何用户名)

!help
slackpdb: help

安装

pip

pip install slackpdb

选项

  • token:用于连接到Slack的令牌;如果您没有,您可以在 https://my.slack.com/services/new/bot 快速生成一个。请注意,如果没有指定,它可能来自 SLACKPDB_API_TOKEN 环境变量,或者,如果 django 选项设置为 True,则来自名为 SLACKPDB_API_TOKEN 的Django设置。

  • channel必需):频道的名称(以 # 开头)。

  • limit_access_to: 允许与调试器交互的昵称列表。

  • activation_timeout: 在断开连接并继续执行之前,等待最多多少秒,以便有人与该通道中的调试器进行交互。默认值:60秒。

  • django: (默认:False)如果未指定,则尝试从名为SLACKPDB_API_TOKEN的django设置中收集Slack API令牌。

安全免责声明

此库的工作方式本质上是危险的;鉴于您能够从调试器中执行任意Python代码,强烈建议您采取一切合理措施来确保您控制谁能够执行调试器命令。

为了确保这一点非常明确:您负责确定您能够接受的风险水平,并采取适当的行动来减轻该风险。

如库的许可证中明确和响亮地声明的那样(参见包含的LICENSE.txt

THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.

祝您好运,调试愉快!

故障排除

如果您看不到机器人进入您指定的通道,请尝试通过在您的跟踪上方添加以下行来增加日志级别,以收集有关连接到IRC服务器时可能发生的问题的一些更多信息

import logging
logging.basicConfig(filename='/path/to/somewhere.log', level=logging.DEBUG)

作者

Adam Coddington <me@adamcoddington.net> - http://adamcoddington.net/

此库是rpdb的分支,此库的底层结构归功于Bertrand Janin <b@janin.com> - http://tamentis.com/ 和所有其他为 rpdb <https://github.com/tamentis/rpdb> 做出贡献的人,包括以下人员

项目详细信息


下载文件

下载您平台的文件。如果您不确定要选择哪个,请了解更多关于 安装软件包 的信息。

源分布

slack-pdb-2.0.4.tar.gz (9.6 kB 查看哈希值)

上传时间

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面