def __init__(self, name, image, command=None, links=None, volumes=None,
                 publish_ports=None, expose_ports=None, environment=None,
                 hostname=None, dns=None, start_delay=0, neutral=False,
                 holy=False, container_name=None):
        self.name = name
        self.hostname = hostname
        self.dns = dns
        self.image = image
        self.command = command
        self.links = _dictify(links, 'links')
        self.volumes = _dictify(volumes, 'volumes', lambda x: os.path.abspath(_populate_env(x)))
        self.publish_ports = _dictify(publish_ports, 'ports')
        self.neutral = neutral
        self.holy = holy
        self.container_name = container_name

        if neutral and holy:
            raise BlockadeConfigError("container must not be 'neutral' and 'holy' at the same time")

        # check start_delay format
        if not (isinstance(start_delay, numbers.Number) and 0 >= start_delay):
            raise BlockadeConfigError("'start_delay' must be numeric and non-negative")

        self.start_delay = start_delay

        # all published ports must also be exposed
        self.expose_ports = list(set(
            int(port) for port in
            (expose_ports or []) + list(self.publish_ports.values())
        ))
        self.environment = _dictify(environment, _populate_env, _populate_env)
dataset/ETHPy150Open dcm-oss/blockade/blockade/config.py/BlockadeContainerConfig.__init__/swapped operands of `>=`