As mentioned a while ago, I was trying to build a chaining mechanism into TwistedSNMP's OIDStore mechanism, the idea being that you could mix-and-match OIDStores so that you could compose test-cases readily from pre-built OIDStore fragments.
Problem was that the code became hideous. It's just a graph-traversal algorithm, but the code wasn't written with graph-traversal in mind. It was written fairly close to a dictionary's API with simple APIs for retrieval and setting values, and no provision for chaining up and down between tree levels.
So, after checking it all into a branch which will now be abandoned, I've reimplemented the functionality I need much more simply as a method that allows for easy updating of the tree, and another that provides an iterator to allow one OIDStore to serve as an update source for another. It's simple, robust, and, of course, wasteful, but it works nicely, and should be completely sufficient to the task at hand.