1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76
|
from path import path
from distutils.core import setup
from distutils.command.install import install
from distutils.command.install_data import install_data
from distutils.command.bdist_wininst import bdist_wininst
from distutils import sysconfig
# pack the doc in as data files
apidoc=path('apidoc')
data_files = [] ; dfa = data_files.append
pkgdir = path('tidy')
if apidoc.isdir():
dfa((str(pkgdir/apidoc), map(str, apidoc.files())))
for p in path('apidoc').walkdirs():
dfa((str(pkgdir/p), map(str, p.files())))
class bdist_wininst_utidylib(bdist_wininst):
def finalize_options(self):
dfa = self.distribution.data_files.append
dfa((str(pkgdir), [str(pkgdir/'cygtidy-0-99-0.dll'),
str(pkgdir/'README.tidydll')]
))
private_ctypes = pkgdir/'pvt_ctypes'
dfa((str(private_ctypes), [str(private_ctypes/'ctypes.zip'),
str(private_ctypes/'_ctypes.pyd'),
str(private_ctypes/'README.ctypes')]
))
# TODO - make it impossible to install on python2.2
bdist_wininst.finalize_options(self)
# make sure data files are installed in tidylib package during binary
# build phase - this is evil.
class install_data_utidylib(install_data):
def finalize_options (self):
self.set_undefined_options('install',
('install_lib', 'install_dir'))
install_data.finalize_options(self)
class install_utidylib(install):
def run(self):
install.run(self)
print "*** This library requires that you have two libraries ***"
print "*** installed: ctypes and libtidy. ***"
print "*** Please make sure they are installed correctly ***"
print "*** before reporting a bug. ***"
print "*** See: ***"
print "*** http://starship.python.net/crew/theller/ctypes/ ***"
print "*** and http://tidy.sourceforge.net ***"
print "*** (or consult your vendor documentation for binary ***"
print "*** packages.) ***"
setup_data = dict(packages=['tidy', ],
data_files=data_files,
cmdclass=dict(install_data=install_data_utidylib,
bdist_wininst=bdist_wininst_utidylib,
install=install_utidylib,
),
name='uTidylib',
version='0.2',
author='Cory Dodt',
author_email='corydodt@twistedmatrix.com',
url='http://utidylib.sf.net',
description='Wrapper for HTML Tidy at '
'http://tidy.sourceforge.net',
long_description='''\
A wrapper for the relocatable version of HTML Tidy (see
http://tidy.sourceforge.net for details). This allows you to
tidy HTML files through a Pythonic interface.'''
)
if __name__ == '__main__':
setup(**setup_data)
|