A tool to generate ASCII art signatures (tattoos) and apply them to your code files recursively.
Project description
Tatuagem, the boastful code signature suite
Tatuagem is a tool to generate ASCII art signatures (tattoos) and apply them to your code files recursively.
Usage
python3 tatuagem.py [text_input] [options]
Arguments
| Argument | Description | Default |
|---|---|---|
text_input |
The string you want to convert into a tattoo. Required if --file is not provided. |
None |
--text |
The character used to draw the text pixels. | 1 |
--backsplash |
The character used to fill the background. | 0$*~ |
--font |
The TrueType font file (.ttf) to use for generating the text shape. | unicode-arial.ttf |
--pattern |
A repeating string pattern to use for the background. Overrides --backsplash. |
None |
--margin |
Number of empty lines (margin) to add above and below the text. | 3 |
--recurse-path |
Path to a directory. Tatuagem will walk through this directory and prepend the tattoo to every file found. | None |
--file, -f |
Path to a file containing text. • Standard Mode: The content of the file is converted into the tattoo art. • Recurse Mode (with --recurse-path): The content of the file is used as-is for the tattoo (useful for pre-generated art). |
None |
--overwrite |
When using --recurse-path, this flag allows overwriting existing tattoos in files. Without this flag, files that are already tattooed will be skipped. |
False |
Examples
Basic Example
Generate a simple tattoo.
python3 tatuagem.py "tatuagem"
Defaults: '1' for text, '0' for background, unicode-arial.ttf for font
Elaborate Syntax Example
Customizing the text and background characters.
python3 tatuagem.py "L'appel du vide" --font 'unicode-arial.ttf' --backsplash '!' --text '@'
Wallpaper: Pattern-Argument Syntax Example
Using a pattern string for the background.
python3 tatuagem.py "Tatuagem" --pattern '`':,:''
Recurse your project
Apply the generated tattoo to all files in test_tattoo/.
python tatuagem.py "Tatuagem" --pattern '`':,:'' --recurse-path test_tattoo/
Recurse your project with a text file
Apply the contents of tests/aeaea.inc as a header to all files in test_tattoo/.
python3 tatuagem.py --file tests/aeaea.inc --recurse-path test_tattoo/
Replace existing tattoos with --overwrite
Update existing tattoos in files that were already tattooed. Without this flag, already-tattooed files will be skipped.
python3 tatuagem.py "New Tattoo" --recurse-path test_tattoo/ --overwrite
Features
✓ Shebang detection and preservation - files with #!/... shebangs keep them at the top
✓ Safe for npm projects - tattooed npm projects continue to work after tattooing
✓ Idempotent - Tattoos won't repeat on themselves if run multiple times
✓ .tatignore support - Exclude specific files and directories from tattooing
.tatignore
Similar to .gitignore, you can create a .tatignore file in the root of the directory you want to tattoo to specify patterns of files and directories to exclude from tattooing.
.tatignore Syntax
The .tatignore file supports the following patterns:
- Simple filenames:
file.txt- ignores any file namedfile.txt - Wildcards:
*.log- ignores all files ending with.log - Directory patterns:
node_modules/- ignores all files innode_modulesdirectory - Recursive patterns:
build/**- ignores all files inbuildand its subdirectories - Comments: Lines starting with
#are treated as comments - Empty lines: Empty lines are ignored
.tatignore Example
# Ignore log files
*.log
# Ignore build artifacts
build/
dist/
# Ignore dependencies
node_modules/
# Ignore specific files
secrets.py
config.local.json
# Ignore test directories
tests/**
Usage with .tatignore
- Create a
.tatignorefile in the directory you want to tattoo (or copy.tatignore.examplefrom this repository) - Add patterns for files/directories to exclude
- Run tatuagem with
--recurse-pathas usual
# This will respect patterns in .tatignore
python3 tatuagem.py "MyProject" --recurse-path ./my-project/
✓ Idempotent - Tattoos won't repeat on themselves if run multiple times (unless --overwrite is used)
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file tatuagem-0.1.4.tar.gz.
File metadata
- Download URL: tatuagem-0.1.4.tar.gz
- Upload date:
- Size: 15.3 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
338dab93b81e77b3c62609b0b53d42186e40e8cd1f61f85c1c09bbbd28f77a55
|
|
| MD5 |
edbae76d5ce8cadc408d2dbb743c5087
|
|
| BLAKE2b-256 |
3dadc378e1f4844b4b8c5c15a161e0285f14d8fc4caf26bd2cf3eb03de6e32c2
|
Provenance
The following attestation bundles were made for tatuagem-0.1.4.tar.gz:
Publisher:
publish.yml on juleshenry/tatuagem
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
tatuagem-0.1.4.tar.gz -
Subject digest:
338dab93b81e77b3c62609b0b53d42186e40e8cd1f61f85c1c09bbbd28f77a55 - Sigstore transparency entry: 813446144
- Sigstore integration time:
-
Permalink:
juleshenry/tatuagem@c149bc94f60c936c8c622da10056b6a251c43e00 -
Branch / Tag:
refs/tags/v0.1.4 - Owner: https://github.com/juleshenry
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@c149bc94f60c936c8c622da10056b6a251c43e00 -
Trigger Event:
release
-
Statement type:
File details
Details for the file tatuagem-0.1.4-py3-none-any.whl.
File metadata
- Download URL: tatuagem-0.1.4-py3-none-any.whl
- Upload date:
- Size: 19.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3bef86893b5ca9914551298d2f029d4ca48dc5deffac1e7177d401c6a67c2bd7
|
|
| MD5 |
fe414f9743987bca7c88795ef52ea0ba
|
|
| BLAKE2b-256 |
54cf828ec88fa45ef75e46ea3a759c51c7b60027bd3985c64f0404bc6c06fca9
|
Provenance
The following attestation bundles were made for tatuagem-0.1.4-py3-none-any.whl:
Publisher:
publish.yml on juleshenry/tatuagem
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
tatuagem-0.1.4-py3-none-any.whl -
Subject digest:
3bef86893b5ca9914551298d2f029d4ca48dc5deffac1e7177d401c6a67c2bd7 - Sigstore transparency entry: 813446148
- Sigstore integration time:
-
Permalink:
juleshenry/tatuagem@c149bc94f60c936c8c622da10056b6a251c43e00 -
Branch / Tag:
refs/tags/v0.1.4 - Owner: https://github.com/juleshenry
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@c149bc94f60c936c8c622da10056b6a251c43e00 -
Trigger Event:
release
-
Statement type: