code: def are_compatible_api_schemas(
      self, client_schema: dict, server_schema: dict
  ) -> bool:
      def check_schema_props(
          client_props: dict, server_props: dict
      ) -> bool:
          different_props = []
          for name, definition in client_props.items():
              if name == "type":
                  continue
              if name not in server_props:
                  LOGGER.warning(
                      f"Client property {name} not found in server properties. "
                      "Make sure your API compatibility"
                  )
                  different_props.append(name)
                  continue
              elif definition != server_props[name]:
                  if isinstance(definition, dict) and isinstance(
                      server_props[name], dict
                  ):
                      if not check_schema_props(
                          definition, server_props[name]
                      ):
                          return False
          return len(different_props) < len(client_props) / 2
  
      client_props = self._expands_schema(
          client_schema["properties"],
          client_schema.get("definitions", {}),
      )
      server_props = self._expands_schema(
          server_schema["properties"],
          server_schema.get("definitions", {}),
      )
  
      if client_props == server_props:
          return True
  
      return check_schema_props(client_props, server_props)
  
file_path: argilla/tests/unit/client/sdk/models/conftest.py
imports: import logging
  from typing import Any, Dict, List
  import pytest
label_desc: Use image node_id 4 for calling the Helpers obj's underlying member method code with example usage: obj.are_compatible_api_schemas(client_schema, server_schema) and returns: check_schema_props, unknown, True, False