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/

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.13.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.13-py3-none-any.whl (15.4 MB view details)

Uploaded Python 3

File details

Details for the file tatuagem-0.1.13.tar.gz.

File metadata

  • Download URL: tatuagem-0.1.13.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.13.tar.gz
Algorithm Hash digest
SHA256 02e34ec720594c45fbbe2b484df7db3338aa3fab743d244557344857b94ed9df
MD5 b54f5ff3f4b77193677d7562ee9131e7
BLAKE2b-256 2efec3721d91e5b1863ad434bc2bd46b5dfb3f8798ed0e6096b374544a905e32

See more details on using hashes here.

Provenance

The following attestation bundles were made for tatuagem-0.1.13.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.13-py3-none-any.whl.

File metadata

  • Download URL: tatuagem-0.1.13-py3-none-any.whl
  • Upload date:
  • Size: 15.4 MB
  • 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.13-py3-none-any.whl
Algorithm Hash digest
SHA256 9d4d0e3ebdc1a6a9ff11ee92a34881c2bfc9e8ea384a9989c01a903c4781064e
MD5 5cd4dbc5d642106be289d3d9f6765ad3
BLAKE2b-256 578c021a6704f572cdf758f53c5ba587c1de944b082e041bc562c5877c9fea81

See more details on using hashes here.

Provenance

The following attestation bundles were made for tatuagem-0.1.13-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