def __init__(self, **kwargs):
if not logging.getLogger(__name__).isEnabledFor(logging.DEBUG):<EOL><INDENT>requests.packages.urllib3.disable_warnings()<EOL><DEDENT>self.kwargs = kwargs.copy()  <EOL>with requests.Session() as self.session:<EOL><INDENT>self._default_headers()  <EOL>self.session.auth = kwargs.pop('<STR_LIT>', self.session.auth)<EOL>self.session.cert = kwargs.pop('<STR_LIT>', self.session.cert)<EOL>self.session.cookies = kwargs.pop(<EOL>'<STR_LIT>', self.session.cookies<EOL>)<EOL>self.session.headers.update(kwargs.pop('<STR_LIT>', {}))<EOL>self.session.params = kwargs.pop(<EOL>'<STR_LIT>', self.session.params<EOL>)<EOL>self.session.proxies = kwargs.pop(<EOL>'<STR_LIT>', self.session.proxies<EOL>)<EOL>self.session.stream = kwargs.pop(<EOL>'<STR_LIT>', self.session.stream<EOL>)<EOL>self.session.trust_env = kwargs.pop(<EOL>'<STR_LIT>', self.session.trust_env<EOL>)<EOL>self.session.verify = kwargs.pop(<EOL>'<STR_LIT>', self.session.verify<EOL>)<EOL>_kwargs = {}<EOL>for x in ['<STR_LIT>', '<STR_LIT>', '<STR_LIT>',<EOL>'<STR_LIT>']:<EOL><INDENT>if x in kwargs:<EOL><INDENT>_kwargs[x] = kwargs.pop(x)<EOL><DEDENT><DEDENT>self.adapter = HTTPAdapter(**_kwargs)<EOL>self.session.mount('<STR_LIT>', self.adapter)<EOL>self.session.mount('<STR_LIT>', self.adapter)<EOL>self.auto_refresh = kwargs.pop('<STR_LIT>', True)<EOL>self.credentials = kwargs.pop('<STR_LIT>', None)<EOL>self.enforce_json = kwargs.pop(<EOL>'<STR_LIT>', False<EOL>)<EOL>self.port = kwargs.pop('<STR_LIT:port>', <NUM_LIT>)<EOL>self.raise_for_status = kwargs.pop(<EOL>'<STR_LIT>', False<EOL>)<EOL>self.url = kwargs.pop(<EOL>'<STR_LIT:url>', '<STR_LIT>'<EOL>)<EOL>if len(kwargs) > <NUM_LIT:0>:  <EOL><INDENT>raise UnexpectedKwargsError(kwargs)<EOL><DEDENT>if self.credentials:<EOL><INDENT>self._apply_credentials(<EOL>auto_refresh=self.auto_refresh,<EOL>credentials=self.credentials,<EOL>headers=self.session.headers<EOL>)<EOL><DEDENT><DEDENT>
Persist Session() attributes and implement connection-pooling.

        Built on top of the ``Requests`` library, ``HTTPClient`` is an
        abstraction layer for preparing and sending HTTP `requests` to the
        Application Framework REST APIs and handling `responses`. All
        ``Requests`` are prepared as ``Session`` objects, with the option
        to persist certain attributes such as ``cert``, ``headers``,
        ``proxies``, etc. ``HTTPAdapter`` is implemented to enable more
        granular performance and reliability tuning.

        Parameters:
            auto_refresh (bool): Perform token refresh following HTTP 401 response from server. Defaults to ``True``.
            auto_retry (bool): Retry last failed HTTP request following a token refresh. Defaults to ``True``.
            credentials (Credentials): :class:`~pancloud.credentials.Credentials` object. Defaults to ``None``.
            enforce_json (bool): Require properly-formatted JSON or raise :exc:`~pancloud.exceptions.PanCloudError`. Defaults to ``False``.
            port (int): TCP port to append to URL. Defaults to ``443``.
            raise_for_status (bool): If ``True``, raises :exc:`~pancloud.exceptions.HTTPError` if status_code not in 2XX. Defaults to ``False``.
            url (str): URL to send API requests to - gets combined with ``port`` and :meth:`~request` ``path`` parameter. Defaults to ``None``.

        Args:
            **kwargs: Supported :class:`~requests.Session` and :class:`~requests.adapters.HTTPAdapter` parameters.