Macros for Python
Project description
macros.py
Macros in python
macros.py is an implemention of macros similar to ones found in C using !
to define macros
Guido van Rossum would hate me
Examples
Max function-macro
# coding: macros
!MAX(a, b) (a if a > b else b)
# print the max of 1 and 5
def max_1_and_5():
print(MAX(1, 5))
max_1_and_5()
# output:
# 5
More examples can be found in the examples directory
How it works
You might be wondering, how the hell did you make macros in python. It's possible due to a quirk in python that allows custom encodings to be created and preprocess the code before it is run. When a macro is defined it doesn't actually define it as a python variable, it saves the bytecode and name of a macro in a list of macros that is checked against when token of type tokenize.NAME
is seen. When a macro is used, it yields the tokens of the macro in place (and if the macro has args, replaces those).
Installing
From pip
py -m pip install -U macros.py
From source
git clone https://github.com/spookybear0/macros.py
cd macros.py
python3 -m pip install -U .
A side note
This library is a joke, please do not ever use this in a real project.
This code is also of terrible quality, but I might decide to improve it soon
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file macros.py-0.2.0.tar.gz
.
File metadata
- Download URL: macros.py-0.2.0.tar.gz
- Upload date:
- Size: 5.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.7.0 importlib_metadata/4.8.2 pkginfo/1.8.2 requests/2.24.0 requests-toolbelt/0.9.1 tqdm/4.49.0 CPython/3.8.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 37006146d185adadaf9e2da077221dfbfcff1491cff3911a2bc47ccb75c545cf |
|
MD5 | b88c25c522f38dc79fff2168bc7aa533 |
|
BLAKE2b-256 | b0fb36f6b2ffdd9ff8f13d6d6db7e142eb68a3b82da4f1f2b229f242e9a74010 |