Graffito
Speak softly, but carry a big can of paint.
Banksy
Installtion
Find this tool onPyPI: pip install graffito
Usage
Given a program:
from graffito.tags import graffiti, get_tags
func_test = graffiti
@func_test
def test():
pass
class TestClass:
method_test = graffiti
@method_test
def class_test(self):
pass
print(get_tags(TestClass))
print(get_tags(test))
Executing the program will return:
{'class_test': ['method_test']}
{'test': ['func_test']}
This is a bespoke module. However, let's say that we wanted to characterize functions of a certain signature with a decorator so that we could handle them the same way. Let's say:
from graffito.tags import graffiti, get_tags
class TestClass:
two_var_sig = graffiti
@two_var_sig
def function_a(self, input_a, input_b):
print(f"{input_a}, {input_b}")
@two_var_sig
def function_b(self, input_a, input_b):
print(f"{input_b}, {input_a}")
def function_not_like_them(self, input_a):
print(f"SIKE!")
t = TestClass()
tags = get_tags(TestClass)
for tag in tags:
if "two_var_sig" in tags[tag]:
getattr(t, tag)(1,2)
I know it seems really arbitrary, but it helped me write a simple computer emulator and I think I can develop it to be useful outside of my silly context. Let's find out.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
graffito-0.0.1.tar.gz
(5.4 kB
view details)
File details
Details for the file graffito-0.0.1.tar.gz.
File metadata
- Download URL: graffito-0.0.1.tar.gz
- Upload date:
- Size: 5.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/5.1.1 CPython/3.11.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f08842905f73da7c2f9bc9b117bbef40da5addbf67bc9e9287f5215453e0f97c
|
|
| MD5 |
9d301fb3790db526447295dc4c685a91
|
|
| BLAKE2b-256 |
81ac12c8a0cb9e30301c5a142485066a7e163aeea8d57850d877f21c23cb4520
|