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
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 610beafd283874ea5b34f1568357d06438dec390cb42b87bfdeb8e2333b06b81 |
|
MD5 | f3d28dbaa4ad0d1b84750bbd37405863 |
|
BLAKE2b-256 | a72ab28989d580b7f7594442124b7aea2d9c03dd12c115126a2909fc2f06f44b |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3b6cb719e24c11667de6da04d7c68459c76855181c5ecefa377a8d2396f7fe71 |
|
MD5 | 6d3241c8e7e186389f262c2680ea4863 |
|
BLAKE2b-256 | 826908ba901e2280a02c6b55db7bd60cdfbbdb55bafe9c4d7c749056c3ecfafc |