Changelog
v0.3.6-29-g1465367
Changes
Switch conda workflow to condadev environment. [Stephen Arnold]
Swap out flake8 for cython-lint, update setup files, remove pep8 cfg. [Stephen Arnold]
Fixes
Cleanup tests and fix a raw string test, enable more win32. [Stephen Arnold]
split all runners into separate arch via matrix
macos does need macos-14 to get a proper arm64 build
Apply emptygroups fix and remove conda-only patch, also. [Stephen L Arnold]
release workflow: restrict pypi upload to repo owner
tox.ini: replace deprecated pep517 module, update deploy url
Other
Fix #42. [Andreas van Cranenburgh]
Include current notification level in cache key. [Andreas van Cranenburgh]
this prevents a cached regular expression being used that was created with a different notification level.
For example, the following now generates the expected warning:
In [1]: import re2 In [2]: re2.compile('a*+') Out[2]: re.compile('a*+') In [3]: re2.set_fallback_notification(re2.FALLBACK_WARNING) In [4]: re2.compile('a*+') <ipython-input-5-041122e221c7>:1: UserWarning: WARNING: Using re module. Reason: bad repetition operator: *+ re2.compile('a*+') Out[4]: re.compile('a*+')
Support fallback to Python re for possessive quantifiers. [Andreas van Cranenburgh]
Document lack of support for possessive quantifiers and atomic groups. [Andreas van Cranenburgh]
Make tests pass on my system; if this behavior turns out to be inconsistent across versions/platforms, maybe the test should be disabled altogether. #27. [Andreas van Cranenburgh]
Add NOFLAGS and RegexFlags constants; #41. [Andreas van Cranenburgh]
Remove python versions for make valgrind. [Andreas van Cranenburgh]
Merge pull request #33 from sarnold/conda-patch. [Andreas van Cranenburgh]
Conda patch for None vs empty string change
Merge pull request #32 from JustAnotherArchivist/match-getitem. [Andreas van Cranenburgh]
Make Match objects subscriptable
Add test for Match subscripting. [JustAnotherArchivist]
Make Match objects subscriptable. [JustAnotherArchivist]
Fixes #31
v0.3.6 (2021-05-05)
Merge pull request #30 from sarnold/release-pr. [Andreas van Cranenburgh]
workflow updates
Add missing sdist job and artifact check to workflows, bump version. [Stephen L Arnold]
Bump version again. [Andreas van Cranenburgh]
Merge pull request #28 from sarnold/use-action. [Andreas van Cranenburgh]
Workflow cleanup
Move pypi upload to end of release.yml, use gitchangelog action. [Stephen L Arnold]
v0.3.4 (2021-04-10)
Changes
Ci: update workflows and tox cfg (use tox for smoke test) [Stephen L Arnold]
Rename imported test helpers to avoid any discovery issues. [Stephen L Arnold]
Fixes
Apply test patch, cleanup tox and pytest args. [Stephen L Arnold]
Handle invalid escape sequence warnings, revert path changes. [Stephen L Arnold]
Other
Bump version. [Andreas van Cranenburgh]
Improve fix for #26. [Andreas van Cranenburgh]
Add test for #26. [Andreas van Cranenburgh]
Fix infinite loop on substitutions of empty matches; fixes #26. [Andreas van Cranenburgh]
Fix “make test” and “make test2” [Andreas van Cranenburgh]
Merge pull request #25 from sarnold/last-moves. [Andreas van Cranenburgh]
Last moves
Another one. [Andreas van Cranenburgh]
Fix fix of conda patch. [Andreas van Cranenburgh]
Fix conda patch. [Andreas van Cranenburgh]
Fix “make test”; rename doctest files for autodetection. [Andreas van Cranenburgh]
Fix narrow unicode detection. [Andreas van Cranenburgh]
Merge pull request #24 from sarnold/tst-cleanup. [Andreas van Cranenburgh]
Test cleanup
Fix Python 2 compatibility. [Andreas van Cranenburgh]
Use pytest; fixes #23. [Andreas van Cranenburgh]
Tweak order of badges. [Andreas van Cranenburgh]
Makefile: default to Python 3. [Andreas van Cranenburgh]
Update README, fix Makefile. [Andreas van Cranenburgh]
Merge pull request #22 from sarnold/missing-tests. [Andreas van Cranenburgh]
add missing tests to sdist package, update readme and ci worflows (#1)
Fix pickle_test (tests.test_re.ReTests) … ERROR (run tests with nose) [Stephen L Arnold]
Update changelog (and trigger ci rebuild) [Stephen L Arnold]
Add missing tests to sdist package, update readme and ci worflows (#1) [Steve Arnold]
readme: update badges, merge install sections, fix some rendering issues
v0.3.3 (2021-01-26)
Changes
Add .gitchangelog.rc and generated CHANGELOG.rst (keep HISTORY) [Stephen L Arnold]
Ci: update wheel builds for Linux, Macos, and Windows. [Stephen L Arnold]
Fixes
Ci: make sure wheel path is correct for uploading. [Stephen L Arnold]
Other
Bump version. [Andreas van Cranenburgh]
Update README.rst. fixes #21. [Andreas van Cranenburgh]
Merge pull request #20 from freepn/new-bld. [Andreas van Cranenburgh]
New cmake and pybind11 build setup
v0.3.2 (2020-12-16)
Bump version. [Andreas van Cranenburgh]
Merge pull request #18 from freepn/github-ci. [Andreas van Cranenburgh]
workaroud for manylinux dependency install error plus release automation
v0.3.1 (2020-10-27)
Bump version. [Andreas van Cranenburgh]
Change package name for pypi. [Andreas van Cranenburgh]
v0.3 (2020-10-27)
Bump version. [Andreas van Cranenburgh]
Merge pull request #14 from yoav-orca/master. [Andreas van Cranenburgh]
Support building wheels automatically using github actions
Creating github actions for building wheels. [Yoav Alon]
Created pyproject.toml. [Yoav Alon]
Poetry and other modern build system need to know which build-tools to install prior to calling setup.py. added a pyproject.toml to specify cython as a dependency.
Add contains() method. [Andreas van Cranenburgh]
contains() works like match() but returns a bool to avoid creating a Match object. see #12
add wrapper for re.Pattern so that contains() and count() methods are also available when falling back to re.
Disable dubious tests. [Andreas van Cranenburgh]
All tests pass.
Don’t test for exotic/deprecated stuff such as non-initial flags in patterns and octal escapes without leading 0 or triple digits.
Known corner cases no longer reported as failed tests.
support b inside character class to mean backspace
use re.error instead of defining subclass RegexError; ensures that exceptions can be caught both in re2 and in a potential fallback to re.
Disable failing test for known corner case. [Andreas van Cranenburgh]
Remove tests with re.LOCALE flag since it is not allowed with str in Python 3.6+ [Andreas van Cranenburgh]
Decode named groups even with bytes patterns; fixes #6. [Andreas van Cranenburgh]
Make -std=c++11 the default; fixes #4. [Andreas van Cranenburgh]
Merge pull request #5 from mayk93/master. [Andreas van Cranenburgh]
Adding c++ 11 compile flag on Ubuntu
Adding c++ 11 compile flag on Ubuntu. [Michael]
Merge pull request #3 from podhmo/macports. [Andreas van Cranenburgh]
macports support
Macports support. [podhmo]
Use STL map for unicodeindices. [Andreas van Cranenburgh]
Only translate unicode indices when needed. [Andreas van Cranenburgh]
Update README. [Andreas van Cranenburgh]
Add -std=c++11 only for clang, because gcc on CentOS 6 does not support it. [Andreas van Cranenburgh]
Disable non-matched group tests; irrelevant after dad49cd. [Andreas van Cranenburgh]
Merge pull request #2 from messense/master. [Andreas van Cranenburgh]
Fix groupdict decode bug
Fix groupdict decode bug. [messense]
Merge pull request #1 from pvaneynd/master. [Andreas van Cranenburgh]
Ignore non-matched groups when replacing with sub
Ignore non-matched groups when replacing with sub. [Peter Van Eynde]
From 3.5 onwards sub() and subn() now replace unmatched groups with empty strings. See:
https://docs.python.org/3/whatsnew/3.5.html#re
This change removes the ‘unmatched group’ error which occurs when using re2.
Fix setup.py unicode error. [Andreas van Cranenburgh]
Add C++11 param; update URL. [Andreas van Cranenburgh]
Fix bugs; ensure memory is released; simplify C++ interfacing; [Andreas van Cranenburgh]
Fix bug causing zero-length matches to be returned multiple times
Use Latin 1 encoding with RE2 when unicode not requested
Ensure memory is released: - put del calls in finally blocks - add missing del call for ‘matches’ array
Remove Cython hacks for C++ that are no longer needed; use const keyword that has been supported for some time. Fixes Cython 0.24 compilation issue.
Turn _re2.pxd into includes.pxi.
remove some tests that are specific to internal Python modules _sre and sre
Fix Match repr. [Andreas van Cranenburgh]
Add tests for bug with \b. [Andreas van Cranenburgh]
Document support syntax &c. [Andreas van Cranenburgh]
add reference of supported syntax to main docstring
add __all__ attribute defining public members
add re’s purge() function
add tests for count method
switch order of prepare_pattern() and _compile()
rename prepare_pattern() to _prepare_pattern() to signal that it is semi-private
Add count method. [Andreas van Cranenburgh]
add count method, equivalent to len(findall(…))
use arrays in utf8indices
tweak docstrings
Move functions around. [Andreas van Cranenburgh]
Improve substitutions, Python 3 compatibility. [Andreas van Cranenburgh]
when running under Python 3+, reject unicode patterns on bytes data, and vice versa, in according with general Python 3 behavior.
improve Match.expand() implementation.
The substitutions by RE2 behave differently from Python (character escapes, named groups, etc.), so use Match.expand() for anything but simple literal replacement strings.
make groupindex of pattern objects public.
add Pattern.fullmatch() method.
use #define PY2 from setup.py instead of #ifdef hack.
debug option for compilation.
use data() instead of c_str() on C++ strings, and always supply length, so that strings with null characters are supported.
bump minimum cython version due to use of bytearray typing
adapt tests to Python 3; add b and u string prefixes where needed, &c.
update README
Add flags parameter to toplevel functions. [Andreas van Cranenburgh]
Update performance table / missing features. [Andreas van Cranenburgh]
Workaround for sub(…) with count > 1. [Andreas van Cranenburgh]
Handle named groups in replacement string; &c. [Andreas van Cranenburgh]
handle named groups in replacement string
store index of named groups in Pattern object instead of Match object.
use bytearray for result in _subn_callback
Pickle Patterns; non-char buffers; &c. [Andreas van Cranenburgh]
support pickling of Pattern objects
support buffers from objects that do not support char buffer (e.g., integer arrays); does not make a lot of sense, but this is what re does.
enable benchmarks shown in readme by default; fix typo.
fix typo in test_re.py
New buffer API; precompute groups/spans; &c. [Andreas van Cranenburgh]
use new buffer API NB: even though the old buffer interface is deprecated from Python 2.6, the new buffer interface is only supported on mmap starting from Python 3.
avoid creating Match objects in findall()
precompute groups and spans of Match objects, so that possibly encoded version of search string (bytestr / cstring) does not need to be kept.
in _make_spans(), keep state for converting utf8 to unicode indices; so that there is no quadratic behavior on repeated invocations for different Match objects.
release GIL in pattern_Replace / pattern_GlobalReplace
prepare_pattern: loop over pattern as char *
advertise Python 3 support in setup.py, remove python 2.5
Properly translate pos, endpos indices with unicode, &c. [Andreas van Cranenburgh]
properly translate pos, endpos indices with unicode
keep original unicode string in Match objects
separate compile.pxi file
Re-organize code. [Andreas van Cranenburgh]
Minor changes. [Andreas van Cranenburgh]
Python 2/3 compatibility, support buffer objects, &c. [Andreas van Cranenburgh]
Python 2/3 compatibility
support searching in buffer objects (e.g., mmap)
add module docstring
some refactoring
remove outdated Cython-generated file
modify setup.py to cythonize as needed.
Implement finditer as generator. [Andreas van Cranenburgh]
Merge pull request #31 from sunu/master. [Michael Axiak]
Add Python 3 support.
Add Python 3 support. [Tarashish Mishra]
Version bump. [Michael Axiak]
release/0.2.22 (2015-05-15)
Version bump. [Michael Axiak]
Merge pull request #22 from socketpair/release_gil_on_compile. [Michael Axiak]
Release GIL during regex compilation.
Release GIL during regex compilation. [Коренберг Марк]
(src/re2.cpp is not regenerated in this commit)
release/0.2.21 (2015-05-14)
Release bump. [Michael Axiak]
Merge pull request #18 from offlinehacker/master. [Michael Axiak]
setup.py: Continue with default lib paths if not detected automatically
Setup.py: Continue with default lib paths if not detected automatically. [Jaka Hudoklin]
Fix issue #11. [Michael Axiak]
Remove spurious print statement. [Michael Axiak]
Added version check in setup.py to prevent people from shooting themselves in the foot trying to compile with an old cython version. [Michael Axiak]
release/0.2.20 (2011-11-15)
Version bump to 0.2.20. [Michael Axiak]
Version bump to 0.2.18 and use MANIFEST.in since python broke how sdist works in 2.7.1 (but fixes it in 2.7.3…) [Michael Axiak]
release/0.2.16 (2011-11-08)
Fixes
Unmatched group span (-1,-1) caused exception in _convert_pos. [Israel Tsadok]
Last item in qualified split included the item before last. [Israel Tsadok]
Exception in callback would cause a memory leak. [Israel Tsadok]
Group spans need to be translated to their relative decoded positions. [Israel Tsadok]
This is not what verbose means in this context. [Israel Tsadok]
Findall used group(0) instead of group(1) when there was a group. [Israel Tsadok]
Dangling reference when _subn_callback breaks on limit. [Israel Tsadok]
Infinite loop in pathological case of findall(“.*”, “foo”) [Israel Tsadok]
Other
Version bump to 0.2.16. [Michael Axiak]
Merged itsadok’s changes to fix treatment of D and W. Added tests to reflection issue #4. [Michael Axiak]
Fixed issue #5, support W, S and D. [Israel Tsadok]
Fixed issue #3, changed code to work with new re2 api. [Michael Axiak]
Merge branch ‘itsadok-master’ [Michael Axiak]
Merge branch ‘master’ of https://github.com/itsadok/pyre2 into itsadok-master. [Michael Axiak]
Failing tests for pos and endpos. [Israel Tsadok]
Set default notification to FALLBACK_QUIETLY, as per the documentation. [Israel Tsadok]
Get rid of deprecation warning. [Israel Tsadok]
Fix hang on findall(‘’, ‘x’) [Israel Tsadok]
Allow weak reference to Pattern object. [Israel Tsadok]
Allow named groups in span(), convert all unicode positions in one scan. [Israel Tsadok]
Added failing test for named groups. [Israel Tsadok]
Fix lastgroup and lastindex. [Israel Tsadok]
Verify that flags do not get silently ignored with compiled patterns. [Israel Tsadok]
Had to cheat on a test, since we can’t support arbitrary bytes. [Israel Tsadok]
Fix lastindex. [Israel Tsadok]
Pass some more tests - added pos, endpos, regs, re attributes to Match object. [Israel Tsadok]
Added max_mem parameter, bumped version to 0.2.13. [Michael Axiak]
Remove spurious get_authors() call. [Michael Axiak]
Added Alex to the authors file. [Michael Axiak]
Version bumped to 0.2.11. [Michael Axiak]
Added difference in version to changelist, added AUTHORS parsing to setup.py. [Michael Axiak]
Added check for array, added synonym ‘error’ for RegexError to help pass more python tests. [Michael Axiak]
Made make test run a little nicer. [Michael Axiak]
Added note about copyright assignment to authors. [Michael Axiak]
Fix test_re_match. [Israel Tsadok]
Fix test_bug_1140. [Israel Tsadok]
Update readme. [Israel Tsadok]
Preprocess pattern to match re2 quirks. Fixes several bugs. [Israel Tsadok]
Re2 doesn’t like when you escape non-ascii chars. [Israel Tsadok]
Merge remote branch ‘moreati/master’ [Israel Tsadok]
Merge from axiak/HEAD. [Alex Willmer]
Merge from axiak/master. [Alex Willmer]
Pass ErrorBadEscape patterns to re.compile(). Have re.compile() accept SRE objects. [Alex Willmer]
Ignore .swp files. [Alex Willmer]
Remove superfluous differences to axiak/master. [Alex Willmer]
Merge remote branch ‘upstream/master’ [Alex Willmer]
Merge changes from axiak master. [Alex Willmer]
Fix previous additions to setup.py. [Alex Willmer]
Add url to setup.py. [Alex Willmer]
Remove #! line from re.py module, since it isn’t a script. [Alex Willmer]
Add classifers and long description to setup.py. [Alex Willmer]
Add MANIFEST.in. [Alex Willmer]
Merge branch ‘master’ of git://github.com/facebook/pyre2. [Alex Willmer]
- Conflicts:
re2.py
Ignore byte compiled python files. [Alex Willmer]
Add copyright, license, and three convenience functions to re2.py. [Alex Willmer]
Switch re2.h include to angle brackets. [Alex Willmer]
Handle n in replace template, since re2 doesn’t. [Israel Tsadok]
Import escape function as it from re. [Israel Tsadok]
The unicode char classes never worked. TIL testing is important. [Israel Tsadok]
Make unicode stickyness rules like in re module. [Israel Tsadok]
Return an iterator from finditer. [Israel Tsadok]
Have re.compile() accept SRE objects. (copied from moreati’s fork) [Israel Tsadok]
Fix var name mixup. [Israel Tsadok]
Added self to authors. [Israel Tsadok]
Fix memory leak. [Israel Tsadok]
Added re unit test from python2.6. [Israel Tsadok]
Make match group allocation more RAII style. [Israel Tsadok]
Use None for unused groups in split. [Israel Tsadok]
Change split to match sre.c implementation, and handle empty matches. [Israel Tsadok]
Match delete[] to new[] calls. [Israel Tsadok]
Added group property to match re API. [Israel Tsadok]
Use appropriate char classes in case of re.UNICODE. [Israel Tsadok]
Fall back on re in case of back references. [Israel Tsadok]
Use unmangled pattern in case of fallback to re. [Israel Tsadok]
Simplistic cache, copied from re.py. [Israel Tsadok]
Fix some memory leaks. [Israel Tsadok]
Allow multiple arguments to group() [Israel Tsadok]
Allow multiple arguments to group() [Israel Tsadok]
Fixed path issues. [Michael Axiak]
Added flags to pattern object, bumped version number. [Michael Axiak]
Change import path to fix include dirs. [Michael Axiak]
Updated manifest and changelog. [Michael Axiak]
Added .expand() to group objects. [Michael Axiak]
Removed the excessive thanks. [Michael Axiak]
Added regex module to performance tests. [Michael Axiak]
Pattern objects should be able to return the input pattern. [Alec Berryman]
I’m just storing the original object passed in (found it could be str or unicode - thanks, unicode tests!). It could be calculated if important to save space.
Further findall fix: one-match finds. [Alec Berryman]
I read the spec more carefully this time.
Added changelist file for future releases. [Michael Axiak]
Added alec to AUTHORS. Bumped potential version number. Fixed findall support to work without closures. [Michael Axiak]
Make pyre2 64-bit safe. [Alec Berryman]
Now compiles on a 64-bit system; previously, complained that you might have a string size that couldn’t fit into an int. Py_ssize_t is required instead of plain size_t because Python’s is signed.
Fix findall behavior to match re. [Alec Berryman]
findall is to return a list of strings or tuples of strings, while finditer is to return an iterator of match objects; previously both were returning lists of match objects. findall was fixed, but finditer is still returning a list.
New tests.
Makefile: test target. [Alec Berryman]
Note Cython 0.13 dependency. [Alec Berryman]
Moved to my own license. I can do that since I started the code from scratch. [Michael Axiak]
Fix formatting of table. [Michael Axiak]
Added number of trials, fixed some wording. [Michael Axiak]
Added missing files to MANIFEST. [Michael Axiak]
Added performance testing, bumped version number. [Michael Axiak]
Added readme data. [Michael Axiak]
Updated installation language. [Michael Axiak]
Incremented version number. [Michael Axiak]
Fixed split regression with missing unicode translation. [Michael Axiak]
Maybe utf8 works? [Michael Axiak]
Got unicode to past broken test. [Michael Axiak]
Added debug message for issue with decoding. [Michael Axiak]
Added more utf8 stuff. [Michael Axiak]
Delay group construction for faster match testing. [Michael Axiak]
Got utf8 support to work. [Michael Axiak]
Starting to add unicode support… BROKEN. [Michael Axiak]
Added fallback and notification. [Michael Axiak]
Added runtime library path to fix /usr/local/ bug for installation of re2 library. [Michael Axiak]
Fixed setup and updated readme. [Michael Axiak]
Added more setup.py antics. [Michael Axiak]
Added ancillary stuff. [Michael Axiak]
Added sub, subn, findall, finditer, split. Bam. [Michael Axiak]
Added finditer along with tests. [Michael Axiak]
Fix rst. [Michael Axiak]
Added contact link to readme. [Michael Axiak]
Fixed formatting for readme. [Michael Axiak]
Added lastindex, lastgroup, and updated README file. [Michael Axiak]
Added some simple tests. Got match() to work, named groups to work. spanning to work. pretty much at the same level as pyre2 proper. [Michael Axiak]
Added more things to gitignore, another compile. [Michael Axiak]
Move code to src directory for better sanity. [Michael Axiak]
Updated re2 module to use Cython instead, got matching working almost completely with minimal flag support. [Michael Axiak]
Suppress logging of failed pattern compilation. [David Reiss]
This isn’t necessary in Python since errors are reported by exceptions. Use a slightly more verbose form to allow easier setting of more options later.
Don’t define tp_new for regexps and matches. [David Reiss]
It turns out that these are not required to use PyObject_New. They are only required to allow Python code to call the type to create a new instance, which I don’t want to allow. Remove them.
Fix a segfault by initializing attr_dict to NULL. [David Reiss]
I thought PyObject_New would call my tp_new, which is set to PyType_GenericNew, which NULLs out all user-defined fields (actually memset, but the docs say NULL). However, this appears to not be the case. Explicitly NULL out attr_dict in create_regexp to avoid segfaults when compiling a bad pattern. Do it for create_match too for future safety, even though it is not required with the current code.
Add struct tags for easier debugging with gdb. [David Reiss]
See http://sourceware.org/ml/archer/2009-q1/msg00085.html for a little more information.
Add some convenience functions to re2.py. [Alex Willmer]
Add a copyright and license comment to re2.py. [David Reiss]
This is to prepare for adding some not-totally-trivial code to it.
Use PEP-8-compliant 4-space indent in re2.py. [David Reiss]
Use angle-brackets for the re2.h include. [Alex Willmer]
Add build information to the README. [David Reiss]
Add contact info to README. [David Reiss]
Initial commit of pyre2. [David Reiss]