From 423dbc6b1559adc532d541821ed69f6361790ae3 Mon Sep 17 00:00:00 2001 From: jeffrimko Date: Wed, 22 Apr 2020 18:59:22 -0400 Subject: [PATCH] Script updates to fix RST formatting issue reported by PyPI. --- lib/_Check_Readme.py | 47 +++++++++++++++++++++++++++++++++++++++++ lib/_Install_Package.py | 18 +++------------- lib/_Upload_PyPI.py | 11 +++++----- lib/setup.py | 5 ++++- 4 files changed, 59 insertions(+), 22 deletions(-) create mode 100644 lib/_Check_Readme.py diff --git a/lib/_Check_Readme.py b/lib/_Check_Readme.py new file mode 100644 index 0000000..0243f28 --- /dev/null +++ b/lib/_Check_Readme.py @@ -0,0 +1,47 @@ +##==============================================================# +## SECTION: Imports # +##==============================================================# + +import os + +import qprompt + +##==============================================================# +## SECTION: Function Definitions # +##==============================================================# + +class ReadmeRst: + """Context manager that temporarily creates a RST file for the README.""" + def __enter__(self): + _generate_readme() + def __exit__(self, type, value, traceback): + _cleanup_readme() + +def _generate_readme(): + os.system("asciidoctor -b docbook ../README.adoc") + + os.system("pandoc -r docbook -w rst -o README.rst.tmp ../README.xml") + os.remove("../README.xml") + + # NOTE: The following removes the reference links that are created in the + # RST by Pandoc. These currently cause PyPI to complain that the RST is not + # valid. + with open("README.rst.tmp") as fi: + with open("README.rst", "w") as fo: + for line in fi.readlines(): + if line.startswith(".. __"): + continue + fo.write(line) + os.remove("README.rst.tmp") + +def _cleanup_readme(): + os.remove("README.rst") + +##==============================================================# +## SECTION: Main Body # +##==============================================================# + +if __name__ == '__main__': + with ReadmeRst(): + os.system("python setup.py check -r -s") + qprompt.pause() diff --git a/lib/_Install_Package.py b/lib/_Install_Package.py index 8232964..30076a8 100644 --- a/lib/_Install_Package.py +++ b/lib/_Install_Package.py @@ -3,25 +3,13 @@ ##==============================================================# import os -import subprocess -##==============================================================# -## SECTION: Function Definitions # -##==============================================================# - -def generate_readme(): - subprocess.call("asciidoctor -b docbook ../README.adoc", shell=True) - subprocess.call("pandoc -r docbook -w rst -o README.rst ../README.xml", shell=True) - os.remove("../README.xml") - -def cleanup_readme(): - os.remove("README.rst") +from _Check_Readme import ReadmeRst ##==============================================================# ## SECTION: Main Body # ##==============================================================# if __name__ == '__main__': - generate_readme() - subprocess.call("pip install -e .", shell=True) - cleanup_readme() + with ReadmeRst(): + os.system("pip install -e .", shell=True) diff --git a/lib/_Upload_PyPI.py b/lib/_Upload_PyPI.py index f8c6408..50339a5 100644 --- a/lib/_Upload_PyPI.py +++ b/lib/_Upload_PyPI.py @@ -14,7 +14,7 @@ sys.dont_write_bytecode = True from _Check_Versions import VERCHK -from _Install_Package import generate_readme, cleanup_readme +from _Check_Readme import ReadmeRst ##==============================================================# ## SECTION: Main Body # @@ -32,11 +32,10 @@ qprompt.alert("Issue running tests!") sys.exit(1) if qprompt.ask_yesno("Upload version `%s`?" % (ver)): - generate_readme() - fs.copy(r"..\LICENSE", "LICENSE") - sh.call("python setup.py sdist upload") - fs.delete("LICENSE") - cleanup_readme() + with ReadmeRst(): + fs.copy(r"..\LICENSE", "LICENSE") + sh.call("python setup.py sdist upload") + fs.delete("LICENSE") if pause: qprompt.pause() sys.exit(0) diff --git a/lib/setup.py b/lib/setup.py index 23aaa9b..1029a61 100644 --- a/lib/setup.py +++ b/lib/setup.py @@ -1,6 +1,9 @@ from os.path import isfile from setuptools import setup, find_packages +readme = open("README.rst").read() if isfile("README.rst") else "" +print(readme) + setup( name = "qprompt", version = "0.16.0", @@ -12,7 +15,7 @@ url = "https://github.com/jeffrimko/Qprompt", py_modules=["qprompt"], install_requires=["iterfzf"], - long_description=open("README.rst").read() if isfile("README.rst") else "", + long_description=readme, data_files = [("", ["LICENSE"])], classifiers=[ "Development Status :: 4 - Beta",