On 25 July 2013 14:24, Devyn Collier Johnson <devyncjohn...@gmail.com>wrote:
> Aloha Python Users! > > I made a Python3 module that allows users to use certain Linux shell > commands from Python3 more easily than using os.system(), > subprocess.Popen(), or subprocess.getoutput(). This module (once placed > with the other modules) can be used like this > > import boash; boash.ls() > > I attached the module. I plan to release it on the Internet soon, but > feel free to use it now. It is licensed under LGPLv3. > > The name comes from combining "Boa" with "SHell". Notice that the > module's name almost looks like "BASH", a common Linux shell. The Boa is a > constrictor snake. This module makes Unix shells easier to use via Python3. > This brings the system shell closer to the Python shell. > 1) Have you tested everything? At first glance some of those look like they won't work. 2) Whenever you repeat yourself, *especially* at this magnitude, you're doing something seriously wrong - *especially* in Python. *Completely-untestedly-and-super-quick-hackedly:* import re, sys, subprocess, platform class Command: def __init__(self, command=None): self.command = command def __call__(self, *args): command_list = [self.command] if self.command else [] command_list.extend(args) print(subprocess.getoutput([command_list])) def uname(): print(platform.uname()) def lsof(): print(subprocess.getoutput(lsof)) apropos = Command("apropos") arora = Command("(arora &)") dir = Command("dir") dolphin = Command("(dolphin &)") env = Command("env") finger = Command("finger") firefox = Command("(firefox &)") free = Command("free") geany = Command("(geany &)") getcwd = Command("pwd") go_back = Command("cd !!:1") halt = Command("shutdown -h now") hostname = Command("hostname") konqueror = Command("(konqueror &)") ls = Command("ls") lsof = Command("lsof") man = Command("man") mplayer = Command("(mplayer &)") nautilus = Command("(nautilus &)") nvlc = Command("(nvlc &)") opera = Command("(opera &)") pwd = Command("pwd") qvlc = Command("(qvlc &)") repeat = Command("!") runlevel = Command("runlevel") rvlc = Command("(rvlc &)") smplayer = Command("(smplayer &)") svlc = Command("(svlc &)") vlc = Command("(vlc &)") whoami = Command("whoami") xterm = Command("(xterm &)") arch = architecture = Command("arch") bash = cmd = command = shell = Command() last_cmd = last_command = repeat_cmd = Command("!!") ll = vdir = Command("ls - l") no_login = no_logins = nologin = nologins = Command("shutdown -k now") power_down = power_off = powerdown = poweroff = Command("shutdown -P now") reboot = restart = Command("shutdown -r now") shut_down = shutdown = Command("shutdown now") clear_bash_hist = clear_bash_history = clear_hist = clear_history = \ del_bash_hist = del_hist = delete_bash_hist = delete_bash_history = \ delete_hist = delete_history = Command("history -c") ejcd = ejdvd = eject_cd = eject_cdrom = eject_disc = eject_disc_tray = \ eject_dvd = eject_tray = ejectcd = ejectcdrom = ejectdisc = ejectdisctray = ejectdvd = ejecttray = ejtray = Command("eject cdrom1") I wouldn't actually do it like this (I'd probably start with a dict and add to a class programmatically), but this is a simple display of how one can use classes and other meta-constructs to make things look nicer. It also doesn't deal with forcing the number of arguments to be correct, but this is demo material and so I leave that to you.
-- http://mail.python.org/mailman/listinfo/python-list