fromtypingimportOptional,Tuplefrompypika.termsimportTerm,ValueWrapperfromtortoise.indexesimportPartialIndexclassPostgreSQLIndex(PartialIndex):INDEX_CREATE_TEMPLATE=("CREATE INDEX {exists}{index_name} ON {table_name} USING{index_type}({fields}){extra};")def__init__(self,*expressions:Term,fields:Optional[Tuple[str,...]]=None,name:Optional[str]=None,condition:Optional[dict]=None,):super().__init__(*expressions,fields=fields,name=name)ifcondition:cond=" WHERE "items=[]fork,vincondition.items():items.append(f"{k} = {ValueWrapper(v)}")cond+=" AND ".join(items)self.extra=cond