blob: a0410e55b2bdbefc489b6546cb1ac43f9dc7c8d3 [file] [log] [blame]
import os
from setuptools import setup, find_packages
COMMONS_VERSION = '==0.3.2'
MESOS_VERSION = '==0.20.1'
here = os.path.abspath(os.path.dirname(__file__))
def make_commons_requirement(name):
return 'twitter.common.{0}{1}'.format(name, COMMONS_VERSION)
def list_package_data_files(package_root, data_folder):
"""List the data files in the data_folder under the given package_root."""
paths = []
for root, _, files in os.walk(os.path.join(package_root, data_folder)):
for filename in files:
paths.append(os.path.relpath(os.path.join(root, filename), package_root))
return paths
setup(
name='mysos',
version='0.1.0-dev0',
description='Mysos (MySQL on Mesos)',
url='https://github.com/twitter/mysos',
license='Apache License, Version 2.0',
classifiers=[
'Development Status :: 3 - Alpha',
'Programming Language :: Python :: 2',
'Programming Language :: Python :: 2.7',
],
keywords='mesos mysql',
packages=find_packages(exclude=['tests*']),
package_data={
'': (list_package_data_files('mysos/executor', 'files') +
list_package_data_files('mysos/scheduler', 'assets'))
},
install_requires=[
'kazoo==1.3.1',
'mako==0.4.0',
'mesos.interface{0}'.format(MESOS_VERSION),
'pyyaml==3.10',
make_commons_requirement('app'),
make_commons_requirement('collections'),
make_commons_requirement('concurrent'),
make_commons_requirement('exceptions'),
make_commons_requirement('http'),
make_commons_requirement('lang'),
make_commons_requirement('log'),
make_commons_requirement('metrics'),
make_commons_requirement('quantity'),
make_commons_requirement('zookeeper'),
],
extras_require={
'test': [
'pynacl>=0.3.0',
'webtest',
'zake==0.2.1',
],
'scheduler': [
'cherrypy==3.2.2',
'mesos.native{0}'.format(MESOS_VERSION),
'pynacl>=0.3.0,<1',
],
'executor': [
'mesos.native{0}'.format(MESOS_VERSION),
],
'test_client': [
'sqlalchemy',
'mysql-python'
]
},
entry_points={
'console_scripts': [
'mysos_scheduler=mysos.scheduler.mysos_scheduler:proxy_main [scheduler]',
'vagrant_mysos_executor=mysos.executor.testing.vagrant_mysos_executor:proxy_main [executor]',
'mysos_test_client=mysos.testing.mysos_test_client:proxy_main [test_client]',
],
},
)