Skip to main content

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

Metadata

Release files for c2ps 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for c2ps 0.2.0
File Size Uploaded
c2ps-0.2.0.tar.gz 25.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for c2ps 0.2.0
File Interpreter ABI Platform
c2ps-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 37.8 kB

Release files / c2ps-0.2.0.tar.gz

Download URL c2ps-0.2.0.tar.gz
Size 25.0 kB
Tags Source
SHA-256 checksum
How to use checksums
7d2dc0428e1f43adf3ea873f8a996d2f84d0bedd652653f313ff48c4cdba214a
BLAKE2b-256 checksum
How to use checksums
0f80efe86f3c2cdde2d776f7f0fe5f8dfe57d08b265d8fb09ba9efd8fdb76004
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.12

Release files / c2ps-0.2.0-py3-none-any.whl

Download URL c2ps-0.2.0-py3-none-any.whl
Size 12.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
5b476b9a5bb7df06650c2ae75519f122bae9b34b7b3d67be723e26132ad2e1db
BLAKE2b-256 checksum
How to use checksums
f5086fb23b7073425e31c94b1ffcdd664b830ac01ca8817782b13a2dab7beb03
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.12

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files

0.1.2

2 release files

0.1.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page