Apache AutoIndex и Python PEP 503 - PullRequest
       12

Apache AutoIndex и Python PEP 503

1 голос
/ 10 марта 2019

Я пытаюсь настроить простой репозиторий Python на основе этих инструкций .

Я создал необходимую структуру каталогов, но pip не найдет ни одной версии.После более глубокого изучения темы и обращения к PEP 503 - API простого репозитория я обнаружил, что структура автоматически сгенерированного HTML-сайта должна быть:

<!DOCTYPE html>
<html>
  <body>
    <a href="/frob/">frob</a>
    <a href="/spamspamspam/">spamspamspam</a>
  </body>
</html>

В том же PEP также указано:

Текст тега привязки ДОЛЖЕН быть нормализованным именем проекта, а атрибут href ДОЛЖЕН содержать ссылку на URL-адрес этого конкретного проекта.

В моем случаеэто выглядит так:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<html>
 <head>
  <title>Index of /</title>
 </head>
 <body>
<h1>Index of /</h1>
<ul><li><a href="packet_name/"> packet_name/</a></li>
</ul>
</body></html>

Обратите внимание на пробел в начале и косую черту в конце тега <a>.Это

<a href="packet_name/"> packet_name/</a>

, но должно быть

<a href="packet_name/">packet_name</a>

.htaccess файл в настоящее время выглядит следующим образом:

Options +Indexes
IndexOptions SuppressColumnSorting -FancyIndexing
IndexIgnore ..

Есть ли способ проинструктировать Apache для обслуживания макета каталога в соответствии с требованиями PEP 503?

1 Ответ

1 голос
/ 10 марта 2019

Оказывается, проблема была не в формате ссылки, а в нормализованной структуре папок. PEP 503 ожидает нормализации папки на корневом уровне. Считайте, что название проекта foo_bar. Тогда макет каталога должен быть:

.
|- foo-bar
|-- foo_bar-0.1.tar.gz

Обратите внимание, что папка "нормализовалась", заменив символы ., -, or _ одним -. После этого файл .htaccess и автоматически сгенерированный индекс работают просто отлично.

Это соответствующая часть PEP 503:

это PEP ссылается на концепцию «нормализованного» имени проекта. Согласно PEP 426 единственными действительными символами в имени являются алфавит ASCII, Числа ASCII,., - и _. Имя должно быть в нижнем регистре со всеми серии символов., - или _ заменены на один символ. Это может быть реализовано в Python с помощью модуля re:

...