Implement lazy initialization of global "portdb", "settings" and other
authorZac Medico <zmedico@gentoo.org>
Thu, 26 Jun 2008 05:28:04 +0000 (05:28 -0000)
committerZac Medico <zmedico@gentoo.org>
Thu, 26 Jun 2008 05:28:04 +0000 (05:28 -0000)
commit166d53b931cbfa71fa63d732075737bd0012a90b
treeb11d8bb5e4053a0139d9fbcef2c4589521880e28
parent9a58611323e313a7a5d48fa65a316a3ffedc3954
Implement lazy initialization of global "portdb", "settings" and other
variables that pollute the portage module. This works by initializing
the global variables with dummy "proxy" objects that serve as a means
to trigger lazy initialization. As soon as the first attribute access
or method call occurs on one of the proxy objects, it causes all the
proxy objects to be replaced with the real ones.

It's possible for an unsupported attribute access or method call on a
proxy object to trigger an error, leading to breakage. However, hopefully
these such corner cases will negligible (only time will tell).

svn path=/main/trunk/; revision=10798
pym/portage/__init__.py
pym/portage/util.py