text: #!/usr/bin/env python
  # -*- coding: utf-8 -*-
  
  # pylint: skip-file
  
  import sys
  from pathlib import Path
  
  from pkg_resources import parse_version
  from setuptools import find_packages, setup
  
  is_py37 = sys.version_info.major == 3 and sys.version_info.minor == 7
  
  # Dependencies of GPflow
  requirements = [
      'numpy>=1.10.0',
      'scipy>=0.18.0',
      'multipledispatch>=0.4.9',
      'tensorflow-probability>=0.8',
      'tabulate',
  ] + ([] if is_py37 else ["dataclasses"])
  
  min_tf_version = '2.0.0'
  tf_cpu = 'tensorflow'
  tf_gpu = 'tensorflow-gpu'
  
  # Only detect TF if not installed or outdated. If not, do not do not list as
  # requirement to avoid installing over e.g. tensorflow-gpu
  # To avoid this, rely on importing rather than the package name (like pip).
  
  try:
      # If tf not installed, import raises ImportError
      import tensorflow as tf
      if parse_version(tf.__version__) < parse_version(min_tf_version):
          # TF pre-installed, but below the minimum required version
          raise DeprecationWarning("TensorFlow version below minimum requirement")
  except (ImportError, DeprecationWarning):
      # Add TensorFlow to dependencies to trigger installation/update
      requirements.append(tf_cpu)
  
  with open(str(Path(".", "VERSION").absolute())) as version_file:
      version = version_file.read().strip()
  
  packages = find_packages('.', exclude=["tests"])
  
  setup(name='gpflow',
        version=version,
        author="James Hensman, Alex Matthews",
        author_email="james.hensman@gmail.com",
        description="Gaussian process methods in TensorFlow",
        license="Apache License 2.0",
        keywords="machine-learning gaussian-processes kernels tensorflow",
        url="http://github.com/GPflow/GPflow",
        packages=packages,
        include_package_data=True,
        install_requires=requirements,
        extras_require={'Tensorflow with GPU': [tf_gpu]},
        python_requires=">=3.6",
        classifiers=[
            'License :: OSI Approved :: Apache Software License',
            'Natural Language :: English',
            'Operating System :: MacOS :: MacOS X',
            'Operating System :: Microsoft :: Windows',
            'Operating System :: POSIX :: Linux',
            'Programming Language :: Python :: 3.6',
            'Topic :: Scientific/Engineering :: Artificial Intelligence'
        ])
  