blob: 63c34853a8efae1fe46e820ead0847a17c00e97d [file] [log] [blame]
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import warnings
"""The setup script."""
from setuptools import setup, find_packages
# don't fail if there are problems with the readme (happens within circleci)
try:
with open('README.md') as readme_file:
readme = readme_file.read()
except Exception:
warnings.warn('README.md not found')
readme = None
REQUIREMENTS_FILES = [
'requirements.txt'
]
def get_version():
version_dict = {}
with open('hamilton/version.py') as f:
exec(f.read(), version_dict)
return '.'.join(map(str, version_dict['VERSION']))
VERSION = get_version()
def load_requirements():
requirements = set()
for requirement_file in REQUIREMENTS_FILES:
with open(requirement_file) as f:
requirements.update(line.strip() for line in f)
return list(requirements)
def load_test_requirements():
with open('requirements-test.txt') as f:
return [line.strip() for line in f]
setup_requirements = [
'pytest-runner',
]
test_requirements = load_test_requirements()
setup(
name='sf-hamilton', # there's already a hamilton in pypi
version=VERSION,
description='Hamilton, the micro-framework for creating dataframes.',
long_description=readme,
long_description_content_type='text/markdown',
author='Stefan Krawczyk, Elijah ben Izzy',
author_email='skrawczyk@stitchfix.com,elijah.benizzy@stitchfix.com',
url='https://github.com/stitchfix/hamilton',
packages=find_packages(exclude=['tests']),
include_package_data=True,
install_requires=load_requirements(),
zip_safe=False,
keywords='hamilton',
classifiers=[
'Development Status :: 5 - Production/Stable',
'Intended Audience :: Developers',
'Natural Language :: English',
'License :: OSI Approved :: BSD License',
'Programming Language :: Python :: 3',
'Programming Language :: Python :: 3.6',
'Programming Language :: Python :: 3.7',
'Programming Language :: Python :: 3.8',
'Programming Language :: Python :: 3.9',
],
test_suite='tests',
# similar to setup_requires, these packages are not added to your venv but are made available
# during testing
tests_require=test_requirements,
# Any packages required when running `python setup.py X` (where X is an alias). These packages
# are NOT installed as part of the virtualenv (thus not polluting your venv) but instead just
# made available to the setup.
setup_requires=setup_requirements,
# Note that this feature requires pep8 >= v9 and a version of setup tools greater than the
# default version installed with virtualenv. Make sure to update your tools!
python_requires='>=3.6, <4',
# adding this to slim the package down, since these dependencies are only used to visualize the DAG.
extras_require={'visualization': ['graphviz', 'networkx'],
'dask': ['dask[complete]'], # commonly you'll want everything.
'dask-array': ['dask[array]'],
'dask-core': ['dask-core'],
'dask-dataframe': ['dask[dataframe]'],
'dask-diagnostics': ['dask[diagnostics]'],
'dask-distributed': ['dask[distributed]'],
'ray': ['ray'],
'pyspark': ['pyspark[pandas_on_spark]'],
},
# Relevant project URLs
project_urls={ # Optional
'Bug Reports': 'https://github.com/stitchfix/hamilton/issues',
'Source': 'https://github.com/stitchfix/hamilton',
},
)