Thank you, Mike. Hmm... I tried exactly that technique, the last time I found myself with a similar need, a year or two ago. I seem to remember it only caused the problem to regress one step farther. But I must have missed something and will probably give it another shot.
Any suggestions on how to replace the dict in one of these situations with a defaultdict? Just override __setitem__ and __getitem__ ? - Eric On Mar 12, 10:26 pm, Michael Bayer <mike...@zzzcomputing.com> wrote: > On Mar 10, 2011, at 6:20 PM, Eric Ongerth wrote: > > > So, jek, if you're listening, or anyone else -- is there an already > > existing, working implementation of a Dict of Lists or Dict of Sets > > collection class? > > the association_proxy is always there to flatten the "object" in the middle > of two relationships typically along an association - so just > A->relationship->dict of B->relationship->set of C, association proxy from A > to B.cs. > > > > > On Mar 10, 1:55 pm, Eric Ongerth <ericonge...@gmail.com> wrote: > >> Ach, I did it again... proceeded as if column_mapped_collection and > >> attribute_mapped_collection provide collection classes that are dicts > >> of lists. No, they're just dicts of scalar values! > > >> Again and again I need dicts of lists. They seem to really fit the > >> data that I tend to work with; A's related to C's indexed by B's (the > >> B typically indicating the *type* of relationship between the A and > >> the C). > > >> Eventually I need to work my own implementation of dict-of-lists and > >> dict-of-dicts collection classes up to full strength so I can share > >> them as a recipe or extension or something. > > >> On Mar 10, 1:02 pm, Eric Ongerth <ericonge...@gmail.com> wrote: > > >>> I make occasional use of alternate collection classes for my > >>> sqlalchemy relationships. For example, column_mapped_collection. The > >>> existing collection classes in sqlalchemy.orm.collections work really > >>> well for me; I have a lot of relational data that very naturally > >>> belongs in dicts rather than lists because it makes sense as one thing > >>> indexed or mapped by another. > > >>> I find that I often need to add an item to one of these dict-mapped > >>> collections and would rather not have to check whether the key already > >>> exists in the dict. So I'm doing, essentially: > >>> collection.setdefault(key, []).append(value). > > >>> As a matter of syntactic sugar (which alternative collection classes > >>> already are, anyway) I would like to have collection classes backed by > >>> dicts with the capability of python's defaultdict, so that I could > >>> write more simply, and with equivalent results: > >>> collection[key].append(value) > > >>> I understand how to create my own collection class which will behave > >>> as desired. My question is, has anyone already got code for this that > >>> I could borrow rather than reinvent the wheel? Thanks in advance. -- > >>> Eric > > > -- > > You received this message because you are subscribed to the Google Groups > > "sqlalchemy" group. > > To post to this group, send email to sqlalchemy@googlegroups.com. > > To unsubscribe from this group, send email to > > sqlalchemy+unsubscr...@googlegroups.com. > > For more options, visit this group > > athttp://groups.google.com/group/sqlalchemy?hl=en. -- You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To post to this group, send email to sqlalchemy@googlegroups.com. To unsubscribe from this group, send email to sqlalchemy+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sqlalchemy?hl=en.