Документ взят из кэша поисковой машины. Адрес оригинального документа : http://kodomo.fbb.msu.ru/hg/allpy/annotate/c1091715f8a3/utils/pool
Дата изменения: Unknown
Дата индексирования: Thu Feb 28 00:04:32 2013
Кодировка:
allpy: utils/pool annotate

allpy

annotate utils/pool @ 1088:c1091715f8a3

Added allpy.util.Silence to faciliate running most code with as little noise as possible This class is intended for use around noisy chunks of code using `with`, e.g.:: with Silence(): structure = PDBParser().load_pdb(file) This will produce no output to stderr if no exceptions are raised in the code. Otherwise, all output will be printed as if the code was run without this wrapper. See docstrings for more documentation.
author Daniil Alexeyevsky <dendik@kodomo.fbb.msu.ru>
date Fri, 01 Jun 2012 13:43:02 +0400
parents
children
rev   line source
dendik@799 1 #!/usr/bin/python
dendik@799 2 import subprocess
dendik@799 3 import os
dendik@799 4 import shlex
dendik@799 5 import optparse
dendik@799 6
dendik@799 7 p = optparse.OptionParser()
dendik@799 8 p.add_option('-n', '--size', type=int, help='Pool size')
dendik@799 9 p.add_option('-c', '--cmd',
dendik@799 10 help='Command template. Insert {} for argument.'
dendik@799 11 ' Put the argument in double quotes if it may contain spaces.')
dendik@799 12 options, args = p.parse_args()
dendik@799 13
dendik@799 14 spawned = 0
dendik@799 15 for arg in args:
dendik@799 16 if spawned > options.size:
dendik@799 17 os.wait()
dendik@799 18 spawned -= 1
dendik@799 19 cmd = shlex.split(options.cmd.replace('{}', arg))
dendik@799 20 subprocess.Popen(cmd)
dendik@799 21 spawned += 1
dendik@799 22
dendik@799 23 try:
dendik@799 24 while True:
dendik@799 25 os.wait()
dendik@799 26 except Exception:
dendik@799 27 pass
dendik@799 28
dendik@799 29 # vim: set ts=4 sts=4 et sw=4: