

def __init__(self, name, cmd, args=None, numprocesses=1, warmup_delay=0.0, working_dir=None, shell=False, shell_args=None, uid=None, max_retry=5, gid=None, send_hup=False, stop_signal=signal.SIGTERM, stop_children=False, env=None, graceful_timeout=30.0, prereload_fn=None, rlimits=None, executable=None, stdout_stream=None, stderr_stream=None, priority=0, loop=None, singleton=False, use_sockets=False, copy_env=False, copy_path=False, max_age=0, max_age_variance=30, hooks=None, respawn=True, autostart=True, on_demand=False, virtualenv=None, close_child_stdin=True, close_child_stdout=False, close_child_stderr=False, virtualenv_py_ver=None, use_papa=False, **options):
    self.name = name
    self.use_sockets = use_sockets
    self.on_demand = on_demand
    self.res_name = name.lower().replace(' ', '_')
    self.numprocesses = int(numprocesses)
    self.warmup_delay = warmup_delay
    self.cmd = cmd
    self.args = args
    self._status = 'stopped'
    self.graceful_timeout = float(graceful_timeout)
    self.prereload_fn = prereload_fn
    self.executable = None
    self.priority = priority
    self.stdout_stream_conf = copy.copy(stdout_stream)
    self.stderr_stream_conf = copy.copy(stderr_stream)
    self.stdout_stream = get_stream(self.stdout_stream_conf)
    self.stderr_stream = get_stream(self.stderr_stream_conf)
    self.stream_redirector = None
    self.max_retry = max_retry
    self._options = options
    self.singleton = singleton
    self.copy_env = copy_env
    self.copy_path = copy_path
    self.virtualenv = virtualenv
    self.virtualenv_py_ver = virtualenv_py_ver
    self.max_age = int(max_age)
    self.max_age_variance = int(max_age_variance)
    self.ignore_hook_failure = ['before_stop', 'after_stop', 'before_signal', 'after_signal', 'extended_stats']
    self.respawn = respawn
    self.autostart = autostart
    self.close_child_stdin = close_child_stdin
    self.close_child_stdout = close_child_stdout
    self.close_child_stderr = close_child_stderr
    self.use_papa = (use_papa and (papa is not None))
    self.loop = (loop or ioloop.IOLoop.instance())
    if (singleton and (self.numprocesses not in (0, 1))):
        raise ValueError(('Cannot have %d processes with a singleton  watcher' % self.numprocesses))
    if IS_WINDOWS:
        if (self.stdout_stream or self.stderr_stream):
            raise NotImplementedError('Streams are not supported on Windows.')
        if ((not copy_env) and (not env)):
            self.copy_env = True
    self.optnames = (('numprocesses', 'warmup_delay', 'working_dir', 'uid', 'gid', 'send_hup', 'stop_signal', 'stop_children', 'shell', 'shell_args', 'env', 'max_retry', 'cmd', 'args', 'respawn', 'graceful_timeout', 'executable', 'use_sockets', 'priority', 'copy_env', 'singleton', 'stdout_stream_conf', 'on_demand', 'stderr_stream_conf', 'max_age', 'max_age_variance', 'close_child_stdin', 'close_child_stdout', 'close_child_stderr', 'use_papa') + tuple(options.keys()))
    if (not working_dir):
        working_dir = util.get_working_dir()
    self.working_dir = working_dir
    self.processes = {
        
    }
    self.shell = shell
    self.shell_args = shell_args
    self.uid = uid
    self.gid = gid
    if self.copy_env:
        self.env = os.environ.copy()
        if self.copy_path:
            path = os.pathsep.join(sys.path)
            self.env['PYTHONPATH'] = path
        if (env is not None):
            self.env.update(env)
    else:
        if self.copy_path:
            raise ValueError('copy_env and copy_path must have the same value')
        self.env = env
    if self.virtualenv:
        util.load_virtualenv(self, py_ver=virtualenv_py_ver)
    if ((self.env is not None) and ('PYTHONPATH' in self.env)):
        for path in self.env['PYTHONPATH'].split(os.pathsep):
            if (path in sys.path):
                continue
            site.addsitedir(path)
    self.rlimits = rlimits
    self.send_hup = send_hup
    self.stop_signal = stop_signal
    self.stop_children = stop_children
    self.sockets = self.evpub_socket = None
    self.arbiter = None
    self.hooks = {
        
    }
    self._resolve_hooks(hooks)
    self._found_wids = []
    if self.use_papa:
        with papa.Papa() as p:
            base_name = 'circus.{0}.*'.format(name.lower())
            running = p.list_processes(base_name)
            self._found_wids = [int(proc_name[(len(base_name) - 1):]) for proc_name in running]

dataset/ETHPy150Open circus-tent/circus/circus/watcher.py Watcher.__init__/original