丑陋的代码工具
ugly-code的Python项目详细描述
ugly-code
安装
$ pip install ugly-code
Command 工具
- 自动注入命令行参数到函数 (
ugly_code.cmd.Command
)
创建测试文件 cmd_debug.py
fromugly_code.cmdimportCommand@Commanddefmain(x:int,y,z=1023):""" 测试一下 """print("{x}\t{y}\t{z}".format(**locals()))if__name__=='__main__':globals()['main']()
执行该文件
$ python cmd_debug.py -x 1023 -y 33310233331023
有默认值的参数会被设置为可选参数,无默认值则设置为必选.
使用Type Hints的参数可自动进行类型检查.
使用 CMDHolder持有 Command
- 创建命令行工具组
编辑文件cmd_debug.py
fromugly_code.cmdimportCMDHolder@CMDHolder.command("test","测试")defmain(x:int,b:str,c:int=1):""" 测试一下 """print("{x}\t{y}\t{z}".format(**locals()))@CMDHolder.command("echo","echo")defecho(words):"""echo"""print(words)if__name__=='__main__':CMDHolder(__name__).execute()
执行该文件:
$ python3 cmd_debug.py echo -words "测试" 测试 $ python3 cmd_debug.py test usage: Command line create by ugly-code. 测试一下 [-h] -x X -b B [-c C] Command line create by ugly-code. 测试一下 : error: the following arguments are required: -x, -b
由示例可发现,CMDHolder可以持有多个命令行工具,根据不同的参数调用不同的命令行对象。而且还可以自定义命令行工具的名称与介绍。
安装方法
$ pip install ugly-code
网络/IP相关工具
IP工具(IPv4)
IP地址和INT互转
fromugly_code.netimportIPv4# IP地址转INTiv=IPv4.ipn("192.168.99.0")print(iv)# 输出 3232260864# INT 转为IPip=IPv4.nip(iv)print(ip)# 输出 192.168.99.0
是否私有IP
fromugly_code.netimportIPv4iv=IPv4("192.168.99.233")print(iv.is_private())# 输出 True
其它
fromugly_code.netimportIPv4ip=IPv4('192.168.99.233')# 获取默认子网掩码print(ip.default_mask_str())# 输出 255.255.255.0# 检测是否本地回环地址print(ip.is_loop_back())# 输出 False
IPv4
重写了包含 > 、< 、== 、!= 、<= 、>= 的操作符
Network工具
fromugly_code.netimportIPv4,Networknt=Network('192.168.99.0',mask=24)# 输出网络地址print(nt.net_address())# 输出 192.168.99.0print(Network('10.0.0.235',mask=24))# 输出 10.0.0.0# 输出子网掩码print(nt.mask())# 输出 255.255.255.0# 输出广播地址print(nt.broadcast_address())# 输出 192.168.99.255# 检测 IP 是否在该网络中print(IPv4('192.168.99.99')innt)# 输出结果 True
扩展工具集
对象代理工具
fromugly_code.eximportObjectProxyobj=ObjectProxy(dict(a=1,b=2,c=3,d=dict(a=1,b=2)))print(obj.d.a)