[Checkins] SVN: zc.relationship/trunk/ make setup hopefully more
Windows friendly;
and some automatic ReST validation of the long_description. will have
an internal 2.0c1 before releasing final to PyPI.
Gary Poster
gary at zope.com
Thu Apr 24 06:36:28 EDT 2008
Log message for revision 85696:
make setup hopefully more Windows friendly; and some automatic ReST validation of the long_description. will have an internal 2.0c1 before releasing final to PyPI.
Changed:
U zc.relationship/trunk/buildout.cfg
U zc.relationship/trunk/setup.py
-=-
Modified: zc.relationship/trunk/buildout.cfg
===================================================================
--- zc.relationship/trunk/buildout.cfg 2008-04-24 10:35:21 UTC (rev 85695)
+++ zc.relationship/trunk/buildout.cfg 2008-04-24 10:36:28 UTC (rev 85696)
@@ -12,4 +12,5 @@
[py]
recipe = zc.recipe.egg
eggs = zc.relationship
+ docutils
interpreter = py
Modified: zc.relationship/trunk/setup.py
===================================================================
--- zc.relationship/trunk/setup.py 2008-04-24 10:35:21 UTC (rev 85695)
+++ zc.relationship/trunk/setup.py 2008-04-24 10:36:28 UTC (rev 85696)
@@ -11,19 +11,68 @@
# FOR A PARTICULAR PURPOSE.
#
##############################################################################
+import os
from setuptools import setup, find_packages
-long_description=(
- open('src/zc/relationship/README.txt').read() + '\n\n' +
- open("src/zc/relationship/CHANGES.txt").read())
+# generic helpers primarily for the long_description
+try:
+ import docutils
+except ImportError:
+ import warnings
+ def validateReST(text):
+ return ''
+else:
+ import docutils.utils
+ import docutils.parsers.rst
+ import StringIO
+ def validateReST(text):
+ doc = docutils.utils.new_document('validator')
+ # our desired settings
+ doc.reporter.halt_level = 5
+ doc.reporter.report_level = 1
+ stream = doc.reporter.stream = StringIO.StringIO()
+ # docutils buglets (?)
+ doc.settings.tab_width = 2
+ doc.settings.pep_references = doc.settings.rfc_references = False
+ doc.settings.trim_footnote_reference_space = None
+ # and we're off...
+ parser = docutils.parsers.rst.Parser()
+ parser.parse(text, doc)
+ return stream.getvalue()
-f = open('TEST_THIS_REST_BEFORE_REGISTERING.txt', 'w')
-f.write(long_description)
-f.close()
+def text(*args, **kwargs):
+ # note: distutils explicitly disallows unicode for setup values :-/
+ # http://docs.python.org/dist/meta-data.html
+ tmp = []
+ for a in args:
+ if a.endswith('.txt'):
+ f = open(os.path.join(*a.split('/')))
+ tmp.append(f.read())
+ f.close()
+ tmp.append('\n\n')
+ else:
+ tmp.append(a)
+ if len(tmp) == 1:
+ res = tmp[0]
+ else:
+ res = ''.join(tmp)
+ out = kwargs.get('out')
+ if out is True:
+ out = 'TEST_THIS_REST_BEFORE_REGISTERING.txt'
+ if out:
+ f = open(out, 'w')
+ f.write(res)
+ f.close()
+ report = validateReST(res)
+ if report:
+ print report
+ raise ValueError('ReST validation error')
+ return res
+# end helpers; below this line should be code custom to this package
setup(
name="zc.relationship",
- version="2.0",
+ version="2.0c1",
packages=find_packages('src'),
include_package_data=True,
package_dir= {'':'src'},
@@ -33,8 +82,11 @@
zip_safe=False,
author='Gary Poster',
author_email='gary at zope.com',
- description=open("README.txt").read(),
- long_description=long_description,
+ description=text("README.txt"),
+ long_description=text(
+ 'src/zc/relationship/README.txt',
+ 'src/zc/relationship/CHANGES.txt',
+ out=True),
license='ZPL 2.1',
keywords="zope zope3",
install_requires=[
More information about the Checkins
mailing list