Skip to main content

Простой инструмент на чистом Python для преобразования кода проекта в Markdown-промпт для ИИ (альтернатива code2prompt)

Project description

c2ps — Code2Prompt Simple

🚀 Простой и мощный инструмент на чистом Python для преобразования структуры проекта и кода в Markdown-промпт для ИИ, ревью кода и анализа проектов.

PyPI version Python versions License: MIT

✨ Возможности

  • 📁 Гибкое сканирование: Настраиваемые пути, исключения директорий и расширений файлов
  • 🎨 Поддержка множества языков: Python, JavaScript, TypeScript, HTML, CSS, Markdown, SQL, YAML и др.
  • 📋 TOML-конфигурация: Полная настройка через .c2ps.toml без изменения кода
  • 🔧 Множественные конфигурации: Разные профили сканирования для разных задач
  • 📊 Подробная статистика: Размер файлов, количество строк, типы файлов
  • 🚫 Умные исключения: Автоматическое игнорирование бинарных файлов, логов, кэша
  • 🎯 Чистый вывод: Форматированный Markdown с подсветкой синтаксиса

📦 Установка

Из PyPI (рекомендуется)

pip install c2ps

Для разработки

git clone https://github.com/levedun/c2ps.git
cd c2ps
pip install -e .

🚀 Быстрый старт

Базовое использование

# Сканировать текущую директорию с настройками по умолчанию
c2ps

# Сканировать конкретные файлы/папки
c2ps src/ README.md

# Сохранить результат в конкретный файл
c2ps --output my_project_prompt.md

# Показать доступные конфигурации
c2ps --list

# Получить справку
c2ps --help

Вывод

Результат сохраняется в папку c2p/ в формате Markdown с подсветкой синтаксиса:

# Сводка по проекту

**Конфигурация:** default (Основной проект)
**Сгенерировано:** 2024-01-24 12:00:00

## Структура проекта (включенные файлы):

[ 27 строк, 1.20 KB] src/example/utils.js [ 12 строк, 240 B] src/example/hello.py [ 233 строк, 8.50 KB] c2p/examples_code_base.md


## Файл: `src/example/hello.py`

```python
#!/usr/bin/env python3
"""
Простой скрипт приветствия
"""

def main():
    """Главная функция"""
    print("Привет, мир!")
    print("Это пример скрипта для демонстрации работы c2ps")

if __name__ == "__main__":
    main()

## ⚙️ Конфигурация

> **Примечание**: При первом запуске `c2ps` автоматически создаст пример файла `.c2ps.toml` в текущей директории.
> Откройте его и настройте пути/исключения под свой проект.

### Файл `.c2ps.toml`

Создайте файл `.c2ps.toml` в корне проекта для полной настройки:

```toml
# .c2ps.toml — конфигурация для c2ps

[global]
# Глобальные исключения (применяются ко всем конфигурациям)
exclude_dirs = ["venv", "__pycache__", ".git", "node_modules", "dist"]
exclude_extensions = [".pyc", ".log", ".min.js", ".map"]

[default]
# Основная конфигурация (активна по умолчанию)
description = "Основной проект"
paths_to_scan = ["."]
active = true

[examples]
# Конфигурация только для примеров
description = "Только примеры скриптов"
paths_to_scan = ["src/example"]
active = false

[frontend]
# Конфигурация для фронтенда
description = "Только фронтенд"
paths_to_scan = ["frontend/src", "frontend/public"]
exclude_dirs = ["frontend/node_modules"]
active = false

Приоритет настроек

  1. Аргументы командной строки (высший приоритет)
  2. Файл .c2ps.toml (средний приоритет)
  3. Встроенные настройки (fallback)

📋 Доступные команды

Команда Описание
c2ps Запуск с активными конфигурациями
c2ps src/ README.md Сканирование указанных путей
c2ps --list Показать все доступные конфигурации
c2ps --init Инит
c2ps --help Полная справка
c2ps --output report.md Сохранить результат в указанный файл
c2ps --version Показать версию инструмента

🔧 Расширенная настройка

Исключаемые директории

exclude_dirs = ["venv", ".git", "__pycache__", "node_modules"]

Исключаемые расширения файлов

exclude_extensions = [".pyc", ".log", ".tmp", ".bak"]

Пользовательские конфигурации

[myconfig]
description = "Моя кастомная конфигурация"
paths_to_scan = ["src", "tests", "docs"]
exclude_dirs = ["src/temp"]
active = false

🎯 Примеры использования

Анализ проекта для ИИ

# Подготовить код для анализа ИИ
c2ps --output ai_review.md

# Сканировать только исходный код
c2ps src/ --output source_code.md

Ревью кода

# Подготовить файлы для ревью
c2ps --list  # выбрать нужную конфигурацию
c2ps  # запустить с выбранной конфигурацией

Документация API

# Сканировать только API файлы
c2ps src/api/ --output api_docs.md

📊 Поддерживаемые языки

Автоматическая подсветка синтаксиса для:

  • Python, JavaScript, TypeScript
  • HTML, CSS, SCSS
  • JSON, XML, YAML
  • SQL, Markdown
  • Shell, Dockerfile
  • И многие другие...

🚫 Исключения по умолчанию

Автоматически исключаются:

  • Директории: venv, __pycache__, .git, node_modules, dist, build
  • Файлы: .DS_Store
  • Расширения: .pyc, .log, .env, .db, .sqlite3, .bak, .swp, .png, .jpg, .gif, .mp4, .zip
  • Бинарные файлы: изображения, видео, шрифты, архивы

🤝 Вклад в проект

  1. Fork репозиторий
  2. Создайте feature branch (git checkout -b feature/amazing-feature)
  3. Commit изменения (git commit -m 'Add amazing feature')
  4. Push branch (git push origin feature/amazing-feature)
  5. Откройте Pull Request

📄 Лицензия

MIT License - см. файл 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

c2ps-0.1.2.tar.gz (18.1 kB view details)

Uploaded Source

Built Distribution

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

c2ps-0.1.2-py3-none-any.whl (11.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: c2ps-0.1.2.tar.gz
  • Upload date:
  • Size: 18.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.12

File hashes

Hashes for c2ps-0.1.2.tar.gz
Algorithm Hash digest
SHA256 b0d3d3e32e34fec418c535e6a9ac3482d0df0a5a071d17d07d7884409d59efa5
MD5 b06d35b8566eb4919ac499bcbf471a7d
BLAKE2b-256 40e39df7ccdb72c7ced77a866a3250e1352518fd17b3ab1eda88a268be583508

See more details on using hashes here.

File details

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

File metadata

  • Download URL: c2ps-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 11.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.12

File hashes

Hashes for c2ps-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 abc47e3d7dd2a7b7840ae9eec25a8ded5bd6d32127ec3a1193b8f373f4304a3f
MD5 d4f03a3f9baf3188d96ea87518d79102
BLAKE2b-256 8ea71ff6c280cb546615eb118716932fa057e4527fc3afb8dcb45508020b5cb2

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