# from typing import Dict, List, Union, Optional # from pydantic import BaseModel, Field # # class JSONSchema(BaseModel): # type: str # format: Union[str, None] = None # items: Union['JSONSchema', None] = None # properties: Dict[str, 'JSONSchema'] = Field(default_factory=dict) # additionalProperties: Union[bool, 'JSONSchema'] = True # required: List[str] = Field(default_factory=list) # # class Config: # arbitrary_types_allowed = True # # class TaskTree(BaseModel): # description: Optional[str] # python_fn_signature: str # sub_fns: List['TaskTree'] # # JSONSchema.update_forward_refs() # TaskTree.update_forward_refs() #