c2ps — Code2Prompt Simple
🚀 Простой и мощный инструмент на чистом Python для преобразования структуры проекта и кода в Markdown-промпт для ИИ, ревью кода и анализа проектов.
Версия: 0.2.0
✨ Возможности
- 📁 Гибкое сканирование: Настраиваемые пути, исключения директорий и расширений файлов
- 🎨 Поддержка множества языков: 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
Приоритет настроек
- Аргументы командной строки (высший приоритет)
- Файл
.c2ps.toml(средний приоритет) - Встроенные настройки (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
🤝 Вклад в проект
- Fork репозиторий
- Создайте feature branch (
git checkout -b feature/amazing-feature) - Commit изменения (
git commit -m 'Add amazing feature') - Push branch (
git push origin feature/amazing-feature) - Откройте 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)
| File | Size | Uploaded | |
|---|---|---|---|
| c2ps-0.2.0.tar.gz | 25.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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
|