<commit_before>#!/usr/bin/python

from setuptools import setup

dependency_links=[
    'git+https://github.com/Toblerity/Shapely.git@maint#egg=Shapely',
]

setup(name='libhxl',
      version='1.01beta',
      description='Python support for the Humanitarian Exchange Language (HXL).',
      author='David Megginson',
      author_email='contact@megginson.com',
      url='http://hxlproject.org',
      install_requires=['shapely', 'python-dateutil', 'xlrd'],
      dependency_links=dependency_links,
      packages=['hxl', 'hxl.filters'],
      package_data={'': ['*.csv']},
      include_package_data=True,
      test_suite='tests',
      scripts=[
        'scripts/hxl2geojson',
        'scripts/hxladd',
        'scripts/hxlbounds',
        'scripts/hxlclean',
        'scripts/hxlcount',
        'scripts/hxlcut',
        'scripts/hxlmerge',
        'scripts/hxlrename',
        'scripts/hxlselect',
        'scripts/hxlsort',
        'scripts/hxltag',
        'scripts/hxlvalidate'
        ]
      )
<commit_msg>Bump version to 1.02beta.<commit_after>#!/usr/bin/python

from setuptools import setup

dependency_links=[
    'git+https://github.com/Toblerity/Shapely.git@maint#egg=Shapely',
]

setup(name='libhxl',
      version='1.02beta',
      description='Python support for the Humanitarian Exchange Language (HXL).',
      author='David Megginson',
      author_email='contact@megginson.com',
      url='http://hxlproject.org',
      install_requires=['shapely', 'python-dateutil', 'xlrd'],
      dependency_links=dependency_links,
      packages=['hxl', 'hxl.filters'],
      package_data={'': ['*.csv']},
      include_package_data=True,
      test_suite='tests',
      scripts=[
        'scripts/hxl2geojson',
        'scripts/hxladd',
        'scripts/hxlbounds',
        'scripts/hxlclean',
        'scripts/hxlcount',
        'scripts/hxlcut',
        'scripts/hxlmerge',
        'scripts/hxlrename',
        'scripts/hxlselect',
        'scripts/hxlsort',
        'scripts/hxltag',
        'scripts/hxlvalidate'
        ]
      )
<|endoftext|>


<commit_before>#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Thanks to Kenneth Reitz, I stole the template for this

import os
import sys

try:
    from setuptools import setup
except ImportError:
    from distutils.core import setup

PYTHON3 = sys.version_info[0] > 2

required = ['requests>=2.5', 'websocket-client==0.32.0', 'beautifulsoup4==4.3.2', 'pyfiglet==0.7.4', 'slackrtm==0.2.1']
if not PYTHON3:
    required += ['importlib>=1.0.3']

packages = ['limbo', 'limbo.plugins']

try:
    longdesc = open("README.rs").read()
except:
    longdesc = ''

setup(
    name='limbo',
    version='3.5.0',
    description='Simple and Clean Slack Chatbot',
    long_description=longdesc,
    author='Bill Mill',
    author_email='bill@billmill.org',
    url='https://github.com/llimllib/limbo',
    packages=packages,
    scripts = ['bin/limbo'],
    package_data={'': ['LICENSE',], '': ['limbo/plugins/*.py']},
    include_package_data=True,
    install_requires=required,
    license='MIT',
    classifiers=(
        'Development Status :: 4 - Beta',
        'Intended Audience :: Developers',
        'Natural Language :: English',
        'License :: OSI Approved :: MIT License',
        'Programming Language :: Python',
        'Programming Language :: Python :: 2.6',
        'Programming Language :: Python :: 2.7',
        'Programming Language :: Python :: 3.4',
    ),
)
<commit_msg>bump version to 3.5.1<commit_after>#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Thanks to Kenneth Reitz, I stole the template for this

import os
import sys

try:
    from setuptools import setup
except ImportError:
    from distutils.core import setup

PYTHON3 = sys.version_info[0] > 2

required = ['requests>=2.5', 'websocket-client==0.32.0', 'beautifulsoup4==4.3.2', 'pyfiglet==0.7.4', 'slackrtm==0.2.1']
if not PYTHON3:
    required += ['importlib>=1.0.3']

packages = ['limbo', 'limbo.plugins']

try:
    longdesc = open("README.rs").read()
except:
    longdesc = ''

setup(
    name='limbo',
    version='3.5.1',
    description='Simple and Clean Slack Chatbot',
    long_description=longdesc,
    author='Bill Mill',
    author_email='bill@billmill.org',
    url='https://github.com/llimllib/limbo',
    packages=packages,
    scripts = ['bin/limbo'],
    package_data={'': ['LICENSE',], '': ['limbo/plugins/*.py']},
    include_package_data=True,
    install_requires=required,
    license='MIT',
    classifiers=(
        'Development Status :: 4 - Beta',
        'Intended Audience :: Developers',
        'Natural Language :: English',
        'License :: OSI Approved :: MIT License',
        'Programming Language :: Python',
        'Programming Language :: Python :: 2.6',
        'Programming Language :: Python :: 2.7',
        'Programming Language :: Python :: 3.4',
    ),
)
<|endoftext|>


<commit_before>#!/usr/bin/env python3
#
# This file is part of Superdesk.
#
# Copyright 2013-2020 Sourcefabric z.u. and contributors.
#
# For the full copyright and license information, please see the
# AUTHORS and LICENSE files distributed with this source code, or
# at https://www.sourcefabric.org/superdesk/license

from setuptools import setup, find_packages

LONG_DESCRIPTION = "Superdesk Server Core"

install_requires = [
    # temporary requirement to get urllib in a version compatible with requests
    # to be kept until requests update its requirements
    # (cf. https://github.com/psf/requests/issues/5654
    # and https://github.com/psf/requests/pull/5651)
    "urllib3<1.26",
    "eve==1.1.2",
    "eve-elastic>=7.1.3,<7.4",
    "flask>=1.1,<1.2",
    "flask-mail>=0.9,<0.10",
    "flask-script>=2.0.5,<3.0",
    "flask-babel>=1.0,<1.1",
    "pillow>=8.1,<8.2",
    "arrow>=0.4,<=0.13",
    "bcrypt>=3.1.1,<3.2",
    "blinker>=1.3,<1.5",
    "celery[redis]>=4.4.0,<4.5",
    "cerberus>=1.3.2,<1.4",
    "redis>=3.2.0,<3.3",
    "kombu>=4.6,<4.7",
    "feedparser>=5.2,<5.3",
    "hachoir<=3.0a3",
    "HermesCache>=0.6.0,<0.8.0",
    "python-magic>=0.4,<0.5",
    "ldap3>=2.2.4,<2.6",
    "pytz>=2015.4",
    "tzlocal>=1.2.2,<2.0",
    "raven[flask]>=5.10,<7.0",
    "requests>=2.7.0,<3.0",
    "boto3>=1.1.4,<1.6",
    "websockets>=3.0,<7.0",
    "mongolock>=1.3.4,<1.4",
    "PyYAML>=4.2b1,<5.0",
    "lxml>=4,<4.7",
    "python-twitter==3.5",
    "chardet<4.0",
    "pymongo>=3.8,<3.12",
    "croniter<0.4",
    "python-dateutil<2.8",
    "unidecode==0.04.21",
    "authlib>0.14,<0.15",
    "draftjs-exporter[lxml]<2.2",
    "werkzeug>=1.0,<1.1",
    "regex==2020.7.14",
    "flask-oidc-ex==0.5.5",
    # to be replaced by stdlib version when we use Python 3.8+
    "importlib_metadata<3.2",
    "typing_extensions>=3.7.4",
]

package_data = {
    "superdesk": [
        "templates/*.txt",
        "templates/*.html",
        "locators/data/*.json",
        "io/data/*.json",
        "data_updates/*.py",
        "data_updates/*.js",
        "translations/*.po",
        "translations/*.mo",
    ],
    "apps": [
        "prepopulate/*.json",
        "prepopulate/data_init/*.json",
        "io/data/*.json",
    ],
}

setup(
    name="Superdesk-Core",
    version="2.3.0rc1",
    description="Superdesk Core library",
    long_description=LONG_DESCRIPTION,
    author="petr jasek",
    author_email="petr.jasek@sourcefabric.org",
    url="https://github.com/superdesk/superdesk-core",
    license="GPLv3",
    platforms=["any"],
    packages=find_packages(exclude=["tests", "features"]),
    package_data=package_data,
    include_package_data=True,
    setup_requires=["setuptools_scm"],
    install_requires=install_requires,
    classifiers=[
        "Development Status :: 4 - Beta",
        "Environment :: Web Environment",
        "Intended Audience :: Developers",
        "License :: OSI Approved :: GNU General Public License v3 (GPLv3)",
        "Operating System :: OS Independent",
        "Programming Language :: Python",
        "Programming Language :: Python :: 3",
        "Topic :: Internet :: WWW/HTTP :: Dynamic Content",
    ],
)
<commit_msg>Publish v2.3.0rc2 to pypi<commit_after>#!/usr/bin/env python3
#
# This file is part of Superdesk.
#
# Copyright 2013-2020 Sourcefabric z.u. and contributors.
#
# For the full copyright and license information, please see the
# AUTHORS and LICENSE files distributed with this source code, or
# at https://www.sourcefabric.org/superdesk/license

from setuptools import setup, find_packages

LONG_DESCRIPTION = "Superdesk Server Core"

install_requires = [
    # temporary requirement to get urllib in a version compatible with requests
    # to be kept until requests update its requirements
    # (cf. https://github.com/psf/requests/issues/5654
    # and https://github.com/psf/requests/pull/5651)
    "urllib3<1.26",
    "eve==1.1.2",
    "eve-elastic>=7.1.3,<7.4",
    "flask>=1.1,<1.2",
    "flask-mail>=0.9,<0.10",
    "flask-script>=2.0.5,<3.0",
    "flask-babel>=1.0,<1.1",
    "pillow>=8.1,<8.2",
    "arrow>=0.4,<=0.13",
    "bcrypt>=3.1.1,<3.2",
    "blinker>=1.3,<1.5",
    "celery[redis]>=4.4.0,<4.5",
    "cerberus>=1.3.2,<1.4",
    "redis>=3.2.0,<3.3",
    "kombu>=4.6,<4.7",
    "feedparser>=5.2,<5.3",
    "hachoir<=3.0a3",
    "HermesCache>=0.6.0,<0.8.0",
    "python-magic>=0.4,<0.5",
    "ldap3>=2.2.4,<2.6",
    "pytz>=2015.4",
    "tzlocal>=1.2.2,<2.0",
    "raven[flask]>=5.10,<7.0",
    "requests>=2.7.0,<3.0",
    "boto3>=1.1.4,<1.6",
    "websockets>=3.0,<7.0",
    "mongolock>=1.3.4,<1.4",
    "PyYAML>=4.2b1,<5.0",
    "lxml>=4,<4.7",
    "python-twitter==3.5",
    "chardet<4.0",
    "pymongo>=3.8,<3.12",
    "croniter<0.4",
    "python-dateutil<2.8",
    "unidecode==0.04.21",
    "authlib>0.14,<0.15",
    "draftjs-exporter[lxml]<2.2",
    "werkzeug>=1.0,<1.1",
    "regex==2020.7.14",
    "flask-oidc-ex==0.5.5",
    # to be replaced by stdlib version when we use Python 3.8+
    "importlib_metadata<3.2",
    "typing_extensions>=3.7.4",
]

package_data = {
    "superdesk": [
        "templates/*.txt",
        "templates/*.html",
        "locators/data/*.json",
        "io/data/*.json",
        "data_updates/*.py",
        "data_updates/*.js",
        "translations/*.po",
        "translations/*.mo",
    ],
    "apps": [
        "prepopulate/*.json",
        "prepopulate/data_init/*.json",
        "io/data/*.json",
    ],
}

setup(
    name="Superdesk-Core",
    version="2.3.0rc2",
    description="Superdesk Core library",
    long_description=LONG_DESCRIPTION,
    author="petr jasek",
    author_email="petr.jasek@sourcefabric.org",
    url="https://github.com/superdesk/superdesk-core",
    license="GPLv3",
    platforms=["any"],
    packages=find_packages(exclude=["tests", "features"]),
    package_data=package_data,
    include_package_data=True,
    setup_requires=["setuptools_scm"],
    install_requires=install_requires,
    classifiers=[
        "Development Status :: 4 - Beta",
        "Environment :: Web Environment",
        "Intended Audience :: Developers",
        "License :: OSI Approved :: GNU General Public License v3 (GPLv3)",
        "Operating System :: OS Independent",
        "Programming Language :: Python",
        "Programming Language :: Python :: 3",
        "Topic :: Internet :: WWW/HTTP :: Dynamic Content",
    ],
)
<|endoftext|>


<commit_before># ===============================================================================
# Copyright 2017 dgketchum
#
# Licensed 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.
# ===============================================================================

import os

from setuptools import setup

os.environ['TRAVIS_CI'] = 'True'

try:
    from setuptools import setup

    setup_kwargs = {'entry_points': {'console_scripts': ['landsat=core.landsat:__main__']}}
except ImportError:
    from distutils.core import setup

    setup_kwargs = {'scripts': ['bin/core/landsat']}

tag = '0.3.81'

setup(name='Landsat578',
      version=tag,
      description='Very simple API to download Landsat data from LT5, LE7, and LC8 from USGS',
      setup_requires=['nose>=1.0'],
      py_modules=['core'],
      license='Apache', classifiers=[
        'Development Status :: 3 - Alpha',
        'Intended Audience :: Science/Research',
        'Topic :: Scientific/Engineering :: GIS',
        'License :: OSI Approved :: Apache Software License',
        'Programming Language :: Python :: 2.7',
        'Programming Language :: Python :: 3.6'],
      keywords='landsat download hydrology remote sensing',
      author='David Ketchum',
      author_email='dgketchum@gmail.com',
      platforms='Posix; MacOS X; Windows',
      packages=['core'],
      download_url='https://github.com/{}/{}/archive/{}.tar.gz'.format('dgketchum', 'Landsat578', tag),
      url='https://github.com/dgketchum',
      test_suite='tests.test_suite.suite', install_requires=['lxml', 'numpy', 'pandas',
                                                             'python-dateutil', 'pytz',
                                                             'requests', 'six', 'future', 'pyyaml'],
      **setup_kwargs)

# ============= EOF ==============================================================
<commit_msg>working on CLI<commit_after># ===============================================================================
# Copyright 2017 dgketchum
#
# Licensed 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.
# ===============================================================================

import os

from setuptools import setup

os.environ['TRAVIS_CI'] = 'True'

try:
    from setuptools import setup

    setup_kwargs = {'entry_points': {'console_scripts': ['landsat=core.landsat:cli_runner']}}
except ImportError:
    from distutils.core import setup

    setup_kwargs = {'scripts': ['bin/core']}

tag = '0.3.82'

setup(name='Landsat578',
      version=tag,
      description='Very simple API to download Landsat data from LT5, LE7, and LC8 from USGS',
      setup_requires=['nose>=1.0'],
      py_modules=['core'],
      license='Apache', classifiers=[
        'Development Status :: 3 - Alpha',
        'Intended Audience :: Science/Research',
        'Topic :: Scientific/Engineering :: GIS',
        'License :: OSI Approved :: Apache Software License',
        'Programming Language :: Python :: 2.7',
        'Programming Language :: Python :: 3.6'],
      keywords='landsat download hydrology remote sensing',
      author='David Ketchum',
      author_email='dgketchum@gmail.com',
      platforms='Posix; MacOS X; Windows',
      packages=['core'],
      download_url='https://github.com/{}/{}/archive/{}.tar.gz'.format('dgketchum', 'Landsat578', tag),
      url='https://github.com/dgketchum',
      test_suite='tests.test_suite.suite', install_requires=['lxml', 'numpy', 'pandas',
                                                             'python-dateutil', 'pytz',
                                                             'requests', 'six', 'future', 'pyyaml'],
      **setup_kwargs)

# ============= EOF ==============================================================
<|endoftext|>


<commit_before>#!/usr/bin/env python

from setuptools import setup

setup(
    # GETTING-STARTED: set your app name:
    name='YourAppName',
    # GETTING-STARTED: set your app name:
    version='1.0',
    # GETTING-STARTED: set your app description:
    description='OpenShift App',
    # GETTING-STARTED: set author name (your name):
    author='Your Name',
    # GETTING-STARTED: set author name (your name):
    author_email='example@example.com',
    # GETTING-STARTED: set author name (your name):
    url='http://www.python.org/sigs/distutils-sig/',
    # GETTING-STARTED: define required django version:
    install_requires=['Django<=1.8'],
)<commit_msg>Update setup.py<commit_after>#!/usr/bin/env python

from setuptools import setup

setup(
    # GETTING-STARTED: set your app name:
    name='YourAppName',
    # GETTING-STARTED: set your app version:
    version='1.0',
    # GETTING-STARTED: set your app description:
    description='OpenShift App',
    # GETTING-STARTED: set author name (your name):
    author='Your Name',
    # GETTING-STARTED: set author email (your email):
    author_email='example@example.com',
    # GETTING-STARTED: set author url (your url):
    url='http://www.python.org/sigs/distutils-sig/',
    # GETTING-STARTED: define required django version:
    install_requires=['Django<=1.8'],
)
<|endoftext|>


<commit_before>from setuptools import setup

install_requires = [
    'click',
    'redis',
    'structlog'
]

tests_require = install_requires + [
    'pytest',
    'psutil',
]

setup(
    name='tasktiger',
    version='0.9',
    url='http://github.com/closeio/tasktiger',
    license='MIT',
    description='Python task queue',
    test_suite='tests',
    tests_require=tests_require,
    platforms='any',
    install_requires=install_requires,
    classifiers=[
        'Intended Audience :: Developers',
        'License :: OSI Approved :: MIT License',
        'Operating System :: OS Independent',
        'Topic :: Software Development :: Libraries :: Python Modules',
        'Programming Language :: Python',
        'Programming Language :: Python :: 2',
        'Programming Language :: Python :: 2.7',
        'Programming Language :: Python :: 3',
        'Programming Language :: Python :: 3.4',
        'Programming Language :: Python :: 3.5',
    ],
    packages=[
        'tasktiger',
    ],
    entry_points={
        'console_scripts': [
            'tasktiger = tasktiger:run_worker',
        ],
    },
)
<commit_msg>Fix Lua script packaging<commit_after>from setuptools import setup

install_requires = [
    'click',
    'redis',
    'structlog'
]

tests_require = install_requires + [
    'pytest',
    'psutil',
]

setup(
    name='tasktiger',
    version='0.9',
    url='http://github.com/closeio/tasktiger',
    license='MIT',
    description='Python task queue',
    test_suite='tests',
    tests_require=tests_require,
    platforms='any',
    install_requires=install_requires,
    classifiers=[
        'Intended Audience :: Developers',
        'License :: OSI Approved :: MIT License',
        'Operating System :: OS Independent',
        'Topic :: Software Development :: Libraries :: Python Modules',
        'Programming Language :: Python',
        'Programming Language :: Python :: 2',
        'Programming Language :: Python :: 2.7',
        'Programming Language :: Python :: 3',
        'Programming Language :: Python :: 3.4',
        'Programming Language :: Python :: 3.5',
    ],
    packages=[
        'tasktiger',
    ],
    package_data={'tasktiger': ['lua/*.lua']},
    entry_points={
        'console_scripts': [
            'tasktiger = tasktiger:run_worker',
        ],
    },
)
<|endoftext|>


<commit_before>import os
from setuptools import setup

with open(os.path.join(os.path.dirname(__file__), 'README.md')) as readme:
    README = readme.read()

# allow setup.py to be run from any path
os.chdir(os.path.normpath(os.path.join(os.path.abspath(__file__), os.pardir)))

setup(
    name='django-extra-fields',
    version='1.2.4',
    packages=['drf_extra_fields',
              'drf_extra_fields.runtests'],
    include_package_data=True,
    install_requires=['Django >= 1.4', 'djangorestframework >= 3.0.1'],
    extras_require={
        "Base64ImageField": ["Pillow == 6.2.0"],
    },
    license='Apache-2.0',
    description='Additional fields for Django Rest Framework.',
    long_description=README,
    long_description_content_type="text/markdown",
    author='hipo',
    author_email='pypi@hipolabs.com',
    url='https://github.com/Hipo/drf-extra-fields',
    python_requires=">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*",
    classifiers=[
        'Environment :: Web Environment',
        'Framework :: Django',
        'Intended Audience :: Developers',
        'Operating System :: OS Independent',
        'License :: OSI Approved :: BSD License',
        'Programming Language :: Python',
        'Programming Language :: Python :: 2',
        'Programming Language :: Python :: 2.7',
        'Programming Language :: Python :: 3',
        'Programming Language :: Python :: 3.4',
        'Programming Language :: Python :: 3.5',
        'Programming Language :: Python :: 3.6',
        'Programming Language :: Python :: 3.7',
        'Topic :: Internet :: WWW/HTTP',
        'Topic :: Internet :: WWW/HTTP :: Dynamic Content',
    ],
)
<commit_msg>Upgrade drf-extra-fields version<commit_after>import os
from setuptools import setup

with open(os.path.join(os.path.dirname(__file__), 'README.md')) as readme:
    README = readme.read()

# allow setup.py to be run from any path
os.chdir(os.path.normpath(os.path.join(os.path.abspath(__file__), os.pardir)))

setup(
    name='django-extra-fields',
    version='1.2.5',
    packages=['drf_extra_fields',
              'drf_extra_fields.runtests'],
    include_package_data=True,
    install_requires=['Django >= 1.4', 'djangorestframework >= 3.0.1'],
    extras_require={
        "Base64ImageField": ["Pillow == 6.2.0"],
    },
    license='Apache-2.0',
    description='Additional fields for Django Rest Framework.',
    long_description=README,
    long_description_content_type="text/markdown",
    author='hipo',
    author_email='pypi@hipolabs.com',
    url='https://github.com/Hipo/drf-extra-fields',
    python_requires=">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*",
    classifiers=[
        'Environment :: Web Environment',
        'Framework :: Django',
        'Intended Audience :: Developers',
        'Operating System :: OS Independent',
        'License :: OSI Approved :: BSD License',
        'Programming Language :: Python',
        'Programming Language :: Python :: 2',
        'Programming Language :: Python :: 2.7',
        'Programming Language :: Python :: 3',
        'Programming Language :: Python :: 3.4',
        'Programming Language :: Python :: 3.5',
        'Programming Language :: Python :: 3.6',
        'Programming Language :: Python :: 3.7',
        'Topic :: Internet :: WWW/HTTP',
        'Topic :: Internet :: WWW/HTTP :: Dynamic Content',
    ],
)
<|endoftext|>


<commit_before>#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""vcspull lives at <https://github.com/vcs-python/vcspull>."""

import sys

from setuptools import setup
from setuptools.command.test import test as TestCommand

about = {}
with open("vcspull/__about__.py") as fp:
    exec(fp.read(), about)

with open('requirements/base.txt') as f:
    install_reqs = [line for line in f.read().split('\n') if line]

with open('requirements/test.txt') as f:
    tests_reqs = [line for line in f.read().split('\n') if line]

readme = open('README.rst').read()
history = open('CHANGES').read().replace('.. :changelog:', '')

class PyTest(TestCommand):
    user_options = [('pytest-args=', 'a', "Arguments to pass to py.test")]

    def initialize_options(self):
        TestCommand.initialize_options(self)
        self.pytest_args = []

    def run_tests(self):
        import pytest
        errno = pytest.main(self.pytest_args)
        sys.exit(errno)

setup(
    name=about['__title__'],
    version=about['__version__'],
    url='http://github.com/vcs-python/vcspull/',
    download_url='https://pypi.python.org/pypi/vcspull',
    license=about['__license__'],
    author=about['__author__'],
    author_email=about['__email__'],
    description=about['__description__'],
    long_description=readme,
    include_package_data=True,
    install_requires=install_reqs,
    tests_require=tests_reqs,
    cmdclass={'test': PyTest},
    zip_safe=False,
    keywords=about['__title__'],
    packages=['vcspull'],
    entry_points=dict(console_scripts=['vcspull=vcspull:cli.cli']),
    classifiers=[
        'Development Status :: 4 - Beta',
        "License :: OSI Approved :: MIT License",
        'Environment :: Web Environment',
        'Intended Audience :: Developers',
        "Operating System :: POSIX",
        "Operating System :: MacOS :: MacOS X",
        'Programming Language :: Python',
        'Programming Language :: Python :: 2.7',
        'Programming Language :: Python :: 3',
        'Programming Language :: Python :: 3.4',
        'Programming Language :: Python :: 3.5',
        'Programming Language :: Python :: 3.6',
        "Topic :: Utilities",
        "Topic :: System :: Shells",
    ],
)
<commit_msg>Add Python 3.7 to release classifiers<commit_after>#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""vcspull lives at <https://github.com/vcs-python/vcspull>."""

import sys

from setuptools import setup
from setuptools.command.test import test as TestCommand

about = {}
with open("vcspull/__about__.py") as fp:
    exec(fp.read(), about)

with open('requirements/base.txt') as f:
    install_reqs = [line for line in f.read().split('\n') if line]

with open('requirements/test.txt') as f:
    tests_reqs = [line for line in f.read().split('\n') if line]

readme = open('README.rst').read()
history = open('CHANGES').read().replace('.. :changelog:', '')

class PyTest(TestCommand):
    user_options = [('pytest-args=', 'a', "Arguments to pass to py.test")]

    def initialize_options(self):
        TestCommand.initialize_options(self)
        self.pytest_args = []

    def run_tests(self):
        import pytest
        errno = pytest.main(self.pytest_args)
        sys.exit(errno)

setup(
    name=about['__title__'],
    version=about['__version__'],
    url='http://github.com/vcs-python/vcspull/',
    download_url='https://pypi.python.org/pypi/vcspull',
    license=about['__license__'],
    author=about['__author__'],
    author_email=about['__email__'],
    description=about['__description__'],
    long_description=readme,
    include_package_data=True,
    install_requires=install_reqs,
    tests_require=tests_reqs,
    cmdclass={'test': PyTest},
    zip_safe=False,
    keywords=about['__title__'],
    packages=['vcspull'],
    entry_points=dict(console_scripts=['vcspull=vcspull:cli.cli']),
    classifiers=[
        'Development Status :: 4 - Beta',
        "License :: OSI Approved :: MIT License",
        'Environment :: Web Environment',
        'Intended Audience :: Developers',
        "Operating System :: POSIX",
        "Operating System :: MacOS :: MacOS X",
        'Programming Language :: Python',
        'Programming Language :: Python :: 2.7',
        'Programming Language :: Python :: 3',
        'Programming Language :: Python :: 3.4',
        'Programming Language :: Python :: 3.5',
        'Programming Language :: Python :: 3.6',
        'Programming Language :: Python :: 3.7',
        "Topic :: Utilities",
        "Topic :: System :: Shells",
    ],
)
<|endoftext|>


<commit_before>import sys

##################################
# check Python version
##################################

if sys.version_info.major < 3:
	print("ERROR: NetworKit requires Python 3.")
	sys.exit(1)

import version
from setup_util import *
if "setuptools" not in sys.modules:
	from ez_setup import use_setuptools
	# in case setuptools is not installed
	use_setuptools()

from setuptools import setup, Extension, find_packages
from setuptools.command.test import test as TestCommand
from setuptools.command.build_ext import build_ext as SetuptoolsBuildExtCmd
from setuptools.command.install import install as InstallCmd
# from setuptools.command.clean import clean as CleanCmd
import unittest

abort_installation = False
errorMessages = []

# install necessary python packages
installExternalPythonPackages()
missingDepend = checkDependencies()

try:
	import Cython
	from Cython.Build import cythonize
	from Cython.Distutils import build_ext as CythonBuildExtCmd
	from distutils.version import LooseVersion
	if LooseVersion(Cython.__version__) >= LooseVersion('0.21'):
		cython_available = True
	else:
		cython_available = False
		#print("Cython version too old, please update")
except:
	# import so that the deriving class can still be there
	from setuptools.command.build_ext import build_ext as CythonBuildExtCmd
	abort_installation = False
	cython_available = False
	# errorMessages.append("ERROR: Cython not installed. Please install Cython and rerun")

import multiprocessing
import os
import shutil

import subprocess

from argparse import ArgumentParser

##################################
# check whether SCons is available
##################################
scons_available = None
try:
	if shutil.which("scons") is None:
		# errorMessages.append("ERROR: Build system SCons is not installed. Please install and rerun")
		# abort_installation = True
		scons_available = False
	else:
		scons_available = True
except:
	print("WARNING: unable to check whether build system SCons is installed")
	scons_available = False

#
if sys.platform == 'Windows' and not scons_available:
	abort_installation = True
	errorMessages.append("ERROR: Build system SCons is not installed. Please install and rerun.")

# compiler candidates
# this list serves as a fallback when neither $CXX is set nor build.conf exists
candidates = ["g++", "g++-6.1", "g++-6", "g++-5.3", "g++-5.2", "g++-5.1", "g++-5", "g++-4.9", "g++-4.8", "clang++", "clang++-3.8", "clang++-3.7"]
stdflag = None

#######################################
# read the build.conf IFF it exists
#######################################
if os.path.isfile("build.conf"):
	import configparser
	confPath = "build.conf"

	conf = configparser.ConfigParser()
	conf.read([confPath])     # read the configuration file

	cppComp = conf.get("compiler", "cpp")
	if not cppComp in candidates:
		# insert specified compiler from build.conf at the beginning
		candidates.insert(0, cppComp)
	else:
		# move candidate to the beginning
		candidates.insert(0, candidates.pop(candidates.index(cppComp)))

	## C++14 support
	if stdflag is None:
		try:
			stdflag = conf.get("compiler", "std14")
		except:
			pass

#######################################
# determine and set compiler or exit if there is no suitable compiler
#######################################
# temporarily disable compiler check on windows.
if not sys.platform == 'Windows':
	# check CXX environment variable for default C++ compiler
	try:
		default_candidate = os.environ["CXX"]
		if not default_candidate in candidates:
			# insert specified compiler from build.conf at the beginning
			candidates.insert(0, default_candidate)
		else:
			# move candidate to the beginning
			candidates.insert(0, candidates.pop(candidates.index(default_candidate)))
	except:
		pass
	# check if the specified compiler is suitable
	if stdflag is None or len(stdflag) == 0:
		cppcompiler, stdflag = determineCompiler(candidates, ["c++14","c++11"])
	else:
		cppcompiler,_ = determineCompiler(candidates, [stdflag])
	if cppcompiler is not None:
		os.environ["CC"] = cppcompiler
		os.environ["CXX"] = cppcompiler
	else:
		errorMessages.append("ERROR: Test compilation with the following binary names was unsuccessful: {}. Make sure you have either g++ (>= 4.8) or clang++ (>= 3.7) properly installed".format(", ".join(candidates)))
		abort_installation = True

# early abort installation in case the compiler requirements aren't satisfied
if abort_installation:
	for msg in errorMessages:
		print(msg)
	exit(1)

################################################
# get the optional arguments for the compilation
################################################
parser = ArgumentParser()
parser.add_argument("-j", "--jobs", dest="jobs", help="specify number of jobs")
parser.add_argument("-o", "--optimize", dest="optimize", help="specify build type: Opt=optimize, Dbg=debug, Pro=profiling")
parser.add_argument("-c", "--with-cpp-tests", dest="cpptests", help="Also compile and run the C++ unit tests",action='store_true')
(options,args) = parser.parse_known_args()

# set optional arguments to parsed ones or the default ones
if options.jobs is not None:
	jobs = options.jobs
else:
	jobs = multiprocessing.cpu_count()
if options.optimize is not None:
	optimize = options.optimize
else:
	optimize = "Opt"

# make sure sys.argv is correct for setuptools
sys.argv = [__file__] + args

# this defintion probably has to stand here...
def build_NetworKit():
	if scons_available:
		comp_cmd = ["scons", "--optimize={0}".format(optimize), "--target=Core", "-j{0}".format(jobs)]
		# scons is available, now check if the user has created a build.conf
		if not os.path.isfile("build.conf"):
			# we assume, we're in a clone of the repository or in an archived copy of the repository and the user/developer has NOT created a build.conf
			# and therefore needs the information about the compiler
			comp_cmd.append("--compiler={0}".format(cppcompiler))
			comp_cmd.append("--std={0}".format(stdflag))
		print("initializing NetworKit compilation with: {0}".format(" ".join(comp_cmd)))
		if not subprocess.call(comp_cmd) == 0:
			print("scons returned an error, exiting setup.py")
			exit(1)
	else:
		from mbe import MinimalBuildEnvironment
		# minimal builder as fallback for scons
		def_compile_flags = ["-c", "-std={}".format(stdflag), "-Wall", "-fmessage-length=0", "-fPIC", "-fopenmp"]
		release_compile_flags = ["-O3", "-DNDEBUG", "-DLOG_LEVEL=LOG_LEVEL_INFO"]
		builder = MinimalBuildEnvironment(def_compile_flags,"",release_compile_flags,"","Opt", cppcompiler, "networkit/cpp")
		builder.compile("Core")

# this defintion probably has to stand here...
def additional_clean():
	clean_cmd = ["scons", "--optimize={0}".format(optimize), "--target=Core", "-c"]
	subprocess.call(clean_cmd)
	if cython_available and os.path.isfile("networkit/_NetworKit.cpp") and "clean" in sys.argv:
		os.remove("networkit/_NetworKit.cpp")

#class CustomCleanCmd(CleanCmd):
#	def initialize_options(self):
#		CleanCmd.initialize_options(self)

#	def finalize_options(self):
#		CleanCmd.finalize_options(self)

#	def run(self):
#		additional_clean()
#		CleanCmd.run(self)

class CustomStBuildExtCmd(SetuptoolsBuildExtCmd):
	def initialize_options(self):
		SetuptoolsBuildExtCmd.initialize_options(self)

	def finalize_options(self):
		SetuptoolsBuildExtCmd.finalize_options(self)

	def run(self):
		build_NetworKit()
		SetuptoolsBuildExtCmd.run(self)

class CustomCythonBuildExtCmd(CythonBuildExtCmd):
	def initialize_options(self):
		CythonBuildExtCmd.initialize_options(self)

	def finalize_options(self):
		CythonBuildExtCmd.finalize_options(self)

	def run(self):
		build_NetworKit()
		if os.path.isfile("networkit/_NetworKit.cpp"):
			os.remove("networkit/_NetworKit.cpp")
		CythonBuildExtCmd.run(self)

class MyTestCommand(TestCommand):
	def initialize_options(self):
		TestCommand.initialize_options(self)

	def finalize_options(self):
		TestCommand.finalize_options(self)

	def run(self):
		if options.cpptests:
			optimize = "Dbg"
			comp_cmd = ["scons", "--optimize={0}".format(optimize), "--target=Tests", "-j{0}".format(jobs)]
			print("initializing NetworKit compilation with: {0}".format(" ".join(comp_cmd)))
			if not subprocess.call(comp_cmd) == 0:
				print("scons returned an error, exiting setup.py")
				exit(1)
			run_cpp_cmd = ["./NetworKit-Tests-{0}".format(optimize),"-t"]
			if subprocess.call(run_cpp_cmd) == 0:
				print("C++ unit tests didn't report any errors")
			else:
				print("some C++ unit tests failed, see above")
		TestCommand.run(self)

class CustomInstallCmd(InstallCmd):
	def initialize_options(self):
		InstallCmd.initialize_options(self)

	def finalize_options(self):
		InstallCmd.finalize_options(self)

	def run(self):
		# run setuptools install command
		InstallCmd.run(self)
		# ask user if they want to install external packages used by NetworKit and install the necessary ones
		installExternalPythonPackages()
		missingDepend = checkDependencies()

src = []
# src can either be _NetworKit.pyx or the cythonized _NetworKit.cpp
do_cythonize = False
# depending on the role in which the setup script is called, it will be determined if _NetworKit.pyx will be cythonized.
build_ext_cmd = None
# the `build_ext` command depends on the role of the setup script
if not os.path.exists(".hg") and os.path.isfile("networkit/_NetworKit.cpp"):
	#print("using pre-cythonized _NetworKit.cpp")
	# we assume, were not in the repository, but installing networkit from a zip or via pip
	if os.path.isfile("MANIFEST.in"):
		os.remove("MANIFEST.in")
	src = ["networkit/_NetworKit.cpp"]
	build_ext_cmd = CustomStBuildExtCmd
elif os.path.isfile("networkit/_NetworKit.pyx") and cython_available:
	#print("cythonize _NetworKit.pyx to _NetworKit.cpp")
	# remove _NetworKit.cpp to make room for cython
	#if cython_available and os.path.isfile("networkit/_NetworKit.cpp"):
	#	os.remove("networkit/_NetworKit.cpp")
	build_ext_cmd = CustomCythonBuildExtCmd
	src = ["networkit/_NetworKit.pyx"]
	do_cythonize = True
else:
	print("ERROR: Some requirements aren't met.\nIf you try to install/build NetworKit from a clone of the repository or a ZIP archive, make sure you have Cython (version >= 0.21) installed under the __same__ Python 3 version from which you tried to install NetworKit.\nExiting...""")
	exit(1)

# initialize Extension module with the appropriate source file
modules = [Extension("_NetworKit",
	src,
	language = "c++",
	extra_compile_args=["-fopenmp", "-std={}".format(stdflag), "-O3", "-DNOGTEST"],
	extra_link_args=["-fopenmp", "-std={}".format(stdflag)],
	libraries=["NetworKit-Core-{0}".format(optimize)],
	library_dirs=["./"])]

if do_cythonize:
	for e in modules:
		e.cython_directives = {"embedsignature" : True}

# initialize the setup with the appropriate commands.
setup(
	name			= version.name,
	version			= version.version,
	author			= version.author,
	author_email	= version.author_email,
	url				= version.url,
	download_url	= version.download_url,
	description		= version.description,
	long_description= version.long_description,
	license			= version.license,
	packages		= find_packages(),
	package_data	= {'networkit.profiling': ['html/*','latex/*','description/*']},
	keywords		= version.keywords,
	platforms		= version.platforms,
	classifiers		= version.classifiers,
	cmdclass		= {'build_ext' : build_ext_cmd, 'test' : MyTestCommand, 'install' : CustomInstallCmd}, #'clean' : CustomCleanCmd,
	test_suite		= 'nose.collector',
	ext_modules		= modules,
	zip_safe		= False)

for dpd in missingDepend:
	print(dpd)
<commit_msg>Update setup.py to cythonize in a Git environment<commit_after>import sys

##################################
# check Python version
##################################

if sys.version_info.major < 3:
	print("ERROR: NetworKit requires Python 3.")
	sys.exit(1)

import version
from setup_util import *
if "setuptools" not in sys.modules:
	from ez_setup import use_setuptools
	# in case setuptools is not installed
	use_setuptools()

from setuptools import setup, Extension, find_packages
from setuptools.command.test import test as TestCommand
from setuptools.command.build_ext import build_ext as SetuptoolsBuildExtCmd
from setuptools.command.install import install as InstallCmd
# from setuptools.command.clean import clean as CleanCmd
import unittest

abort_installation = False
errorMessages = []

# install necessary python packages
installExternalPythonPackages()
missingDepend = checkDependencies()

try:
	import Cython
	from Cython.Build import cythonize
	from Cython.Distutils import build_ext as CythonBuildExtCmd
	from distutils.version import LooseVersion
	if LooseVersion(Cython.__version__) >= LooseVersion('0.21'):
		cython_available = True
	else:
		cython_available = False
		#print("Cython version too old, please update")
except:
	# import so that the deriving class can still be there
	from setuptools.command.build_ext import build_ext as CythonBuildExtCmd
	abort_installation = False
	cython_available = False
	# errorMessages.append("ERROR: Cython not installed. Please install Cython and rerun")

import multiprocessing
import os
import shutil

import subprocess

from argparse import ArgumentParser

##################################
# check whether SCons is available
##################################
scons_available = None
try:
	if shutil.which("scons") is None:
		# errorMessages.append("ERROR: Build system SCons is not installed. Please install and rerun")
		# abort_installation = True
		scons_available = False
	else:
		scons_available = True
except:
	print("WARNING: unable to check whether build system SCons is installed")
	scons_available = False

#
if sys.platform == 'Windows' and not scons_available:
	abort_installation = True
	errorMessages.append("ERROR: Build system SCons is not installed. Please install and rerun.")

# compiler candidates
# this list serves as a fallback when neither $CXX is set nor build.conf exists
candidates = ["g++", "g++-6.1", "g++-6", "g++-5.3", "g++-5.2", "g++-5.1", "g++-5", "g++-4.9", "g++-4.8", "clang++", "clang++-3.8", "clang++-3.7"]
stdflag = None

#######################################
# read the build.conf IFF it exists
#######################################
if os.path.isfile("build.conf"):
	import configparser
	confPath = "build.conf"

	conf = configparser.ConfigParser()
	conf.read([confPath])     # read the configuration file

	cppComp = conf.get("compiler", "cpp")
	if not cppComp in candidates:
		# insert specified compiler from build.conf at the beginning
		candidates.insert(0, cppComp)
	else:
		# move candidate to the beginning
		candidates.insert(0, candidates.pop(candidates.index(cppComp)))

	## C++14 support
	if stdflag is None:
		try:
			stdflag = conf.get("compiler", "std14")
		except:
			pass

#######################################
# determine and set compiler or exit if there is no suitable compiler
#######################################
# temporarily disable compiler check on windows.
if not sys.platform == 'Windows':
	# check CXX environment variable for default C++ compiler
	try:
		default_candidate = os.environ["CXX"]
		if not default_candidate in candidates:
			# insert specified compiler from build.conf at the beginning
			candidates.insert(0, default_candidate)
		else:
			# move candidate to the beginning
			candidates.insert(0, candidates.pop(candidates.index(default_candidate)))
	except:
		pass
	# check if the specified compiler is suitable
	if stdflag is None or len(stdflag) == 0:
		cppcompiler, stdflag = determineCompiler(candidates, ["c++14","c++11"])
	else:
		cppcompiler,_ = determineCompiler(candidates, [stdflag])
	if cppcompiler is not None:
		os.environ["CC"] = cppcompiler
		os.environ["CXX"] = cppcompiler
	else:
		errorMessages.append("ERROR: Test compilation with the following binary names was unsuccessful: {}. Make sure you have either g++ (>= 4.8) or clang++ (>= 3.7) properly installed".format(", ".join(candidates)))
		abort_installation = True

# early abort installation in case the compiler requirements aren't satisfied
if abort_installation:
	for msg in errorMessages:
		print(msg)
	exit(1)

################################################
# get the optional arguments for the compilation
################################################
parser = ArgumentParser()
parser.add_argument("-j", "--jobs", dest="jobs", help="specify number of jobs")
parser.add_argument("-o", "--optimize", dest="optimize", help="specify build type: Opt=optimize, Dbg=debug, Pro=profiling")
parser.add_argument("-c", "--with-cpp-tests", dest="cpptests", help="Also compile and run the C++ unit tests",action='store_true')
(options,args) = parser.parse_known_args()

# set optional arguments to parsed ones or the default ones
if options.jobs is not None:
	jobs = options.jobs
else:
	jobs = multiprocessing.cpu_count()
if options.optimize is not None:
	optimize = options.optimize
else:
	optimize = "Opt"

# make sure sys.argv is correct for setuptools
sys.argv = [__file__] + args

# this defintion probably has to stand here...
def build_NetworKit():
	if scons_available:
		comp_cmd = ["scons", "--optimize={0}".format(optimize), "--target=Core", "-j{0}".format(jobs)]
		# scons is available, now check if the user has created a build.conf
		if not os.path.isfile("build.conf"):
			# we assume, we're in a clone of the repository or in an archived copy of the repository and the user/developer has NOT created a build.conf
			# and therefore needs the information about the compiler
			comp_cmd.append("--compiler={0}".format(cppcompiler))
			comp_cmd.append("--std={0}".format(stdflag))
		print("initializing NetworKit compilation with: {0}".format(" ".join(comp_cmd)))
		if not subprocess.call(comp_cmd) == 0:
			print("scons returned an error, exiting setup.py")
			exit(1)
	else:
		from mbe import MinimalBuildEnvironment
		# minimal builder as fallback for scons
		def_compile_flags = ["-c", "-std={}".format(stdflag), "-Wall", "-fmessage-length=0", "-fPIC", "-fopenmp"]
		release_compile_flags = ["-O3", "-DNDEBUG", "-DLOG_LEVEL=LOG_LEVEL_INFO"]
		builder = MinimalBuildEnvironment(def_compile_flags,"",release_compile_flags,"","Opt", cppcompiler, "networkit/cpp")
		builder.compile("Core")

# this defintion probably has to stand here...
def additional_clean():
	clean_cmd = ["scons", "--optimize={0}".format(optimize), "--target=Core", "-c"]
	subprocess.call(clean_cmd)
	if cython_available and os.path.isfile("networkit/_NetworKit.cpp") and "clean" in sys.argv:
		os.remove("networkit/_NetworKit.cpp")

#class CustomCleanCmd(CleanCmd):
#	def initialize_options(self):
#		CleanCmd.initialize_options(self)

#	def finalize_options(self):
#		CleanCmd.finalize_options(self)

#	def run(self):
#		additional_clean()
#		CleanCmd.run(self)

class CustomStBuildExtCmd(SetuptoolsBuildExtCmd):
	def initialize_options(self):
		SetuptoolsBuildExtCmd.initialize_options(self)

	def finalize_options(self):
		SetuptoolsBuildExtCmd.finalize_options(self)

	def run(self):
		build_NetworKit()
		SetuptoolsBuildExtCmd.run(self)

class CustomCythonBuildExtCmd(CythonBuildExtCmd):
	def initialize_options(self):
		CythonBuildExtCmd.initialize_options(self)

	def finalize_options(self):
		CythonBuildExtCmd.finalize_options(self)

	def run(self):
		build_NetworKit()
		if os.path.isfile("networkit/_NetworKit.cpp"):
			os.remove("networkit/_NetworKit.cpp")
		CythonBuildExtCmd.run(self)

class MyTestCommand(TestCommand):
	def initialize_options(self):
		TestCommand.initialize_options(self)

	def finalize_options(self):
		TestCommand.finalize_options(self)

	def run(self):
		if options.cpptests:
			optimize = "Dbg"
			comp_cmd = ["scons", "--optimize={0}".format(optimize), "--target=Tests", "-j{0}".format(jobs)]
			print("initializing NetworKit compilation with: {0}".format(" ".join(comp_cmd)))
			if not subprocess.call(comp_cmd) == 0:
				print("scons returned an error, exiting setup.py")
				exit(1)
			run_cpp_cmd = ["./NetworKit-Tests-{0}".format(optimize),"-t"]
			if subprocess.call(run_cpp_cmd) == 0:
				print("C++ unit tests didn't report any errors")
			else:
				print("some C++ unit tests failed, see above")
		TestCommand.run(self)

class CustomInstallCmd(InstallCmd):
	def initialize_options(self):
		InstallCmd.initialize_options(self)

	def finalize_options(self):
		InstallCmd.finalize_options(self)

	def run(self):
		# run setuptools install command
		InstallCmd.run(self)
		# ask user if they want to install external packages used by NetworKit and install the necessary ones
		installExternalPythonPackages()
		missingDepend = checkDependencies()

src = []
# src can either be _NetworKit.pyx or the cythonized _NetworKit.cpp
do_cythonize = False
# depending on the role in which the setup script is called, it will be determined if _NetworKit.pyx will be cythonized.
build_ext_cmd = None
# the `build_ext` command depends on the role of the setup script
if not os.path.exists(".git") and not os.path.exists(".hg") and os.path.isfile("networkit/_NetworKit.cpp"):
	#print("using pre-cythonized _NetworKit.cpp")
	# we assume, were not in the repository, but installing networkit from a zip or via pip
	if os.path.isfile("MANIFEST.in"):
		os.remove("MANIFEST.in")
	src = ["networkit/_NetworKit.cpp"]
	build_ext_cmd = CustomStBuildExtCmd
elif os.path.isfile("networkit/_NetworKit.pyx") and cython_available:
	#print("cythonize _NetworKit.pyx to _NetworKit.cpp")
	# remove _NetworKit.cpp to make room for cython
	#if cython_available and os.path.isfile("networkit/_NetworKit.cpp"):
	#	os.remove("networkit/_NetworKit.cpp")
	build_ext_cmd = CustomCythonBuildExtCmd
	src = ["networkit/_NetworKit.pyx"]
	do_cythonize = True
else:
	print("ERROR: Some requirements aren't met.\nIf you try to install/build NetworKit from a clone of the repository or a ZIP archive, make sure you have Cython (version >= 0.21) installed under the __same__ Python 3 version from which you tried to install NetworKit.\nExiting...""")
	exit(1)

# initialize Extension module with the appropriate source file
modules = [Extension("_NetworKit",
	src,
	language = "c++",
	extra_compile_args=["-fopenmp", "-std={}".format(stdflag), "-O3", "-DNOGTEST"],
	extra_link_args=["-fopenmp", "-std={}".format(stdflag)],
	libraries=["NetworKit-Core-{0}".format(optimize)],
	library_dirs=["./"])]

if do_cythonize:
	for e in modules:
		e.cython_directives = {"embedsignature" : True}

# initialize the setup with the appropriate commands.
setup(
	name			= version.name,
	version			= version.version,
	author			= version.author,
	author_email	= version.author_email,
	url				= version.url,
	download_url	= version.download_url,
	description		= version.description,
	long_description= version.long_description,
	license			= version.license,
	packages		= find_packages(),
	package_data	= {'networkit.profiling': ['html/*','latex/*','description/*']},
	keywords		= version.keywords,
	platforms		= version.platforms,
	classifiers		= version.classifiers,
	cmdclass		= {'build_ext' : build_ext_cmd, 'test' : MyTestCommand, 'install' : CustomInstallCmd}, #'clean' : CustomCleanCmd,
	test_suite		= 'nose.collector',
	ext_modules		= modules,
	zip_safe		= False)

for dpd in missingDepend:
	print(dpd)
<|endoftext|>


<commit_before>import sys
import os

try:
    from setuptools import setup, find_packages
except ImportError:
    from distutils.core import setup
import pkg_resources

# Shortcut for building/publishing to Pypi
if sys.argv[-1] == 'publish':
    os.system('python setup.py sdist bdist_wheel upload')
    sys.exit()

# For making things look nice on pypi:
try:
    import pypandoc
    long_description = pypandoc.convert('README.md', 'rst')
except (IOError, ImportError, RuntimeError):
    long_description = 'Tool for annotating patterns of genetic inheritance in Variant Call Format (VCF) files.'

setup(name='genmod',
    version='3.5.6',
    description='Annotate genetic inheritance models in variant files',
    author = 'Mans Magnusson',
    author_email = 'mans.magnusson@scilifelab.se',
    url = 'http://github.com/moonso/genmod',
    license = 'MIT License',
    install_requires=[
        'ped_parser >= 1.6.2',
        'pytabix',
        'pytest',
        'interval_tree >= 0.3.2',
        'click',
        'configobj',
        'intervaltree',
        'extract_vcf >= 0.4.2'
    ],
    packages=find_packages(
        exclude=('tests*', 'docs', 'examples', 'configs')
    ),
    package_data = {
        'genmod': ['annotations/*.db']
    },
    entry_points= { "console_scripts" : [
        "genmod = genmod.commands.run_genmod:cli",
        ]
    },
    keywords = ['inheritance', 'vcf', 'variants'],
    classifiers = [
        "Programming Language :: Python",
        "Programming Language :: Python :: 2.7",
        "Programming Language :: Python :: 3",
        "License :: OSI Approved :: MIT License",
        "Development Status :: 4 - Beta",
        "Operating System :: MacOS :: MacOS X",
        "Operating System :: Unix",
        "Intended Audience :: Science/Research",
        "Topic :: Scientific/Engineering :: Bio-Informatics",
    ],
    long_description = long_description,
)<commit_msg>Bumped version to 3.5.7<commit_after>import sys
import os

try:
    from setuptools import setup, find_packages
except ImportError:
    from distutils.core import setup
import pkg_resources

# Shortcut for building/publishing to Pypi
if sys.argv[-1] == 'publish':
    os.system('python setup.py sdist bdist_wheel upload')
    sys.exit()

# For making things look nice on pypi:
try:
    import pypandoc
    long_description = pypandoc.convert('README.md', 'rst')
except (IOError, ImportError, RuntimeError):
    long_description = 'Tool for annotating patterns of genetic inheritance in Variant Call Format (VCF) files.'

setup(name='genmod',
    version='3.5.7',
    description='Annotate genetic inheritance models in variant files',
    author = 'Mans Magnusson',
    author_email = 'mans.magnusson@scilifelab.se',
    url = 'http://github.com/moonso/genmod',
    license = 'MIT License',
    install_requires=[
        'ped_parser >= 1.6.2',
        'pytabix',
        'pytest',
        'interval_tree >= 0.3.2',
        'click',
        'configobj',
        'intervaltree',
        'extract_vcf >= 0.4.2'
    ],
    packages=find_packages(
        exclude=('tests*', 'docs', 'examples', 'configs')
    ),
    package_data = {
        'genmod': ['annotations/*.db']
    },
    entry_points= { "console_scripts" : [
        "genmod = genmod.commands.run_genmod:cli",
        ]
    },
    keywords = ['inheritance', 'vcf', 'variants'],
    classifiers = [
        "Programming Language :: Python",
        "Programming Language :: Python :: 2.7",
        "Programming Language :: Python :: 3",
        "License :: OSI Approved :: MIT License",
        "Development Status :: 4 - Beta",
        "Operating System :: MacOS :: MacOS X",
        "Operating System :: Unix",
        "Intended Audience :: Science/Research",
        "Topic :: Scientific/Engineering :: Bio-Informatics",
    ],
    long_description = long_description,
)<|endoftext|>


<commit_before>#!/usr/bin/env python

import platform
from setuptools import setup, Command

import versioneer

commands = versioneer.get_cmdclass().copy()

class Trial(Command):
    description = "run trial"
    user_options = []

    def initialize_options(self):
        pass
    def finalize_options(self):
        pass
    def run(self):
        import sys
        from twisted.scripts import trial
        sys.argv = ["trial", "--rterrors", "foolscap.test"]
        trial.run()  # does not return
commands["trial"] = Trial
commands["test"] = Trial

setup_args = {
    "name": "foolscap",
    "version": versioneer.get_version(),
    "description": "Foolscap contains an RPC protocol for Twisted.",
    "author": "Brian Warner",
    "author_email": "warner-foolscap@lothar.com",
    "url": "http://foolscap.lothar.com/trac",
    "license": "MIT",
    "long_description": """\
Foolscap (aka newpb) is a new version of Twisted's native RPC protocol, known
as 'Perspective Broker'. This allows an object in one process to be used by
code in a distant process. This module provides data marshaling, a remote
object reference system, and a capability-based security model.
""",
    "classifiers": [
        "Development Status :: 3 - Alpha",
        "Operating System :: OS Independent",
        "License :: OSI Approved :: MIT License",
        "Programming Language :: Python",
        "Topic :: Internet",
        "Topic :: Software Development :: Libraries :: Python Modules",
        "Topic :: System :: Distributed Computing",
        "Topic :: System :: Networking",
        "Topic :: Software Development :: Object Brokering",
        ],
    "platforms": ["any"],

    "packages": ["foolscap", "foolscap.slicers", "foolscap.logging",
                 "foolscap.appserver", "foolscap.test"],
    "scripts": ["bin/flogtool", "bin/flappserver", "bin/flappclient"],
    "cmdclass": commands,
    "install_requires": ["twisted >= 10.1.0", "pyOpenSSL", "service_identity"],
}

if platform.system() == "Windows":
    # I prefer scripts over entry_points, but they don't work on windows
    del setup_args["scripts"]
    setup_args["entry_points"] = {"console_scripts": [
        "flogtool = foolscap.logging.cli.run_flogtool",
        "flappserver = foolscap.appserver.cli:run_flappserver",
        "flappclient = foolscap.appserver.client:run_flappclient",
        ] }

if __name__ == "__main__":
    setup(**setup_args)

<commit_msg>depend on twisted[tls], not service_identity<commit_after>#!/usr/bin/env python

import platform
from setuptools import setup, Command

import versioneer

commands = versioneer.get_cmdclass().copy()

class Trial(Command):
    description = "run trial"
    user_options = []

    def initialize_options(self):
        pass
    def finalize_options(self):
        pass
    def run(self):
        import sys
        from twisted.scripts import trial
        sys.argv = ["trial", "--rterrors", "foolscap.test"]
        trial.run()  # does not return
commands["trial"] = Trial
commands["test"] = Trial

setup_args = {
    "name": "foolscap",
    "version": versioneer.get_version(),
    "description": "Foolscap contains an RPC protocol for Twisted.",
    "author": "Brian Warner",
    "author_email": "warner-foolscap@lothar.com",
    "url": "http://foolscap.lothar.com/trac",
    "license": "MIT",
    "long_description": """\
Foolscap (aka newpb) is a new version of Twisted's native RPC protocol, known
as 'Perspective Broker'. This allows an object in one process to be used by
code in a distant process. This module provides data marshaling, a remote
object reference system, and a capability-based security model.
""",
    "classifiers": [
        "Development Status :: 3 - Alpha",
        "Operating System :: OS Independent",
        "License :: OSI Approved :: MIT License",
        "Programming Language :: Python",
        "Topic :: Internet",
        "Topic :: Software Development :: Libraries :: Python Modules",
        "Topic :: System :: Distributed Computing",
        "Topic :: System :: Networking",
        "Topic :: Software Development :: Object Brokering",
        ],
    "platforms": ["any"],

    "packages": ["foolscap", "foolscap.slicers", "foolscap.logging",
                 "foolscap.appserver", "foolscap.test"],
    "scripts": ["bin/flogtool", "bin/flappserver", "bin/flappclient"],
    "cmdclass": commands,
    "install_requires": ["twisted[tls] >= 10.1.0", "pyOpenSSL"],
}

if platform.system() == "Windows":
    # I prefer scripts over entry_points, but they don't work on windows
    del setup_args["scripts"]
    setup_args["entry_points"] = {"console_scripts": [
        "flogtool = foolscap.logging.cli.run_flogtool",
        "flappserver = foolscap.appserver.cli:run_flappserver",
        "flappclient = foolscap.appserver.client:run_flappclient",
        ] }

if __name__ == "__main__":
    setup(**setup_args)

<|endoftext|>


<commit_before>from __future__ import absolute_import
import os
import sys

try:
    from pip._internal.req import parse_requirements
except ImportError:
    # pip < 10
    from pip.req import parse_requirements
try:
    from pip._internal.network.session import PipSession
except ImportError:
    try:
        from pip._internal.download import PipSession
    except ImportError:
        # pip < 10
        from pip.download import PipSession

from setuptools import find_packages

try:
    from setuptools import setup
except ImportError:
    from distutils.core import setup

# reading requirements
install_reqs = parse_requirements('requirements.txt', session=PipSession())
try:
    requirements = [str(ir.req) for ir in install_reqs]
except AttributeError:
    # pip > 20
    requirements = [str(ir.requirement) for ir in install_reqs]

sys.path.insert(0, os.path.dirname(__file__))
version = '1.2.2'
setup(
    name='cappy',
    version=version,
    packages=find_packages(),
    install_requires=requirements,
    license='MIT',
    long_description="CAchingProxyinPython is a file based python proxy based on Sharebear's simple python caching proxy",
    description='A simple file based python poxy',
    keywords=['cappy', 'proxy', 'http'],
    url='https://github.com/CompileInc/cappy',
    download_url='https://github.com/CompileInc/cappy/archive/v{version}.tar.gz'.format(version=version),
    author='Compile Inc',
    author_email='dev@compile.com',
    entry_points='''
        [console_scripts]
        cappy=cappy.cappy:cli
    '''
)
<commit_msg>updating version<commit_after>from __future__ import absolute_import
import os
import sys

try:
    from pip._internal.req import parse_requirements
except ImportError:
    # pip < 10
    from pip.req import parse_requirements
try:
    from pip._internal.network.session import PipSession
except ImportError:
    try:
        from pip._internal.download import PipSession
    except ImportError:
        # pip < 10
        from pip.download import PipSession

from setuptools import find_packages

try:
    from setuptools import setup
except ImportError:
    from distutils.core import setup

# reading requirements
install_reqs = parse_requirements('requirements.txt', session=PipSession())
try:
    requirements = [str(ir.req) for ir in install_reqs]
except AttributeError:
    # pip > 20
    requirements = [str(ir.requirement) for ir in install_reqs]

sys.path.insert(0, os.path.dirname(__file__))
version = '1.2.3'
setup(
    name='cappy',
    version=version,
    packages=find_packages(),
    install_requires=requirements,
    license='MIT',
    long_description="CAchingProxyinPython is a file based python proxy based on Sharebear's simple python caching proxy",
    description='A simple file based python poxy',
    keywords=['cappy', 'proxy', 'http'],
    url='https://github.com/CompileInc/cappy',
    download_url='https://github.com/CompileInc/cappy/archive/v{version}.tar.gz'.format(version=version),
    author='Compile Inc',
    author_email='dev@compile.com',
    entry_points='''
        [console_scripts]
        cappy=cappy.cappy:cli
    '''
)
<|endoftext|>


<commit_before>#!/usr/bin/env python

try:
    from setuptools import setup, find_packages
except ImportError:
    from distutils.core import setup

import os
import sys

# Add /usr/local/include to the path for macs, fixes easy_install for several packages (like gevent and pyyaml)
if sys.platform == 'darwin':
    os.environ['C_INCLUDE_PATH'] = '/usr/local/include'

version = '0.1.8-dev'

setup(  name = 'coi-services',
        version = version,
        description = 'OOI ION COI Services',
        url = 'https://github.com/ooici/coi-services',
        download_url = 'http://sddevrepo.oceanobservatories.org/releases/',
        license = 'Apache 2.0',
        author = 'Michael Meisinger',
        author_email = 'mmeisinger@ucsd.edu',
        keywords = ['ooici','ioncore', 'pyon', 'coi'],
        packages = find_packages(),
        dependency_links = [
            'http://sddevrepo.oceanobservatories.org/releases/',
        ],
        test_suite = 'pyon',
        install_requires = [
            'pyzmq==2.2.0',
            'coverage-model',
            'marine-integrations',
            'pyon',
            'Flask==0.9',
            'python-dateutil==1.5',
            'WebTest==1.4.0',
            'requests==0.13.5',
            'seawater==2.0.1',
            'matplotlib==1.1.1',
            'Pydap==3.1.RC1',
            'netCDF4>=1.0',
            'elasticpy==0.11',
            'pyparsing==1.5.6',
            'snakefood==1.4',
            'xlrd==0.8.0',
        ],
        entry_points = """
            [pydap.handler]
            coverage = ion.util.pydap.handlers.coverage:Handler
        """,
     )
<commit_msg>Start 2.0.0 version<commit_after>#!/usr/bin/env python

try:
    from setuptools import setup, find_packages
except ImportError:
    from distutils.core import setup

import os
import sys

# Add /usr/local/include to the path for macs, fixes easy_install for several packages (like gevent and pyyaml)
if sys.platform == 'darwin':
    os.environ['C_INCLUDE_PATH'] = '/usr/local/include'

version = '2.0.0-dev'

setup(  name = 'coi-services',
        version = version,
        description = 'OOI ION COI Services',
        url = 'https://github.com/ooici/coi-services',
        download_url = 'http://sddevrepo.oceanobservatories.org/releases/',
        license = 'Apache 2.0',
        author = 'Michael Meisinger',
        author_email = 'mmeisinger@ucsd.edu',
        keywords = ['ooici','ioncore', 'pyon', 'coi'],
        packages = find_packages(),
        dependency_links = [
            'http://sddevrepo.oceanobservatories.org/releases/',
        ],
        test_suite = 'pyon',
        install_requires = [
            'pyzmq==2.2.0',
            'coverage-model',
            'marine-integrations',
            'pyon',
            'Flask==0.9',
            'python-dateutil==1.5',
            'WebTest==1.4.0',
            'requests==0.13.5',
            'seawater==2.0.1',
            'matplotlib==1.1.1',
            'Pydap==3.1.RC1',
            'netCDF4>=1.0',
            'elasticpy==0.11',
            'pyparsing==1.5.6',
            'snakefood==1.4',
            'xlrd==0.8.0',
        ],
        entry_points = """
            [pydap.handler]
            coverage = ion.util.pydap.handlers.coverage:Handler
        """,
     )
<|endoftext|>


<commit_before>from setuptools import setup, Extension
import numpy
import numpy.distutils

try:
    from Cython.Build import cythonize
    use_cython = True
except ImportError:
    use_cython = False

if use_cython:
    ext_modules = cythonize([Extension('pyhacrf.algorithms',
                                       ['pyhacrf/algorithms.pyx'],
                                       extra_compile_args = ["-ffast-math", "-O4"],
                                       **numpy.distutils.misc_util.get_info('npymath')),
                             Extension('pyhacrf.adjacent',
                                       ['pyhacrf/adjacent.pyx'],
                                       include_dirs=[numpy.get_include()],
                                       extra_link_args=['-lm'],
                                       extra_compile_args = ["-ffast-math", "-O4"])])
else:
    ext_modules = [Extension('pyhacrf.algorithms',
                             ['pyhacrf/algorithms.c'],
                             extra_compile_args = ["-ffast-math", "-O4"],
                             **numpy.distutils.misc_util.get_info('npymath')),
                   Extension('pyhacrf.adjacent',
                             ['pyhacrf/adjacent.c'],
                             extra_link_args=['-lm'],
                             include_dirs=[numpy.get_include()],
                             extra_compile_args = ["-ffast-math", "-O4"])]

def readme():
    with open('README.rst') as f:
        return f.read()

setup(
    name='pyhacrf-datamade',
    version='0.2.4',
    packages=['pyhacrf'],
    install_requires=["numpy>=1.14.1; python_version<'3.6'",
                      "numpy>=1.15.0; python_version=='3.7'",
                      "numpy>=1.17.3; python_version=='3.8'",
                      "numpy; python_version>'3.8'",
                      'PyLBFGS>=0.1.3'],
    ext_modules=ext_modules,
    url='https://github.com/datamade/pyhacrf',
    author='Dirko Coetsee',
    author_email='dpcoetsee@gmail.com',
    maintainer='Forest Gregg',
    maintainer_email='fgregg@gmail.com',
    description='Hidden alignment conditional random field, a discriminative string edit distance',
    long_description=readme(),
    classifiers=[
        'Intended Audience :: Science/Research',
        'License :: OSI Approved :: BSD License',
        'Operating System :: OS Independent',
        'Programming Language :: Python',
        'Topic :: Scientific/Engineering',
        ],
    )
<commit_msg>bump version<commit_after>from setuptools import setup, Extension
import numpy
import numpy.distutils

try:
    from Cython.Build import cythonize
    use_cython = True
except ImportError:
    use_cython = False

if use_cython:
    ext_modules = cythonize([Extension('pyhacrf.algorithms',
                                       ['pyhacrf/algorithms.pyx'],
                                       extra_compile_args = ["-ffast-math", "-O4"],
                                       **numpy.distutils.misc_util.get_info('npymath')),
                             Extension('pyhacrf.adjacent',
                                       ['pyhacrf/adjacent.pyx'],
                                       include_dirs=[numpy.get_include()],
                                       extra_link_args=['-lm'],
                                       extra_compile_args = ["-ffast-math", "-O4"])])
else:
    ext_modules = [Extension('pyhacrf.algorithms',
                             ['pyhacrf/algorithms.c'],
                             extra_compile_args = ["-ffast-math", "-O4"],
                             **numpy.distutils.misc_util.get_info('npymath')),
                   Extension('pyhacrf.adjacent',
                             ['pyhacrf/adjacent.c'],
                             extra_link_args=['-lm'],
                             include_dirs=[numpy.get_include()],
                             extra_compile_args = ["-ffast-math", "-O4"])]

def readme():
    with open('README.rst') as f:
        return f.read()

setup(
    name='pyhacrf-datamade',
    version='0.2.5',
    packages=['pyhacrf'],
    install_requires=["numpy>=1.14.1; python_version<'3.6'",
                      "numpy>=1.15.0; python_version=='3.7'",
                      "numpy>=1.17.3; python_version=='3.8'",
                      "numpy; python_version>'3.8'",
                      'PyLBFGS>=0.1.3'],
    ext_modules=ext_modules,
    url='https://github.com/datamade/pyhacrf',
    author='Dirko Coetsee',
    author_email='dpcoetsee@gmail.com',
    maintainer='Forest Gregg',
    maintainer_email='fgregg@gmail.com',
    description='Hidden alignment conditional random field, a discriminative string edit distance',
    long_description=readme(),
    classifiers=[
        'Intended Audience :: Science/Research',
        'License :: OSI Approved :: BSD License',
        'Operating System :: OS Independent',
        'Programming Language :: Python',
        'Topic :: Scientific/Engineering',
        ],
    )
<|endoftext|>


<commit_before>import os
import pathlib
import re
import sys

from setuptools import Extension, setup

if sys.version_info < (3, 6):
    raise RuntimeError("aiohttp 4.x requires Python 3.6+")

NO_EXTENSIONS = bool(os.environ.get('AIOHTTP_NO_EXTENSIONS'))  # type: bool
HERE = pathlib.Path(__file__).parent
IS_GIT_REPO = (HERE / '.git').exists()

if sys.implementation.name != "cpython":
    NO_EXTENSIONS = True

if (IS_GIT_REPO and
        not (HERE / 'vendor/http-parser/README.md').exists()):
    print("Install submodules when building from git clone", file=sys.stderr)
    print("Hint:", file=sys.stderr)
    print("  git submodule update --init", file=sys.stderr)
    sys.exit(2)

# NOTE: makefile cythonizes all Cython modules

extensions = [Extension('aiohttp._websocket', ['aiohttp/_websocket.c']),
              Extension('aiohttp._http_parser',
                        ['aiohttp/_http_parser.c',
                         'vendor/http-parser/http_parser.c',
                         'aiohttp/_find_header.c'],
                        define_macros=[('HTTP_PARSER_STRICT', 0)],
                        ),
              Extension('aiohttp._frozenlist',
                        ['aiohttp/_frozenlist.c']),
              Extension('aiohttp._helpers',
                        ['aiohttp/_helpers.c']),
              Extension('aiohttp._http_writer',
                        ['aiohttp/_http_writer.c'])]

txt = (HERE / 'aiohttp' / '__init__.py').read_text('utf-8')
try:
    version = re.findall(r"^__version__ = '([^']+)'\r?$",
                         txt, re.M)[0]
except IndexError:
    raise RuntimeError('Unable to determine version.')

install_requires = [
    'attrs>=17.3.0',
    'chardet>=2.0,<4.0',
    'multidict>=4.5,<5.0',
    'async_timeout>=4.0a2,<5.0',
    'yarl>=1.0,<2.0',
    'idna-ssl>=1.0; python_version<"3.7"',
    'typing_extensions>=3.6.5',
]

def read(f):
    return (HERE / f).read_text('utf-8').strip()

args = dict(
    name='aiohttp',
    version=version,
    description='Async http client/server framework (asyncio)',
    long_description='\n\n'.join((read('README.rst'), read('CHANGES.rst'))),
    long_description_content_type="text/x-rst",
    classifiers=[
        'License :: OSI Approved :: Apache Software License',
        'Intended Audience :: Developers',
        'Programming Language :: Python',
        'Programming Language :: Python :: 3',
        'Programming Language :: Python :: 3.6',
        'Programming Language :: Python :: 3.7',
        'Programming Language :: Python :: 3.8',
        'Development Status :: 5 - Production/Stable',
        'Operating System :: POSIX',
        'Operating System :: MacOS :: MacOS X',
        'Operating System :: Microsoft :: Windows',
        'Topic :: Internet :: WWW/HTTP',
        'Framework :: AsyncIO',
    ],
    author='Nikolay Kim',
    author_email='fafhrd91@gmail.com',
    maintainer=', '.join(('Nikolay Kim <fafhrd91@gmail.com>',
                          'Andrew Svetlov <andrew.svetlov@gmail.com>')),
    maintainer_email='aio-libs@googlegroups.com',
    url='https://github.com/aio-libs/aiohttp',
    project_urls={
        'Chat: Gitter': 'https://gitter.im/aio-libs/Lobby',
        'CI: Azure Pipelines': 'https://dev.azure.com/aio-libs/aiohttp/_build',
        'Coverage: codecov': 'https://codecov.io/github/aio-libs/aiohttp',
        'Docs: RTD': 'https://docs.aiohttp.org',
        'GitHub: issues': 'https://github.com/aio-libs/aiohttp/issues',
        'GitHub: repo': 'https://github.com/aio-libs/aiohttp',
    },
    license='Apache 2',
    packages=['aiohttp'],
    python_requires='>=3.6',
    install_requires=install_requires,
    extras_require={
        'speedups': [
            'aiodns>=1.1',
            'Brotli',
            'cchardet',
        ],
    },
    include_package_data=True,
)

if not NO_EXTENSIONS:
    print("**********************")
    print("* Accellerated build *")
    print("**********************")
    setup(ext_modules=extensions, **args)
else:
    print("*********************")
    print("* Pure Python build *")
    print("*********************")
    setup(**args)
<commit_msg>Add changelog URL to project metadata<commit_after>import os
import pathlib
import re
import sys

from setuptools import Extension, setup

if sys.version_info < (3, 6):
    raise RuntimeError("aiohttp 4.x requires Python 3.6+")

NO_EXTENSIONS = bool(os.environ.get('AIOHTTP_NO_EXTENSIONS'))  # type: bool
HERE = pathlib.Path(__file__).parent
IS_GIT_REPO = (HERE / '.git').exists()

if sys.implementation.name != "cpython":
    NO_EXTENSIONS = True

if (IS_GIT_REPO and
        not (HERE / 'vendor/http-parser/README.md').exists()):
    print("Install submodules when building from git clone", file=sys.stderr)
    print("Hint:", file=sys.stderr)
    print("  git submodule update --init", file=sys.stderr)
    sys.exit(2)

# NOTE: makefile cythonizes all Cython modules

extensions = [Extension('aiohttp._websocket', ['aiohttp/_websocket.c']),
              Extension('aiohttp._http_parser',
                        ['aiohttp/_http_parser.c',
                         'vendor/http-parser/http_parser.c',
                         'aiohttp/_find_header.c'],
                        define_macros=[('HTTP_PARSER_STRICT', 0)],
                        ),
              Extension('aiohttp._frozenlist',
                        ['aiohttp/_frozenlist.c']),
              Extension('aiohttp._helpers',
                        ['aiohttp/_helpers.c']),
              Extension('aiohttp._http_writer',
                        ['aiohttp/_http_writer.c'])]

txt = (HERE / 'aiohttp' / '__init__.py').read_text('utf-8')
try:
    version = re.findall(r"^__version__ = '([^']+)'\r?$",
                         txt, re.M)[0]
except IndexError:
    raise RuntimeError('Unable to determine version.')

install_requires = [
    'attrs>=17.3.0',
    'chardet>=2.0,<4.0',
    'multidict>=4.5,<5.0',
    'async_timeout>=4.0a2,<5.0',
    'yarl>=1.0,<2.0',
    'idna-ssl>=1.0; python_version<"3.7"',
    'typing_extensions>=3.6.5',
]

def read(f):
    return (HERE / f).read_text('utf-8').strip()

args = dict(
    name='aiohttp',
    version=version,
    description='Async http client/server framework (asyncio)',
    long_description='\n\n'.join((read('README.rst'), read('CHANGES.rst'))),
    long_description_content_type="text/x-rst",
    classifiers=[
        'License :: OSI Approved :: Apache Software License',
        'Intended Audience :: Developers',
        'Programming Language :: Python',
        'Programming Language :: Python :: 3',
        'Programming Language :: Python :: 3.6',
        'Programming Language :: Python :: 3.7',
        'Programming Language :: Python :: 3.8',
        'Development Status :: 5 - Production/Stable',
        'Operating System :: POSIX',
        'Operating System :: MacOS :: MacOS X',
        'Operating System :: Microsoft :: Windows',
        'Topic :: Internet :: WWW/HTTP',
        'Framework :: AsyncIO',
    ],
    author='Nikolay Kim',
    author_email='fafhrd91@gmail.com',
    maintainer=', '.join(('Nikolay Kim <fafhrd91@gmail.com>',
                          'Andrew Svetlov <andrew.svetlov@gmail.com>')),
    maintainer_email='aio-libs@googlegroups.com',
    url='https://github.com/aio-libs/aiohttp',
    project_urls={
        'Chat: Gitter': 'https://gitter.im/aio-libs/Lobby',
        'CI: Azure Pipelines': 'https://dev.azure.com/aio-libs/aiohttp/_build',
        'Coverage: codecov': 'https://codecov.io/github/aio-libs/aiohttp',
        'Docs: Changelog': 'https://docs.aiohttp.org/en/stable/changes.html',
        'Docs: RTD': 'https://docs.aiohttp.org',
        'GitHub: issues': 'https://github.com/aio-libs/aiohttp/issues',
        'GitHub: repo': 'https://github.com/aio-libs/aiohttp',
    },
    license='Apache 2',
    packages=['aiohttp'],
    python_requires='>=3.6',
    install_requires=install_requires,
    extras_require={
        'speedups': [
            'aiodns>=1.1',
            'Brotli',
            'cchardet',
        ],
    },
    include_package_data=True,
)

if not NO_EXTENSIONS:
    print("**********************")
    print("* Accellerated build *")
    print("**********************")
    setup(ext_modules=extensions, **args)
else:
    print("*********************")
    print("* Pure Python build *")
    print("*********************")
    setup(**args)
<|endoftext|>


<commit_before>#!/usr/bin/env python
# -*- coding: utf-8 -*-
''' distribute- and pip-enabled setup.py '''
from __future__ import print_function
import os
import re
import sys
import glob
import logging
import shutil

logger = logging.getLogger(__name__)

# ----- control flags -----

# fallback to setuptools if distribute isn't found
setup_tools_fallback = True

# print some extra debugging info
debug = True

# -------------------------

if debug:
    logging.basicConfig(level=logging.DEBUG)
else:
    logging.basicConfig(level=logging.INFO)

# distribute import and testing
try:
    import distribute_setup
    distribute_setup.use_setuptools()
    logger.info("distribute_setup.py imported and used")
except ImportError:
    # falback to setuptools?
    # distribute_setup.py was not in this directory
    if not (setup_tools_fallback):
        import setuptools
        if not (hasattr(setuptools, '_distribute')
                and setuptools._distribute):
            raise ImportError("distribute was not found and fallback to "
                              "setuptools was not allowed")
        else:
            logger.debug("distribute_setup.py not found, defaulted to "
                          "system distribute")
    else:
        logger.debug("distribute_setup.py not found, defaulting to system "
                      "setuptools")

import setuptools

def find_scripts():
    bin_path = os.path.join(os.path.abspath(os.path.dirname(__file__)), 'bin')
    scripts = list()
    for f in os.listdir(bin_path):
        if not f.endswith('pyc'):
            script_path = os.path.relpath(
                os.path.join(bin_path, f),
                os.path.abspath(os.path.dirname(__file__))
            )
            scripts.append(script_path)
    return scripts

def get_cli_tools():
    src_path = os.path.abspath(os.path.dirname(__file__))
    root = os.path.join(src_path, 'tmlib', 'workflow')
    def _is_step(d):
        # A step is defined as a subpackage that implements the following
        # modules: api, cli, args
        d = os.path.join(root, d)
        return(
            os.path.isdir(d) and
            glob.glob(os.path.join(d, '__init__.py')) and
            glob.glob(os.path.join(d, 'api.py')) and
            glob.glob(os.path.join(d, 'cli.py')) and
            glob.glob(os.path.join(d, 'args.py'))
        )

    return filter(_is_step, os.listdir(root))

def build_console_scripts():
    names = get_cli_tools()
    cli_tools = list()
    for name in names:
        cli_tools.append(
            '{name} = tmlib.workflow.{name}.cli:{cls}.__main__'.format(
                name=name, cls=name.capitalize()
            )
        )
    # NOTE: Spark entry points must have .py ending, otherwise they will
    # be interpreted as scala files.
    cli_tools.extend([
        'tm_workflow = tmlib.workflow.manager:WorkflowManager.__main__',
        'tm_tool = tmlib.tools.manager:ToolRequestManager.__main__',
    ])
    return cli_tools

def get_version():
    src_path = os.path.join(os.path.abspath(os.path.dirname(__file__)), 'tmlib')
    sys.path = [src_path] + sys.path
    import version
    return version.__version__

setuptools.setup(
    name='tmlibrary',
    version=get_version(),
    description='TissueMAPS library for distibuted image analysis routines.',
    author='Markus D. Herrmann',
    url='https://github.com/tissuemaps/tmlibrary',
    license='AGPL-3.0+',
    platforms=['Linux', 'MacOS'],
    classifiers=[
        'Environment :: Console',
        'Environment :: Web Environment',
        'Topic :: Scientific/Engineering :: Image Recognition',
        'Topic :: Scientific/Engineering :: Information Analysis',
        'Topic :: System :: Emulators',
        'Intended Audience :: Developers',
        'Intended Audience :: System Administrators',
        'Intended Audience :: Science/Research',
        'Programming Language :: Python',
        'Development Status :: 4 - Beta',
        'Operating System :: POSIX :: Linux',
        'Operating System :: MacOS :: MacOS X'
    ],
    scripts=find_scripts(),
    entry_points={'console_scripts': build_console_scripts()},
    packages=setuptools.find_packages(),
    include_package_data=True,
    install_requires=[
       'Cython>=0.22.1',
       # Some packages try to import Numpy in the setup.py.
       # It may need to be installed beforehand.
       'numpy>=1.12.0',
       'scipy>=0.16.0',
       'cached-property>=1.3.0',
       'decorator>=3.4.2',
       'FITS-tools',
       'geoalchemy2>=0.3.0',
       'h5py>=2.5.0',
       'image-registration==0.2.1',
       'jtlibrary>=0.3.2',
       'mahotas>=1.4.1',
       'matplotlib>=2.0.0',
       'mock>=1.0.1',
       'natsort>=4.0.3',
       'nose>=1.3.7',
       'opencv-contrib-python>=3.2',
       'openslide-python>=1.1.0',
       'pandas>=0.19.2',
       'passlib>=1.6.5',
       'paramiko>=1.15.3',
       'parsedatetime>=1.5',
       'prettytable>=0.7.2',
       'pyparsing>=2.0.3',
       'pypng>=0.0.17',
       # Python-bioformats installs javabridge, which requires Java
       # Ubuntu 14.04:
       #    sudo apt-get -y install openjdk-7-jdk
       # Ubuntu 16.04:
       #    sudo apt-get -y install openjdk-8-jdk
       'python-bioformats>=1.0.9',
       'python-dateutil>=2.4.2',
       'pytest>=3.0.7',
       'pytz>=2015.7',
       'PyYAML>=3.11',
       'scikit-image>=0.12.0',
       'scikit-learn>=0.18',
       # Ubuntu:
       #    sudo apt-get -y install libgeos-dev
       'shapely>=1.5.15',
       'simplejson>=3.10',
       'sqlalchemy>=1.1.5',
       'sqlalchemy-utils>=0.32.9',
       # Ubuntu:
       #    sudo apt-get -y install libpq-dev
       'psycopg2>=2.7',
       'tables>=3.2.2',
       'ruamel.yaml>=0.10.11'
       'APScheduler>=3.0.5',
       # Ubuntu:
       #    sudo apt-get -y install libxml2-dev libxslt1-dev zlib1g-dev
       'lxml',
       'whichcraft>=0.4.0',
       'gc3pie==2.5.dev',
    ],
    extras_require = {
       'jterator_r_modules': [
           'rpy2>=2.7.4' # Requires R
        ],
       'jterator_matlab_modules': [
           'matlab-wrapper>=0.9.6', # Requires Matlab
        ]
    },
    dependency_links=[
        # The dependency_links functionality has been deprecated, but it can
        # be activaeted via --process-dependency-links
        'https://github.com/tissuemaps/gc3pie/tarball/master#egg=gc3pie-2.5.dev',
        # 'https://github.com/tissuemaps/sqlalchemy-utils/tarball/master#egg=sqlalchemy_utils'
    ]
)
<commit_msg>Add missing commma into setup.py<commit_after>#!/usr/bin/env python
# -*- coding: utf-8 -*-
''' distribute- and pip-enabled setup.py '''
from __future__ import print_function
import os
import re
import sys
import glob
import logging
import shutil

logger = logging.getLogger(__name__)

# ----- control flags -----

# fallback to setuptools if distribute isn't found
setup_tools_fallback = True

# print some extra debugging info
debug = True

# -------------------------

if debug:
    logging.basicConfig(level=logging.DEBUG)
else:
    logging.basicConfig(level=logging.INFO)

# distribute import and testing
try:
    import distribute_setup
    distribute_setup.use_setuptools()
    logger.info("distribute_setup.py imported and used")
except ImportError:
    # falback to setuptools?
    # distribute_setup.py was not in this directory
    if not (setup_tools_fallback):
        import setuptools
        if not (hasattr(setuptools, '_distribute')
                and setuptools._distribute):
            raise ImportError("distribute was not found and fallback to "
                              "setuptools was not allowed")
        else:
            logger.debug("distribute_setup.py not found, defaulted to "
                          "system distribute")
    else:
        logger.debug("distribute_setup.py not found, defaulting to system "
                      "setuptools")

import setuptools

def find_scripts():
    bin_path = os.path.join(os.path.abspath(os.path.dirname(__file__)), 'bin')
    scripts = list()
    for f in os.listdir(bin_path):
        if not f.endswith('pyc'):
            script_path = os.path.relpath(
                os.path.join(bin_path, f),
                os.path.abspath(os.path.dirname(__file__))
            )
            scripts.append(script_path)
    return scripts

def get_cli_tools():
    src_path = os.path.abspath(os.path.dirname(__file__))
    root = os.path.join(src_path, 'tmlib', 'workflow')
    def _is_step(d):
        # A step is defined as a subpackage that implements the following
        # modules: api, cli, args
        d = os.path.join(root, d)
        return(
            os.path.isdir(d) and
            glob.glob(os.path.join(d, '__init__.py')) and
            glob.glob(os.path.join(d, 'api.py')) and
            glob.glob(os.path.join(d, 'cli.py')) and
            glob.glob(os.path.join(d, 'args.py'))
        )

    return filter(_is_step, os.listdir(root))

def build_console_scripts():
    names = get_cli_tools()
    cli_tools = list()
    for name in names:
        cli_tools.append(
            '{name} = tmlib.workflow.{name}.cli:{cls}.__main__'.format(
                name=name, cls=name.capitalize()
            )
        )
    # NOTE: Spark entry points must have .py ending, otherwise they will
    # be interpreted as scala files.
    cli_tools.extend([
        'tm_workflow = tmlib.workflow.manager:WorkflowManager.__main__',
        'tm_tool = tmlib.tools.manager:ToolRequestManager.__main__',
    ])
    return cli_tools

def get_version():
    src_path = os.path.join(os.path.abspath(os.path.dirname(__file__)), 'tmlib')
    sys.path = [src_path] + sys.path
    import version
    return version.__version__

setuptools.setup(
    name='tmlibrary',
    version=get_version(),
    description='TissueMAPS library for distibuted image analysis routines.',
    author='Markus D. Herrmann',
    url='https://github.com/tissuemaps/tmlibrary',
    license='AGPL-3.0+',
    platforms=['Linux', 'MacOS'],
    classifiers=[
        'Environment :: Console',
        'Environment :: Web Environment',
        'Topic :: Scientific/Engineering :: Image Recognition',
        'Topic :: Scientific/Engineering :: Information Analysis',
        'Topic :: System :: Emulators',
        'Intended Audience :: Developers',
        'Intended Audience :: System Administrators',
        'Intended Audience :: Science/Research',
        'Programming Language :: Python',
        'Development Status :: 4 - Beta',
        'Operating System :: POSIX :: Linux',
        'Operating System :: MacOS :: MacOS X'
    ],
    scripts=find_scripts(),
    entry_points={'console_scripts': build_console_scripts()},
    packages=setuptools.find_packages(),
    include_package_data=True,
    install_requires=[
       'Cython>=0.22.1',
       # Some packages try to import Numpy in the setup.py.
       # It may need to be installed beforehand.
       'numpy>=1.12.0',
       'scipy>=0.16.0',
       'cached-property>=1.3.0',
       'decorator>=3.4.2',
       'FITS-tools',
       'geoalchemy2>=0.3.0',
       'h5py>=2.5.0',
       'image-registration==0.2.1',
       'jtlibrary>=0.3.2',
       'mahotas>=1.4.1',
       'matplotlib>=2.0.0',
       'mock>=1.0.1',
       'natsort>=4.0.3',
       'nose>=1.3.7',
       'opencv-contrib-python>=3.2',
       'openslide-python>=1.1.0',
       'pandas>=0.19.2',
       'passlib>=1.6.5',
       'paramiko>=1.15.3',
       'parsedatetime>=1.5',
       'prettytable>=0.7.2',
       'pyparsing>=2.0.3',
       'pypng>=0.0.17',
       # Python-bioformats installs javabridge, which requires Java
       # Ubuntu 14.04:
       #    sudo apt-get -y install openjdk-7-jdk
       # Ubuntu 16.04:
       #    sudo apt-get -y install openjdk-8-jdk
       'python-bioformats>=1.0.9',
       'python-dateutil>=2.4.2',
       'pytest>=3.0.7',
       'pytz>=2015.7',
       'PyYAML>=3.11',
       'scikit-image>=0.12.0',
       'scikit-learn>=0.18',
       # Ubuntu:
       #    sudo apt-get -y install libgeos-dev
       'shapely>=1.5.15',
       'simplejson>=3.10',
       'sqlalchemy>=1.1.5',
       'sqlalchemy-utils>=0.32.9',
       # Ubuntu:
       #    sudo apt-get -y install libpq-dev
       'psycopg2>=2.7',
       'tables>=3.2.2',
       'ruamel.yaml>=0.10.11',
       'APScheduler>=3.0.5',
       # Ubuntu:
       #    sudo apt-get -y install libxml2-dev libxslt1-dev zlib1g-dev
       'lxml',
       'whichcraft>=0.4.0',
       'gc3pie==2.5.dev',
    ],
    extras_require = {
       'jterator_r_modules': [
           'rpy2>=2.7.4' # Requires R
        ],
       'jterator_matlab_modules': [
           'matlab-wrapper>=0.9.6', # Requires Matlab
        ]
    },
    dependency_links=[
        # The dependency_links functionality has been deprecated, but it can
        # be activaeted via --process-dependency-links
        'https://github.com/tissuemaps/gc3pie/tarball/master#egg=gc3pie-2.5.dev',
        # 'https://github.com/tissuemaps/sqlalchemy-utils/tarball/master#egg=sqlalchemy_utils'
    ]
)
<|endoftext|>


<commit_before># Copyright 2016 Google Inc. All Rights Reserved.
#
# Licensed 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.
"""Package Setup script for tf.Transform.
"""
from setuptools import find_packages
from setuptools import setup

# Get version from version module.
with open('tensorflow_transform/version.py') as fp:
  globals_dict = {}
  exec (fp.read(), globals_dict)  # pylint: disable=exec-used
__version__ = globals_dict['__version__']

def _make_required_install_packages():
  # Make sure to sync the versions of common dependencies (absl-py, numpy,
  # six, and protobuf) with TF.
  return [
      'absl-py>=0.7,<0.9',
      'apache-beam[gcp]>=2.16,<3',
      'numpy>=1.16,<2',
      'protobuf>=3.7,<4',
      'pydot>=1.2,<2',
      'six>=1.10,<2',
      'tensorflow-metadata>=0.15,<0.16',
      'tensorflow>=1.15,<2.2',
      'tfx-bsl>=0.15,<0.16',
  ]

# TODO(b/121329572): Remove the following comment after we can guarantee the
# required versions of packages through kokoro release workflow.
# Note: In order for the README to be rendered correctly, make sure to have the
# following minimum required versions of the respective packages when building
# and uploading the zip/wheel package to PyPI:
# setuptools >= 38.6.0, wheel >= 0.31.0, twine >= 1.11.0

# Get the long description from the README file.
with open('README.md') as fp:
  _LONG_DESCRIPTION = fp.read()

setup(
    name='tensorflow-transform',
    version=__version__,
    author='Google Inc.',
    author_email='tensorflow-extended-dev@googlegroups.com',
    license='Apache 2.0',
    classifiers=[
        'Development Status :: 4 - Beta',
        'Intended Audience :: Developers',
        'Intended Audience :: Education',
        'Intended Audience :: Science/Research',
        'License :: OSI Approved :: Apache Software License',
        'Operating System :: OS Independent',
        'Programming Language :: Python',
        'Programming Language :: Python :: 2',
        'Programming Language :: Python :: 2.7',
        'Programming Language :: Python :: 3',
        'Programming Language :: Python :: 3.5',
        'Programming Language :: Python :: 3.6',
        'Programming Language :: Python :: 3.7',
        'Topic :: Scientific/Engineering',
        'Topic :: Scientific/Engineering :: Artificial Intelligence',
        'Topic :: Scientific/Engineering :: Mathematics',
        'Topic :: Software Development',
        'Topic :: Software Development :: Libraries',
        'Topic :: Software Development :: Libraries :: Python Modules',
    ],
    namespace_packages=[],
    install_requires=_make_required_install_packages(),
    python_requires='>=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,<4',
    packages=find_packages(),
    include_package_data=True,
    description='A library for data preprocessing with TensorFlow',
    long_description=_LONG_DESCRIPTION,
    long_description_content_type='text/markdown',
    keywords='tensorflow transform tfx',
    url='https://www.tensorflow.org/tfx/transform',
    download_url='https://github.com/tensorflow/transform/tags',
    requires=[])
<commit_msg>Relaxed the requirement on tfx-bsl to >=0.15,<0.17 after TFT 0.15 release.<commit_after># Copyright 2016 Google Inc. All Rights Reserved.
#
# Licensed 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.
"""Package Setup script for tf.Transform.
"""
from setuptools import find_packages
from setuptools import setup

# Get version from version module.
with open('tensorflow_transform/version.py') as fp:
  globals_dict = {}
  exec (fp.read(), globals_dict)  # pylint: disable=exec-used
__version__ = globals_dict['__version__']

def _make_required_install_packages():
  # Make sure to sync the versions of common dependencies (absl-py, numpy,
  # six, and protobuf) with TF.
  return [
      'absl-py>=0.7,<0.9',
      'apache-beam[gcp]>=2.16,<3',
      'numpy>=1.16,<2',
      'protobuf>=3.7,<4',
      'pydot>=1.2,<2',
      'six>=1.10,<2',
      'tensorflow-metadata>=0.15,<0.16',
      'tensorflow>=1.15,<2.2',
      'tfx-bsl>=0.15,<0.17',
  ]

# TODO(b/121329572): Remove the following comment after we can guarantee the
# required versions of packages through kokoro release workflow.
# Note: In order for the README to be rendered correctly, make sure to have the
# following minimum required versions of the respective packages when building
# and uploading the zip/wheel package to PyPI:
# setuptools >= 38.6.0, wheel >= 0.31.0, twine >= 1.11.0

# Get the long description from the README file.
with open('README.md') as fp:
  _LONG_DESCRIPTION = fp.read()

setup(
    name='tensorflow-transform',
    version=__version__,
    author='Google Inc.',
    author_email='tensorflow-extended-dev@googlegroups.com',
    license='Apache 2.0',
    classifiers=[
        'Development Status :: 4 - Beta',
        'Intended Audience :: Developers',
        'Intended Audience :: Education',
        'Intended Audience :: Science/Research',
        'License :: OSI Approved :: Apache Software License',
        'Operating System :: OS Independent',
        'Programming Language :: Python',
        'Programming Language :: Python :: 2',
        'Programming Language :: Python :: 2.7',
        'Programming Language :: Python :: 3',
        'Programming Language :: Python :: 3.5',
        'Programming Language :: Python :: 3.6',
        'Programming Language :: Python :: 3.7',
        'Topic :: Scientific/Engineering',
        'Topic :: Scientific/Engineering :: Artificial Intelligence',
        'Topic :: Scientific/Engineering :: Mathematics',
        'Topic :: Software Development',
        'Topic :: Software Development :: Libraries',
        'Topic :: Software Development :: Libraries :: Python Modules',
    ],
    namespace_packages=[],
    install_requires=_make_required_install_packages(),
    python_requires='>=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,<4',
    packages=find_packages(),
    include_package_data=True,
    description='A library for data preprocessing with TensorFlow',
    long_description=_LONG_DESCRIPTION,
    long_description_content_type='text/markdown',
    keywords='tensorflow transform tfx',
    url='https://www.tensorflow.org/tfx/transform',
    download_url='https://github.com/tensorflow/transform/tags',
    requires=[])
<|endoftext|>