|
10 | 10 |
|
11 | 11 | install_requires = [ |
12 | 12 | 'wheel<0.46.0', # https://github.com/skypilot-org/skypilot/issues/5153 |
| 13 | + 'setuptools', # TODO: match version to pyproject.toml once #5153 is fixed |
| 14 | + 'pip', |
13 | 15 | 'cachetools', |
14 | 16 | # NOTE: ray requires click>=7.0. |
15 | 17 | 'click >= 7.0', |
|
115 | 117 | 'azure-mgmt-compute>=33.0.0', |
116 | 118 | 'azure-storage-blob>=12.23.1', |
117 | 119 | 'msgraph-sdk', |
118 | | - ] + local_ray, |
| 120 | + ], |
119 | 121 | # We need google-api-python-client>=2.69.0 to enable 'discardLocalSsd' |
120 | 122 | # parameter for stopping instances. Reference: |
121 | 123 | # https://github.com/googleapis/google-api-python-client/commit/f6e9d3869ed605b06f7cbf2e8cf2db25108506e6 |
|
130 | 132 | 'lambda': [], # No dependencies needed for lambda |
131 | 133 | 'cloudflare': aws_dependencies, |
132 | 134 | 'scp': local_ray, |
133 | | - 'oci': ['oci'] + local_ray, |
| 135 | + 'oci': ['oci'], |
134 | 136 | # Kubernetes 32.0.0 has an authentication bug: https://github.com/kubernetes-client/python/issues/2333 # pylint: disable=line-too-long |
135 | 137 | 'kubernetes': ['kubernetes>=20.0.0,!=32.0.0', 'websockets'], |
136 | 138 | 'remote': remote, |
|
156 | 158 | ] + aws_dependencies |
157 | 159 | } |
158 | 160 |
|
159 | | -# Nebius needs python3.10. If python 3.9 [all] will not install nebius |
| 161 | +# Calculate which clouds should be included in the [all] installation. |
| 162 | +clouds_for_all = set(extras_require) |
| 163 | +clouds_for_all.remove('remote') |
| 164 | + |
160 | 165 | if sys.version_info < (3, 10): |
161 | | - filtered_keys = [k for k in extras_require if k != 'nebius'] |
162 | | - extras_require['all'] = sum( |
163 | | - [v for k, v in extras_require.items() if k != 'nebius'], []) |
164 | | -else: |
165 | | - extras_require['all'] = sum(extras_require.values(), []) |
| 166 | + # Nebius needs python3.10. If python 3.9 [all] will not install nebius |
| 167 | + clouds_for_all.remove('nebius') |
| 168 | + |
| 169 | +if sys.version_info >= (3, 12): |
| 170 | + # The version of ray we use does not work with >= 3.12, so avoid clouds |
| 171 | + # that require ray. |
| 172 | + clouds_for_all -= {'ibm', 'docker', 'scp'} |
| 173 | + # vast requires setuptools==51.1.1 which will not work with python >= 3.12 |
| 174 | + # TODO: Remove once https://github.com/vast-ai/vast-sdk/pull/6 is released |
| 175 | + clouds_for_all.remove('vast') |
| 176 | + |
| 177 | +extras_require['all'] = list( |
| 178 | + set().union(*[extras_require[cloud] for cloud in clouds_for_all])) |
0 commit comments