We had a similar thing at Dropbox, where `# coding: pyxl` would enable a
preprocessor that allowed HTML embedded in the Python code. It translated
this to function calls and string literals.

There were however several drawbacks:

- Installing the codec is a bit tricky, and if you don't have it the code
can't run
- Other tooling won't know about the new syntax (someone went through
heroic efforts to write a PyCharm extension for pyxl but it got stale very
quickly)
- The codec slows down the import process
- Keeping line numbers accurate in the codec is painful
- Occasionally, when debugging mysteries, you end up needing to see the
source code after preprocessing, which requires yet another custom tool

In the end the project was withdrawn and we switched to more mainstream
templating solutions.

I suspect that many of the issues with pyxl would also plague using this
approach as a way to customize typing syntax, and I don't think it would be
an improvement over the status quo.




On Mon, Apr 19, 2021 at 11:26 AM Luciano Ramalho <luci...@ramalho.org>
wrote:

> How about leveraging the `# coding=<encoding name>` hook that exists
> since 2001 to enable the alternative syntax some are advocating for
> type hints?
>
> PEP 263—Defining Python Source Code Encodings
> https://www.python.org/dev/peps/pep-0263/
>
> I've seen experiments in the wild using that to support syntax
> extensions to Python. Just for fun, years ago I wrote a POC for
> Sucuri—a Python dialect with the keywords in Portuguese. The
> pre-processor simply replaced the Portuguese keywords with the English
> ones.
>
> Cheers,
>
> Luciano
>
>
> --
> Luciano Ramalho
> |  Author of Fluent Python (O'Reilly, 2015)
> |     http://shop.oreilly.com/product/0636920032519.do
> |  Technical Principal at ThoughtWorks
> |  Twitter: @ramalhoorg
> _______________________________________________
> Python-Dev mailing list -- python-dev@python.org
> To unsubscribe send an email to python-dev-le...@python.org
> https://mail.python.org/mailman3/lists/python-dev.python.org/
> Message archived at
> https://mail.python.org/archives/list/python-dev@python.org/message/XRLAOOIJZRPDT2AW6LW4UVBEJD5NKLV5/
> Code of Conduct: http://python.org/psf/codeofconduct/
>


-- 
--Guido van Rossum (python.org/~guido)
*Pronouns: he/him **(why is my pronoun here?)*
<http://feministing.com/2015/02/03/how-using-they-as-a-singular-pronoun-can-change-the-world/>
_______________________________________________
Python-Dev mailing list -- python-dev@python.org
To unsubscribe send an email to python-dev-le...@python.org
https://mail.python.org/mailman3/lists/python-dev.python.org/
Message archived at 
https://mail.python.org/archives/list/python-dev@python.org/message/VKAQSVBTJZMTZCUYV6L2QZEPE24QH6DQ/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to