Skip to content

lemonyte/_

Repository files navigation

_

_ allows you to write Python code using only _.

Installation

Tip

It is highly recommended to use a virtual environment for proper installation of the _.pth file.

python -m pip install underscores

Python 3.9 or a newer version is required.

Usage

The following script is a "Hello, world!" program which can be executed by the Python interpreter:

# coding: _
_ ____ _ _____ _ ____ __ _ _ ___ ______ ____ _ ____ _ ___ _ ____ __ ___ _ __ _
_____ _ _ ______ _____ _ ___ _ _ _ ___ _____ ______ _ ____ _ _ _ ____ _ _ _ ____
_ ____ _ __ __ ___ _ _ ______ ___ _ ____ __ ______ _ ____ _ ____ _ ____ __ _ _
____ _ _ _ ___ _____ _____ _ _ ______ ____ _ _ ______ _____ _ __ _ ______

You can generate a script with _:

print('print("Hello, world!")'.encode("_").decode("utf-8"))

Troubleshooting

If you get SyntaxError: invalid syntax, make sure the line # coding: _ is present at the top of your script.

If you get SyntaxError: encoding problem: _, follow the steps below to make sure the _ encoding is registered on startup:

  1. Run SITE_PACKAGES=$(python -c 'import sysconfig; print(sysconfig.get_path("purelib"))') to get the path to the Python site-packages directory.
  2. Run echo "import underscores" > "$SITE_PACKAGES/_.pth" to register the _ encoding on startup.

Note

If using PowerShell, use $SITE_PACKAGES instead of SITE_PACKAGES to assign the variable.

This issue is commonly encountered when installing _ into the user site-packages.

Credits

_ is a port of _ from Ruby to Python. Please check out the original creator mame.

Big thanks to shailist for this awesome post about custom encodings.

License

MIT License