Metadata-Version: 2.4
Name: pydvenv
Version: 1.0.0
Summary: Creating a directory with a Python virtual environment
Home-page: https://github.com/MagIlyasDOMA/pydvenv
Author: Маг Ильяс DOMA (MagIlyasDOMA)
Author-email: magilyas.doma.09@list.ru
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Development Status :: 5 - Production/Stable
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Software Development :: Libraries
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.10
Description-Content-Type: text/markdown
Provides-Extra: dev
Requires-Dist: pip-setuptools>=1.1.4; extra == "dev"
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: provides-extra
Dynamic: requires-python
Dynamic: summary

# 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 особенно полезна при работе с сетевыми файловыми системами или файловыми системами, которые не поддерживают символические ссылки.
