1
1
mirror of https://github.com/mrabarnett/mrab-regex.git synced 2025-10-05 20:02:39 +02:00

128 Commits

Author SHA1 Message Date
Matthew Barnett
db5c9c636e Git issue 565: Support the free-threaded build of CPython 3.13 2025-09-18 23:30:05 +01:00
Matthew Barnett
26012d90d0 Updated pyproject.toml and setup.py according to PEP 517. 2024-11-07 16:52:17 +00:00
Matthew Barnett
930983aa68 Git issue 546: Partial match not working in some instances with non-greedy capture 2024-11-06 19:48:55 +00:00
Matthew Barnett
d3510fea2a Updated to Unicode 16.0.0. 2024-09-11 17:22:19 +01:00
Matthew Barnett
e8a8d28aa3 Git issue 539: Bug: Partial matching fails on a simple example 2024-07-24 22:29:17 +01:00
Matthew Barnett
8eabb4223e Git issue 530: hangs with fuzzy and optionals
It's not hanging, it'll finish eventually. It's just an example of catastrophic backtracking.

The error printed when Ctrl+C is pressed does show a bug, though, which is now fixed.
2024-05-15 16:53:10 +01:00
Matthew Barnett
be139ffc3a Updated for Python 3.13.
<time.h> now needs to be included explicitly because Python.h no longer includes it.
2024-05-10 01:57:53 +01:00
Matthew Barnett
2e3272be48 Git issue 527: VERBOSE/X flag breaks \N escapes 2024-04-28 20:11:20 +01:00
Matthew Barnett
5d65c8a727 Git issue 525: segfault when fuzzy matching empty list 2024-04-16 19:33:07 +01:00
Matthew Barnett
647c006a88 Further fixes in main.yml. 2023-12-24 01:45:31 +00:00
Matthew Barnett
cdcbf36aeb The escape function no longer escapes \x00. It's not necessary.
Inline flags can now be turned off and apply to what follows.

Added \R to match line endings.
2023-12-24 00:13:19 +00:00
Matthew Barnett
fba846ded3 Updated to Unicode 15.1.0. 2023-10-03 16:51:13 +01:00
Matthew Barnett
bc73ebb5d7 Git issue 508: Regex doesn't build using CPython main (3.13.0a0)
Removed usage of _PyBytes_Join and did a little tidying of the code that makes the result string.
2023-08-08 21:35:46 +01:00
Matthew Barnett
774dbfda42 # Git issue 498: Conditional negative lookahead inside positive lookahead fails to match
Conditional node needed an additional member that points to the true branch.
2023-06-03 18:03:41 +01:00
Matthew Barnett
9f03255c92 Removed semicolon after 'else' in 'munge_name'. 2023-05-03 18:27:06 +01:00
Matthew Barnett
797b57a4ac Fixed pyproject.toml and setup.py. 2023-05-02 17:42:18 +01:00
Matthew Barnett
78460dc755 Added pyproject.toml. 2023-05-02 14:54:39 +01:00
Matthew Barnett
15cbd1eaf3 Git issue 495: Running time for failing fullmatch increases rapidly with input length
Re-enabled modified repeat guards due to regression in speed caused by excessive backtracking.
2023-03-23 17:37:37 +00:00
Matthew Barnett
5954c51580 Git issue 494: Backtracking failure matching regex ^a?(a?)b?c\1$ against string abca
Disabled repeat guards. They keep causing issues, and it's just simpler to rely on timeouts.
2023-03-22 18:17:48 +00:00
Matthew Barnett
cc392629b2 Updated text for supported Unicode and Python versions. 2022-10-31 02:46:35 +00:00
Matthew Barnett
4ad1f04899 Updated to Unicode 15.0.0. 2022-09-13 01:47:01 +01:00
Matthew Barnett
416dd66ba9 Updated version. 2022-09-11 19:27:20 +01:00
Matthew Barnett
71be78a042 Git issue 477: \v for vertical spacing
Added \p{HorizSpace} (\p{H}) and \p{VertSpace} (\p{V}).
2022-08-17 20:26:24 +01:00
Matthew Barnett
01758302a6 Git issue 475: 2022.7.24 improperly released
The file https://pypi.org/pypi/regex/2022.7.24/json was missing references to most of the wheels, so this is a new release in the hope that it was just a glitch in GitHub Actions.
2022-07-25 14:55:33 +01:00
Matthew Barnett
ea5e640db3 Git issue 474: regex has no equivalent to re.Match.groups() for captures
Added 'allcaptures' and 'allspans' methods to match objects.

Fixed bug where compiling a pattern didn't always check for unused arguments.
2022-07-24 23:27:26 +01:00
Matthew Barnett
5c9b260d2f Git issue 473: Emoji classified as letter
The values for GC:Assigned and GC:LC were flipped.
2022-07-09 00:36:46 +01:00
Matthew Barnett
8a514bc62f Git issue 472: Revisit compilation flag to prevent adding a single explicitly compiled regex to the cache
Added 'cache_pattern' parameter to 'compile' function to improve use of the cache.
2022-06-02 23:20:58 +01:00
Matthew Barnett
74b8db0e81 Git issue 467: Scoped inline flags 'a', 'u' and 'L' affect global flags
Those flags scan now be scoped.
2022-04-24 19:02:34 +01:00
Matthew Barnett
138970bafb Git issue 457: Difference with re, when repl returns None
Make regex consistent with re by treating a replacement template of None as ''.

Also, now rejects invalid ASCII escapes like re module does.
2022-03-15 17:03:11 +00:00
Matthew Barnett
67ab717196 Git issue 453: Document last supported python2 version
Added a brief reference to the last version to support Python 2 in README.rst.

Git issue 456: RegexFlag exists in re, but not regex

    Updated the flags to use enum now that regex supports only Python 3.6+.
2022-03-02 01:18:38 +00:00
Matthew Barnett
f11a41b4d1 Added 'python_requires' to setup.py now that Python 2 no longer supported. 2022-01-21 00:17:54 +00:00
Matthew Barnett
667f171a0b Updated version for new release. 2022-01-18 18:18:44 +00:00
Matthew Barnett
227163df1b * Dropped support for Python 2 and remove all references to Python <3.6, the earliest supported version.
Removed Features.rst, which was just a duplicate of README.rst.
2022-01-18 15:14:33 +00:00
Matthew Barnett
dde2d98360 Git issue 443: 2021.11.9 source release is missing C headers
Updated version.
2021-11-09 22:16:38 +00:00
Matthew Barnett
1c30637ec7 Git issue 442: Fuzzy regex matching doesn't seem to test insertions correctly 2021-11-09 19:43:42 +00:00
Matthew Barnett
6ce0bda712 Git issue 435: Unmatched groups: sub vs subf
A similar fix also applies to expandf: unmatched groups should expand to an empty string.
2021-11-02 17:13:53 +00:00
Matthew Barnett
6be55f7842 Removed unused functions.
Added long description type to setup.py.
2021-11-02 16:11:35 +00:00
Matthew Barnett
f2c5da72e3 Further changes for migration to Github. 2021-11-01 19:27:48 +00:00
Matthew Barnett
bf5e239c0e Git issue 433: Disagreement between fuzzy_counts and fuzzy_changes
Fuzzy changes were sometimes not removed when backtracking.
2021-10-23 00:10:40 +01:00
Matthew Barnett
26d37df1c3 Removed Apple Silicon build from .travis.yml because it's not currently codesigned by Travis CI. 2021-10-21 02:21:13 +01:00
Matthew Barnett
d81009be69 Git issue 428: match hangs on the following example - possible infinite loop?
Fixed miscalculation of total error count when there's more than one fuzzy term.
2021-10-08 23:56:28 +01:00
Matthew Barnett
25638c20a4 Git issue 427: Possible bug with BESTMATCH 2021-09-30 23:10:38 +01:00
Matthew Barnett
3dd42455df Updated to Unicode 14.0.0. 2021-09-24 21:07:41 +01:00
Matthew Barnett
e3b477cc93 Git issue 421: 2021.8.27 results in "Fatal Python error: Segmentation fault"
Fixed problems with use of fast searching tables in opposite direction.
2021-08-27 19:39:30 +01:00
Matthew Barnett
ac7ce3f5ee Git issue 420: segmentation fault in finditer (maybe others)
Fixed a bugs in fast searches in reverse direction.
2021-08-27 01:40:23 +01:00
Matthew Barnett
75211751d9 Updated version. 2021-08-21 21:22:35 +01:00
Matthew Barnett
26a320f29b Forgot to update version! 2021-08-03 18:41:15 +01:00
Matthew Barnett
ae6bb1ebd3 Additional fix for Git issue 415. 2021-07-06 00:03:35 +01:00
Matthew Barnett
5d6f9cb115 Git issue 415: Fuzzy character restrictions don't apply to insertions at "right edge" 2021-07-05 20:41:03 +01:00
Matthew Barnett
32453c1378 Git issue 407: API is not a drop-in replacement for python's re when it comes to typing
Now exports Match object as well as Pattern object.

Git issue 414: Memory optimization questions

sys.getsizeof returns a more accurate size of a pattern object. It includes the size of internal data, but, as is the norm, does not include the size of public objects.
2021-07-01 23:27:31 +01:00