PyPI
NORA реализует спецификации PEP 503 (Simple Repository API) и PEP 691 (JSON Simple API). Загружайте пакеты с помощью twine и устанавливайте через pip с прозрачным проксированием из pypi.org.
Настройка клиента
Заголовок раздела «Настройка клиента»Установка пакетов через NORA:
pip install --index-url http://nora.example.com:4000/pypi/simple/ my-packageНастройка pip.conf для проекта или через переменную окружения:
export PIP_INDEX_URL=http://nora.example.com:4000/pypi/simple/Загрузка пакетов:
twine upload --repository-url http://nora.example.com:4000/pypi/ dist/*Проксирование upstream
Заголовок раздела «Проксирование upstream»NORA загружает пакеты из PyPI, если они не найдены локально. URL для скачивания на страницах индекса перезаписываются для загрузки через NORA.
config.toml:
[pypi]enabled = trueproxy = "https://pypi.org/simple/"proxy_timeout = 30Переменные окружения:
| Переменная | Описание | По умолчанию |
|---|---|---|
NORA_PYPI_ENABLED | Включить реестр PyPI | true |
NORA_PYPI_PROXY | URL upstream-реестра | https://pypi.org/simple/ |
NORA_PYPI_PROXY_AUTH | Аутентификация upstream (user:pass) | — |
NORA_PYPI_PROXY_TIMEOUT | Таймаут upstream в секундах | 30 |
Возможности
Заголовок раздела «Возможности»| Функция | Статус | Примечание |
|---|---|---|
| Simple-индекс (HTML) | Полная | PEP 503 |
| Simple-индекс (JSON) | Полная | PEP 691, через заголовок Accept |
| Страница версий пакета | Полная | HTML + JSON |
| Скачивание файлов | Полная | Wheel, sdist, egg |
twine upload | Полная | Multipart form-data |
| Хеши SHA256 | Полная | В ссылках метаданных |
| Нормализация регистра | Полная | My-Package становится my-package |
| JSON API метаданные | Полная | application/vnd.pypi.simple.v1+json |
| Upstream-прокси | Полная | Настраиваемый TTL |
| Yanking | — | Не реализовано |
| Подписи загрузки (PGP) | — | Не реализовано |
Известные ограничения
Заголовок раздела «Известные ограничения»- Yanking не поддерживается.
- PGP-подписи при загрузке не поддерживаются.