databricks-bundles 0.271.0__py3-none-any.whl → 0.273.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -528,11 +528,23 @@ def _relativize_location(location: Location) -> Location:
528
528
 
529
529
 
530
530
  def _relativize_path(path: str) -> str:
531
+ """
532
+ Attempt to relativize an absolute path to the current working directory.
533
+
534
+ If the path is not absolute or cannot be relativized, return it as is.
535
+ Used to relativize paths in locations to show shorter paths in diagnostics.
536
+ """
537
+
531
538
  if not os.path.isabs(path):
532
539
  return path
533
540
 
534
541
  cwd = os.getcwd()
535
- common = os.path.commonpath([os.getcwd(), path])
542
+
543
+ try:
544
+ common = os.path.commonpath([cwd, path])
545
+ except ValueError:
546
+ # On Windows, paths on different drives don't have a common path
547
+ return path
536
548
 
537
549
  if common == cwd:
538
550
  return os.path.relpath(path, cwd)
@@ -131,6 +131,8 @@ __all__ = [
131
131
  "JobsHealthRules",
132
132
  "JobsHealthRulesDict",
133
133
  "JobsHealthRulesParam",
134
+ "Kind",
135
+ "KindParam",
134
136
  "Library",
135
137
  "LibraryDict",
136
138
  "LibraryParam",
@@ -484,6 +486,7 @@ from databricks.bundles.jobs._models.jobs_health_rules import (
484
486
  JobsHealthRulesDict,
485
487
  JobsHealthRulesParam,
486
488
  )
489
+ from databricks.bundles.jobs._models.kind import Kind, KindParam
487
490
  from databricks.bundles.jobs._models.library import Library, LibraryDict, LibraryParam
488
491
  from databricks.bundles.jobs._models.lifecycle import (
489
492
  Lifecycle,
@@ -37,6 +37,7 @@ from databricks.bundles.jobs._models.init_script_info import (
37
37
  InitScriptInfo,
38
38
  InitScriptInfoParam,
39
39
  )
40
+ from databricks.bundles.jobs._models.kind import Kind, KindParam
40
41
  from databricks.bundles.jobs._models.runtime_engine import (
41
42
  RuntimeEngine,
42
43
  RuntimeEngineParam,
@@ -171,6 +172,8 @@ class ClusterSpec:
171
172
  When set to true, Databricks will automatically set single node related `custom_tags`, `spark_conf`, and `num_workers`
172
173
  """
173
174
 
175
+ kind: VariableOrOptional[Kind] = None
176
+
174
177
  node_type_id: VariableOrOptional[str] = None
175
178
  """
176
179
  This field encodes, through a single value, the resources available to each of
@@ -384,6 +387,8 @@ class ClusterSpecDict(TypedDict, total=False):
384
387
  When set to true, Databricks will automatically set single node related `custom_tags`, `spark_conf`, and `num_workers`
385
388
  """
386
389
 
390
+ kind: VariableOrOptional[KindParam]
391
+
387
392
  node_type_id: VariableOrOptional[str]
388
393
  """
389
394
  This field encodes, through a single value, the resources available to each of
@@ -3,10 +3,6 @@ from typing import Literal
3
3
 
4
4
 
5
5
  class Condition(Enum):
6
- """
7
- :meta private: [EXPERIMENTAL]
8
- """
9
-
10
6
  ANY_UPDATED = "ANY_UPDATED"
11
7
  ALL_UPDATED = "ALL_UPDATED"
12
8
 
@@ -37,7 +37,7 @@ class Environment:
37
37
  """
38
38
  :meta private: [EXPERIMENTAL]
39
39
 
40
- List of jar dependencies, should be string representing volume paths. For example: `/Volumes/path/to/test.jar`.
40
+ List of java dependencies. Each dependency is a string representing a java library path. For example: `/Volumes/path/to/test.jar`.
41
41
  """
42
42
 
43
43
  @classmethod
@@ -72,7 +72,7 @@ class EnvironmentDict(TypedDict, total=False):
72
72
  """
73
73
  :meta private: [EXPERIMENTAL]
74
74
 
75
- List of jar dependencies, should be string representing volume paths. For example: `/Volumes/path/to/test.jar`.
75
+ List of java dependencies. Each dependency is a string representing a java library path. For example: `/Volumes/path/to/test.jar`.
76
76
  """
77
77
 
78
78
 
@@ -0,0 +1,9 @@
1
+ from enum import Enum
2
+ from typing import Literal
3
+
4
+
5
+ class Kind(Enum):
6
+ CLASSIC_PREVIEW = "CLASSIC_PREVIEW"
7
+
8
+
9
+ KindParam = Literal["CLASSIC_PREVIEW"] | Kind
@@ -12,9 +12,7 @@ if TYPE_CHECKING:
12
12
 
13
13
  @dataclass(kw_only=True)
14
14
  class TableUpdateTriggerConfiguration:
15
- """
16
- :meta private: [EXPERIMENTAL]
17
- """
15
+ """"""
18
16
 
19
17
  condition: VariableOrOptional[Condition] = None
20
18
  """
@@ -29,7 +27,7 @@ class TableUpdateTriggerConfiguration:
29
27
 
30
28
  table_names: VariableOrList[str] = field(default_factory=list)
31
29
  """
32
- A list of Delta tables to monitor for changes. The table name must be in the format `catalog_name.schema_name.table_name`.
30
+ A list of tables to monitor for changes. The table name must be in the format `catalog_name.schema_name.table_name`.
33
31
  """
34
32
 
35
33
  wait_after_last_change_seconds: VariableOrOptional[int] = None
@@ -63,7 +61,7 @@ class TableUpdateTriggerConfigurationDict(TypedDict, total=False):
63
61
 
64
62
  table_names: VariableOrList[str]
65
63
  """
66
- A list of Delta tables to monitor for changes. The table name must be in the format `catalog_name.schema_name.table_name`.
64
+ A list of tables to monitor for changes. The table name must be in the format `catalog_name.schema_name.table_name`.
67
65
  """
68
66
 
69
67
  wait_after_last_change_seconds: VariableOrOptional[int]
@@ -42,9 +42,6 @@ class TriggerSettings:
42
42
  """
43
43
 
44
44
  table_update: VariableOrOptional[TableUpdateTriggerConfiguration] = None
45
- """
46
- :meta private: [EXPERIMENTAL]
47
- """
48
45
 
49
46
  @classmethod
50
47
  def from_dict(cls, value: "TriggerSettingsDict") -> "Self":
@@ -73,9 +70,6 @@ class TriggerSettingsDict(TypedDict, total=False):
73
70
  """
74
71
 
75
72
  table_update: VariableOrOptional[TableUpdateTriggerConfigurationParam]
76
- """
77
- :meta private: [EXPERIMENTAL]
78
- """
79
73
 
80
74
 
81
75
  TriggerSettingsParam = TriggerSettingsDict | TriggerSettings
@@ -1 +1 @@
1
- __version__ = "0.271.0"
1
+ __version__ = "0.273.0"
@@ -3,12 +3,8 @@ from typing import Literal
3
3
 
4
4
 
5
5
  class VolumeType(Enum):
6
- """
7
- The type of the volume. An external volume is located in the specified external location. A managed volume is located in the default location which is specified by the parent schema, or the parent catalog, or the Metastore. [Learn more](https://docs.databricks.com/aws/en/volumes/managed-vs-external)
8
- """
9
-
10
- EXTERNAL = "EXTERNAL"
11
6
  MANAGED = "MANAGED"
7
+ EXTERNAL = "EXTERNAL"
12
8
 
13
9
 
14
- VolumeTypeParam = Literal["EXTERNAL", "MANAGED"] | VolumeType
10
+ VolumeTypeParam = Literal["MANAGED", "EXTERNAL"] | VolumeType
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: databricks-bundles
3
- Version: 0.271.0
3
+ Version: 0.273.0
4
4
  Summary: Python support for Databricks Asset Bundles
5
5
  Author-email: Gleb Kanterov <gleb.kanterov@databricks.com>
6
6
  Requires-Python: >=3.10
@@ -22,7 +22,7 @@ Reference documentation is available at https://databricks.github.io/cli/experim
22
22
 
23
23
  To use `databricks-bundles`, you must first:
24
24
 
25
- 1. Install the [Databricks CLI](https://github.com/databricks/cli), version 0.271.0 or above
25
+ 1. Install the [Databricks CLI](https://github.com/databricks/cli), version 0.273.0 or above
26
26
  2. Authenticate to your Databricks workspace if you have not done so already:
27
27
 
28
28
  ```bash
@@ -1,8 +1,8 @@
1
1
  databricks/__init__.py,sha256=CF2MJcZFwbpn9TwQER8qnCDhkPooBGQNVkX4v7g6p3g,537
2
2
  databricks/bundles/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3
- databricks/bundles/build.py,sha256=mdYLkUyzErQrXIaw_AdLclIJyheh-lNoPkGaRkWXYDc,17458
3
+ databricks/bundles/build.py,sha256=Qx40q9qEtIKK7e6OyQHUZGdY045JBchjjvOPBB8TgbM,17830
4
4
  databricks/bundles/py.typed,sha256=8PjyZ1aVoQpRVvt71muvuq5qE-jTFZkK-GLHkhdebmc,26
5
- databricks/bundles/version.py,sha256=g0voZaRnIh29RQdg9M8Bh2bFPYzx6lpsggLMxT7qbM8,24
5
+ databricks/bundles/version.py,sha256=IV5XNv0oxbqsI2DHvkx_s0_IY3RC2llw2XovRutvxnI,24
6
6
  databricks/bundles/core/__init__.py,sha256=eivW2LIitfT-doDfPWac26vhdhkSACqoRi_48ZJE8zQ,1357
7
7
  databricks/bundles/core/_bundle.py,sha256=B5qINwnoRDitkofFaoCWDCS1tbB3a7nufqK0iDRfC6g,3287
8
8
  databricks/bundles/core/_diagnostics.py,sha256=arhPuRpjfOUjr8_T91-b-YM-ZtpkrLWeJv0BcLfTIOo,5879
@@ -15,7 +15,7 @@ databricks/bundles/core/_resources.py,sha256=mJvqyjnOAG1GniRwKYhDSpRnsdqf2QNFA6r
15
15
  databricks/bundles/core/_transform.py,sha256=ISupC7du3JnqrQQMgHf5Mt7fpZKEcUNZ5qwgMWZQfAE,8836
16
16
  databricks/bundles/core/_transform_to_json.py,sha256=aGiIBVx7pSO9LiJZ5CPYsTA5U6XhCbn1Ew15dhqC0yc,1890
17
17
  databricks/bundles/core/_variable.py,sha256=16g6vSLs5J-Ek2u2LNSnbqK-vpgbeirCddWjS-AiLGU,3617
18
- databricks/bundles/jobs/__init__.py,sha256=uMALr3wDO_BXtgOizjmvj4ZUz7w5g-Ijmz2ESwB_Rw4,19329
18
+ databricks/bundles/jobs/__init__.py,sha256=401hE3tONdr56nGBl7eistqidtf-Z-dtuk4qzsqWmXI,19423
19
19
  databricks/bundles/jobs/_models/adlsgen2_info.py,sha256=_eGe6ivi2VmokxKxKUji9-fSZLBubAr43uBDnN7vvlY,1104
20
20
  databricks/bundles/jobs/_models/authentication_method.py,sha256=XI8hU5fhPlGTsZdePZtR6FIjyT4iEt2URb61q1MsgNI,198
21
21
  databricks/bundles/jobs/_models/auto_scale.py,sha256=Z5vZa0bZi6LJ_Ac-VJfqqCJAtI-zY1_auTGhsV8khvA,1624
@@ -26,9 +26,9 @@ databricks/bundles/jobs/_models/azure_availability.py,sha256=KY8dt1vWA8RHBY3nq5C
26
26
  databricks/bundles/jobs/_models/clean_rooms_notebook_task.py,sha256=zgzDes0v3AEhd_2WXaq1xUo_hKtG927x4qzFzwvfbaY,2016
27
27
  databricks/bundles/jobs/_models/clients_types.py,sha256=awwSptxl3zVXgTyoa_lO4JSp3QGVdRaxJBnxEUsmGwU,1199
28
28
  databricks/bundles/jobs/_models/cluster_log_conf.py,sha256=CP6C3nTXugvSm9-NlMPfENEcHn6Wl1q_9wqAFesos5o,2682
29
- databricks/bundles/jobs/_models/cluster_spec.py,sha256=gByL24VeW4MTZAnXc4X2jLU6DygQCW1ssJqEtDzIi3M,19446
29
+ databricks/bundles/jobs/_models/cluster_spec.py,sha256=u2u4xxksKD7qS552DgFUoKLH_AL2h91ayEN2inUfHcQ,19595
30
30
  databricks/bundles/jobs/_models/compute_config.py,sha256=61-BdovRQ48n93GlPc3bjfy_U5TJ6ERQrViQzTnAg9s,1267
31
- databricks/bundles/jobs/_models/condition.py,sha256=79S2RIdrWFY9lwIu8T0mJPuFALFqv1H0JNtM9gSwL4k,258
31
+ databricks/bundles/jobs/_models/condition.py,sha256=iZhVmAJCXRbAWGhusB3No7QTMZnfoQmp_hvYpNvjkf8,207
32
32
  databricks/bundles/jobs/_models/condition_task.py,sha256=4A71BNRZNk9_iS8IFiHr69RLgx_qmabnQUwcy_g7e0E,2814
33
33
  databricks/bundles/jobs/_models/condition_task_op.py,sha256=mj5tx5qmvUCIkDvFYbo1-6fvVP_Q1zYzxv011ufHbx4,1141
34
34
  databricks/bundles/jobs/_models/continuous.py,sha256=ILsXONBdaHnXoNofLJj5CWu4Hk3NGpvS4izBKOwZHL0,1609
@@ -41,7 +41,7 @@ databricks/bundles/jobs/_models/dbt_task.py,sha256=3OT0GoU1y1DffwXE_YAXXU807Hj2D
41
41
  databricks/bundles/jobs/_models/docker_basic_auth.py,sha256=jEbSE8CvnTceOm405NA18IvB1lLCu-Wfe3SPSlsSBG4,1084
42
42
  databricks/bundles/jobs/_models/docker_image.py,sha256=h2hp3vnfh_wXxMg6RzNHPfjfb-FMsyABe83XIaX5fA8,1126
43
43
  databricks/bundles/jobs/_models/ebs_volume_type.py,sha256=-93BcybklhLyQEZvF8C1BhnHMeCjfDwI2qwimZ6X5eU,415
44
- databricks/bundles/jobs/_models/environment.py,sha256=xQc9ktI0SVDBNTn-GoUUecfSrskoYUqMaVrhqem3Q54,2537
44
+ databricks/bundles/jobs/_models/environment.py,sha256=jc3mnD08KK9lL__4BbnaKa4sKaXpThp1zqooGwgPlI0,2575
45
45
  databricks/bundles/jobs/_models/file_arrival_trigger_configuration.py,sha256=VO5bHmN-hywRfg3zfqTdc0YI_5FQRpGLZdc6f6_GKnA,2378
46
46
  databricks/bundles/jobs/_models/for_each_task.py,sha256=MP-6c7zUaRcl5EaM-3IfjhX1Jc840GlnRdjj_SlhypI,1810
47
47
  databricks/bundles/jobs/_models/gcp_attributes.py,sha256=DdKsEfEIGTtKJFdC_h8JukAQgDhE1yluwWn2X2MIiOk,5786
@@ -64,6 +64,7 @@ databricks/bundles/jobs/_models/jobs_health_metric.py,sha256=PuBoMBQunQ0P3qwIwMb
64
64
  databricks/bundles/jobs/_models/jobs_health_operator.py,sha256=rLuNBch8awFmclOck97hbvnaIQ5Q3IZe0VGTD70AF-g,304
65
65
  databricks/bundles/jobs/_models/jobs_health_rule.py,sha256=Shtngs9qtCFkbF3pX_xsyo4aPYJbbid7HZNxvejC2uo,1437
66
66
  databricks/bundles/jobs/_models/jobs_health_rules.py,sha256=Csu88zyYGGpyml0dBIB-QJ3GgTOTXdtHtVY_JPKHte0,1067
67
+ databricks/bundles/jobs/_models/kind.py,sha256=9glQ0XRn-pcGv5Jyu7-SFecQM_INibbb__KpKd-9CnU,157
67
68
  databricks/bundles/jobs/_models/library.py,sha256=P8vGEWiLInw2Mj3dVWYadvsTpH-0EqtANWdxccqX778,5063
68
69
  databricks/bundles/jobs/_models/lifecycle.py,sha256=_0h3QZ8LPYTnKC8YDRmW0NbQBxwukG1WsqBu8wZrtO4,985
69
70
  databricks/bundles/jobs/_models/local_file_info.py,sha256=yH12cJKjPrFQxG69DgAdp87PIYVGfjECvabbRPqKZjI,952
@@ -100,13 +101,13 @@ databricks/bundles/jobs/_models/sql_task_subscription.py,sha256=OXOQ_kzKj2c3MfA5
100
101
  databricks/bundles/jobs/_models/storage_mode.py,sha256=-lccr-rOMw_OZYiivuoBBbOj6GlOKDKveGKTDa0Ue84,227
101
102
  databricks/bundles/jobs/_models/subscription.py,sha256=ab_GFMlO_9CtKV4yqMk1_UDHNZQ4-ElE3cOddFVPN98,1590
102
103
  databricks/bundles/jobs/_models/subscription_subscriber.py,sha256=aD9IKIwqE0LeTchgFNCQypFJGFSngq9SI6kT74fkWiM,991
103
- databricks/bundles/jobs/_models/table_update_trigger_configuration.py,sha256=du2LCBsM7iGrxNet_eCgw592-A1iCsEWwG8KR8DI4I8,2808
104
+ databricks/bundles/jobs/_models/table_update_trigger_configuration.py,sha256=CDI35MbFmDzf0amdYL7J_haHwz1YvpMR0oPi7uPuKjE,2757
104
105
  databricks/bundles/jobs/_models/task.py,sha256=bhxWk7stToaG6T7MSmfO0om__LP8M1uBpl58dFGwt1s,18473
105
106
  databricks/bundles/jobs/_models/task_dependency.py,sha256=aDo85ulTS46OduT357cLP4G013zojY9IAJUCbJk85RA,1328
106
107
  databricks/bundles/jobs/_models/task_email_notifications.py,sha256=3s7JnOY2ZMhDiPVk8Da0m3e5URijCTncRlnTH19XMEs,5315
107
108
  databricks/bundles/jobs/_models/task_notification_settings.py,sha256=CzMzpjLDR1oWEjPArI2S4RMM5k7QkBk5yZVrbB43LMo,2086
108
109
  databricks/bundles/jobs/_models/task_retry_mode.py,sha256=Ds9-8lvJYAdaO-iLubaUTMq06UC-WCsKH6td9KbMO-s,542
109
- databricks/bundles/jobs/_models/trigger_settings.py,sha256=C9pxELtK86n5geMH0PHMCC6qPXBvpy7B4gamuvM9tl8,2297
110
+ databricks/bundles/jobs/_models/trigger_settings.py,sha256=199oDuHeznqhnd0QIKFnzyzupJpHswjw0v3ltsBHuks,2197
110
111
  databricks/bundles/jobs/_models/volumes_storage_info.py,sha256=31pQ9fnqQGhT2mD_ScjEhy-dm0307ne7iP_gxfcJXDY,1253
111
112
  databricks/bundles/jobs/_models/webhook.py,sha256=S209r8QqufJLRoACU6a0MnTzuKOvn3r6p91u-7nbFhQ,744
112
113
  databricks/bundles/jobs/_models/webhook_notifications.py,sha256=4FrMTYy4tDeMe3VqSbn9jjNYISTAmYTzENpGvnQGju4,4349
@@ -175,8 +176,8 @@ databricks/bundles/volumes/_models/lifecycle.py,sha256=_0h3QZ8LPYTnKC8YDRmW0NbQB
175
176
  databricks/bundles/volumes/_models/volume.py,sha256=ALGmeXW3rGH424pp6SaXPT1I87XXsO-Buo1inCgk94Q,2722
176
177
  databricks/bundles/volumes/_models/volume_grant.py,sha256=U_-4-KL8LM3n5xJBLHj_wjPsqiVjCDRj8ttiUYqFRmI,1083
177
178
  databricks/bundles/volumes/_models/volume_grant_privilege.py,sha256=fCA0LVE9Q3sbHvTAj7e62E9ASq9jH5oK1iREQdp1TxQ,384
178
- databricks/bundles/volumes/_models/volume_type.py,sha256=fttRjiYj8qXp7qqs_IhMopATBoU4izOEXLODY2rIkik,511
179
- databricks_bundles-0.271.0.dist-info/licenses/LICENSE,sha256=QKOZO8KtzbS_Qt3Tbl0dfGnidaeilKe0UiIjnEq1tjc,3790
180
- databricks_bundles-0.271.0.dist-info/WHEEL,sha256=G2gURzTEtmeR8nrdXUJfNiB3VYVxigPQ-bEQujpNiNs,82
181
- databricks_bundles-0.271.0.dist-info/METADATA,sha256=HjykRluS47e8kQjsGmjfnVPH6bO_KTfSChjTirfi6dA,1541
182
- databricks_bundles-0.271.0.dist-info/RECORD,,
179
+ databricks/bundles/volumes/_models/volume_type.py,sha256=kdczwT3EJ0n5ZBV75SgX-6766igJBLTh6ywaaxIbLDk,189
180
+ databricks_bundles-0.273.0.dist-info/licenses/LICENSE,sha256=QKOZO8KtzbS_Qt3Tbl0dfGnidaeilKe0UiIjnEq1tjc,3790
181
+ databricks_bundles-0.273.0.dist-info/WHEEL,sha256=G2gURzTEtmeR8nrdXUJfNiB3VYVxigPQ-bEQujpNiNs,82
182
+ databricks_bundles-0.273.0.dist-info/METADATA,sha256=E2q_jJEePffs6WGVZfhaRIn0b-2-MGvfH807ZqNXYNk,1541
183
+ databricks_bundles-0.273.0.dist-info/RECORD,,