From: zooko Date: Wed, 11 Apr 2012 03:16:40 +0000 (+0530) Subject: setup: workaround bug in distutils that ships with Python 2.4 re: non-ASCII chars... X-Git-Url: https://git.rkrishnan.org/components/com_hotproperty/%22doc.html/running.html?a=commitdiff_plain;h=6a69644a2e5ff64d748697a3f543211d5a21e59e;p=tahoe-lafs%2Fzfec.git setup: workaround bug in distutils that ships with Python 2.4 re: non-ASCII chars in long_description Ignore-this: aadda8557e01b6a6860fc9ed89b3239d darcs-hash:b5849431feb6d6c977a376a17a2d132f38547830 --- diff --git a/zfec/setup.py b/zfec/setup.py index bd0cbc7..8c88de1 100755 --- a/zfec/setup.py +++ b/zfec/setup.py @@ -159,23 +159,33 @@ try: except ImportError: install_requires.append("argparse >= 0.8") -setup(name=PKG, - version=verstr, - description='a fast erasure codec which can be used with the command-line, C, Python, or Haskell', - long_description=readmetext, - author='Zooko O\'Whielacronx', - author_email='zooko@zooko.com', - url='http://tahoe-lafs.org/trac/'+PKG, - license='GNU GPL', # See README.rst for alternative licensing. - install_requires=install_requires, - tests_require=tests_require, - packages=find_packages(), - include_package_data=True, - data_files=data_files, - setup_requires=setup_requires, - classifiers=trove_classifiers, - entry_points = { 'console_scripts': [ 'zfec = %s.cmdline_zfec:main' % PKG, 'zunfec = %s.cmdline_zunfec:main' % PKG ] }, - ext_modules=[Extension(PKG+'._fec', [PKG+'/fec.c', PKG+'/_fecmodule.c',], extra_link_args=extra_link_args, extra_compile_args=extra_compile_args, undef_macros=undef_macros, define_macros=define_macros),], - test_suite=PKG+".test", - zip_safe=False, # I prefer unzipped for easier access. - ) +# distutils in Python 2.4 has a bug in that it tries to encode the long +# description into ascii. We detect the resulting exception and try again +# after squashing the long description (lossily) into ascii. + +def _setup(longdescription): + setup(name=PKG, + version=verstr, + description='a fast erasure codec which can be used with the command-line, C, Python, or Haskell', + long_description=longdescription, + author='Zooko O\'Whielacronx', + author_email='zooko@zooko.com', + url='http://tahoe-lafs.org/trac/'+PKG, + license='GNU GPL', # See README.rst for alternative licensing. + install_requires=install_requires, + tests_require=tests_require, + packages=find_packages(), + include_package_data=True, + data_files=data_files, + setup_requires=setup_requires, + classifiers=trove_classifiers, + entry_points = { 'console_scripts': [ 'zfec = %s.cmdline_zfec:main' % PKG, 'zunfec = %s.cmdline_zunfec:main' % PKG ] }, + ext_modules=[Extension(PKG+'._fec', [PKG+'/fec.c', PKG+'/_fecmodule.c',], extra_link_args=extra_link_args, extra_compile_args=extra_compile_args, undef_macros=undef_macros, define_macros=define_macros),], + test_suite=PKG+".test", + zip_safe=False, # I prefer unzipped for easier access. + ) + +try: + _setup(readmetext) +except UnicodeEncodeError: + _setup(repr(readmetext))