pipelines/sdk/python/setup.py

138 lines
4.5 KiB
Python

# Copyright 2018 The Kubeflow Authors
#
# 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
import re
from setuptools import setup
NAME = 'kfp'
#VERSION = .... Change the version in kfp/__init__.py
# NOTICE, after any updates to the following, ./requirements.in should be updated
# accordingly.
REQUIRES = [
'absl-py>=0.9,<=0.11',
'PyYAML>=5.3,<6',
# `Blob.from_string` was introduced in google-cloud-storage 1.20.0
# https://github.com/googleapis/python-storage/blob/master/CHANGELOG.md#1200
'google-cloud-storage>=1.20.0,<2',
'kubernetes>=8.0.0,<19',
# google-api-python-client v2 doesn't work for private dicovery by default:
# https://github.com/googleapis/google-api-python-client/issues/1225#issuecomment-791058235
'google-api-python-client>=1.7.8,<2',
'google-auth>=1.6.1,<2',
'requests-toolbelt>=0.8.0,<1',
'cloudpickle>=1.3.0,<2',
# Update the upper version whenever a new major version of the
# kfp-server-api package is released.
# Update the lower version when kfp sdk depends on new apis/fields in
# kfp-server-api.
# Note, please also update ./requirements.in
'kfp-server-api>=1.1.2,<2.0.0',
'jsonschema>=3.0.1,<4',
'tabulate>=0.8.6,<1',
'click>=7.1.1,<8',
'Deprecated>=1.2.7,<2',
'strip-hints>=0.1.8,<1',
'docstring-parser>=0.7.3,<1',
'kfp-pipeline-spec>=0.1.10,<0.2.0',
'fire>=0.3.1,<1',
'protobuf>=3.13.0,<4',
# Standard library backports
'dataclasses;python_version<"3.7"',
'typing-extensions>=3.10.0.2,<4;python_version<"3.9"',
'pydantic>=1.8.2,<2',
]
TESTS_REQUIRE = [
'frozendict',
]
def find_version(*file_path_parts):
here = os.path.abspath(os.path.dirname(__file__))
with open(os.path.join(here, *file_path_parts), 'r') as fp:
version_file_text = fp.read()
version_match = re.search(
r"^__version__ = ['\"]([^'\"]*)['\"]",
version_file_text,
re.M,
)
if version_match:
return version_match.group(1)
raise RuntimeError('Unable to find version string.')
setup(
name=NAME,
version=find_version('kfp', '__init__.py'),
description='KubeFlow Pipelines SDK',
author='The Kubeflow Authors',
url="https://github.com/kubeflow/pipelines",
project_urls={
"Documentation": "https://kubeflow-pipelines.readthedocs.io/en/stable/",
"Bug Tracker": "https://github.com/kubeflow/pipelines/issues",
},
install_requires=REQUIRES,
tests_require=TESTS_REQUIRE,
packages=[
'kfp',
'kfp.auth',
'kfp.cli',
'kfp.cli.diagnose_me',
'kfp.compiler',
'kfp.components',
'kfp.components.structures',
'kfp.containers',
'kfp.dsl',
'kfp.dsl.extensions',
'kfp.notebook',
'kfp.v2',
'kfp.v2.compiler',
'kfp.v2.components',
'kfp.v2.components.types',
'kfp.v2.components.experimental',
'kfp.v2.dsl',
'kfp.v2.google.client',
'kfp.v2.google.experimental',
],
classifiers=[
'Intended Audience :: Developers',
'Intended Audience :: Education',
'Intended Audience :: Science/Research',
'License :: OSI Approved :: Apache Software License',
'Programming Language :: Python :: 3',
'Programming Language :: Python :: 3.6',
'Programming Language :: Python :: 3.7',
'Programming Language :: Python :: 3.8',
'Programming Language :: Python :: 3.9',
'Topic :: Scientific/Engineering',
'Topic :: Scientific/Engineering :: Artificial Intelligence',
'Topic :: Software Development',
'Topic :: Software Development :: Libraries',
'Topic :: Software Development :: Libraries :: Python Modules',
],
python_requires='>=3.6.1',
include_package_data=True,
entry_points={
'console_scripts': [
'dsl-compile = kfp.compiler.main:main',
'dsl-compile-v2 = kfp.v2.compiler.main:main',
'kfp=kfp.__main__:main'
]
})