code: def _create_client(provider_metadata, client_metadata, verify_ssl=True):
      
      client = oic.Client(
          client_authn_method=CLIENT_AUTHN_METHOD, verify_ssl=verify_ssl
      )
  
      # Provider configuration information
      if "authorization_endpoint" in provider_metadata:
          # no dynamic discovery necessary
          client.handle_provider_config(ProviderConfigurationResponse(**provider_metadata),
                                        provider_metadata["issuer"])
      else:
          # do dynamic discovery
          client.provider_config(provider_metadata["issuer"])
  
      # Client information
      if "client_id" in client_metadata:
          # static client info provided
          client.store_registration_info(RegistrationRequest(**client_metadata))
      else:
          # do dynamic registration
          client.register(client.provider_info['registration_endpoint'],
                          **client_metadata)
  
      client.subject_type = (client.registration_response.get("subject_type") or
                             client.provider_info["subject_types_supported"][0])
      return client
docs: Create a pyoidc client instance.
      :param provider_metadata: provider configuration information
      :type provider_metadata: Mapping[str, Union[str, Sequence[str]]]
      :param client_metadata: client metadata
      :type client_metadata: Mapping[str, Union[str, Sequence[str]]]
      :return: client instance to use for communicating with the configured provider
      :rtype: oic.oic.Client