Floris Bruynooghe <floris.bruynooghe <at> gmail.com> writes: > On Tue, Dec 08, 2009 at 08:53:18PM -0800, Michael Mysinger wrote: > > I don't know what notation this versioning schema was trying for, especially in regards to what the +'s mean: > > N.N[.N]+[abc]N[.N]+[.postN+][.devN+] > > > The full regex (stripped from named groups) is the rather unreadable: > \d+\.\d+(\.\d+)*([abc]?\d+(\.\d+)*)?((\.post\d+)?(\.dev\d+)?)?
The ()? around the combination of post and dev is not needed. I also think [abc]? should just be [abc], as one letter is required to proceed the digit in that case, and the full regular expression does help to distinguish exactly which of those two is required by the PEP. > So the '+' in the pseudo notation above roughly means "one or more" > with the brackets meaning "zero or one" so plus and brackets combined > result into "zero or more". But even then it's might be missing > square brackets around the whole of "[abc]N[.N]+". What is confusing about the +'s is that they are not consistent. If your regular expression with my modifications above is right, then using the substitions 'N for \d+', '{} for []', '[] for ()?' and '+ for *' leaves: N.N[.N]+[{abc}N[.N]+][.postN][.devN] Notice that the last two +'s are gone, and overall I think this is more consistent psuedo-code. > Note that the meaning of the contents of the brackets changes too > ("abc" is a choice, .postN+ is the recursive notation) so it'll > probably never work exactly. So maybe the PEP should also include the > full regex for exactness. > > Regards > Floris Yes, it probably should have the full regex for absolute clarity, and it can still have some type of psuedo-code for easier reading, but inconsistent psuedo-code just adds confusion instead of simplification. Cheers, Michael _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com