This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

classification
Title: hierarchical regular expression
Type: Stage:
Components: Library (Lib) Versions:
process
Status: closed Resolution: rejected
Dependencies: Superseder:
Assigned To: Nosy List: loewis, ottrey
Priority: normal Keywords: patch

Created on 2005-04-01 03:59 by ottrey, last changed 2022-04-11 14:56 by admin. This issue is now closed.

Messages (6)
msg48105 - (view) Author: Chris Ottrey (ottrey) Date: 2005-04-01 03:59
( from the re2 sourceforge project
http://pyre2.sourceforge.net )

The re2 library provides a hierarchical regular
expression extension to the re library.

re2 extracts a hierarchy of named groups from a string,
rather than the flat, incomplete dictionary that the
standard re module returns. 

>>> import re
>>> buf='12 drummers drumming, 11 pipers piping, 10
lords a-leaping'
>>> regex='^((?P<verse>(?P<number>\d+)
(?P<activity>[^,]+))(, )?)*$'
>>> pat1=re.compile(regex)
>>> m=pat1.match(buf)
>>> m.groupdict()
{'verse': '10 lords a-leaping', 'number': '10',
'activity': 'lords a-leaping'}

>>> import re2
>>> buf='12 drummers drumming, 11 pipers piping, 10
lords a-leaping'
>>> regex='^((?P<verse>(?P<number>\d+)
(?P<activity>[^,]+))(, )?)*$'
>>> pat2=re2.compile(regex)
>>> x=pat2.extract(buf)
>>> x
{'verse': [{'number': '12', 'activity': 'drummers
drumming'}, {'number': '11', 'activity': 'pipers
piping'}, {'number': '10', 'activity': 'lords a-leaping'}]}

(See http://pyre2.sourceforge.net/ for more details.)
msg48106 - (view) Author: Martin v. Löwis (loewis) * (Python committer) Date: 2005-04-01 19:57
Logged In: YES 
user_id=21627

Is this a patch? If so, where is the code, and are you its
author?
msg48107 - (view) Author: Chris Ottrey (ottrey) Date: 2005-04-01 23:10
Logged In: YES 
user_id=609576

Sorry, it's more an extension than a patch.
(Although maybe it could be applied as a patch to the re
library.)
(BTW Where is the correct place to submit extensions?)

The code is in this subversion repository:
  http://pintje.servebeer.com/svn/pyre2/trunk/

Or available for download here:
  http://sourceforge.net/project/showfiles.php?group_id=134583

And has a development wiki here:
  http://py.redsoft.be/pyre2/wiki/

And yes, I'm the author.
msg48108 - (view) Author: Martin v. Löwis (loewis) * (Python committer) Date: 2005-04-01 23:49
Logged In: YES 
user_id=21627

We accept extensions only by means of patches. So you would
create a patch (as a unified or context diff) for the
current CVS;for completely new files, providing a tar ball
is also reasonable. I expect that you don't suggest literal
inclusion of the svn trunk directory into the dist/src
directory of the Python distribution.

However, in the specific case, I think whether or not the
new functionality should  be added to Python at all probably
needs discussion. I recommend to ask on python-dev; be
prepared to write a PEP. As a starting point, I'm personally
concerned to have a module named "re2" in the standard
library. This will cause confusion to the users; it might be
better to merge the functionality into the re module.
msg48109 - (view) Author: Chris Ottrey (ottrey) Date: 2005-04-02 07:16
Logged In: YES 
user_id=609576

Ok.
I'll ask on python-dev then.
msg48110 - (view) Author: Martin v. Löwis (loewis) * (Python committer) Date: 2005-04-05 00:00
Logged In: YES 
user_id=21627

Given the discussion of python-dev, it appears that you want
to rework the code and come back if you have something
you'ld like to contribute. So I'm rejecting this patch for
now; please open a new one when you are ready (but likely,
you'ld write a PEP first, anyhow).
History
Date User Action Args
2022-04-11 14:56:10adminsetgithub: 41783
2005-04-01 03:59:41ottreycreate