Commit 6c453635 by Chris Jerdonek

Added a check to setup publish to confirm that setup_description.rst is up-to-date.

parent 4bcb64aa
...@@ -97,6 +97,10 @@ LICENSE_PATH = 'LICENSE' ...@@ -97,6 +97,10 @@ LICENSE_PATH = 'LICENSE'
DESCRIPTION_PATH = 'setup_description.rst' DESCRIPTION_PATH = 'setup_description.rst'
TEMP_REST_EXTENSION = '.temp.rst'
PREP_COMMAND = 'prep'
CLASSIFIERS = ( CLASSIFIERS = (
'Development Status :: 4 - Beta', 'Development Status :: 4 - Beta',
'License :: OSI Approved :: MIT License', 'License :: OSI Approved :: MIT License',
...@@ -143,7 +147,13 @@ def write(u, path): ...@@ -143,7 +147,13 @@ def write(u, path):
f.close() f.close()
def prep(): def make_temp_path(path):
root, ext = os.path.splitext(path)
temp_path = root + TEMP_REST_EXTENSION
return temp_path
def make_description_file(target_path):
""" """
Generate the long_description needed for setup.py. Generate the long_description needed for setup.py.
...@@ -170,15 +180,32 @@ License ...@@ -170,15 +180,32 @@ License
description = '\n'.join(sections) description = '\n'.join(sections)
write(description, DESCRIPTION_PATH) write(description, target_path)
def prep():
make_description_file(DESCRIPTION_PATH)
def publish(): def publish():
""" """
Publish this package to PyPI (aka "the Cheeseshop"). Publish this package to PyPI (aka "the Cheeseshop").
""" """
answer = raw_input("Are you sure (yes/no)?") temp_path = make_temp_path(DESCRIPTION_PATH)
make_description_file(temp_path)
if read(temp_path) != read(DESCRIPTION_PATH):
print("""\
Description file not up-to-date: %s
Run the following command and commit the changes--
python setup.py %s
""" % (DESCRIPTION_PATH, PREP_COMMAND))
sys.exit()
print("Description up-to-date: %s" % DESCRIPTION_PATH)
answer = raw_input("Are you sure you want to publish to PyPI (yes/no)?")
if answer != "yes": if answer != "yes":
exit("Aborted: nothing published") exit("Aborted: nothing published")
...@@ -193,15 +220,14 @@ def convert_md_to_rst(path): ...@@ -193,15 +220,14 @@ def convert_md_to_rst(path):
Returns the new path. Returns the new path.
""" """
root, ext = os.path.splitext(path) temp_path = make_temp_path(path)
new_path = root + ".temp.rst" print("Converting: %s to %s" % (path, temp_path))
print("Converting: %s to %s" % (path, new_path))
# Pandoc uses the UTF-8 character encoding for both input and output. # Pandoc uses the UTF-8 character encoding for both input and output.
command = "pandoc --write=rst --output=%s %s" % (new_path, path) command = "pandoc --write=rst --output=%s %s" % (temp_path, path)
os.system(command) os.system(command)
return new_path return temp_path
# We follow the guidance here for compatibility with using setuptools instead # We follow the guidance here for compatibility with using setuptools instead
...@@ -259,7 +285,7 @@ def main(sys_argv): ...@@ -259,7 +285,7 @@ def main(sys_argv):
if command == 'publish': if command == 'publish':
publish() publish()
sys.exit() sys.exit()
elif command == 'prep': elif command == PREP_COMMAND:
prep() prep()
sys.exit() sys.exit()
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment