This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author vinay.sajip
Recipients alexis, eric.araujo, flox, francismb, higery, jlove, nadeem.vawda, paul.moore, pitrou, python-dev, rpetrov, tarek, vinay.sajip, westley.martinez
Date 2011-11-05.21:35:37
SpamBayes Score 1.5475274e-09
Marked as misclassified No
Message-id <1320528928.78537.YahooMailNeo@web25801.mail.ukl.yahoo.com>
In-reply-to <1320511682.91.0.217976628659.issue13193@psf.upfronthosting.co.za>
Content
>[citation needed].  First, mutable objects with a global name (let’s not use
> "variable" for Python) are not unconditionally evil; see sys.path and
> sys.modules for example.  Second, how concretely would you change that
> implementation?  We need shared caches for functions in packaging.database.
> They should be built on demand, and should be cleared by higher-level
> libraries or applications when the filesystem has changed (after an
> installation or removal for example).  With these constraints, do you have
> implementation ideas?

I agree, we shouldn't have a knee-jerk reaction to global bindings - they definitely
have their uses, and I'm sometimes driven to defend their use in logging. Since
you ask, though - one possible approach might be: Have those bindings be
instance variables in a Database class in database.py, and have a module-level
binding to an instance of it. Then, tests can have their own instance which is
thrown away aftereach test.

This problem was not trivial to find, because it appears that test execution order
may not be entirely deterministic: I couldn't see any other reason why the flag
would have different values on different machines. I believe that you (Éric) had
difficulty reproducing it. Perhaps we don't need to re-implement, but instead
add more tests around cache invalidation and cache contents.
History
Date User Action Args
2011-11-05 21:35:38vinay.sajipsetrecipients: + vinay.sajip, paul.moore, pitrou, nadeem.vawda, tarek, eric.araujo, rpetrov, flox, alexis, westley.martinez, python-dev, jlove, higery, francismb
2011-11-05 21:35:37vinay.sajiplinkissue13193 messages
2011-11-05 21:35:37vinay.sajipcreate