Мой RST README неправильно отформатирован в PyPi - PullRequest
2 голосов
/ 29 марта 2019

Я загрузил пакет на pypi.org, но мой RST README не отформатирован правильно.

Вот как это выглядит на GitHub: https://github.com/NinjaSnail1080/akinator.py

Вот как это выглядиткак в PyPi: https://pypi.org/project/akinator.py/

По какой-то причине в GitHub все отформатировано правильно, но в PyPi оно вообще не отформатировано.Вместо того, чтобы показывать README, отформатированный в RST, это просто полный беспорядок неформатированного текста.

Я попытался запустить python3 -m twine check dist/* в своем проекте и получил это:

Checking distribution dist/akinator.py-1.0.3.dev3-py3-none-any.whl: warning: `long_description_content_type` missing.  defaulting to `text/x-rst`.
Failed
The project's long_description has invalid markup which will not be rendered on PyPI. The following syntax errors were detected:
line 26: Error: Unexpected indentation.
Checking distribution dist/akinator.py-1.0.3.dev3.tar.gz: warning: `long_description_content_type` missing.  defaulting to `text/x-rst`.
Failed
The project's long_description has invalid markup which will not be rendered on PyPI. The following syntax errors were detected:
line 26: Error: Unexpected indentation.
line 26: Error: Unexpected indentation.

По какой-то причине,он говорит, что long_description_content_type отсутствует, что не соответствует действительности.Мой файл setup.py, в частности, говорит long_description_content_type="text/x-rst".Здесь также упоминаются неожиданные отступы в строке 26 long description, но в этой строке вообще нет отступов.

Я абсолютно не знаю, что я здесь сделал неправильно.Почему-то на GitHub все выглядит отлично, а на PyPi - просто беспорядок.И предупреждения, которые twine check дал мне, не имеют никакого смысла.

1 Ответ

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

Проблема в том, что вы включая всю свою лицензию в поле License, но в этом поле должно быть только краткое описание или название лицензии -- он не должен содержать символов новой строки.

При этом создаются следующие метаданные:

Metadata-Version: 2.1
Name: akinator.py
Version: 1.0.3.dev2
Summary: An API wrapper for the online game, Akinator, written in Python
Home-page: https://github.com/NinjaSnail1080/akinator.py
Author: NinjaSnail1080
Author-email: innuganti.ashwin@gmail.com
License: MIT License

Copyright (c) 2019 NinjaSnail1080

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal

Где все, что находится после первой новой строки, интерпретируется как Long-Description.

.исправьте это, просто установите license="MIT" или полностью опустите его - это необязательно, и у вас уже есть это в вашем списке классификаторов.

В setuptools здесь есть выдающаяся ошибка, чтобы исправить это: https://github.com/pypa/setuptools/issues/1390

...