Skip to main content

molddir simplifies merging directory files into a single file. It's especially useful for sending entire codebases to Large Language Models (LLMs) by encoding the codebase into one string

Project description

molddir: Encoder-Decoder Module

molddir is a Python package that provides a simple way to encode and decode files and directories into a custom format. This module is particularly useful in the era of Large Language Models (LLMs), where sending a complete codebase to an LLM can be a tedious task. molddir helps by encoding the entire codebase into a single string, which can then be easily decoded back into the original files and directories.

Features

  • Encoder Class: Encodes files and directories into a custom format.
  • Decoder Class: Decodes the encoded data back into files and directories.
  • CLI Tool: Provides a command-line interface for easy usage.
  • Supports ignoring files from repository .gitignore files.
  • Allows you to customize the encoding pattern using keys.py module.

Installation

You can install molddir using Poetry:

poetry add molddir

Or using pip:

pip install molddir

Modules

  • decoder: Contains the Decoder class for decoding the codebase.
  • encoder: Contains the Encoder class for encoding the codebase.
  • keys: Contains the KeyBuilder class for building keys.
  • walker: Contains the FolderWalker class for walking through folders.

Using the Module

Encoder Class

The Encoder class is responsible for encoding files and directories into a custom format. It takes in a codebase path as an argument, which can be a file or a directory.

from molddir import Encoder

encoder = Encoder("path/to/codebase")
encoded_data = encoder()
print(encoded_data)

Decoder Class

The Decoder class is responsible for decoding the encoded data back into files and directories.

from molddir import Decoder

decoder = Decoder("output_dir")
decoder(encoded_str="@@@@@@@file1@@@@@@@\nprint('Hello, World!')\n=======\n")

Using the CLI Tool

This script main.py provides a command-line interface (CLI) for encoding and decoding a codebase. It supports the following functionalities:

  • Encoding a codebase using the Encoder class.
  • Decoding an encoded file using the Decoder class.
  • Displaying the version of the tool.

Usage

python main.py --encode --codebase_path <path_to_codebase>
python main.py --decode --encoded_file <path_to_encoded_file> --output_dir <output_directory>
python main.py -v | --version

Arguments

  • --encode: Encode the codebase.
  • --decode: Decode the codebase.
  • --codebase_path: Path to the codebase to encode.
  • --encoded_file: Path to the encoded file to decode.
  • --output_dir: Directory to save the decoded codebase.
  • -v, --version: Display the version of the tool.

Examples

Encode a Codebase

python main.py --encode --codebase_path /path/to/codebase

Decode an encoded file

python main.py --decode --encoded_file /path/to/encoded/file --output_dir /path/to/output/dir

Display the version

python main.py -v

Why Use molddir?

In the era of Large Language Models (LLMs), sending a complete codebase to an LLM can be a tedious task. molddir simplifies this process by encoding the entire codebase into a single string. This encoded string can then be easily sent to an LLM, and decoded back into the original files and directories when needed.

Contributing

Contributions are welcome! Please open an issue or submit a pull request on GitHub.

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

molddir-0.1.2.tar.gz (9.4 kB view details)

Uploaded Source

Built Distribution

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

molddir-0.1.2-py3-none-any.whl (11.2 kB view details)

Uploaded Python 3

File details

Details for the file molddir-0.1.2.tar.gz.

File metadata

  • Download URL: molddir-0.1.2.tar.gz
  • Upload date:
  • Size: 9.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.7.1 CPython/3.9.19 Linux/6.5.0-1025-azure

File hashes

Hashes for molddir-0.1.2.tar.gz
Algorithm Hash digest
SHA256 f79f30a5e47537a954de71d3d12e9df48723b7e637aaff0f6954ecc05bd4ff93
MD5 226430f365aff39616d675daf287c3b5
BLAKE2b-256 bbd15133e17f8695755b3b1aef0bb4741094c5cd04ad970d312b6f4f39c29d67

See more details on using hashes here.

File details

Details for the file molddir-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: molddir-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 11.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.7.1 CPython/3.9.19 Linux/6.5.0-1025-azure

File hashes

Hashes for molddir-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 6f275e9032f374c6683b05c33dac7db1d805ebd3093f587a5ee11b9a0a66e066
MD5 7b432b02b6cce7eca0e65d0abf2c0f94
BLAKE2b-256 ed3e7644f386a5c0c8acdfd2cd7d0d1236950c3dfd621e60c140a5b90121d1be

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