[Python-Dev] Proposing PEP 386 for addition (original) (raw)

Michael Mysinger cybersol at yahoo.com
Thu Dec 10 06:41:01 CET 2009


Floris Bruynooghe <floris.bruynooghe 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



More information about the Python-Dev mailing list