Skip to main content

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

Project description

c2ps — Code2Prompt Simple

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

PyPI version

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

  • 📁 Гибкое сканирование: Настраиваемые пути, исключения директорий и расширений файлов
  • 🎨 Поддержка множества языков: 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.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 --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 Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

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

c2ps-0.1.0-py3-none-any.whl (11.0 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for c2ps-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ba95dac2ba82179fec3f9fa6db5b8ed0959fef1d616c836f9660ea7fc1033c19
MD5 816e2d4cc8aa1d2ab1913b10238a24b2
BLAKE2b-256 ddb3acda9119603a6ce4e5ffacfa84e54894053fb19a29732dba74d6f349b5ed

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