def _init_session(self):
        '''
        Delayed initialization of Requests Session object.

        This is done in order *not* to share the Session object across
        a multiprocessing pool.
        '''
        self._real_session = requests.Session()
        # FIXME: this fails when one runs HTTPS on non-standard ports,
        # e.g. https://tissuemaps.example.org:8443/
        if self._port == 443:
            logger.debug('initializing HTTPS session')
            self._real_base_url = 'https://{host}:{port}'.format(host=self._host, port=self._port)
            self._real_adapter = self._real_session.adapters['https://']
            if self._ca_bundle is not None:
                logger.debug('use CA bundle: %s', self._ca_bundle)
                ca_bundle = os.path.expanduser(os.path.expandvars(self._ca_bundle))
                if not os.path.exists(ca_bundle):
                    raise OSError(
                        'CA bundle file does not exist: {0}'.format(ca_bundle)
                    )
                self._real_session.verify = ca_bundle
        else:
            logger.debug('initializing HTTP session')
            self._real_base_url = 'http://{host}:{port}'.format(host=self._host, port=self._port)
            self._real_adapter = self._real_session.adapters['http://']
        self._real_session.get(self._real_base_url)
        self._real_session.headers.update({'Host': self._host})
        self._login(self._username, self._password)
Delayed initialization of Requests Session object.

        This is done in order *not* to share the Session object across
        a multiprocessing pool.