setup.py (78 lines of code) (raw):

#!/usr/bin/env python # # Licensed to the Apache Software Foundation (ASF) under one # or more contributor license agreements. See the NOTICE file # distributed with this work for additional information # regarding copyright ownership. The ASF licenses this file # to you under the Apache License, Version 2.0 (the # "License"); you may not use this file except in compliance # with the License. You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, # software distributed under the License is distributed on an # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY # KIND, either express or implied. See the License for the # specific language governing permissions and limitations # under the License. # from io import open import subprocess import sys from setuptools import find_packages, setup, Command, os VERSION = '1.0' class doc(Command): description = 'generate or test documentation' user_options = [('test', 't', 'run doctests instead of generating documentation')] boolean_options = ['test'] def initialize_options(self): self.test = False def finalize_options(self): pass def run(self): if self.test: path = 'docs/build/doctest' mode = 'doctest' else: path = 'docs/build/%s' % VERSION mode = 'html' try: os.makedirs(path) except OSError: pass status = subprocess.call(['sphinx-build', '-E', '-b', mode, '-d', 'docs/build/doctrees', 'docs/source', path]) if status: raise RuntimeError('documentation step "%s" failed' % (mode,)) sys.stdout.write('\nDocumentation step "%s" performed, results here:\n' ' %s/\n' % (mode, path)) class test(Command): description = 'run nosetests' user_options = [('verbose', 'v', 'run nosetests with -v option')] boolean_options = ['verbose'] def initialize_options(self): self.verbose = False def finalize_options(self): pass def run(self): if self.verbose: verbose = '-v' else: verbose = '' status = subprocess.call(['nosetests', verbose]) if status: raise RuntimeError('nosetests step failed') with open('requirements.txt') as f: install_requires = f.read().splitlines() tests_requires = install_requires + [ 'nose >= 1.2', ] setup( name='apache-steve', version=VERSION, url='https://svn.apache.org/repos/asf/steve', license='Apache Software License (http://www.apache.org/licenses/LICENSE-2.0)', author='Apache Software Foundation', author_email='dev@steve.apache.org', description='Apache Steve', # don't ever depend on refcounting to close files anywhere else long_description=open('README', encoding='utf-8').read(), # scripts=["bin/votegroup"], # namespace_packages=['steve'], package_dir={'': 'lib'}, packages=find_packages('lib'), zip_safe=False, platforms='any', install_requires=install_requires, tests_require=tests_requires, test_suite='nose.collector', classifiers=[ 'Intended Audience :: Developers', 'Intended Audience :: System Administrators', 'License :: OSI Approved :: Apache Software License', 'Operating System :: OS Independent', 'Programming Language :: Python', 'Programming Language :: Python :: 2.6', 'Programming Language :: Python :: 2.7', 'Topic :: Software Development :: Libraries :: Python Modules' ], cmdclass={'doc': doc, 'test': test}, )