Skip to main content

Transforming code into clean, readable text with precision and style.

Project description

codepress

Transforming code into clean, readable text with precision and style.

Table of Contents

Introduction

codepress is a powerful command-line tool designed to transform your codebase into clean, readable text. Whether you're preparing documentation, creating code snippets for tutorials, or simply organizing your projects, codepress ensures that your code is presented with precision and style. Additionally, it provides token usage analysis to help you understand the size and complexity of your codebase.

Features

  • Recursive File Processing: Walk through directories to process multiple files effortlessly.
  • Flexible Output Formats: Generate output in plain text or JSON formats.
  • Customizable Output Styles: Define how your code and file information are formatted.
  • Gitignore Support: Automatically respect .gitignore patterns to exclude unwanted files.
  • Line Truncation: Limit the number of lines read from each file to manage large files efficiently.
  • Token Usage Analysis: Inspect and visualize token counts for files in your project.
  • Verbose Logging: Get detailed logs to monitor the processing flow.
  • Extensible: Easily integrate with other tools and workflows.

Installation

Ensure you have Python 3.11 or higher installed.

  1. Clone the Repository

    git clone https://github.com/allen2c/codepress.git
    cd codepress
    
  2. Install Dependencies

    Using Poetry:

    poetry install
    

    Alternatively, using pip:

    pip install -r requirements.txt
    
  3. Build and Install

    poetry build
    poetry install
    

Usage

Once installed, you can use codepress via the command line.

Basic Usage

codepress [OPTIONS] [PATH]
  • PATH: The directory or file to process. Defaults to the current directory (.).

Options

  • --ignore TEXT Patterns to ignore. Can be specified multiple times.

  • --ignore-hidden / --no-ignore-hidden Ignore hidden files and directories. Default is --ignore-hidden.

  • --enable-gitignore / --no-enable-gitignore Enable .gitignore patterns. Default is --enable-gitignore.

  • --truncate-lines INTEGER Number of lines to read from each file. Default is 5000.

  • --output-format [text|json] Output format. Choices are text or json. Default is text.

  • --output-style TEXT Output style. Default is codepress:DEFAULT_CONTENT_STYLE. Skip style if output format is json.

  • --output PATH Output file. Defaults to stdout if not specified.

  • --inspect Show files with total token count and usage summary.

  • --verbose / --no-verbose Enable verbose output. Default is --no-verbose.

  • --help Show the help message and exit.

Examples

  1. Process the Current Directory

    codepress
    
  2. Process a Specific Directory with Verbose Logging

    codepress ./my_project --verbose
    
  3. Ignore Specific Patterns

    codepress ./my_project --ignore "*.pyc" --ignore "__pycache__/"
    
  4. Output to a File in JSON Format

    codepress ./my_project --output-format json --output output.json
    
  5. Limit the Number of Lines Read from Each File

    codepress ./my_project --truncate-lines 1000
    
  6. Disable Gitignore Support

    codepress ./my_project --no-enable-gitignore
    
  7. Inspect Token Usage

    codepress ./my_project --inspect
    

Configuration

You can customize the output style by modifying or creating your own styles. The default style is defined in codepress/__init__.py as DEFAULT_CONTENT_STYLE. To use a custom style, specify it using the --output-style option in the format module:VARIABLE_NAME.

Example:

codepress ./my_project --output-style mymodule:MY_CUSTOM_STYLE

Ensure that your custom style variable is defined and accessible within the specified module.

Contributing

Contributions are welcome! Whether it's reporting bugs, suggesting features, or submitting pull requests, your support helps make codepress better.

  1. Fork the Repository

  2. Create a New Branch

    git checkout -b feature/YourFeature
    
  3. Make Your Changes

  4. Commit Your Changes

    git commit -m "Add your message"
    
  5. Push to the Branch

    git push origin feature/YourFeature
    
  6. Open a Pull Request

Please ensure your code follows the project's coding standards and that all tests pass.

License

This project is licensed under the MIT 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

codepress-0.2.2.tar.gz (8.7 kB view details)

Uploaded Source

Built Distribution

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

codepress-0.2.2-py3-none-any.whl (10.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: codepress-0.2.2.tar.gz
  • Upload date:
  • Size: 8.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.3 CPython/3.11.11 Darwin/24.5.0

File hashes

Hashes for codepress-0.2.2.tar.gz
Algorithm Hash digest
SHA256 a7cafb19a4850ef998e5bbb2094cef5687682f6bd98b5efa70a2b6268b7eba6a
MD5 9f6ae1e24444aba6e50c9198b1690db4
BLAKE2b-256 c562935a8f3e2f98e05b278c0fc9834a0e6bd8f33398a90737daf076ef36a914

See more details on using hashes here.

File details

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

File metadata

  • Download URL: codepress-0.2.2-py3-none-any.whl
  • Upload date:
  • Size: 10.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.3 CPython/3.11.11 Darwin/24.5.0

File hashes

Hashes for codepress-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 f870318a72cb029a682bd9f7510beb802c8644c292e7ae90f661c1f1942a2fe0
MD5 4b154d75975b06872ab8f9b43c9d9b16
BLAKE2b-256 c0b7a1de0b26004d3747502d4eaca4b95f5e982b1bcabae133fc88f322c969fc

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