Skip to main content

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

Project description

c2ps — Code2Prompt Simple

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

Версия: 0.2.0

PyPI version Python versions License: MIT

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

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

📦 Установка

Из 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

Вывод

Результат сохраняется в папку c2ps/ в формате 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] c2ps/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
  • Бинарные файлы: изображения, видео, шрифты, архивы

📋 Изменения в версии 0.2.0

✨ Новые возможности

  • 🔢 Подсчет токенов: Добавлен грубый подсчет количества токенов для каждого файла и общая статистика
  • 📂 Автоматическое управление .gitignore: CLI автоматически добавляет директорию вывода c2ps в .gitignore
  • 📊 Расширенная статистика: В отчетах теперь показывается количество токенов рядом с размером и количеством строк

🔧 Улучшения

  • 📁 Изменение директории вывода: Результаты теперь сохраняются в директорию c2ps вместо c2p
  • 🎯 Улучшенная логика исключений: Более надежная проверка и добавление записей в .gitignore

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

  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.2.0.tar.gz (25.0 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.2.0-py3-none-any.whl (12.8 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for c2ps-0.2.0.tar.gz
Algorithm Hash digest
SHA256 7d2dc0428e1f43adf3ea873f8a996d2f84d0bedd652653f313ff48c4cdba214a
MD5 fca532e422d1191480cfcbfd53d640b5
BLAKE2b-256 0f80efe86f3c2cdde2d776f7f0fe5f8dfe57d08b265d8fb09ba9efd8fdb76004

See more details on using hashes here.

File details

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

File metadata

  • Download URL: c2ps-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 12.8 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.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5b476b9a5bb7df06650c2ae75519f122bae9b34b7b3d67be723e26132ad2e1db
MD5 d71abde161769cb9e606e8a644865973
BLAKE2b-256 f5086fb23b7073425e31c94b1ffcdd664b830ac01ca8817782b13a2dab7beb03

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