# Copyright 2018 Google Inc.
#
# 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.
"""A setuptools based setup module.

See:
https://packaging.python.org/en/latest/distributing.html
https://github.com/pypa/sampleproject
"""

from io import open
from os import path
import sys

from setuptools import find_packages, setup

here = path.abspath(path.dirname(__file__))

# Package metadata.
name = "slo-generator"
description = "SLO Generator"
version = "1.5.1"
# Should be one of:
# 'Development Status :: 3 - Alpha'
# 'Development Status :: 4 - Beta'
# 'Development Status :: 5 - Production/Stable'
release_status = "Development Status :: 3 - Alpha"
dependencies = [
    'google-api-python-client < 2.0.0', 'oauth2client',
    'google-cloud-monitoring < 2.0.0', 'google-cloud-pubsub==1.7.0',
    'google-cloud-bigquery < 3.0.0', 'prometheus-http-client',
    'prometheus-client', 'pyyaml', 'opencensus', 'elasticsearch',
    'python-dateutil', 'datadog', 'retrying==1.3.3'
]
extras = {}

# Get the long description from the README file
with open(path.join(here, 'README.md'), encoding='utf-8') as f:
    long_description = f.read()

sys.dont_write_bytecode = True
setup(name=name,
      version=version,
      description=description,
      long_description=long_description,
      long_description_content_type='text/markdown',
      author='Google Inc.',
      author_email='ocervello@google.com',
      license='Apache 2.0',
      packages=find_packages(exclude=['contrib', 'docs', 'tests']),
      classifiers=[
          release_status,
          'Intended Audience :: Developers',
          'Topic :: Software Development :: Build Tools',
          'License :: OSI Approved :: Apache Software License',
          'Programming Language :: Python',
          'Programming Language :: Python :: 3.6',
          'Programming Language :: Python :: 3.7',
          'Programming Language :: Python :: 3.8',
      ],
      keywords='slo sli generator gcp',
      install_requires=dependencies,
      entry_points={
          'console_scripts': ['slo-generator=slo_generator.cli:main'],
      },
      python_requires='>=3.4')

@@ -715,16 +715,47 @@
 ject%0A%22%22%22
+%0A# pylint: disable=invalid-name
 %0A%0Afrom i
@@ -1191,137 +1191,584 @@
  = %5B
-%0A    'google-api-python-client %3C 2.0.0', 'oauth2client',%0A    'google-cloud-monitoring %3C 2.0.0', 'google-cloud-pubsub==1.7.0',%0A   
+'pyyaml', 'ruamel.yaml', 'python-dateutil', 'click %3C 8.0'%5D%0Aextras = %7B%0A    'api': %5B'Flask', 'gunicorn', 'cloudevents', 'functions-framework'%5D,%0A    'prometheus': %5B'prometheus-client', 'prometheus-http-client'%5D,%0A    'datadog': %5B'datadog', 'retrying==1.3.3'%5D,%0A    'dynatrace': %5B'requests'%5D,%0A    'bigquery': %5B%0A        'google-api-python-client %3C 2.0.0', 'google-cloud-bigquery %3C 3.0.0'%0A    %5D,%0A    'cloud_monitoring': %5B%0A        'google-api-python-client %3C 2.0.0', 'google-cloud-monitoring %3C 2.0.0'%0A    %5D,%0A    'cloud_service_monitoring': %5B%0A        'google-api-python-client %3C 2.0.0',
  'go
@@ -1782,102 +1782,250 @@
 oud-
-bigquery %3C 3
+monitoring %3C 2
 .0.0'
-, 'prometheus-http-client',%0A    'prometheus-client', 'pyyaml', 'opencensus', 
+%0A    %5D,%0A    'cloud_storage': %5B%0A        'google-api-python-client %3C 2.0.0', 'google-cloud-storage'%0A    %5D,%0A    'pubsub': %5B%0A        'google-api-python-client %3C 2.0.0', 'google-cloud-pubsub==1.7.0'%0A    %5D,%0A    'elasticsearch': %5B
 'ela
@@ -2039,74 +2039,80 @@
 rch'
+%5D
 ,%0A    '
-python-dateutil', 'datadog', 'retrying==1.3.3'%0A%5D%0Aextras = %7B
+dev': %5B'wheel', 'flake8', 'mock', 'coverage', 'nose', 'pylint'%5D%0A
 %7D%0A%0A#
@@ -3077,16 +3077,16 @@
 r gcp',%0A
-
       in
@@ -3114,16 +3114,45 @@
 encies,%0A
+      extras_require=extras,%0A
       en

Split dependencies by backend (#129)