[Python-Dev] Reorganizing re and curses related code
Serhiy Storchaka
storchaka at gmail.com
Fri Nov 3 06:01:28 EDT 2017
Currently the implementation of re and curses related modules is sparsed
over several files:
re:
Lib/re.py
Lib/sre_compile.py
Lib/sre_constants.py
Lib/sre_parse.py
_sre:
Modules/_sre.c
Modules/sre_constants.h
Modules/sre.h
Modules/sre_lib.h
_curses:
Include/py_curses.h
Modules/_cursesmodule.c
Modules/_curses_panel.c
I want to make the re module a package, and move sre_*.py files into it.
Maybe later I'll add the sre_optimize.py file for separating
optimization from parsing and compiling to an internal code. The
original sre_*.py files will be left for compatibility for long time,
but they will just import their content from the re package.
_sre implementation will be moved into the Modules/_sre/ directory. This
will just make them to be in one place and will decrease the number of
files in the Modules/ directory.
The implementations of the _curses and _curses_panel modules together
with the common header file will be moved into the Modules/_curses/
directory. Excluding py_curses.h from the set of global headers will
increase the speed of rebuilding when modify just the _curses
implementation (I did this too much recent times). In future the
implementation of menu and forms extensions will be added (the patch for
menu has beed provided years ago). Since _cursesmodule.c is one of the
largest file (it defines hundreds of functions), it may be worth to
extract the implementation of the _curses.window class into a separate
file. And I want to implement the support of "soft function-key labels".
All this will increase the number of _curses related files to 7.
curses already is a package.
Since virtually all changes in these files at recent years have been
made by me, I don't think this will harm other core developers. Are
there any objections?
More information about the Python-Dev
mailing list