Skip to content

Commit

Permalink
Initial commit of pyre2
Browse files Browse the repository at this point in the history
  • Loading branch information
David Reiss committed Mar 16, 2010
0 parents commit 94ca4e5
Show file tree
Hide file tree
Showing 7 changed files with 835 additions and 0 deletions.
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
/build
/dist
25 changes: 25 additions & 0 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
Copyright (c) 2010, David Reiss and Facebook, Inc. All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
* Neither the name of Facebook nor the names of its contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
1 change: 1 addition & 0 deletions README
51 changes: 51 additions & 0 deletions README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
=====
pyre2
=====

.. contents::

Summary
=======

pyre2 is a Python extension that wraps
`Google's RE2 regular expression library
<http://code.google.com/p/re2/>`_.
It implements many of the features of Python's built-in
``re`` module with compatible interfaces.


New Features
============

* ``Regexp`` objects have a ``fullmatch`` method that works like ``match``,
but anchors the match at both the start and the end.
* ``Regexp`` objects have
``test_search``, ``test_match``, and ``test_fullmatch``
methods that work like ``search``, ``match``, and ``fullmatch``,
but only return ``True`` or ``False`` to indicate
whether the match was successful.
These methods should be faster than the full versions,
especially for patterns with capturing groups.


Missing Features
================

* No substitution methods.
* No flags.
* No ``split``, ``findall``, or ``finditer``.
* No top-level convenience functions like ``search`` and ``match``.
(Just use compile.)
* No compile cache.
(If you care enough about performance to use RE2,
you probably care enough to cache your own patterns.)
* No ``lastindex`` or ``lastgroup`` on ``Match`` objects.


Current Status
==============

pyre2 has only received basic testing,
and I am by no means a Python extension expert,
so it is quite possible that it contains bugs.
I'd guess the most likely are reference leaks in error cases.
Loading

0 comments on commit 94ca4e5

Please sign in to comment.