-"""CalibCant: tools for thermally calibrating AFM cantilevers
-
-Requires
- * TODO
-
-Git repository:
-http://www.physics.drexel.edu/~wking/code/git/calibcant.git
-"""
-
-classifiers = """\
-Development Status :: 2 - Pre-Alpha
-Intended Audience :: Developers
-Intended Audience :: Science/Research
-Operating System :: POSIX
-Operating System :: Unix
-License :: OSI Approved :: GNU General Public License (GPL)
-Programming Language :: Python
-Topic :: Scientific/Engineering
-Topic :: Software Development :: Libraries :: Python Modules
-"""
-
-# http://peak.telecommunity.com/DevCenter/setuptools#using-setuptools-without-bundling-it
-import ez_setup
-ez_setup.use_setuptools()
-
-from setuptools import setup, find_packages
-
-# patch distutils if it can't cope with the "classifiers" or
-# "download_url" keywords
-from sys import version
-if version < '2.2.3':
- from distutils.dist import DistributionMetadata
- DistributionMetadata.classifiers = None
- DistributionMetadata.download_url = None
-
-import calibcant
-VERSION = calibcant.VERSION
-
-doclines = __doc__.split("\n")
-
-setup(name="calibcant",
- version=VERSION,
- maintainer="W. Trevor King",
- maintainer_email="wking@drexel.edu",
- url = "http://www.physics.drexel.edu/~wking/code/python/",
- download_url = "http://www.physics.drexel.edu/~wking/code/python/calibcant-%s.tar.gz" % VERSION,
- license = "GNU General Public License (GPL)",
- platforms = ["all"],
- description = doclines[0],
- long_description = "\n".join(doclines[2:]),
- classifiers = filter(None, classifiers.split("\n")),
- py_modules = ['ez_setup'],
- packages = find_packages(),
- )
+# Copyright (C) 2008-2013 W. Trevor King <wking@tremily.us>
+#
+# This file is part of calibcant.
+#
+# calibcant is free software: you can redistribute it and/or modify it under
+# the terms of the GNU General Public License as published by the Free Software
+# Foundation, either version 3 of the License, or (at your option) any later
+# version.
+#
+# calibcant is distributed in the hope that it will be useful, but WITHOUT ANY
+# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+# A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# calibcant. If not, see <http://www.gnu.org/licenses/>.
+
+"calibcant: tools for thermally calibrating AFM cantilevers"
+
+from distutils.core import setup
+from os import walk, listdir
+import os.path
+
+from calibcant import __version__
+
-# use packages to include subdirectory packages
-# use py_modules to include single-module packages
-# use ext_modules to include extension modules
-# see
-# http://www.python.org/doc/2.5.2/dist/listing-modules.html
-# http://www.python.org/doc/2.5.2/dist/describing-extensions.html
+package_name = 'calibcant'
+
+def find_packages(root=package_name):
+ packages = []
+ prefix = '.'+os.path.sep
+ for dirpath,dirnames,filenames in walk(root):
+ if '__init__.py' in filenames:
+ if dirpath.startswith(prefix):
+ dirpath = dirpath[len(prefix):]
+ packages.append(dirpath.replace(os.path.sep, '.'))
+ return packages
+
+packages = find_packages()
+scripts = [os.path.join('bin', f) for f in sorted(os.listdir('bin'))]
+
+setup(name=package_name,
+ version=__version__,
+ maintainer='W. Trevor King',
+ maintainer_email='wking@tremily.us',
+ url='http://blog.tremily.us/posts/{}/'.format(package_name),
+ download_url='http://git.tremily.us/?p={}.git;a=snapshot;h={};sf=tgz'.format(package_name, __version__),
+ license='GNU General Public License v3 (GPLv3)',
+ platforms=['all'],
+ description=__doc__,
+ long_description=open('README', 'r').read(),
+ classifiers=[
+ 'Development Status :: 2 - Pre-Alpha',
+ 'Intended Audience :: Developers',
+ 'Intended Audience :: Science/Research',
+ 'License :: OSI Approved :: GNU General Public License (GPL)',
+ 'License :: OSI Approved :: GNU General Public License v3 (GPLv3)',
+ 'Operating System :: POSIX',
+ 'Operating System :: Unix',
+ 'Programming Language :: Python',
+ 'Programming Language :: Python :: 2',
+ 'Programming Language :: Python :: 2.7',
+ 'Topic :: Scientific/Engineering',
+ 'Topic :: Software Development :: Libraries :: Python Modules',
+ ],
+ packages=packages,
+ scripts=scripts,
+ provides=['{} ({})'.format(package_name, __version__)],
+ requires=['pypiezo (>= 0.7)'],
+ )