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.2.tar.gz (5.4 kB view details)

Uploaded Source

Built Distribution

catenator-0.2.2-py3-none-any.whl (5.5 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for catenator-0.2.2.tar.gz
Algorithm Hash digest
SHA256 610beafd283874ea5b34f1568357d06438dec390cb42b87bfdeb8e2333b06b81
MD5 f3d28dbaa4ad0d1b84750bbd37405863
BLAKE2b-256 a72ab28989d580b7f7594442124b7aea2d9c03dd12c115126a2909fc2f06f44b

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for catenator-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 3b6cb719e24c11667de6da04d7c68459c76855181c5ecefa377a8d2396f7fe71
MD5 6d3241c8e7e186389f262c2680ea4863
BLAKE2b-256 826908ba901e2280a02c6b55db7bd60cdfbbdb55bafe9c4d7c749056c3ecfafc

See more details on using hashes here.

Supported by

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