丑陋的代码工具

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)

更多说明

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
Gson类中的java验证错误   If和elseif之间的java差异?   字典Java8地图。输入比较器   java连接到远程计算机以获得WMI支持   java如何使用改型处理JSON对象中的空值   在Java中使用Comparator时不可编译的源代码   java将Jar添加到JSP的运行时路径   带有随机对象的while循环的java大O时间复杂性   java可以在不考虑参数的情况下模拟方法吗?   java我有一个简单的代码,它不工作。无法修复错误“println”   向eclipse添加Xively java库   java是否可以启用本机代码的缓存?   全局变量如何在Java中的所有类之间共享要使用的语言环境?   Java内存游戏如何翻转单个卡?