def child_context(self, *args, **kwargs):
        """
        Context setup first in child process, before returning from start() call in parent.
        Result is passed in as argument of update
        :return:
        """

        # Now we can extract config values
        expected_args = {
            'services': [],
            'topics': [],  # bwcompat
            'subscribers': [],
            'publishers': [],
            'params': [],
            # TODO : all of them !
        }

        ifargs = {
            arg: self.config_handler.config.get(arg.upper(), default) for arg, default in expected_args.items()
        }

        # overriding with kwargs
        ifargs.update(kwargs)

        # storing passed args in config in case of reset

        # calling setup on child context enter call
        if self.interface is None:
            #for BW compat
            # TODO : change API to use the child_context from pyzmp coprocess
            self.setup(*args, **ifargs)

        with super(PyrosBase, self).child_context(*args, **kwargs) as cctxt:
            yield cctxt
Context setup first in child process, before returning from start() call in parent.
        Result is passed in as argument of update
        :return: