warning.py 文件源码

python
阅读 30 收藏 0 点赞 0 评论 0

项目:sslstrip-hsts-openwrt 作者: adde88 项目源码 文件源码
def warn(msg, stacklevel=1, function=None):
    if function is not None:
        filename = py.std.inspect.getfile(function)
        lineno = py.code.getrawcode(function).co_firstlineno
    else:
        try:
            caller = sys._getframe(stacklevel)
        except ValueError:
            globals = sys.__dict__
            lineno = 1
        else:
            globals = caller.f_globals
            lineno = caller.f_lineno
        if '__name__' in globals:
            module = globals['__name__']
        else:
            module = "<string>"
        filename = globals.get('__file__')
    if filename:
        fnl = filename.lower()
        if fnl.endswith(".pyc") or fnl.endswith(".pyo"):
            filename = filename[:-1]
        elif fnl.endswith("$py.class"):
            filename = filename.replace('$py.class', '.py')
    else:
        if module == "__main__":
            try:
                filename = sys.argv[0]
            except AttributeError:
                # embedded interpreters don't have sys.argv, see bug #839151
                filename = '__main__'
        if not filename:
            filename = module
    path = py.path.local(filename)
    warning = DeprecationWarning(msg, path, lineno)
    py.std.warnings.warn_explicit(warning, category=Warning,
        filename=str(warning.path),
        lineno=warning.lineno,
        registry=py.std.warnings.__dict__.setdefault(
            "__warningsregistry__", {})
    )
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号