Hi - We are going to rename SQLDB._instances to make it clearer (see attached thread).
Since _instances is an "internal" name to a gluon defined object, there should be no backward compatibility issues, but I want to be sure no one is affected. If anyone has an opinion on what would be the "clearest" name, I'd like to hear. This affects code in gluon/sql.py only (as far as I see). What this variable holds: thread id's of processes which have open databases. Proposed new name: 1. _by_thread so that SQLDB._by_thread[pid] shows what connections a process has open, Let us know any objections / feedback. Regards, Yarko ---------- Forwarded message ---------- From: Massimo Di Pierro <mdipie...@cs.depaul.edu> Date: Fri, Mar 13, 2009 at 4:09 PM Subject: Re: suggest renaming SQLDB._instances... To: Yarko Tymciurak <yark...@gmail.com> No objection On Mar 13, 2009, at 4:07 PM, Yarko Tymciurak wrote: Hi Massimo - See below. I think renaming _instances to perhaps _by_thread or _by_process or _by_pid would be really helpful. Can we talk about it? Thanks, Yarko P.s. --- _connection_pools seems really clear; I'm looking at code to see if I understand what _folders is intended to be, what it is for... ---------- Forwarded message ---------- From: Yarko Tymciurak <yark...@gmail.com> Date: Fri, Mar 13, 2009 at 3:58 PM Subject: Re: [web2py:17984] Re: the need for an ID field To: web2py@googlegroups.com On Fri, Mar 13, 2009 at 8:58 AM, DenesL <denes1...@yahoo.ca> wrote: > > On Mar 13, 8:27 am, mdipierro <mdipie...@cs.depaul.edu> wrote: > > They are listed in > > > > SQLDB._instances[thread.id] > > > > Look into SQLDB._close_all_instances in sql.py > > I know there is class SQLDB in gluon.sql, but what is this SQLDB > object? DenesL - sounds like you need to get yourself 2 things: ipython (really! will help much) e.g.: > In [3]: d={'a':1,'b':2} > > >> In [4]: d > > Out[4]: {'a': 1, 'b': 2} > > >> In [5]: d. [type a tab to get completion, and see result below:] > > d.__class__ d.__gt__ d.__reduce_ex__ d.items > > d.__cmp__ d.__hash__ d.__repr__ d.iteritems > > d.__contains__ d.__init__ d.__setattr__ d.iterkeys > > d.__delattr__ d.__iter__ d.__setitem__ d.itervalues > > d.__delitem__ d.__le__ d.__str__ d.keys > > d.__doc__ d.__len__ d.clear d.pop > > d.__eq__ d.__lt__ d.copy d.popitem > > d.__ge__ d.__ne__ d.fromkeys d.setdefault > > d.__getattribute__ d.__new__ d.get d.update > > d.__getitem__ d.__reduce__ d.has_key d.values > > Then the second thing you might want to get - WingIDE (are you coming to PyCon? Wingware is giving away pro licenses to anyone who participates in a sprint;) --- Probably Eclipse would help here equivalently, but I didn't have too much happiness using eclipse w/ python (so I use Wing)... Look at gluon/sql.py, class SQLDB(SQLStorage) _instances={} > And, furthermore, if I have db1, db2, ... > len(SQLDB._instances) == 1 (???) I think the naming is unfortunate here. It is completely reasonable to read "SQLDB._instances" and expect you are looking at the number of database instances. Unfortunately, this is not what this gives you. This says you have only one SQLDB thread. You want to look at the number of connections that thread has, e.g. In [21]: SQLDB._instances.keys() Out[21]: [4208] In [22]: len(SQLDB._instances[4208]) Out[22]: 2 So you want something like: In [25]: for instance in SQLDB._instances.keys(): ....: len(SQLDB._instances[instance]) ....: pass ....: Out[25]: 2 A better choice of name for this would maybe be: SQLDB._threads Then you would be reading things like: len(SQLDB._threads.keys()) to say "how many threads have open databases? (which reads correctly) and len(SQLDB_treads[thread_n]) to say "how many open databases does thread_n have? and len(db2._threads.keys()) to say "how many threads have db2 open? I'll talk with Massimo about renaming this. As it is, it's an "internal" (underscore) variable, so backward compatibility should not be an issue. There's already a _threads list in wsgiserver, and this is a dict (you can return the SQLDB objects for a thread... I think we can find some name that makes this clear. In the meantime, I hope this helps. Regards, Yarko P.S. --- I think I like this name; see what you think: In [25]: for thread in SQLDB._by_thread.keys(): ....: len(SQLDB._by_thread[thread]) ....: pass ....: Out[25]: 2 > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "web2py Web Framework" group. To post to this group, send email to web2py@googlegroups.com To unsubscribe from this group, send email to web2py+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/web2py?hl=en -~----------~----~----~----~------~----~------~--~---