# PythonicNightmares

**PythonicNightmares** — это ужасный CLI-инструмент, который объединяет в себе самые безумные и странные возможности, доступные только в мире Python. Проект предназначен для развлечения, демонстрации плохих практик программирования и добавления абсурдных команд, которые не должны существовать.

## Установка

Для установки проекта вам потребуется Python версии 3.11 и выше. Установите зависимости с помощью `pip`:

```bash
pip install pynightmares
```

Или скопируйте репозиторий: 

```bash
git clone https://github.com/mrf0rtuna4/PythonicNightmares.git
cd PythonicNightmares
pip install -r requirements.txt
pip install .
```

После установки, вы можете запустить **PyNightmares** через командную строку:

```bash
pynightmares <command>
```

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

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

```bash
pynightmares hello            # Выводит 'Hello, World!'
pynightmares infinite_loop    # Запускает вечный цикл (осторожно!)
pynightmares random_error     # Генерирует случайную ошибку
pynightmares spaghetti_code   # Исполняет "спагетти-код", который плохо читается
pynightmares troll            # Ничего не делает
pynightmares evil_syntax      # Нарушает все правила синтаксиса Python
```

## Возможности проекта

- **Hello World**: Классическая команда для вывода 'Hello, World!'.
- **Бесконечный цикл**: Для самых хардкорных пользователей, запускающих вечные программы.
- **Генерация случайных ошибок**: Почему бы не насладиться неожиданным крахом программы?
- **Спагетти-код**: Демонстрация плохого стиля программирования.
- **Нарушение PEP8**: Команды, которые ломают все правила хорошего стиля в Python.
- **Пасхалки**: Найдите секретные команды, спрятанные в проекте.

## Как это работает?

Проект использует Python CLI и модуль `argparse` для обработки командной строки. Все команды регистрируются в системе с помощью декораторов, а затем исполняются через CLI-интерфейс. В проекте предусмотрен механизм автозагрузки команд, что делает его легко расширяемым.

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

Если вы хотите внести вклад в проект или добавить собственные "ужасные" функции, следуйте инструкциям:

1. Форкните проект.
2. Добавьте вашу новую команду в папку `scripts`.
3. Зарегистрируйте команду.
4. Создайте pull request.

Пример добавления новой команды:
```python
from nightmares.modules import CommandRegistry

registry = CommandRegistry() 

@registry.register("my_command", aliases=["mc"], help_text="Моя новая команда")
def my_command():
    print("Это моя кастомная команда!")
```

## TODO

- Добавить больше абсурдных команд.
- Встроить "meta_pranks" — команды, которые могут модифицировать сам код программы.
- Добавить больше пасхалок и скрытых функций.
- Улучшить обработку ошибок для более хаотичных ситуаций.

## Лицензия

Проект распространяется под лицензией MIT.