Skip to main content

A Python tool for concatenating code.

Project description

Catenator

Catenator is a Python tool for concatenating code files in a directory into a single output string.

Features

  • Concatenate code files from a specified directory
  • Include or exclude specific file extensions
  • Include a directory tree structure
  • Include README files in the output
  • Output to file, clipboard, or stdout
  • gitignore-style .catignore files

Installation

Install using pip

pip install catenator

Usage

As a Command-Line Tool

Basic usage:

catenator /path/to/your/project

Options:

  • --output FILE: Write output to a file instead of stdout
  • --clipboard: Copy output to clipboard
  • --no-tree: Disable directory tree generation
  • --no-readme: Exclude README files from the output
  • --include EXTENSIONS: Comma-separated list of file extensions to include (replaces defaults)
  • --ignore EXTENSIONS: Comma-separated list of file extensions to ignore
  • --count-tokens: Output approximation of how many tokens in output (tiktoken cl100k_base)
  • --watch: Watch for changes and update output file automatically (requires --output)
  • --ignore-tests: Leave out tests from the concatenated output

Example:

python catenator.py /path/to/your/project --output concatenated.md --include py,js,ts

As a Python Module

You can also use Catenator in your Python scripts:

from catenator import Catenator

catenator = Catenator(
    directory='/path/to/your/project',
    include_extensions=['py', 'js', 'ts'],
)
result = catenator.catenate()
print(result)

.catignore File

The .catignore file allows you to specify files and directories that should be excluded from the concatenation process. The syntax is like .gitignore files.

Syntax

Lines starting with # are treated as comments. Blank lines are ignored. Patterns can include filenames, directories, or wildcard characters.

Examples

# Ignore all JavaScript files
*.js

# Ignore specific file
ignored_file.txt

# Ignore entire directory
ignored_dir/

License

This project is licensed under the Creative Commons Zero v1.0 Universal (CC0-1.0) License.

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

catenator-0.2.6.tar.gz (9.6 kB view details)

Uploaded Source

Built Distribution

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

catenator-0.2.6-py3-none-any.whl (8.9 kB view details)

Uploaded Python 3

File details

Details for the file catenator-0.2.6.tar.gz.

File metadata

  • Download URL: catenator-0.2.6.tar.gz
  • Upload date:
  • Size: 9.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.3

File hashes

Hashes for catenator-0.2.6.tar.gz
Algorithm Hash digest
SHA256 278793180a87bde012e5202cb74ce69bfa64d27e72d8b306dda221b28dac6bd6
MD5 20d8e1129af7ca6882815aaa595d589d
BLAKE2b-256 1fb6be07a8053328d9e330b5732f70a14f8f0fbea4ee33a7859c66a1a13c7eb4

See more details on using hashes here.

File details

Details for the file catenator-0.2.6-py3-none-any.whl.

File metadata

  • Download URL: catenator-0.2.6-py3-none-any.whl
  • Upload date:
  • Size: 8.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.3

File hashes

Hashes for catenator-0.2.6-py3-none-any.whl
Algorithm Hash digest
SHA256 a2d5eff42fc0cd6d80a7022987dd396e9636e70249e2cc04b49dc194b55d7abd
MD5 8c5d5c477d5a6e4243e26ab2d1e11e92
BLAKE2b-256 6543ed130529c725b0995b07035053f6f0192145fad354e8ab13fa50a5217fc8

See more details on using hashes here.

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