| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
Move the compile-time optimizations (_optimize_charset, _compile_charset, _simple, _compile_info and the literal/charset prefix helpers) out of _compiler.py into a new Lib/re/_optimizer.py. _compiler.py keeps only the bytecode emitter and imports them. This is groundwork for a follow-up optimization; there is no behavior change. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
There was a problem hiding this comment.
I see the PR was just merged. Two minor comments anyway
Sorry, something went wrong.
| from ._constants import * | ||
|
|
||
| _CHARSET_ALL = [(NEGATE, None)] | ||
| _UNIT_CODES = {LITERAL, NOT_LITERAL, ANY, IN, CATEGORY} |
There was a problem hiding this comment.
Since we are moving around quite some code anyway, should we change to
| _UNIT_CODES = {LITERAL, NOT_LITERAL, ANY, IN, CATEGORY} | |
| _UNIT_CODES = frozenset({LITERAL, NOT_LITERAL, ANY, IN, CATEGORY}) |
Sorry, something went wrong.
There was a problem hiding this comment.
It was a set before. frozenset does not have any advantage over set.
Sorry, something went wrong.
|
|
||
| """Internal support module for sre. | ||
|
|
||
| Optimization passes used by the compiler: character-set optimization |
There was a problem hiding this comment.
The _compile_charset is not listed here (but it is imported from this module).
Since these things can get outdated, I am also fine with leaving out this docstring
Sorry, something went wrong.
There was a problem hiding this comment.
It will be updated in follow up anyway.
Sorry, something went wrong.
| Back | FazBrowse Home | New Git URL |
Move the compile-time optimizations out of _compiler.py into a new Lib/re/_optimizer.py: _optimize_charset, _compile_charset, _simple, _compile_info, the literal/charset prefix helpers, _combine_flags and the related constants. _compiler.py keeps only the bytecode emitter and imports them.
The dependency is now one-directional (_compiler → _optimizer → _constants/_sre/_parser). There is no behavior change: the compiled bytecode is identical and test_re passes unchanged (one test repointed _generate_overlap_table to its new home).
This is groundwork for follow-up compile-side optimizations under gh-152100 that would otherwise accumulate in _compiler.py.
🤖 Generated with Claude Code