""" Patch gradio_client/utils.py para tratar schema=bool em get_type(). JSON Schema permite additionalProperties: false (bool), mas gradio_client assume dict. """ import re path = "/usr/local/lib/python3.11/site-packages/gradio_client/utils.py" with open(path) as f: src = f.read() # Encontra a definição de get_type (pode estar indentada) e injeta guard no início # Antes: def get_type(schema): # Depois: def get_type(schema): # if not isinstance(schema, dict): return "Any" patched = re.sub( r'([ \t]*def get_type\(schema\):\n)', r'\1\g<1> if not isinstance(schema, dict): return "Any"\n'.replace( r'\g<1>', '' ), src, count=1, ) # Fallback: substituição simples se regex falhar if patched == src: for variant in [ "def get_type(schema):\n", " def get_type(schema):\n", " def get_type(schema):\n", ]: if variant in src: indent = variant[: len(variant) - len(variant.lstrip())] guard = f"{indent} if not isinstance(schema, dict): return \"Any\"\n" patched = src.replace(variant, variant + guard, 1) print(f"Patched with variant: {repr(variant)}") break if patched == src: print("WARNING: pattern not found, printing context around 'get_type':") for i, line in enumerate(src.splitlines()): if "get_type" in line: print(f" line {i}: {repr(line)}") # Não falha o build — app pode funcionar mesmo sem o patch else: with open(path, "w") as f: f.write(patched) print("gradio_client patched OK")