kgrv


Namekgrv JSON
Version 0.1.2 PyPI version JSON
download
home_pagehttps://github.com/kogriv/kgrv
SummaryPython пакет для экспериментов и обучения
upload_time2025-08-24 10:50:22
maintainerNone
docs_urlNone
authorkogriv
requires_python>=3.7
licenseMIT
keywords python package tutorial learning example
VCS
bugtrack_url
requirements pytest click colorama requests pytest
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # KGRV

[![Python 3.7+](https://img.shields.io/badge/python-3.7+-blue.svg)](https://www.python.org/downloads/)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)

Python пакет для экспериментов и обучения созданию Python пакетов.

## 🎯 Описание

KGRV - это демонстрационный Python пакет, который показывает лучшие практики:
- 📦 Организации структуры Python пакета
- 📚 Документирования кода и API
- 🧪 Написания тестов
- 🚀 Публикации на PyPI
- ⚙️ Настройки инструментов разработки

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

- **Класс About** - для отображения информации о разработчике
- **Управление навыками и проектами** - добавление и просмотр
- **CLI интерфейс** - командная строка для взаимодействия
- **Демонстрационные скрипты** - примеры использования
- **Полное покрытие тестами** - unit-тесты для всех компонентов

## 🏗️ Структура проекта

```
kgrv/
├── kgrv/                   # 📦 Основной пакет (для PyPI)
│   ├── __init__.py        # Инициализация и экспорты
│   ├── about.py           # Модуль About
│   └── cli_click.py       # CLI интерфейс (click-based)
├── scripts/               # 🎮 Демонстрационные скрипты
│   ├── demo.py           # Интерактивная демонстрация
│   ├── cleanup.sh        # Скрипт очистки (Bash)
│   └── cleanup.ps1       # Скрипт очистки (PowerShell)
├── docs/                  # 📚 Документация
│   ├── publishing.md     # Руководство по публикации
│   └── publish/          # Инструкции по публикации
│       ├── cleanup-instructions.md
│       └── build-instructions.md
├── tests/                 # 🧪 Тесты
│   └── test_about.py     # Тесты для модуля about
├── pyproject.toml        # 🔧 Современная конфигурация
├── requirements.txt      # 🛠️ Зависимости для разработки
├── MANIFEST.in           # 📋 Файлы для дистрибутива
├── LICENSE               # 📄 Лицензия MIT
└── CHANGELOG.md          # 📝 История изменений
```

## 🚀 Быстрый старт

### Установка

```bash
# Клонирование репозитория
git clone https://github.com/kogriv/kgrv.git
cd kgrv

# Создание виртуального окружения
python -m venv venv

# Активация (Windows)
venv\Scripts\activate

# Активация (Linux/Mac)
source venv/bin/activate

# Установка в режиме разработки
pip install -e .
```

### Использование

#### Python API

```python
from kgrv import About

# Создание объекта
about = About("Ваше имя")

# Вывод информации
about.print_info()

# Добавление навыков
about.add_skill("Python")
about.add_skill("Machine Learning")

# Получение данных
skills = about.get_skills()
info = about.get_info()  # Все данные в JSON формате
```

#### CLI интерфейс

```bash
# Показать помощь
kgrv --help

# Показать информацию о разработчике
kgrv info

# Показать информацию с кастомным именем
kgrv info --name "John"

# Показать информацию в JSON формате
kgrv info --format json

# Показать навыки разработчика
kgrv skills

# Показать проекты разработчика
kgrv projects

# Проверить валидность GitHub профиля
kgrv validate

# Добавить навык
kgrv add-skill

# Добавить проект
kgrv add-project

# Запустить интерактивную демонстрацию
kgrv demo
```

#### Демонстрация

```bash
# Запуск интерактивной демонстрации
python scripts/demo.py

# Или через CLI
kgrv demo
```

### 📋 Подробное описание CLI команд

#### Основные команды:

**`kgrv info`** - Показать полную информацию о разработчике
```bash
# Базовый вывод
kgrv info

# С кастомным именем
kgrv info --name "John"

# В JSON формате
kgrv info --format json

# С добавлением навыков и проектов
kgrv info --add-skill "Django" --add-project "Web App"
```

**`kgrv skills`** - Показать навыки разработчика
```bash
# Текстовый формат
kgrv skills

# JSON формат
kgrv skills --format json
```

**`kgrv projects`** - Показать проекты разработчика
```bash
# Текстовый формат
kgrv projects

# JSON формат
kgrv projects --format json
```

**`kgrv validate`** - Проверить валидность GitHub профиля
```bash
# Проверка профиля
kgrv validate

# С кастомным именем
kgrv validate --name "username"
```

#### Команды управления:

**`kgrv add-skill`** - Добавить навык
```bash
# Интерактивный ввод
kgrv add-skill

# С указанием навыка
kgrv add-skill --skill "React"
```

**`kgrv add-project`** - Добавить проект
```bash
# Интерактивный ввод
kgrv add-project

# С указанием проекта
kgrv add-project --project "E-commerce Platform"
```

**`kgrv demo`** - Интерактивная демонстрация
```bash
# Полная демонстрация функционала
kgrv demo
```

## 🧪 Тестирование

```bash
# Установка зависимостей для разработки
pip install -r requirements.txt

# Запуск тестов
python -m pytest tests/ -v

# Запуск конкретного теста
python tests/test_about.py

# Запуск с покрытием (если установлен pytest-cov)
pytest --cov=kgrv --cov-report=html
```

## 📦 Публикация на PyPI

```bash
# Очистка проекта
./scripts/cleanup.ps1  # Windows
./scripts/cleanup.sh   # Linux/Mac

# Сборка пакета
python -m build

# Проверка пакета
twine check dist/*

# Загрузка на Test PyPI
twine upload --repository testpypi dist/*

# Тестирование установки из Test PyPI
pip install --index-url https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple/ kgrv

# Загрузка на PyPI
twine upload dist/*
```

Подробное руководство по публикации: [docs/publishing.md](docs/publishing.md)

## 🛠️ Разработка

### Настройка окружения

```bash
# Установка зависимостей для разработки
pip install -r requirements.txt

# Установка в режиме разработки
pip install -e .
```

### Инструменты качества кода

```bash
# Форматирование кода
black kgrv/ scripts/ tests/

# Проверка типов
mypy kgrv/

# Линтинг
flake8 kgrv/ scripts/ tests/
```

## 📚 Документация

Подробная документация доступна в папке [docs/](docs/):
- [Руководство по публикации](docs/publishing.md) - полное руководство по публикации на PyPI
- [Инструкции по очистке](docs/publish/cleanup-instructions.md) - очистка проекта перед публикацией
- [Инструкции по сборке](docs/publish/build-instructions.md) - сборка пакета

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

1. Форкните репозиторий
2. Создайте ветку для новой функции (`git checkout -b feature/amazing-feature`)
3. Зафиксируйте изменения (`git commit -m 'Add amazing feature'`)
4. Отправьте в ветку (`git push origin feature/amazing-feature`)
5. Откройте Pull Request

## 📄 Лицензия

Этот проект лицензирован под MIT License - см. файл [LICENSE](LICENSE) для деталей.

## 👨‍💻 Автор

**kogriv** - [GitHub](https://github.com/kogriv)

## 🙏 Благодарности

- Python сообществу за отличные инструменты
- Всем, кто делает open source лучше

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/kogriv/kgrv",
    "name": "kgrv",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.7",
    "maintainer_email": "kogriv <kogrv@github.com>",
    "keywords": "python, package, tutorial, learning, example",
    "author": "kogriv",
    "author_email": "kogriv <kogriv@github.com>",
    "download_url": "https://files.pythonhosted.org/packages/b3/24/321e818e48f2228ce64f939dbf9388f8ac771629411b17e21cbac7edd699/kgrv-0.1.2.tar.gz",
    "platform": null,
    "description": "# KGRV\r\n\r\n[![Python 3.7+](https://img.shields.io/badge/python-3.7+-blue.svg)](https://www.python.org/downloads/)\r\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\r\n[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)\r\n\r\nPython \u043f\u0430\u043a\u0435\u0442 \u0434\u043b\u044f \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u043e\u0432 \u0438 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044e Python \u043f\u0430\u043a\u0435\u0442\u043e\u0432.\r\n\r\n## \ud83c\udfaf \u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\r\n\r\nKGRV - \u044d\u0442\u043e \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0439 Python \u043f\u0430\u043a\u0435\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043b\u0443\u0447\u0448\u0438\u0435 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0438:\r\n- \ud83d\udce6 \u041e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b Python \u043f\u0430\u043a\u0435\u0442\u0430\r\n- \ud83d\udcda \u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043a\u043e\u0434\u0430 \u0438 API\r\n- \ud83e\uddea \u041d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0442\u0435\u0441\u0442\u043e\u0432\r\n- \ud83d\ude80 \u041f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438 \u043d\u0430 PyPI\r\n- \u2699\ufe0f \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438\r\n\r\n## \u2728 \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438\r\n\r\n- **\u041a\u043b\u0430\u0441\u0441 About** - \u0434\u043b\u044f \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0435\r\n- **\u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043d\u0430\u0432\u044b\u043a\u0430\u043c\u0438 \u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u043c\u0438** - \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0438 \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\r\n- **CLI \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441** - \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u0430\u044f \u0441\u0442\u0440\u043e\u043a\u0430 \u0434\u043b\u044f \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f\r\n- **\u0414\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0435 \u0441\u043a\u0440\u0438\u043f\u0442\u044b** - \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f\r\n- **\u041f\u043e\u043b\u043d\u043e\u0435 \u043f\u043e\u043a\u0440\u044b\u0442\u0438\u0435 \u0442\u0435\u0441\u0442\u0430\u043c\u0438** - unit-\u0442\u0435\u0441\u0442\u044b \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432\r\n\r\n## \ud83c\udfd7\ufe0f \u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u043f\u0440\u043e\u0435\u043a\u0442\u0430\r\n\r\n```\r\nkgrv/\r\n\u251c\u2500\u2500 kgrv/                   # \ud83d\udce6 \u041e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u043f\u0430\u043a\u0435\u0442 (\u0434\u043b\u044f PyPI)\r\n\u2502   \u251c\u2500\u2500 __init__.py        # \u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0438 \u044d\u043a\u0441\u043f\u043e\u0440\u0442\u044b\r\n\u2502   \u251c\u2500\u2500 about.py           # \u041c\u043e\u0434\u0443\u043b\u044c About\r\n\u2502   \u2514\u2500\u2500 cli_click.py       # CLI \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 (click-based)\r\n\u251c\u2500\u2500 scripts/               # \ud83c\udfae \u0414\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0435 \u0441\u043a\u0440\u0438\u043f\u0442\u044b\r\n\u2502   \u251c\u2500\u2500 demo.py           # \u0418\u043d\u0442\u0435\u0440\u0430\u043a\u0442\u0438\u0432\u043d\u0430\u044f \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0430\u0446\u0438\u044f\r\n\u2502   \u251c\u2500\u2500 cleanup.sh        # \u0421\u043a\u0440\u0438\u043f\u0442 \u043e\u0447\u0438\u0441\u0442\u043a\u0438 (Bash)\r\n\u2502   \u2514\u2500\u2500 cleanup.ps1       # \u0421\u043a\u0440\u0438\u043f\u0442 \u043e\u0447\u0438\u0441\u0442\u043a\u0438 (PowerShell)\r\n\u251c\u2500\u2500 docs/                  # \ud83d\udcda \u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f\r\n\u2502   \u251c\u2500\u2500 publishing.md     # \u0420\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e \u043f\u043e \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438\r\n\u2502   \u2514\u2500\u2500 publish/          # \u0418\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u043f\u043e \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438\r\n\u2502       \u251c\u2500\u2500 cleanup-instructions.md\r\n\u2502       \u2514\u2500\u2500 build-instructions.md\r\n\u251c\u2500\u2500 tests/                 # \ud83e\uddea \u0422\u0435\u0441\u0442\u044b\r\n\u2502   \u2514\u2500\u2500 test_about.py     # \u0422\u0435\u0441\u0442\u044b \u0434\u043b\u044f \u043c\u043e\u0434\u0443\u043b\u044f about\r\n\u251c\u2500\u2500 pyproject.toml        # \ud83d\udd27 \u0421\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f\r\n\u251c\u2500\u2500 requirements.txt      # \ud83d\udee0\ufe0f \u0417\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438\r\n\u251c\u2500\u2500 MANIFEST.in           # \ud83d\udccb \u0424\u0430\u0439\u043b\u044b \u0434\u043b\u044f \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432\u0430\r\n\u251c\u2500\u2500 LICENSE               # \ud83d\udcc4 \u041b\u0438\u0446\u0435\u043d\u0437\u0438\u044f MIT\r\n\u2514\u2500\u2500 CHANGELOG.md          # \ud83d\udcdd \u0418\u0441\u0442\u043e\u0440\u0438\u044f \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439\r\n```\r\n\r\n## \ud83d\ude80 \u0411\u044b\u0441\u0442\u0440\u044b\u0439 \u0441\u0442\u0430\u0440\u0442\r\n\r\n### \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430\r\n\r\n```bash\r\n# \u041a\u043b\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f\r\ngit clone https://github.com/kogriv/kgrv.git\r\ncd kgrv\r\n\r\n# \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f\r\npython -m venv venv\r\n\r\n# \u0410\u043a\u0442\u0438\u0432\u0430\u0446\u0438\u044f (Windows)\r\nvenv\\Scripts\\activate\r\n\r\n# \u0410\u043a\u0442\u0438\u0432\u0430\u0446\u0438\u044f (Linux/Mac)\r\nsource venv/bin/activate\r\n\r\n# \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438\r\npip install -e .\r\n```\r\n\r\n### \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\r\n\r\n#### Python API\r\n\r\n```python\r\nfrom kgrv import About\r\n\r\n# \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u0430\r\nabout = About(\"\u0412\u0430\u0448\u0435 \u0438\u043c\u044f\")\r\n\r\n# \u0412\u044b\u0432\u043e\u0434 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438\r\nabout.print_info()\r\n\r\n# \u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043d\u0430\u0432\u044b\u043a\u043e\u0432\r\nabout.add_skill(\"Python\")\r\nabout.add_skill(\"Machine Learning\")\r\n\r\n# \u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445\r\nskills = about.get_skills()\r\ninfo = about.get_info()  # \u0412\u0441\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0432 JSON \u0444\u043e\u0440\u043c\u0430\u0442\u0435\r\n```\r\n\r\n#### CLI \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\r\n\r\n```bash\r\n# \u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u043f\u043e\u043c\u043e\u0449\u044c\r\nkgrv --help\r\n\r\n# \u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0435\r\nkgrv info\r\n\r\n# \u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u0441 \u043a\u0430\u0441\u0442\u043e\u043c\u043d\u044b\u043c \u0438\u043c\u0435\u043d\u0435\u043c\r\nkgrv info --name \"John\"\r\n\r\n# \u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u0432 JSON \u0444\u043e\u0440\u043c\u0430\u0442\u0435\r\nkgrv info --format json\r\n\r\n# \u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u043d\u0430\u0432\u044b\u043a\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430\r\nkgrv skills\r\n\r\n# \u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u043f\u0440\u043e\u0435\u043a\u0442\u044b \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430\r\nkgrv projects\r\n\r\n# \u041f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0432\u0430\u043b\u0438\u0434\u043d\u043e\u0441\u0442\u044c GitHub \u043f\u0440\u043e\u0444\u0438\u043b\u044f\r\nkgrv validate\r\n\r\n# \u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043d\u0430\u0432\u044b\u043a\r\nkgrv add-skill\r\n\r\n# \u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043f\u0440\u043e\u0435\u043a\u0442\r\nkgrv add-project\r\n\r\n# \u0417\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0438\u043d\u0442\u0435\u0440\u0430\u043a\u0442\u0438\u0432\u043d\u0443\u044e \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0430\u0446\u0438\u044e\r\nkgrv demo\r\n```\r\n\r\n#### \u0414\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0430\u0446\u0438\u044f\r\n\r\n```bash\r\n# \u0417\u0430\u043f\u0443\u0441\u043a \u0438\u043d\u0442\u0435\u0440\u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0439 \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0430\u0446\u0438\u0438\r\npython scripts/demo.py\r\n\r\n# \u0418\u043b\u0438 \u0447\u0435\u0440\u0435\u0437 CLI\r\nkgrv demo\r\n```\r\n\r\n### \ud83d\udccb \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 CLI \u043a\u043e\u043c\u0430\u043d\u0434\r\n\r\n#### \u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b:\r\n\r\n**`kgrv info`** - \u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u043f\u043e\u043b\u043d\u0443\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0435\r\n```bash\r\n# \u0411\u0430\u0437\u043e\u0432\u044b\u0439 \u0432\u044b\u0432\u043e\u0434\r\nkgrv info\r\n\r\n# \u0421 \u043a\u0430\u0441\u0442\u043e\u043c\u043d\u044b\u043c \u0438\u043c\u0435\u043d\u0435\u043c\r\nkgrv info --name \"John\"\r\n\r\n# \u0412 JSON \u0444\u043e\u0440\u043c\u0430\u0442\u0435\r\nkgrv info --format json\r\n\r\n# \u0421 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c \u043d\u0430\u0432\u044b\u043a\u043e\u0432 \u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432\r\nkgrv info --add-skill \"Django\" --add-project \"Web App\"\r\n```\r\n\r\n**`kgrv skills`** - \u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u043d\u0430\u0432\u044b\u043a\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430\r\n```bash\r\n# \u0422\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0439 \u0444\u043e\u0440\u043c\u0430\u0442\r\nkgrv skills\r\n\r\n# JSON \u0444\u043e\u0440\u043c\u0430\u0442\r\nkgrv skills --format json\r\n```\r\n\r\n**`kgrv projects`** - \u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u043f\u0440\u043e\u0435\u043a\u0442\u044b \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430\r\n```bash\r\n# \u0422\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0439 \u0444\u043e\u0440\u043c\u0430\u0442\r\nkgrv projects\r\n\r\n# JSON \u0444\u043e\u0440\u043c\u0430\u0442\r\nkgrv projects --format json\r\n```\r\n\r\n**`kgrv validate`** - \u041f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0432\u0430\u043b\u0438\u0434\u043d\u043e\u0441\u0442\u044c GitHub \u043f\u0440\u043e\u0444\u0438\u043b\u044f\r\n```bash\r\n# \u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043f\u0440\u043e\u0444\u0438\u043b\u044f\r\nkgrv validate\r\n\r\n# \u0421 \u043a\u0430\u0441\u0442\u043e\u043c\u043d\u044b\u043c \u0438\u043c\u0435\u043d\u0435\u043c\r\nkgrv validate --name \"username\"\r\n```\r\n\r\n#### \u041a\u043e\u043c\u0430\u043d\u0434\u044b \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f:\r\n\r\n**`kgrv add-skill`** - \u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043d\u0430\u0432\u044b\u043a\r\n```bash\r\n# \u0418\u043d\u0442\u0435\u0440\u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0439 \u0432\u0432\u043e\u0434\r\nkgrv add-skill\r\n\r\n# \u0421 \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u0435\u043c \u043d\u0430\u0432\u044b\u043a\u0430\r\nkgrv add-skill --skill \"React\"\r\n```\r\n\r\n**`kgrv add-project`** - \u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043f\u0440\u043e\u0435\u043a\u0442\r\n```bash\r\n# \u0418\u043d\u0442\u0435\u0440\u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0439 \u0432\u0432\u043e\u0434\r\nkgrv add-project\r\n\r\n# \u0421 \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u0435\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0430\r\nkgrv add-project --project \"E-commerce Platform\"\r\n```\r\n\r\n**`kgrv demo`** - \u0418\u043d\u0442\u0435\u0440\u0430\u043a\u0442\u0438\u0432\u043d\u0430\u044f \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0430\u0446\u0438\u044f\r\n```bash\r\n# \u041f\u043e\u043b\u043d\u0430\u044f \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0430\u0446\u0438\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u0430\r\nkgrv demo\r\n```\r\n\r\n## \ud83e\uddea \u0422\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\r\n\r\n```bash\r\n# \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439 \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438\r\npip install -r requirements.txt\r\n\r\n# \u0417\u0430\u043f\u0443\u0441\u043a \u0442\u0435\u0441\u0442\u043e\u0432\r\npython -m pytest tests/ -v\r\n\r\n# \u0417\u0430\u043f\u0443\u0441\u043a \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0433\u043e \u0442\u0435\u0441\u0442\u0430\r\npython tests/test_about.py\r\n\r\n# \u0417\u0430\u043f\u0443\u0441\u043a \u0441 \u043f\u043e\u043a\u0440\u044b\u0442\u0438\u0435\u043c (\u0435\u0441\u043b\u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d pytest-cov)\r\npytest --cov=kgrv --cov-report=html\r\n```\r\n\r\n## \ud83d\udce6 \u041f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u044f \u043d\u0430 PyPI\r\n\r\n```bash\r\n# \u041e\u0447\u0438\u0441\u0442\u043a\u0430 \u043f\u0440\u043e\u0435\u043a\u0442\u0430\r\n./scripts/cleanup.ps1  # Windows\r\n./scripts/cleanup.sh   # Linux/Mac\r\n\r\n# \u0421\u0431\u043e\u0440\u043a\u0430 \u043f\u0430\u043a\u0435\u0442\u0430\r\npython -m build\r\n\r\n# \u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043f\u0430\u043a\u0435\u0442\u0430\r\ntwine check dist/*\r\n\r\n# \u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u043d\u0430 Test PyPI\r\ntwine upload --repository testpypi dist/*\r\n\r\n# \u0422\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0438\u0437 Test PyPI\r\npip install --index-url https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple/ kgrv\r\n\r\n# \u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u043d\u0430 PyPI\r\ntwine upload dist/*\r\n```\r\n\r\n\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0435 \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e \u043f\u043e \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438: [docs/publishing.md](docs/publishing.md)\r\n\r\n## \ud83d\udee0\ufe0f \u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430\r\n\r\n### \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f\r\n\r\n```bash\r\n# \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439 \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438\r\npip install -r requirements.txt\r\n\r\n# \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438\r\npip install -e .\r\n```\r\n\r\n### \u0418\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430 \u043a\u043e\u0434\u0430\r\n\r\n```bash\r\n# \u0424\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043a\u043e\u0434\u0430\r\nblack kgrv/ scripts/ tests/\r\n\r\n# \u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0442\u0438\u043f\u043e\u0432\r\nmypy kgrv/\r\n\r\n# \u041b\u0438\u043d\u0442\u0438\u043d\u0433\r\nflake8 kgrv/ scripts/ tests/\r\n```\r\n\r\n## \ud83d\udcda \u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f\r\n\r\n\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0430\u044f \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430 \u0432 \u043f\u0430\u043f\u043a\u0435 [docs/](docs/):\r\n- [\u0420\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e \u043f\u043e \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438](docs/publishing.md) - \u043f\u043e\u043b\u043d\u043e\u0435 \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e \u043f\u043e \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438 \u043d\u0430 PyPI\r\n- [\u0418\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u043f\u043e \u043e\u0447\u0438\u0441\u0442\u043a\u0435](docs/publish/cleanup-instructions.md) - \u043e\u0447\u0438\u0441\u0442\u043a\u0430 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u043f\u0435\u0440\u0435\u0434 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0435\u0439\r\n- [\u0418\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u043f\u043e \u0441\u0431\u043e\u0440\u043a\u0435](docs/publish/build-instructions.md) - \u0441\u0431\u043e\u0440\u043a\u0430 \u043f\u0430\u043a\u0435\u0442\u0430\r\n\r\n## \ud83e\udd1d \u0412\u043a\u043b\u0430\u0434 \u0432 \u043f\u0440\u043e\u0435\u043a\u0442\r\n\r\n1. \u0424\u043e\u0440\u043a\u043d\u0438\u0442\u0435 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439\r\n2. \u0421\u043e\u0437\u0434\u0430\u0439\u0442\u0435 \u0432\u0435\u0442\u043a\u0443 \u0434\u043b\u044f \u043d\u043e\u0432\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 (`git checkout -b feature/amazing-feature`)\r\n3. \u0417\u0430\u0444\u0438\u043a\u0441\u0438\u0440\u0443\u0439\u0442\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f (`git commit -m 'Add amazing feature'`)\r\n4. \u041e\u0442\u043f\u0440\u0430\u0432\u044c\u0442\u0435 \u0432 \u0432\u0435\u0442\u043a\u0443 (`git push origin feature/amazing-feature`)\r\n5. \u041e\u0442\u043a\u0440\u043e\u0439\u0442\u0435 Pull Request\r\n\r\n## \ud83d\udcc4 \u041b\u0438\u0446\u0435\u043d\u0437\u0438\u044f\r\n\r\n\u042d\u0442\u043e\u0442 \u043f\u0440\u043e\u0435\u043a\u0442 \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0440\u043e\u0432\u0430\u043d \u043f\u043e\u0434 MIT License - \u0441\u043c. \u0444\u0430\u0439\u043b [LICENSE](LICENSE) \u0434\u043b\u044f \u0434\u0435\u0442\u0430\u043b\u0435\u0439.\r\n\r\n## \ud83d\udc68\u200d\ud83d\udcbb \u0410\u0432\u0442\u043e\u0440\r\n\r\n**kogriv** - [GitHub](https://github.com/kogriv)\r\n\r\n## \ud83d\ude4f \u0411\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u043d\u043e\u0441\u0442\u0438\r\n\r\n- Python \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0443 \u0437\u0430 \u043e\u0442\u043b\u0438\u0447\u043d\u044b\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b\r\n- \u0412\u0441\u0435\u043c, \u043a\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442 open source \u043b\u0443\u0447\u0448\u0435\r\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Python \u043f\u0430\u043a\u0435\u0442 \u0434\u043b\u044f \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u043e\u0432 \u0438 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f",
    "version": "0.1.2",
    "project_urls": {
        "Bug Reports": "https://github.com/kogriv/kgrv/issues",
        "Documentation": "https://github.com/kogriv/kgrv/tree/master/docs",
        "Homepage": "https://github.com/kogriv/kgrv",
        "Repository": "https://github.com/kogriv/kgrv.git"
    },
    "split_keywords": [
        "python",
        " package",
        " tutorial",
        " learning",
        " example"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "5136cd161c2144130e0d812d8d19f2fb9c17cffa5d7b8cfae9ca85cc6d6df70c",
                "md5": "82fb1521a16d77b734da73bbc3e309d0",
                "sha256": "5ef28633df054488de5359e9d04e716710ca10a90256acf75e6b9e151167ab00"
            },
            "downloads": -1,
            "filename": "kgrv-0.1.2-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "82fb1521a16d77b734da73bbc3e309d0",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.7",
            "size": 9746,
            "upload_time": "2025-08-24T10:50:21",
            "upload_time_iso_8601": "2025-08-24T10:50:21.438048Z",
            "url": "https://files.pythonhosted.org/packages/51/36/cd161c2144130e0d812d8d19f2fb9c17cffa5d7b8cfae9ca85cc6d6df70c/kgrv-0.1.2-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "b324321e818e48f2228ce64f939dbf9388f8ac771629411b17e21cbac7edd699",
                "md5": "08f7f4bbf944b8b5e01b89916dcdcd92",
                "sha256": "f1a4ad65dbafc7e6b92d1e878447e7cba743f3bd0e0e9b3195e0127d1ff1928e"
            },
            "downloads": -1,
            "filename": "kgrv-0.1.2.tar.gz",
            "has_sig": false,
            "md5_digest": "08f7f4bbf944b8b5e01b89916dcdcd92",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.7",
            "size": 23491,
            "upload_time": "2025-08-24T10:50:22",
            "upload_time_iso_8601": "2025-08-24T10:50:22.944412Z",
            "url": "https://files.pythonhosted.org/packages/b3/24/321e818e48f2228ce64f939dbf9388f8ac771629411b17e21cbac7edd699/kgrv-0.1.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-24 10:50:22",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "kogriv",
    "github_project": "kgrv",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "requirements": [
        {
            "name": "pytest",
            "specs": [
                [
                    ">=",
                    "6.0.0"
                ]
            ]
        },
        {
            "name": "click",
            "specs": [
                [
                    ">=",
                    "8.0.0"
                ]
            ]
        },
        {
            "name": "colorama",
            "specs": [
                [
                    ">=",
                    "0.4.0"
                ]
            ]
        },
        {
            "name": "requests",
            "specs": [
                [
                    ">=",
                    "2.25.0"
                ]
            ]
        },
        {
            "name": "pytest",
            "specs": [
                [
                    ">=",
                    "6.0.0"
                ]
            ]
        }
    ],
    "lcname": "kgrv"
}
        
Elapsed time: 1.54300s