Page "Proposals/BEP-0003" was changed by olemis Diff URL: <https://issues.apache.org/bloodhound/wiki/Proposals/BEP-0003?action=diff&version=27> Revision 27 Comment: [BEP-0003] Product environment as parametric singletons . Summary of debate in #bloodhound @ freenode and feedback from brane . Changes: -------8<------8<------8<------8<------8<------8<------8<------8<-------- Index: Proposals/BEP-0003 ========================================================================= --- Proposals/BEP-0003 (version: 26) +++ Proposals/BEP-0003 (version: 27) @@ -69,6 +69,30 @@ TypeError: Initializer must be called with trac.env.Environment instance as first argument (got multiproduct.env.ProductEnvironment instance instead) + +}}} + +''Product environments'' are [http://www.jot.fm/issues/issue_2007_03/column2/ parametric singletons] on the combination of environment and product prefix . In other words this means that + +{{{ +#!py + +>>> ProductEnvironment(env, prefix) is ProductEnvironment(env, prefix) +True + +}}} + + +{{{ +#!div class="well" + +{{{ +#!span class="label label-info" + + Implementation notes +}}} + +In order to make this happen and yet avoid object explosion , some caching strategy (e.g. [http://en.wikipedia.org/wiki/Cache_algorithms#Least_Recently_Used LRU cache] like [http://docs.python.org/dev/library/functools.html#functools.lru_cache functools.lru_cache] or equivalent) should be installed in place , maybe combined with [http://docs.python.org/2.7/library/weakref.html weak references] . }}} -------8<------8<------8<------8<------8<------8<------8<------8<--------
-- Page URL: <https://issues.apache.org/bloodhound/wiki/Proposals/BEP-0003> Apache Bloodhound <https://issues.apache.org/bloodhound/> The Apache Bloodhound (incubating) issue tracker This is an automated message. Someone added your email address to be notified of changes on 'Proposals/BEP-0003' page. If it was not you, please report to .