pydvenv 1.0.0
Creating a directory with a Python virtual environment
Requires Python: >=3.10

# pydvenv - Python Directory Virtual Environment
## Описание
**pydvenv** - это инструмент командной строки для создания директорий с Python виртуальными окружениями. Он объединяет создание виртуального окружения, инициализацию Git-репозитория, установку зависимостей из requirements файлов и другие полезные функции в одной команде.

## Установка
```shell
pip install pydvenv
```

## Использование
### Базовое использование
```shell
pydvenv
```
Создаст виртуальное окружение `.venv` в текущей директории.

### С указанием параметров
```shell
pydvenv my_project my_venv
```
Создаст директорию `my_project` с виртуальным окружением `my_venv` внутри.

## Параметры командной строки
### Позиционные аргументы
- `base_dir` (опционально) - Базовая директория для создания виртуального окружения (по умолчанию: текущая директория)
- `env_name` (опционально) - Имя виртуального окружения (по умолчанию: `.venv`)

### Флаги создания виртуального окружения
- `--clear`, `--rewrite`, `-c` - Удалить содержимое директории окружения, если она уже существует, перед созданием
- `--system-site-packages`, `--system`, `-s` - Дать виртуальному окружению доступ к системным site-packages
- `--symlinks`, `-S`, `-L` - Использовать символические ссылки вместо копирования (если это не поведение по умолчанию для платформы)
- `--copies`, `-C` - Использовать копирование файлов вместо символических ссылок (даже если символические ссылки являются поведением по умолчанию для платформы)
- `--without-pip`, `-P` - Пропустить установку pip в виртуальном окружении
- `--upgrade-deps`, `-u` - Обновить основные зависимости (pip) до последней версии в PyPI
- `--prompt`, `-p` <текст> - Указать альтернативный префикс для prompt окружения
**Примечание:** Флаги --symlinks и --copies являются взаимоисключающими. Если не указан ни один из них, используется поведение по умолчанию для платформы.

### Дополнительные функции
- `--create-git-repository`, `--create-git`, `--init-git-repository`, `--init-git`, `-g` - Создать Git репозиторий. Папка виртуального окружения автоматически добавляется в `.gitignore`
- `--return-to-cwd`, `-R` - Вернуться в текущую директорию после выполнения
- `--requirements`, `-r` [файл] - Установить Python пакеты из указанного requirements файла. Можно использовать несколько раз. Если указан без аргумента - используется `requirements.txt`

### Управление выводом
- `--verbose`, `-V`, `--logging`, `--log`, `-l` - Включить логирование
- `--debug-logging`, `--debug`, `-d` - Включить отладочное логирование

### Информационные флаги
- `--version`, `-v` - Показать версию программы

## Примеры использования
### Пример 1: Базовое создание проекта
```shell
pydvenv my_new_project
```
Создаст директорию `my_new_project` с виртуальным окружением `.venv` внутри.

### Пример 2: Создание с Git репозиторием
```shell
pydvenv my_project venv --create-git-repository
```
Создаст проект с Git репозиторием и добавит `venv` в `.gitignore`.

### Пример 3: С установкой зависимостей
```shell
pydvenv --requirements requirements.txt --requirements dev-requirements.txt
```
Создаст виртуальное окружение и установит зависимости из двух файлов.

### Пример 4: С использованием всех возможностей
```shell
pydvenv my_project my_env \
  --system-site-packages \
  --create-git-repository \
  --requirements requirements.txt \
  --prompt "my_project" \
  --verbose
```

## Особенности работы
### Автоматическое управление .gitignore
При использовании флага `--create-git-repository`, pydvenv:
1. Создает Git репозиторий (`git init`)
2. Создает или обновляет файл `.gitignore`
3. Автоматически добавляет имя виртуального окружения в `.gitignore`

### Обработка requirements файлов
- Поддерживаются локальные файлы и URL
- Можно указать несколько requirements файлов
- При использовании относительных путей, они разрешаются относительно исходной директории
- Для URL поддерживаются стандартные форматы (https://, git+ и др.)

### Кроссплатформенность
- Автоматически определяет платформу (Windows/Linux/macOS)
- Корректно формирует пути к скриптам (`Scripts` на Windows, `bin` на Unix-системах)

## Требования
- Python >= 3.10
- Доступ к команде `git` (только при использовании флага `--create-git-repository`)

## Разработка
### Установка из исходников
```shell
git clone https://github.com/MagIlyasDOMA/pydvenv.git
cd pydvenv
pip install -e .[dev]
```

### Зависимости для разработки
Указываются в файле `dev_requirements.txt`.

## Лицензия
MIT License

## Автор
Маг Ильяс DOMA (MagIlyasDOMA)

## Ссылки
- [GitHub репозиторий](https://github.com/MagIlyasDOMA/pydvenv)
- [PyPI](https://pypi.org/project/pydvenv/)

---

**Примечание:** Для активации созданного виртуального окружения следуйте инструкциям, которые выводятся после создания, или используйте стандартные команды для вашей операционной системы.
Опция --copies особенно полезна при работе с сетевыми файловыми системами или файловыми системами, которые не поддерживают символические ссылки.