Простой инструмент на чистом Python для преобразования кода проекта в Markdown-промпт для ИИ (альтернатива code2prompt)
Project description
c2ps — Code2Prompt Simple
🚀 Простой и мощный инструмент на чистом Python для преобразования структуры проекта и кода в Markdown-промпт для ИИ, ревью кода и анализа проектов.
✨ Возможности
- 📁 Гибкое сканирование: Настраиваемые пути, исключения директорий и расширений файлов
- 🎨 Поддержка множества языков: 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
Приоритет настроек
- Аргументы командной строки (высший приоритет)
- Файл
.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 - Бинарные файлы: изображения, видео, шрифты, архивы
🤝 Вклад в проект
- 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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b0d3d3e32e34fec418c535e6a9ac3482d0df0a5a071d17d07d7884409d59efa5
|
|
| MD5 |
b06d35b8566eb4919ac499bcbf471a7d
|
|
| BLAKE2b-256 |
40e39df7ccdb72c7ced77a866a3250e1352518fd17b3ab1eda88a268be583508
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
abc47e3d7dd2a7b7840ae9eec25a8ded5bd6d32127ec3a1193b8f373f4304a3f
|
|
| MD5 |
d4f03a3f9baf3188d96ea87518d79102
|
|
| BLAKE2b-256 |
8ea71ff6c280cb546615eb118716932fa057e4527fc3afb8dcb45508020b5cb2
|