Skip to main content

A tool to generate ASCII art signatures (tattoos) and apply them to your code files recursively.

Project description

Tatuagem, the boastful code signature suite

coverage

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 '@'

alt text

Wallpaper: Pattern-Argument Syntax Example

Using a pattern string for the background.

python3 tatuagem.py "Tatuagem" --pattern '`':,:''

alt text

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 named file.txt
  • Wildcards: *.log - ignores all files ending with .log
  • Directory patterns: node_modules/ - ignores all files in node_modules directory
  • Recursive patterns: build/** - ignores all files in build and 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

  1. Create a .tatignore file in the directory you want to tattoo (or copy .tatignore.example from this repository)
  2. Add patterns for files/directories to exclude
  3. Run tatuagem with --recurse-path as 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

tatuagem-0.1.4.tar.gz (15.3 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

tatuagem-0.1.4-py3-none-any.whl (19.8 kB view details)

Uploaded Python 3

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

Hashes for tatuagem-0.1.4.tar.gz
Algorithm Hash digest
SHA256 338dab93b81e77b3c62609b0b53d42186e40e8cd1f61f85c1c09bbbd28f77a55
MD5 edbae76d5ce8cadc408d2dbb743c5087
BLAKE2b-256 3dadc378e1f4844b4b8c5c15a161e0285f14d8fc4caf26bd2cf3eb03de6e32c2

See more details on using hashes here.

Provenance

The following attestation bundles were made for tatuagem-0.1.4.tar.gz:

Publisher: publish.yml on juleshenry/tatuagem

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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

Hashes for tatuagem-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 3bef86893b5ca9914551298d2f029d4ca48dc5deffac1e7177d401c6a67c2bd7
MD5 fe414f9743987bca7c88795ef52ea0ba
BLAKE2b-256 54cf828ec88fa45ef75e46ea3a759c51c7b60027bd3985c64f0404bc6c06fca9

See more details on using hashes here.

Provenance

The following attestation bundles were made for tatuagem-0.1.4-py3-none-any.whl:

Publisher: publish.yml on juleshenry/tatuagem

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page