On Mon, Aug 17, 2020 at 5:02 PM Marco Sulla Marco.Sulla.Python@gmail.com wrote:
On Mon, 17 Aug 2020 at 11:17, Steven D'Aprano email@example.com wrote:
Did you have a specific question to be answered or are you just hoping to get people interested in the proposal?
It seems I have to repost the proposal I already wrote...
My proposal is to add a way for third party modules to add custom keywords.
You can already do something like this, using either an import hook or a custom encoding. Perhaps I should repost a link that I already included in an earlier, but rather terse, reply on this thread, about the specific "constant" example.
You will find various examples of adding custom keywords.
from mykeywords import @const @const a = 1
Notice that I choose "@" but I hope another non c-alphanumeric character will be chosen.
On Mon, 17 Aug 2020 at 12:46, Chris Angelico firstname.lastname@example.org wrote:
A proposal that requires syntactic changes [...]
No syntactic changes are needed. Custom keywords *must* be prefixed with a non-alphanumeric character (@ for example).
Syntactic changes would be needed. The way that your example would be normally processed by Python is as follows: First, the entire content of the file would be read, and broken up into tokens (individual words and symbols). Next, these tokens would be interpreted according to Python's grammar: your notation would raise a SyntaxError. This would stop the entire process.
To actually do the import "from mykeywords import ...", one needs to go beyond the parsing stage. This is where a custom encoding or an import hook can help, by transforming the source into valid Python code before it is parsed. More information available at the link given above.
ACK _______________________________________________ Python-ideas mailing list -- email@example.com To unsubscribe send an email to firstname.lastname@example.org https://mail.python.org/mailman3/lists/python-ideas.python.org/ Message archived at https://email@example.com/message/NUAHVS... Code of Conduct: http://python.org/psf/codeofconduct/