package/ src/ tests/

Слайд 2A: Структура пакета Python

Базовая структура пакета

Стандартная структура пакета:

genshin_tools/ # Корневая директория проекта ├── src/ # Исходный код пакета │ └── genshin_tools/ # Основной пакет │ ├── __init__.py # Инициализационный файл │ ├── characters/ # Подмодуль для персонажей │ │ ├── __init__.py │ │ └── base.py │ └── combat/ # Подмодуль для боевой системы │ ├── __init__.py │ └── damage.py ├── tests/ # Тесты │ ├── __init__.py │ └── test_damage.py ├── README.md # Документация проекта ├── LICENSE # Лицензия └── requirements.txt # Зависимости

Назначение основных директорий и файлов:

  • src/ - содержит исходный код пакета:
    • Изолирует код от других файлов проекта
    • Предотвращает случайный импорт из неправильного места
    • Упрощает установку пакета
  • tests/ - содержит тестовые файлы:
    • Отделяет тесты от основного кода
    • Позволяет легко запускать все тесты
    • Каждый тестовый файл соответствует модулю из src/
  • README.md - основная документация:
    • Описывает назначение пакета
    • Содержит инструкции по установке
    • Предоставляет примеры использования

Пример содержимого README.md:

# Genshin Tools

Библиотека для расчётов в игре Genshin Impact.

## Установка

```bash
pip install genshin-tools
```

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

```python
from genshin_tools.combat import calculate_damage

# Расчёт урона для персонажа
damage = calculate_damage(base_atk=1500, crit_rate=50)
```

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

- Расчёт урона
- Анализ артефактов
- Оптимизация билдов

Важно помнить:

  • Имя пакета должно быть уникальным для PyPI
  • Используйте kebab-case для имени проекта (genshin-tools)
  • Используйте snake_case для имён модулей (genshin_tools)
  • README.md пишется на языке Markdown
  • Соблюдайте структуру директорий для совместимости с инструментами сборки

Задача: Создание структуры пакета

Создайте базовую структуру пакета для системы анализа артефактов:

Пример минимальной структуры проекта:

artifact_analyzer/
├── src/
│   └── artifact_analyzer/
│       ├── __init__.py
│       ├── stats.py
│       └── recommendations.py
├── tests/
│   ├── __init__.py
│   └── test_stats.py
└── README.md