
On Thu, Feb 17, 2005 at 01:27:30PM -0600, J Turner wrote:
Andrea,
Thanks for your suggestions; sorry I've taken so long to get back to them, but I haven't had time to work on pgasync until now...
No problem, take your time. Sorry for not having discussed things last time in IRC, but I was busy fighting with the mailing lists ;)
I've patched that in, thanks.
You're welcome ;).
This is fixed.
Ok fine!
Nope, I don't think so.
Ok, I also couldn't find anything in the docs, perhaps %u should start raising a deprecation warning, it's way confusing when two things do the same thing and you never know if they're really the same thing ;)
This is fixed as well.
fine, and this part I already fixed in my app too 8) I had no idea the ; was added by the lib. it's actually the only part I changed after the pgasync test, along with the compatibility code for the deferreds in interaction that should allow me now to exchange psycopg2 with pgasync back and forth with full compatibility.
It's not trival to determine whether or not something gets resolved. If it's a keyword argument situation, then I need to search the format string for some variation of %(keyword)s. If it's just tuple-style, then I need to count the number of %s/d/whatevers and determine whether or not it's beyond the limit.
This seems ugly, and needlessly expensive for a corner case; I think the right answer is, only pass things to format() that are intended to be formatted and made safe for insertion into SQL.
But, then again, maybe I'm misunderstanding you.
You got it perfectly right, and I see your point, it'd be an unnecessary slowdown to parse the string too. But you could silenty convert to string if you can't find the conversion type. In this case I'm suggesting to actually make it less strict but it simplfy my code a lot. I've tons of cases where I've a kwargs filled with stuff that is needed by lots of chained deferreds. Now the sql one is using a few of the kwargs entries, and then later on the email deferred uses other entries. So if I can work with a single kwargs that has all the arguments collected while the form action starts, the code is a lot simpler. So my suggestion is not to give it up, but to try to convert to string, and format it like string if __str__ did its job. Comments? As soon as we sorted out this last bit, I'll give it a new spin and perhaps it'll just work without a changing anything on my app.