Clean up and convert to my Cython-based pycomedi implementation.
[pypiezo.git] / setup.py
index 5f8cae57c89c0d32ae98fc32cc15162ee8da5587..9e574561f236c26ca6d2ed0c2ef3f2a0a0bd68fc 100644 (file)
--- a/setup.py
+++ b/setup.py
@@ -1,13 +1,28 @@
-"""Piezo: tools for controlling piezoelectric actuators
+# Copyright (C) 2009-2011 W. Trevor King <wking@drexel.edu>
+#
+# This file is part of pypiezo.
+#
+# pypiezo 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.
+#
+# pypiezo 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 pypiezo.  If not, see <http://www.gnu.org/licenses/>.
 
-Requires
-  * pycomedi
-  * data_logger
-  * curses_check_for_keypress
+"Tools for controlling piezoelectric actuators."
+
+from distutils.core import setup
+from os import walk
+import os.path
+
+from pypiezo import __version__
 
-Git repository:
-http://www.physics.drexel.edu/~wking/code/git/piezo.git
-"""
 
 classifiers = """\
 Development Status :: 2 - Pre-Alpha
@@ -21,49 +36,31 @@ 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
+def find_packages(root='pypiezo'):
+    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
 
-# 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
+_this_dir = os.path.dirname(__file__)
+packages = find_packages()
 
-import piezo
-__version__ = piezo.__version__
-
-doclines = __doc__.split("\n")
-
-setup(name="piezo",
+setup(name='pypiezo',
       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/piezo-%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(),
-      dependency_links = [
-        "http://www.physics.drexel.edu/~wking/code/python/"
-        ],
-      install_requires = ['pycomedi >= 0.2', 
-                          'data_logger >= 0.4',
-                          'curses_check_for_keypress'],
+      maintainer='W. Trevor King',
+      maintainer_email='wking@drexel.edu',
+      url='http://www.physics.drexel.edu/~wking/unfolding-disasters/pypiezo/',
+      download_url='http://www.physics.drexel.edu/~wking/code/python/pypiezo-%s.tar.gz' % __version__,
+      license='GNU General Public License (GPL)',
+      platforms=['all'],
+      description=__doc__,
+      long_description=open(os.path.join(_this_dir, 'README'), 'r').read(),
+      classifiers=filter(None, classifiers.split('\n')),
+      packages=packages,
+      provides=['pypiezo (%s)' % __version__],
+      requires=['pycomedi (>= 0.3)'],
       )
-
-# 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