|
|
|
""" |
|
Patch for gradio_client.utils._json_schema_to_python_type function |
|
to handle boolean schema values properly. |
|
|
|
This patch adds a check for boolean schema values before trying to access them as dictionaries. |
|
""" |
|
|
|
import importlib |
|
import logging |
|
|
|
logger = logging.getLogger(__name__) |
|
|
|
def apply_patch(): |
|
"""Apply the monkey patch to fix the TypeError in gradio_client.utils._json_schema_to_python_type.""" |
|
try: |
|
|
|
import gradio_client.utils as utils |
|
|
|
|
|
original_func = utils._json_schema_to_python_type |
|
|
|
|
|
def patched_json_schema_to_python_type(schema, defs=None): |
|
"""Patched version that handles boolean schemas.""" |
|
if schema is None: |
|
return "None" |
|
|
|
|
|
if isinstance(schema, bool): |
|
return str(schema).lower() |
|
|
|
|
|
return original_func(schema, defs) |
|
|
|
|
|
utils._json_schema_to_python_type = patched_json_schema_to_python_type |
|
|
|
|
|
original_get_type = utils.get_type |
|
|
|
def patched_get_type(schema): |
|
"""Patched version of get_type that handles boolean schemas.""" |
|
if isinstance(schema, bool): |
|
return "bool" |
|
return original_get_type(schema) |
|
|
|
utils.get_type = patched_get_type |
|
|
|
logger.info("Successfully applied patch to gradio_client.utils._json_schema_to_python_type") |
|
return True |
|
except Exception as e: |
|
logger.error(f"Failed to apply patch: {e}") |
|
import traceback |
|
logger.debug(traceback.format_exc()) |
|
return False |
|
|
|
if __name__ == "__main__": |
|
|
|
logging.basicConfig(level=logging.DEBUG) |
|
|
|
|
|
if apply_patch(): |
|
print("Patch applied successfully.") |
|
else: |
|
print("Failed to apply patch.") |