# Copyright 2021 by Bas de Bruijne
# All rights reserved.
# Universal Wrapper comes with ABSOLUTELY NO WARRANTY, the writer can not be
# held responsible for any problems caused by the use of this script.
import subprocess
class UniversalWrapper:
def __init__(self, cmd, divider=" ", class_divider=" "):
self.cmd = cmd
self.divider = divider
self.class_divider = class_divider
def run_cmd(self, command):
command = self.input_modifier(command)
output = subprocess.check_output(command, shell=True)
return self.output_modifier(output)
def __call__(self, *args, **kwargs):
command = self.cmd + " " + self.generate_command(*args, **kwargs)
return self.run_cmd(command)
def input_modifier(self, command):
return command
def output_modifier(self, output):
return output.decode("ascii")
def generate_command(self, *args, **kwargs):
command = ""
for string in args:
command += str(string) + " "
for key, value in kwargs.items():
if key == "root" and value == True:
command = "sudo " + command
continue
if len(str(key)) > 1:
command += "--" + str(key.replace("_", self.divider)) + " "
else:
command += "-" + str(key) + " "
if not value == True:
command += str(value) + " "
return command
def __getattr__(self, attr):
subclass = UniversalWrapper(
self.cmd + self.class_divider + attr.replace("_", self.divider),
self.divider,
self.class_divider,
)
return subclass
PyPI 官网下载 | UniversalWrapper-0.02.tar.gz
版权申诉
84 浏览量
2022-01-17
06:07:22
上传
评论
收藏 2KB GZ 举报
挣扎的蓝藻
- 粉丝: 13w+
- 资源: 15万+
最新资源
- 通信仿真,mseed-process-master.zip
- python,python-quantum.rar
- python,python-project-euler.rar
- Linux常用命令及用法说明
- 基于Matlab的FFT频谱分析及IIR数字滤波器设计
- AutoCAD高压低压电气开关柜设备接线图图纸
- AutoCAD电气图纸建筑电气开关柜常用cad图纸
- 使用ASP.NET Core和Entity Framework Core来构建一个基本的进销存系统.rar
- 深度学习经典数据集+FER2013面部表情识别+附带使用方法的python代码
- Python中,要实现连接多个相机并识别多个二维码.rar
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈