class_docstr: Mixin containing operation common for both backend and leaderboard api clients
code: def _create_client_config(self, api_token, backend_client):
      client_config_args = self._get_client_config_args(api_token)
      config = (
          backend_client.api.getClientConfig(**client_config_args)
          .response()
          .result
      )
  
      if hasattr(config, "pyLibVersions"):
          min_recommended = getattr(
              config.pyLibVersions, "minRecommendedVersion", None
          )
          min_compatible = getattr(
              config.pyLibVersions, "minCompatibleVersion", None
          )
          max_compatible = getattr(
              config.pyLibVersions, "maxCompatibleVersion", None
          )
      else:
          click.echo(
              "ERROR: This client version is not supported by your Neptune instance. Please contant Neptune support.",
              sys.stderr,
          )
          raise UnsupportedClientVersion(
              self.client_lib_version, None, "0.4.111"
          )
  
      multipart_upload_config_obj = getattr(
          config, "multiPartUpload", None
      )
      has_multipart_upload = getattr(
          multipart_upload_config_obj, "enabled", False
      )
      if not has_multipart_upload:
          multipart_upload_config = None
      else:
          min_chunk_size = getattr(
              multipart_upload_config_obj, "minChunkSize"
          )
          max_chunk_size = getattr(
              multipart_upload_config_obj, "maxChunkSize"
          )
          max_chunk_count = getattr(
              multipart_upload_config_obj, "maxChunkCount"
          )
          max_single_part_size = getattr(
              multipart_upload_config_obj, "maxSinglePartSize"
          )
          multipart_upload_config = MultipartConfig(
              min_chunk_size,
              max_chunk_size,
              max_chunk_count,
              max_single_part_size,
          )
  
      return ClientConfig(
          api_url=config.apiUrl,
          display_url=config.applicationUrl,
          min_recommended_version=version.parse(min_recommended)
          if min_recommended
          else None,
          min_compatible_version=version.parse(min_compatible)
          if min_compatible
          else None,
          max_compatible_version=version.parse(max_compatible)
          if max_compatible
          else None,
          multipart_config=multipart_upload_config,
      )
  
file_path: neptune-client/src/neptune/legacy/internal/api_clients/hosted_api_clients/mixins.py
imports: import logging
  import socket
  import sys
  import click
  from bravado.client import SwaggerClient
  from bravado_core.formatter import SwaggerFormat
  from packaging import version
  from six.moves import urllib
  from neptune.legacy.exceptions import CannotResolveHostname, DeprecatedApiToken, UnsupportedClientVersion
  from neptune.legacy.internal.api_clients.client_config import ClientConfig, MultipartConfig
  from neptune.legacy.internal.api_clients.hosted_api_clients.utils import legacy_with_api_exceptions_handler
label_desc: Use image node_id 3 for calling the HostedNeptuneMixin obj's underlying member method code with example usage: obj._create_client_config(api_token, backend_client) and returns: ClientConfig