Skip to main content

pysnooper debug调试,测色 ,可点击跳转的,统计代码动态真实运行 行数

Project description

1. pip install pysnooper_click_able

神级别黑科技装饰器。自动显示代码运行轨迹并在pycharm控制台点击可以紧缺跳转到文件的代码行。

基于pysnooper的改版
举要功能是调试debu代码用的,基础用法 百度 pysnooper 就可以。

对比pysnooper
1.增加代码运行轨迹可点击精确跳转
2.根据各种运行状态变彩色
3.增加了代码执行总行数的统计,让程序员心里有谱到底遗憾代码真正背后执行了多少行python代码

# -*- coding: utf-8 -*-
# @Author  : ydf
# @Time    : 2019/12/4 0004 17:01
"""
举个例子,统计requests.get运行轨迹,requests和urllib发http请求各执行了多少行代码。

requests请求http百度,会花费18635行代码
urllib 请求百度http ,会花费11902行代码

普通3Ghz以下的电脑,单进程运行python,选一个或者自己做一个流量消耗非常少的http接口进行请求测试,
平均每秒不可能运行超过300次请求。
所以大规模发requests不是简单的io密集型,也是消耗性能的,
包括最牛的英特尔5Ghz的频率,如果每秒能运行1000次requests请求,我愿意把电脑cpu吃了。
"""

import requests
import urllib3
from urllib import request
from pysnooper_click_able import snoop
#
# ss = requests.session()
@snoop(depth=100,dont_effect_on_linux=False)
def f():
   # requests.get('http://www.baidu.com')
   # requests.get('http://www.sina.com')
   response = request.urlopen('http://www.baidu.com')
   # ss.get('http://www.baidu.com')


f()

追踪代码的运行的分支

from pysnooper_click_able import snoop


def f1(x):
    if x == 1:
        a = 2
    else:
        a = 3


def f2(x):
    if x == 7:
        b = 8
        for i in range(1000):
            b += i
    else:
        b = 9


@snoop(depth=9)
def f3(x, test=True):
    if test:
        f1(x)
    else:
        f2(x)


f3(5, False)

如果传f(5,False) ,则会显示执行了f2函数,并运行了b=9 的else分支,并显示执行的时间代码行数是8。

Image text

如果传f(7,False) ,则会显示执行了f2函数,并运行了b=8 的if分支,并显示运行了2009行,

因为 for i in range(1000): 和 b += i 这两行各执行了1000次。

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pysnooper_click_able-1.1.tar.gz (19.2 kB view details)

Uploaded Source

File details

Details for the file pysnooper_click_able-1.1.tar.gz.

File metadata

  • Download URL: pysnooper_click_able-1.1.tar.gz
  • Upload date:
  • Size: 19.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.5.0 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.6.5

File hashes

Hashes for pysnooper_click_able-1.1.tar.gz
Algorithm Hash digest
SHA256 26fd888fe68cdef8d79b00a81de4a9b05453e062adf3917a03d9e6b230257f85
MD5 fd8f4ecf5f653fb54ad2d8f74edc3f17
BLAKE2b-256 f19d5af55a9b6609c985658634c3b22391a5500a2a9539dfe30ad7cf10a8db6c

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page