mirror of https://github.com/databricks/cli.git
133 lines
4.9 KiB
Python
133 lines
4.9 KiB
Python
from dataclasses import dataclass
|
|
from typing import TYPE_CHECKING, TypedDict
|
|
|
|
from databricks.bundles.compute._models.maven_library import (
|
|
MavenLibrary,
|
|
MavenLibraryParam,
|
|
)
|
|
from databricks.bundles.compute._models.python_py_pi_library import (
|
|
PythonPyPiLibrary,
|
|
PythonPyPiLibraryParam,
|
|
)
|
|
from databricks.bundles.compute._models.r_cran_library import (
|
|
RCranLibrary,
|
|
RCranLibraryParam,
|
|
)
|
|
from databricks.bundles.core._transform import _transform
|
|
from databricks.bundles.core._transform_to_json import _transform_to_json_value
|
|
from databricks.bundles.core._variable import VariableOrOptional
|
|
|
|
if TYPE_CHECKING:
|
|
from typing_extensions import Self
|
|
|
|
|
|
@dataclass(kw_only=True)
|
|
class Library:
|
|
""""""
|
|
|
|
cran: VariableOrOptional[RCranLibrary] = None
|
|
"""
|
|
Specification of a CRAN library to be installed as part of the library
|
|
"""
|
|
|
|
egg: VariableOrOptional[str] = None
|
|
"""
|
|
Deprecated. URI of the egg library to install. Installing Python egg files is deprecated and is not supported in Databricks Runtime 14.0 and above.
|
|
"""
|
|
|
|
jar: VariableOrOptional[str] = None
|
|
"""
|
|
URI of the JAR library to install. Supported URIs include Workspace paths, Unity Catalog Volumes paths, and S3 URIs.
|
|
For example: `{ "jar": "/Workspace/path/to/library.jar" }`, `{ "jar" : "/Volumes/path/to/library.jar" }` or
|
|
`{ "jar": "s3://my-bucket/library.jar" }`.
|
|
If S3 is used, please make sure the cluster has read access on the library. You may need to
|
|
launch the cluster with an IAM role to access the S3 URI.
|
|
"""
|
|
|
|
maven: VariableOrOptional[MavenLibrary] = None
|
|
"""
|
|
Specification of a maven library to be installed. For example:
|
|
`{ "coordinates": "org.jsoup:jsoup:1.7.2" }`
|
|
"""
|
|
|
|
pypi: VariableOrOptional[PythonPyPiLibrary] = None
|
|
"""
|
|
Specification of a PyPi library to be installed. For example:
|
|
`{ "package": "simplejson" }`
|
|
"""
|
|
|
|
requirements: VariableOrOptional[str] = None
|
|
"""
|
|
URI of the requirements.txt file to install. Only Workspace paths and Unity Catalog Volumes paths are supported.
|
|
For example: `{ "requirements": "/Workspace/path/to/requirements.txt" }` or `{ "requirements" : "/Volumes/path/to/requirements.txt" }`
|
|
"""
|
|
|
|
whl: VariableOrOptional[str] = None
|
|
"""
|
|
URI of the wheel library to install. Supported URIs include Workspace paths, Unity Catalog Volumes paths, and S3 URIs.
|
|
For example: `{ "whl": "/Workspace/path/to/library.whl" }`, `{ "whl" : "/Volumes/path/to/library.whl" }` or
|
|
`{ "whl": "s3://my-bucket/library.whl" }`.
|
|
If S3 is used, please make sure the cluster has read access on the library. You may need to
|
|
launch the cluster with an IAM role to access the S3 URI.
|
|
"""
|
|
|
|
@classmethod
|
|
def from_dict(cls, value: "LibraryDict") -> "Self":
|
|
return _transform(cls, value)
|
|
|
|
def as_dict(self) -> "LibraryDict":
|
|
return _transform_to_json_value(self) # type:ignore
|
|
|
|
|
|
class LibraryDict(TypedDict, total=False):
|
|
""""""
|
|
|
|
cran: VariableOrOptional[RCranLibraryParam]
|
|
"""
|
|
Specification of a CRAN library to be installed as part of the library
|
|
"""
|
|
|
|
egg: VariableOrOptional[str]
|
|
"""
|
|
Deprecated. URI of the egg library to install. Installing Python egg files is deprecated and is not supported in Databricks Runtime 14.0 and above.
|
|
"""
|
|
|
|
jar: VariableOrOptional[str]
|
|
"""
|
|
URI of the JAR library to install. Supported URIs include Workspace paths, Unity Catalog Volumes paths, and S3 URIs.
|
|
For example: `{ "jar": "/Workspace/path/to/library.jar" }`, `{ "jar" : "/Volumes/path/to/library.jar" }` or
|
|
`{ "jar": "s3://my-bucket/library.jar" }`.
|
|
If S3 is used, please make sure the cluster has read access on the library. You may need to
|
|
launch the cluster with an IAM role to access the S3 URI.
|
|
"""
|
|
|
|
maven: VariableOrOptional[MavenLibraryParam]
|
|
"""
|
|
Specification of a maven library to be installed. For example:
|
|
`{ "coordinates": "org.jsoup:jsoup:1.7.2" }`
|
|
"""
|
|
|
|
pypi: VariableOrOptional[PythonPyPiLibraryParam]
|
|
"""
|
|
Specification of a PyPi library to be installed. For example:
|
|
`{ "package": "simplejson" }`
|
|
"""
|
|
|
|
requirements: VariableOrOptional[str]
|
|
"""
|
|
URI of the requirements.txt file to install. Only Workspace paths and Unity Catalog Volumes paths are supported.
|
|
For example: `{ "requirements": "/Workspace/path/to/requirements.txt" }` or `{ "requirements" : "/Volumes/path/to/requirements.txt" }`
|
|
"""
|
|
|
|
whl: VariableOrOptional[str]
|
|
"""
|
|
URI of the wheel library to install. Supported URIs include Workspace paths, Unity Catalog Volumes paths, and S3 URIs.
|
|
For example: `{ "whl": "/Workspace/path/to/library.whl" }`, `{ "whl" : "/Volumes/path/to/library.whl" }` or
|
|
`{ "whl": "s3://my-bucket/library.whl" }`.
|
|
If S3 is used, please make sure the cluster has read access on the library. You may need to
|
|
launch the cluster with an IAM role to access the S3 URI.
|
|
"""
|
|
|
|
|
|
LibraryParam = LibraryDict | Library
|