def create(self, blockade_id=None, verbose=False, force=False):
        container_state = {}

        if blockade_id:
            if re.match(r"^[a-zA-Z0-9-.]+$", blockade_id) is None:
                raise BlockadeError("'%s' is an invalid blockade ID. "
                                    "You may use only [a-zA-Z0-9-.]")
        else:
            blockade_id = self.state_factory.get_blockade_id()

        num_containers = len(self.config.sorted_containers)

        # we can check if a state file already exists beforehand
        if self.state_factory.exists():
            raise AlreadyInitializedError('a blockade already exists in here - '
                                          'you may want to destroy it first')

        def vprint(msg):
            if verbose:
                sys.stdout.write(msg)
                sys.stdout.flush()

        for idx, container in enumerate(self.config.sorted_containers):
            name = container.name

            vprint("\r[%d/%d] Starting '%s' " % (idx+1, num_containers, name))

            # in case a startup delay is configured
            # we have to wait in here
            if container.start_delay > 0:
                vprint('(delaying for %s seconds)' % (container.start_delay))
                time.sleep(container.start_delay)

            container_id = self._start_container(blockade_id, container, force)
            device = self._init_container(container_id, name)

            # store device in state file
            container_state[name] = {'device': device, 'id': container_id}

        # clear progress line
        vprint('\r')

        # try to persist container states
        state = self.state_factory.initialize(container_state, blockade_id)

        container_descriptions = []
        for container in self.config.sorted_containers:
            description = self._get_container_description(state, container.name)

            container_descriptions.append(description)

        return container_descriptions
dataset/ETHPy150Open dcm-oss/blockade/blockade/core.py/Blockade.create/original