Hi, John, Your comments below are all reasonable. However, I would like to point out that the purpose of my example was to provide a demonstration of an algorithm, not an industrial-grade solution to every aspect of the original poster's problem. I am confident the original poster can deal with these aspects of his problem space on his own.
In article <[EMAIL PROTECTED]>, John Machin <[EMAIL PROTECTED]> wrote: > [...] > > . while new_level < len(state): > > . state.pop() > > Hmmm ... consider rewriting that as the slightly less obfuscatory > > while len(state) > new_level: > state.pop() This seems to me to be an aesthetic consideration only; I'm not sure I understand your rationale for reversing the sense of the comparison. Since it does not change the functionality, it's hardly worthy of complaint, but I don't see any improvement, either. > A warning message if there are too many "-" characters might be a good > idea: > > [foo] > |-bar > |-zot > |---plugh Perhaps so. Again, the original poster will have to decide what should be the correct response to input of this sort; at present, the implementation is tolerant of such variations, without loss of generality. > And if the input line matches neither regex? I believe it should be clear that such lines are ignored. Again, this is an opportunity for the original poster to determine an alternative response -- perhaps an exception could be raised, if that is his desire. The problem specification did not constrain this case. > > To call this, pass a file-like object to parse_folders(), e.g.: > > > > test1 = ''' > > [New client]. > > Won't work with the dot on the end. My mistake. The period was a copy-and-paste artifact, which I missed. Cheers, -M -- Michael J. Fromberger | Lecturer, Dept. of Computer Science http://www.dartmouth.edu/~sting/ | Dartmouth College, Hanover, NH, USA -- http://mail.python.org/mailman/listinfo/python-list