|
| 1 | +# Copyright 2018-2022 The Kubeflow Authors |
| 2 | +# |
| 3 | +# Licensed under the Apache License, Version 2.0 (the "License"); |
| 4 | +# you may not use this file except in compliance with the License. |
| 5 | +# You may obtain a copy of the License at |
| 6 | +# |
| 7 | +# http://www.apache.org/licenses/LICENSE-2.0 |
| 8 | +# |
| 9 | +# Unless required by applicable law or agreed to in writing, software |
| 10 | +# distributed under the License is distributed on an "AS IS" BASIS, |
| 11 | +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| 12 | +# See the License for the specific language governing permissions and |
| 13 | +# limitations under the License. |
| 14 | + |
| 15 | +[build-system] |
| 16 | +requires = ["setuptools>=61.0", "wheel"] |
| 17 | +build-backend = "setuptools.build_meta" |
| 18 | + |
| 19 | +[project] |
| 20 | +name = "kfp" |
| 21 | +dynamic = ["version", "readme"] |
| 22 | +description = "Kubeflow Pipelines SDK" |
| 23 | +authors = [ |
| 24 | + {name = "The Kubeflow Authors"} |
| 25 | +] |
| 26 | +requires-python = ">=3.9.0" |
| 27 | +classifiers = [ |
| 28 | + 'Intended Audience :: Developers', |
| 29 | + 'Intended Audience :: Education', |
| 30 | + 'Intended Audience :: Science/Research', |
| 31 | + 'License :: OSI Approved :: Apache Software License', |
| 32 | + 'Programming Language :: Python :: 3', |
| 33 | + 'Programming Language :: Python :: 3.9', |
| 34 | + 'Programming Language :: Python :: 3.10', |
| 35 | + 'Programming Language :: Python :: 3.11', |
| 36 | + 'Programming Language :: Python :: 3.12', |
| 37 | + 'Programming Language :: Python :: 3.13', |
| 38 | + 'Topic :: Scientific/Engineering', |
| 39 | + 'Topic :: Scientific/Engineering :: Artificial Intelligence', |
| 40 | + 'Topic :: Software Development', |
| 41 | + 'Topic :: Software Development :: Libraries', |
| 42 | + 'Topic :: Software Development :: Libraries :: Python Modules', |
| 43 | +] |
| 44 | +dependencies = [ |
| 45 | + # After any updates to these dependencies, requirements.txt should be regenerated running |
| 46 | + # the following in this folder: |
| 47 | + # pip-compile --no-emit-index-url requirements.in |
| 48 | + |
| 49 | + "click==8.1.8", |
| 50 | + "click-option-group==0.5.7", |
| 51 | + "docstring-parser>=0.7.3,<1", |
| 52 | + # Pin google-api-core version for the bug fixing in 1.31.5", |
| 53 | + # https://github.com/googleapis/python-api-core/releases/tag/v1.31.5 |
| 54 | + "google-api-core>=1.31.5,<3.0.0dev,!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.0", |
| 55 | + "google-auth>=1.6.1,<3", |
| 56 | + # https://github.com/googleapis/python-storage/blob/main/CHANGELOG.md#221-2022-03-15 |
| 57 | + "google-cloud-storage>=2.2.1,<4", |
| 58 | + # pin kfp-pipeline-spec to an exact version, since this is the contract between a given KFP |
| 59 | + # SDK version and the BE. we don't want old version of the SDK to write new fields and to |
| 60 | + # have the BE reject the new unsupported field (even if the new field backward compatible from a proto perspective) |
| 61 | + "kfp-pipeline-spec==2.14.0", |
| 62 | + # Update the upper version whenever a new major version of the |
| 63 | + # kfp-server-api package is released. |
| 64 | + # Update the lower version when kfp sdk depends on new apis/fields in |
| 65 | + # kfp-server-api |
| 66 | + "kfp-server-api>=2.14.0,<3", |
| 67 | + "kubernetes>=8.0.0,<31", |
| 68 | + # protobuf version should be identical to the one in kfp-pipeline-spec |
| 69 | + # api/v2alpha1/python/requirements.txt |
| 70 | + "protobuf==6.31.1,<7.0", |
| 71 | + "PyYAML>=5.3,<7", |
| 72 | + "requests-toolbelt>=0.8.0,<2", |
| 73 | + "tabulate>=0.8.6,<1", |
| 74 | + "urllib3<3.0.0", |
| 75 | + |
| 76 | + ## standard library backports ## |
| 77 | + "typing-extensions>=3.7.4,<5; python_version<'3.9'", |
| 78 | +] |
| 79 | + |
| 80 | +[project.optional-dependencies] |
| 81 | +# TODO: needs to be dynamically set based on KFP version |
| 82 | +# kubernetes = [f'kfp-kubernetes=='] |
| 83 | +kubernetes = ["kfp-kubernetes<2"] |
| 84 | +notebooks = ["nbclient>=0.10,<1", "ipykernel>=6,<7", "jupyter_client>=7,<9"] |
| 85 | +all = [ |
| 86 | + "kfp[docker,kubernetes,notebooks]" |
| 87 | +] |
| 88 | + |
| 89 | +[dependency-groups] |
| 90 | +dev = [ |
| 91 | + "absl-py==1.4.0", |
| 92 | + "docformatter==1.4", |
| 93 | + "docker==5.0.3", |
| 94 | + "isort==5.10.1", |
| 95 | + "mypy==0.941", |
| 96 | + "pip-tools==6.0.0", |
| 97 | + "pre-commit==2.19.0", |
| 98 | + "pycln==2.1.1", |
| 99 | + "pylint==2.17.7", |
| 100 | + "pytest==7.1.2", |
| 101 | + "pytest-cov==3.0.0", |
| 102 | + "pytest-xdist==2.5.0", |
| 103 | + "types-protobuf==3.19.15", |
| 104 | + "types-PyYAML==6.0.5", |
| 105 | + "types-requests==2.27.14", |
| 106 | + "types-tabulate==0.8.6", |
| 107 | + "yapf==0.32.0", |
| 108 | +] |
| 109 | + |
| 110 | +[project.urls] |
| 111 | +Documentation = 'https://kubeflow-pipelines.readthedocs.io/en/stable/' |
| 112 | +"Bug Tracker" = 'https://github.com/kubeflow/pipelines/issues' |
| 113 | +Source = 'https://github.com/kubeflow/pipelines/tree/master/sdk' |
| 114 | +Changelog = 'https://github.com/kubeflow/pipelines/blob/master/sdk/RELEASE.md' |
| 115 | + |
| 116 | +[project.scripts] |
| 117 | +dsl-compile = "kfp.cli.compile_:main" |
| 118 | +kfp = "kfp.cli.__main__:main" |
| 119 | + |
| 120 | +[tool.setuptools] |
| 121 | +include-package-data = true |
| 122 | + |
| 123 | +[tool.setuptools.packages.find] |
| 124 | +exclude = ["*test*"] |
| 125 | + |
| 126 | +[tool.setuptools.dynamic] |
| 127 | +version = {attr = "kfp.version.__version__"} |
| 128 | +readme = {file = "README.md", content-type = "text/markdown"} |
0 commit comments