def getquoted(self): # this is the important line: note how every object in the # list is adapted and then how getquoted() is called on it qobjs = [str(psycoadapt(o).getquoted()) for o in self._seq] return '(' + ', '.join(qobjs) + ')'
pass def getquoted(self): # this is the important line: note how every object in the # list is adapted and then how getquoted() is called on it qobjs = [str(psycoadapt(o).getquoted()) for o in self._seq] return '(' + ', '.join(qobjs) + ')' __str__ = getquoted # add our new adapter class to psycopg list of adapters register_adapter(tuple, SQL_IN) register_adapter(float, AsIs) register_adapter(int, AsIs) # usually we would call: # # conn = psycopg.connect("...") # curs = conn.cursor() # curs.execute("SELECT ...", (("this", "is", "the", "tuple"),)) # # but we have no connection to a database right now, so we just check # the SQL_IN class by calling psycopg's adapt() directly: if __name__ == '__main__': print "Note how the string will be SQL-quoted, but the number will not:" print psycoadapt(("this is an 'sql quoted' str\\ing", 1, 2.0))