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

# # 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. ##TODO Update for WIP-PACKAGE import setuptools import io import os import sys if sys.version_info[:2] < (2, 7): m = "Python 3.8 or later is required for Distill (%d.%d detected)." raise ImportError(m % sys.version_info[:2]) if sys.argv[-1] == 'setup.py': print("To install, run 'python setup.py install'\n") print("To run tests, run 'python setup.py test'\n") print("To build docs, run 'python setup.py docs'\n") print("To clean, run 'python setup.py clean'\n") with open("README.rst", "r", encoding="utf-8") as fh: long_description = fh.read() class CleanCommand(setuptools.Command): """ A command class to clean up build artifacts, including log files python setup.py clean """ description = "clean build artifacts" user_options = [] def initialize_options(self): """ Initialize Clean Command """ self.cwd = None def finalize_options(self): """ Set Current Working directory for Clean Command """ self.cwd = os.getcwd() def run(self): """ Execute Clean Command """ assert os.getcwd() == self.cwd, 'Must be in package root: %s' % self.cwd os.system('rm -rf ./docs/_build ./build ./dist ./*.egg-info') os.system('rm -rf ./*.log *.xml .coverage *.html') def read(*filenames, **kwargs): encoding = kwargs.get('encoding', 'utf-8') sep = kwargs.get('sep', '\n') buf = [] for filename in filenames: with io.open(filename, encoding=encoding) as f: buf.append(f.read()) return sep.join(buf) # Get the version string def get_version(): basedir = os.path.dirname(__file__) with open(os.path.join(basedir, 'distill/version.py')) as f: version = {} exec (f.read(), version) return version['__version__'] raise RuntimeError('No version info found.') setup_requires = [ 'pip >= 9.0.1', 'setuptools >= 34.0', 'pytest-runner', ] install_requires = [ # 'elasticsearch-dsl >= 5.0.0, < 6.0.0', 'pandas ~= 1.2.4', 'networkx ~= 2.5', 'plotly ~= 5.5.0', # 'Flask >= 0.12.2', # 'celery >= 4.0.2', ] tests_require = [ 'pytest ~= 6.2.3', 'pytest-cov', ] docs_require = [ 'Sphinx ~= 1.6.3', 'sphinx-rtd-theme ~= 0.2.4', ] extras_require = { 'test' : tests_require, 'doc' : docs_require, 'monitor': [ 'flower' ] } classifiers = [ 'Development Status :: 4 - Beta', 'Intended Audience :: Developers', 'Intended Audience :: Science/Research', 'License :: OSI Approved :: Apache Software License', 'Natural Language :: English', 'Operating System :: OS Independent', 'Programming Language :: Python', 'Programming Language :: Python :: 2.7', 'Programming Language :: Python :: 3.5', 'Environment :: Web Environment', 'Framework :: Flask', 'Topic :: Internet :: Log Analysis' ] setuptools.setup( name="Distill-Test", version=get_version(), #version="0.1.8", url="http://senssoft.incubator.apache.org", license="Apache Software License 2.0", author="Kelsey", #author_email="", description="A framework for the processing and analysis of UserALE logs.", long_description=long_description, classifiers=classifiers, keywords="userale distill", packages=setuptools.find_packages(exclude=['examples', 'tests']), include_package_data=True, zip_safe=False, cmdclass={ 'clean': CleanCommand, }, setup_requires=setup_requires, tests_require=tests_require, install_requires=install_requires, extras_require=extras_require, entry_points={ 'console_scripts': [ 'dev = distill.server:dev_server' ] } )