修改python内置函数和库
项目描述
暗蟒
补丁python内置函数和库!
创建你自己的蟒蛇!
在 python 中做你做梦也想不到的危险事情!
它能做什么
- 补丁内置函数
$ dpython config beautify.py
# beautify.py
from pprint import pprint
print = pprint
并且只$ dpython在你的余生中用作 python 命令行,每一个print都保证是漂亮的。
- 修补任何软件包,无论是否内置
$ dpython config troll_packages/random
random
└── __init__.py
#__init__.py
def randint(a,b):
return a
现在 ssh 进入一些生产服务器。$ sudo alias python3=dpython 看着世界燃烧。
用例
结合禁果。你可以做任何事情,包括:
-
随心所欲地定制你的python。您是一名发现无法使用 python vanilla list 做任何事情的数据科学家吗?没问题!使用 numpy 数组功能扩展内置列表!
-
在不进行任何重构的情况下修补大量 Python 代码
-
为其他包创建python补丁包
如何使用
pip install dpython
默认情况下,pip 创建命令行快捷方式$ dpython。如果它不起作用,(您使用的是愚蠢的 Windows 或其他东西),您可以随时使用> python -m dpython
dpythonpython本身的工作方式与命令行完全相同。
例如:
$ dpython test.py 运行test.py
$ dpython打开交互式外壳
$ dpython -m my_module将文件夹my_module作为 python 模块运行
dpython 只有一个与 python 不同的保留子命令:'config'. 您可以提供以下说明:
$ dpython config [something.py|folder]. 注册单个.py文件或包含 python 包的文件夹。
- 在
py文件的情况下。$ dpython提供的文件将在未来调用之前有效执行。您可以将其称为启动脚本。 - 在包的情况下,其他代码中的导入将使用提供的包而不是具有重复名称的包。
- 您可以注册任意数量的软件包。但只有一个
.py启动脚本。
$ dpython config inspect-script打印保存的启动脚本
$ dpython config clear-script重置保存的启动脚本
$ dpython config inspect-package打印已注册的包裹
# example output
patch packages:
random
numpy
argparse
$ dpython config clear-package清除注册包,不会删除真实文件。
# example output
random removed
numpy removed
argparse removed
$ dpython -h|--help打印帮助
更多示例
-
示例 1
# leEtH4ck3r.py oldprint = print def print(*args, **kwargs): oldprint('Pwned by Dark Python!!!') oldprint(*args, **kwargs)
$ dpython register leEtH4ck3r.py -
示例 2
# ilovetqdm.py from tqdm import trange range = trange
$ dpython register ilovetqdm.py
我的愚蠢幻想 (todos)
-
编写一个名为的包
gwrap,内部用于dpython扩展 built-inargparse。$ gwrap any_cmd_utility.py只要脚本使用
argparse,gwrap 就会创建一个 GUI,其中复选框替换布尔参数。下拉菜单替换参数选择。悬停工具提示以获得参数帮助。并存储自动完成的命令历史记录。 -
安装
dpython在我同事的电脑上,搞砸最常用的功能range(),如list(). 别名 python=dpython 只是为了好玩。