A function-tagging library using decorators as tags.
Project description
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.
Project details
Release history Release notifications | RSS feed
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 |