Skip to main content

Software Module Outline & Organization Summary Helper

Project description

smoosh: Software Module Outline & Organization Summary Helper

smoosh is a Python tool that helps developers understand and work with code repositories by generating LLM-optimized summaries of software modules, structure, dependencies, and patterns. It creates compressed yet meaningful representations that can be effectively used in LLM prompts for package understanding and troubleshooting.

Features

  • Repo Snapshot: Copy code repositories to clipboard as plaintext and paste to your favorite AI tools!
  • Smart Exclusion: Exclude files in .gitignore, non-text, caches, large data files
  • Flexible Output Formats: Export summaries in text, JSON, or YAML
  • Command Line Interface: Easy-to-use CLI for quick analysis

Installation

pip install smoosh

Quick Start

Analyze a Python package and generate a summary:

smoosh /path/to/package

Export to specific format:

smoosh /path/to/package --format json --output summary.json

Configuration (optional)

Create a smoosh.yaml in your project root:

analysis:
  exclude_patterns: ['tests/*', '**/__pycache__/*']
  max_depth: 3
  focus: ['api', 'structure', 'patterns']

compression:
  level: medium  # low, medium, high
  custom_patterns:
    df_ops: "standard pandas operations"
    api_call: "external service request/response"

output:
  format: json
  include_schema: true
  max_tokens: 1000

Example Output

╭───────────────────────────────────────────────────────────────╮
│ 🐍 smoosh v0.1.2 - Making Python packages digestible!         │
╰───────────────────────────────────────────────────────────────╯
⠋ Analyzing repository...INFO: Processing directory at code/smoosh
⠋ Analyzing repository...
⠋ Generating summary...
✨ Output copied to clipboard!
        Analysis Results
┏━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━┓
┃ Metric              ┃ Value  ┃
┡━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━┩
│ Repository Size     │ 0.06MB │
│ Total Files         │ 36     │
│ Python Files        │ 17     │
│ Original Lines      │ 2436   │
│ Composed Lines      │ 2520   │
│ Original Characters │ 62187  │
│ Composed Characters │ 63366  │
│ Lines Ratio         │ 1.03x  │
│ Characters Ratio    │ 1.02x  │
└─────────────────────┴────────┘
⠹ Analyzing repository...
⠹ Generating summary...

Clipboard output

Repository: smoosh
Mode: cat
Files: 36 (17 Python)
Total Size: 0.06MB

Repository Structure:
smoosh/
    ├── .github/
    │   └── workflows/
    │       ├── ci.yml
    │       ├── publish.yml
    │       └── release-candidate.yml
    ├── src/
    │   └── smoosh/
    │       ├── analyzer/
    │       │   ├── __init__.py
    │       │   ├── repository.py
    │       │   └── tree.py
    │       ├── composer/
    │       │   ├── __init__.py
    │       │   ├── concatenator.py
    │       │   └── formatter.py
    │       ├── utils/
    │       │   ├── __init__.py
    │       │   ├── config.py
    │       │   ├── file_utils.py
    │       │   ├── logger.py
    │       │   └── path_resolver.py
    │       ├── __init__.py
    │       ├── custom_types.py
    │       └── version.py
    ├── tests/
    │   ├── utils/
    │   │   └── generate_sample.py
    │   ├── __init__.py
    │   └── test_cli.py
    ├── .flake8
    ├── .gitignore
    ├── .pre-commit-config.yaml
    ├── DEVELOPMENT.md
    ├── LICENSE
    ├── pyproject.toml
    └── README.md



### File: .flake8 ###
[flake8]
max-line-length = 100
exclude =
    .git,
    __pycache__,
    build,
    dist

Development

  1. Clone the repository:
git clone https://github.com/yourusername/smoosh.git
cd smoosh
  1. Create a virtual environment:
python -m venv venv
source venv/bin/activate  # or `venv\Scripts\activate` on Windows
  1. Install development dependencies:
pip install -e ".[dev]"
  1. Run tests:
pytest

Contributing

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

License

This project is licensed under the MIT License - see the LICENSE file for details.

Roadmap

Future developments may include:

  • Smart Compression: Generate compact package representations while preserving essential information
  • LLM-Optimized Output: Create summaries specifically formatted for effective use with Language Models
  • Error pattern detection
  • IDE integration
  • Documentation generation
  • Intelligent type abbreviation
  • Pattern reference system
  • Call chain compression
  • Reference deduplication

Support

For questions and support, please open an issue in the GitHub repository.

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

smoosh-0.1.2.tar.gz (21.8 kB view details)

Uploaded Source

Built Distribution

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

smoosh-0.1.2-py3-none-any.whl (20.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: smoosh-0.1.2.tar.gz
  • Upload date:
  • Size: 21.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.11

File hashes

Hashes for smoosh-0.1.2.tar.gz
Algorithm Hash digest
SHA256 eb702915f93d5ac17b69075bbcc5ee59f49e288727bbdc327de3c6b95ecb3d68
MD5 e0ebb95022e1dcebdf16f7682a9e44cc
BLAKE2b-256 9b3ce834f23b516ef223ae279b5cddcdaff2685c7a60d8ee852c1dbdf2db3802

See more details on using hashes here.

File details

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

File metadata

  • Download URL: smoosh-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 20.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.11

File hashes

Hashes for smoosh-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 fab078e4ec16be4026f2406a3d07ef1898a9a842ed7cea8341448587c73142ea
MD5 40c2464b201488221363b79529492cc5
BLAKE2b-256 eefabc90eedd36d8da297950a71d73bc5b0114bb33b6387d0b96761eb5722dea

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