From abab568acf8894faca16af73e200471c22ed21fe Mon Sep 17 00:00:00 2001 From: Serge Smertin <259697+nfx@users.noreply.github.com> Date: Wed, 22 Mar 2023 19:08:31 +0100 Subject: [PATCH] Make integration tests runnable (#36) --- .codegen/service.py.tmpl | 2 +- .github/workflows/push.yml | 4 +- .github/workflows/release.yml | 2 +- .gitignore | 3 +- Makefile | 5 +- databricks/sdk/runtime/__init__.py | 4 + databricks/sdk/service/billing.py | 18 +- databricks/sdk/service/clusters.py | 303 +++++++++++--------- databricks/sdk/service/commands.py | 7 +- databricks/sdk/service/deployment.py | 129 +++++---- databricks/sdk/service/endpoints.py | 92 +++--- databricks/sdk/service/instancepools.py | 184 ++++++------ databricks/sdk/service/ipaccesslists.py | 8 +- databricks/sdk/service/jobs.py | 334 +++++++++++++--------- databricks/sdk/service/libraries.py | 15 +- databricks/sdk/service/mlflow.py | 75 +++-- databricks/sdk/service/oauth2.py | 12 +- databricks/sdk/service/permissions.py | 3 +- databricks/sdk/service/pipelines.py | 122 ++++---- databricks/sdk/service/repos.py | 6 +- databricks/sdk/service/scim.py | 2 +- databricks/sdk/service/secrets.py | 4 +- databricks/sdk/service/sql.py | 320 +++++++++++---------- databricks/sdk/service/tokenmanagement.py | 3 +- databricks/sdk/service/tokens.py | 3 +- databricks/sdk/service/unitycatalog.py | 273 +++++++++--------- setup.cfg | 4 +- setup.py | 2 +- tests/integration/test_clusters.py | 17 +- tests/integration/test_dbconnect.py | 7 + 30 files changed, 1069 insertions(+), 894 deletions(-) diff --git a/.codegen/service.py.tmpl b/.codegen/service.py.tmpl index 9bada05a..9278329a 100644 --- a/.codegen/service.py.tmpl +++ b/.codegen/service.py.tmpl @@ -43,7 +43,7 @@ class {{.PascalName}}{{if eq "List" .PascalName}}Request{{end}}:{{if .Descriptio {{- define "from_dict_type" -}} {{- if not .Entity }}None {{- else if .Entity.ArrayValue }}{{if .Entity.ArrayValue.IsObject}}[{{.Entity.ArrayValue.PascalName}}.from_dict(v) for v in d['{{.Name}}']] if '{{.Name}}' in d and d['{{.Name}}'] is not None else None{{else}}d.get('{{.Name}}', None){{end}} - {{- else if or .Entity.IsObject .Entity.IsExternal }}{{.Entity.PascalName}}.from_dict(d['{{.Name}}']) if '{{.Name}}' in d else None + {{- else if or .Entity.IsObject .Entity.IsExternal }}{{.Entity.PascalName}}.from_dict(d['{{.Name}}']) if '{{.Name}}' in d and d['{{.Name}}'] is not None else None {{- else if .Entity.Enum }}{{.Entity.PascalName}}.__members__.get(d['{{.Name}}'], None) if '{{.Name}}' in d else None {{- else}}d.get('{{.Name}}', None){{- end -}} {{- end -}} diff --git a/.github/workflows/push.yml b/.github/workflows/push.yml index 8be2f519..82f0ddb0 100644 --- a/.github/workflows/push.yml +++ b/.github/workflows/push.yml @@ -25,7 +25,7 @@ jobs: python-version: ${{ matrix.pyVersion }} - name: Run tests - run: make dev-init test + run: make dev test - name: Publish test coverage uses: codecov/codecov-action@v1 @@ -38,7 +38,7 @@ jobs: uses: actions/checkout@v2 - name: Format all files - run: make dev-init fmt + run: make dev fmt - name: Fail on differences run: git diff --exit-code diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 5f532678..e0f37923 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -11,7 +11,7 @@ jobs: steps: - uses: actions/checkout@v3 - - run: pip install -e '.[dev]' + - run: make dev - name: Build wheel run: python3 setup.py bdist_wheel diff --git a/.gitignore b/.gitignore index e1063e17..ac1aa794 100644 --- a/.gitignore +++ b/.gitignore @@ -9,4 +9,5 @@ __pycache__ .idea databricks-sdk-py.iml .databricks -.coverage \ No newline at end of file +.coverage +htmlcov \ No newline at end of file diff --git a/Makefile b/Makefile index 25d73a1e..5aef5050 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ -dev-init: +dev: python3 -m venv .venv . .venv/bin/activate pip install . @@ -16,5 +16,8 @@ lint: test: pytest -m 'not integration' --cov=databricks --cov-report html tests +integration: + pytest -n auto -m 'integration' --cov=databricks --cov-report html tests + coverage: test open htmlcov/index.html \ No newline at end of file diff --git a/databricks/sdk/runtime/__init__.py b/databricks/sdk/runtime/__init__.py index e95f5b34..73f576ee 100644 --- a/databricks/sdk/runtime/__init__.py +++ b/databricks/sdk/runtime/__init__.py @@ -14,5 +14,9 @@ def _get_global_dbutils(): from ._impl import _RemoteDbUtils if not dbutils: dbutils = _RemoteDbUtils() +except NameError: + from ._impl import _RemoteDbUtils + if not dbutils: + dbutils = _RemoteDbUtils() __all__ = ['dbutils'] diff --git a/databricks/sdk/service/billing.py b/databricks/sdk/service/billing.py index 09baace3..ac054a44 100755 --- a/databricks/sdk/service/billing.py +++ b/databricks/sdk/service/billing.py @@ -288,7 +288,7 @@ def from_dict(cls, d: Dict[str, any]) -> 'LogDeliveryConfiguration': delivery_path_prefix=d.get('delivery_path_prefix', None), delivery_start_time=d.get('delivery_start_time', None), log_delivery_status=LogDeliveryStatus.from_dict(d['log_delivery_status']) - if 'log_delivery_status' in d else None, + if 'log_delivery_status' in d and d['log_delivery_status'] is not None else None, log_type=LogType.__members__.get(d['log_type'], None) if 'log_type' in d else None, output_format=OutputFormat.__members__.get(d['output_format'], None) if 'output_format' in d else None, @@ -389,8 +389,9 @@ def as_dict(self) -> dict: @classmethod def from_dict(cls, d: Dict[str, any]) -> 'WrappedBudget': - return cls(budget=Budget.from_dict(d['budget']) if 'budget' in d else None, - budget_id=d.get('budget_id', None)) + return cls( + budget=Budget.from_dict(d['budget']) if 'budget' in d and d['budget'] is not None else None, + budget_id=d.get('budget_id', None)) @dataclass @@ -404,7 +405,8 @@ def as_dict(self) -> dict: @classmethod def from_dict(cls, d: Dict[str, any]) -> 'WrappedBudgetWithStatus': - return cls(budget=BudgetWithStatus.from_dict(d['budget']) if 'budget' in d else None) + return cls(budget=BudgetWithStatus.from_dict(d['budget'] + ) if 'budget' in d and d['budget'] is not None else None) @dataclass @@ -420,7 +422,8 @@ def as_dict(self) -> dict: @classmethod def from_dict(cls, d: Dict[str, any]) -> 'WrappedCreateLogDeliveryConfiguration': return cls(log_delivery_configuration=CreateLogDeliveryConfigurationParams. - from_dict(d['log_delivery_configuration']) if 'log_delivery_configuration' in d else None) + from_dict(d['log_delivery_configuration']) if 'log_delivery_configuration' in d + and d['log_delivery_configuration'] is not None else None) @dataclass @@ -435,8 +438,9 @@ def as_dict(self) -> dict: @classmethod def from_dict(cls, d: Dict[str, any]) -> 'WrappedLogDeliveryConfiguration': - return cls(log_delivery_configuration=LogDeliveryConfiguration. - from_dict(d['log_delivery_configuration']) if 'log_delivery_configuration' in d else None) + return cls( + log_delivery_configuration=LogDeliveryConfiguration.from_dict(d['log_delivery_configuration']) + if 'log_delivery_configuration' in d and d['log_delivery_configuration'] is not None else None) @dataclass diff --git a/databricks/sdk/service/clusters.py b/databricks/sdk/service/clusters.py index 5e990840..ca5e56e3 100755 --- a/databricks/sdk/service/clusters.py +++ b/databricks/sdk/service/clusters.py @@ -127,7 +127,7 @@ def from_dict(cls, d: Dict[str, any]) -> 'AzureAttributes': if 'availability' in d else None, first_on_demand=d.get('first_on_demand', None), log_analytics_info=LogAnalyticsInfo.from_dict(d['log_analytics_info']) - if 'log_analytics_info' in d else None, + if 'log_analytics_info' in d and d['log_analytics_info'] is not None else None, spot_bid_max_price=d.get('spot_bid_max_price', None)) @@ -197,34 +197,37 @@ def as_dict(self) -> dict: @classmethod def from_dict(cls, d: Dict[str, any]) -> 'BaseClusterInfo': - return cls( - autoscale=AutoScale.from_dict(d['autoscale']) if 'autoscale' in d else None, - autotermination_minutes=d.get('autotermination_minutes', None), - aws_attributes=AwsAttributes.from_dict(d['aws_attributes']) if 'aws_attributes' in d else None, - azure_attributes=AzureAttributes.from_dict(d['azure_attributes']) - if 'azure_attributes' in d else None, - cluster_log_conf=ClusterLogConf.from_dict(d['cluster_log_conf']) - if 'cluster_log_conf' in d else None, - cluster_name=d.get('cluster_name', None), - cluster_source=ClusterSource.__members__.get(d['cluster_source'], None) - if 'cluster_source' in d else None, - custom_tags=d.get('custom_tags', None), - driver_instance_pool_id=d.get('driver_instance_pool_id', None), - driver_node_type_id=d.get('driver_node_type_id', None), - enable_elastic_disk=d.get('enable_elastic_disk', None), - enable_local_disk_encryption=d.get('enable_local_disk_encryption', None), - gcp_attributes=GcpAttributes.from_dict(d['gcp_attributes']) if 'gcp_attributes' in d else None, - instance_pool_id=d.get('instance_pool_id', None), - node_type_id=d.get('node_type_id', None), - num_workers=d.get('num_workers', None), - policy_id=d.get('policy_id', None), - runtime_engine=RuntimeEngine.__members__.get(d['runtime_engine'], None) - if 'runtime_engine' in d else None, - spark_conf=d.get('spark_conf', None), - spark_env_vars=d.get('spark_env_vars', None), - spark_version=d.get('spark_version', None), - ssh_public_keys=d.get('ssh_public_keys', None), - workload_type=WorkloadType.from_dict(d['workload_type']) if 'workload_type' in d else None) + return cls(autoscale=AutoScale.from_dict(d['autoscale']) + if 'autoscale' in d and d['autoscale'] is not None else None, + autotermination_minutes=d.get('autotermination_minutes', None), + aws_attributes=AwsAttributes.from_dict(d['aws_attributes']) + if 'aws_attributes' in d and d['aws_attributes'] is not None else None, + azure_attributes=AzureAttributes.from_dict(d['azure_attributes']) + if 'azure_attributes' in d and d['azure_attributes'] is not None else None, + cluster_log_conf=ClusterLogConf.from_dict(d['cluster_log_conf']) + if 'cluster_log_conf' in d and d['cluster_log_conf'] is not None else None, + cluster_name=d.get('cluster_name', None), + cluster_source=ClusterSource.__members__.get(d['cluster_source'], None) + if 'cluster_source' in d else None, + custom_tags=d.get('custom_tags', None), + driver_instance_pool_id=d.get('driver_instance_pool_id', None), + driver_node_type_id=d.get('driver_node_type_id', None), + enable_elastic_disk=d.get('enable_elastic_disk', None), + enable_local_disk_encryption=d.get('enable_local_disk_encryption', None), + gcp_attributes=GcpAttributes.from_dict(d['gcp_attributes']) + if 'gcp_attributes' in d and d['gcp_attributes'] is not None else None, + instance_pool_id=d.get('instance_pool_id', None), + node_type_id=d.get('node_type_id', None), + num_workers=d.get('num_workers', None), + policy_id=d.get('policy_id', None), + runtime_engine=RuntimeEngine.__members__.get(d['runtime_engine'], None) + if 'runtime_engine' in d else None, + spark_conf=d.get('spark_conf', None), + spark_env_vars=d.get('spark_env_vars', None), + spark_version=d.get('spark_version', None), + ssh_public_keys=d.get('ssh_public_keys', None), + workload_type=WorkloadType.from_dict(d['workload_type']) + if 'workload_type' in d and d['workload_type'] is not None else None) @dataclass @@ -331,32 +334,34 @@ def as_dict(self) -> dict: @classmethod def from_dict(cls, d: Dict[str, any]) -> 'ClusterAttributes': - return cls( - autotermination_minutes=d.get('autotermination_minutes', None), - aws_attributes=AwsAttributes.from_dict(d['aws_attributes']) if 'aws_attributes' in d else None, - azure_attributes=AzureAttributes.from_dict(d['azure_attributes']) - if 'azure_attributes' in d else None, - cluster_log_conf=ClusterLogConf.from_dict(d['cluster_log_conf']) - if 'cluster_log_conf' in d else None, - cluster_name=d.get('cluster_name', None), - cluster_source=ClusterSource.__members__.get(d['cluster_source'], None) - if 'cluster_source' in d else None, - custom_tags=d.get('custom_tags', None), - driver_instance_pool_id=d.get('driver_instance_pool_id', None), - driver_node_type_id=d.get('driver_node_type_id', None), - enable_elastic_disk=d.get('enable_elastic_disk', None), - enable_local_disk_encryption=d.get('enable_local_disk_encryption', None), - gcp_attributes=GcpAttributes.from_dict(d['gcp_attributes']) if 'gcp_attributes' in d else None, - instance_pool_id=d.get('instance_pool_id', None), - node_type_id=d.get('node_type_id', None), - policy_id=d.get('policy_id', None), - runtime_engine=RuntimeEngine.__members__.get(d['runtime_engine'], None) - if 'runtime_engine' in d else None, - spark_conf=d.get('spark_conf', None), - spark_env_vars=d.get('spark_env_vars', None), - spark_version=d.get('spark_version', None), - ssh_public_keys=d.get('ssh_public_keys', None), - workload_type=WorkloadType.from_dict(d['workload_type']) if 'workload_type' in d else None) + return cls(autotermination_minutes=d.get('autotermination_minutes', None), + aws_attributes=AwsAttributes.from_dict(d['aws_attributes']) + if 'aws_attributes' in d and d['aws_attributes'] is not None else None, + azure_attributes=AzureAttributes.from_dict(d['azure_attributes']) + if 'azure_attributes' in d and d['azure_attributes'] is not None else None, + cluster_log_conf=ClusterLogConf.from_dict(d['cluster_log_conf']) + if 'cluster_log_conf' in d and d['cluster_log_conf'] is not None else None, + cluster_name=d.get('cluster_name', None), + cluster_source=ClusterSource.__members__.get(d['cluster_source'], None) + if 'cluster_source' in d else None, + custom_tags=d.get('custom_tags', None), + driver_instance_pool_id=d.get('driver_instance_pool_id', None), + driver_node_type_id=d.get('driver_node_type_id', None), + enable_elastic_disk=d.get('enable_elastic_disk', None), + enable_local_disk_encryption=d.get('enable_local_disk_encryption', None), + gcp_attributes=GcpAttributes.from_dict(d['gcp_attributes']) + if 'gcp_attributes' in d and d['gcp_attributes'] is not None else None, + instance_pool_id=d.get('instance_pool_id', None), + node_type_id=d.get('node_type_id', None), + policy_id=d.get('policy_id', None), + runtime_engine=RuntimeEngine.__members__.get(d['runtime_engine'], None) + if 'runtime_engine' in d else None, + spark_conf=d.get('spark_conf', None), + spark_env_vars=d.get('spark_env_vars', None), + spark_version=d.get('spark_version', None), + ssh_public_keys=d.get('ssh_public_keys', None), + workload_type=WorkloadType.from_dict(d['workload_type']) + if 'workload_type' in d and d['workload_type'] is not None else None) @dataclass @@ -381,8 +386,9 @@ def as_dict(self) -> dict: def from_dict(cls, d: Dict[str, any]) -> 'ClusterEvent': return cls(cluster_id=d.get('cluster_id', None), data_plane_event_details=DataPlaneEventDetails.from_dict(d['data_plane_event_details']) - if 'data_plane_event_details' in d else None, - details=EventDetails.from_dict(d['details']) if 'details' in d else None, + if 'data_plane_event_details' in d and d['data_plane_event_details'] is not None else None, + details=EventDetails.from_dict(d['details']) + if 'details' in d and d['details'] is not None else None, timestamp=d.get('timestamp', None), type=EventType.__members__.get(d['type'], None) if 'type' in d else None) @@ -482,17 +488,19 @@ def as_dict(self) -> dict: @classmethod def from_dict(cls, d: Dict[str, any]) -> 'ClusterInfo': return cls( - autoscale=AutoScale.from_dict(d['autoscale']) if 'autoscale' in d else None, + autoscale=AutoScale.from_dict(d['autoscale']) + if 'autoscale' in d and d['autoscale'] is not None else None, autotermination_minutes=d.get('autotermination_minutes', None), - aws_attributes=AwsAttributes.from_dict(d['aws_attributes']) if 'aws_attributes' in d else None, + aws_attributes=AwsAttributes.from_dict(d['aws_attributes']) + if 'aws_attributes' in d and d['aws_attributes'] is not None else None, azure_attributes=AzureAttributes.from_dict(d['azure_attributes']) - if 'azure_attributes' in d else None, + if 'azure_attributes' in d and d['azure_attributes'] is not None else None, cluster_cores=d.get('cluster_cores', None), cluster_id=d.get('cluster_id', None), cluster_log_conf=ClusterLogConf.from_dict(d['cluster_log_conf']) - if 'cluster_log_conf' in d else None, + if 'cluster_log_conf' in d and d['cluster_log_conf'] is not None else None, cluster_log_status=LogSyncStatus.from_dict(d['cluster_log_status']) - if 'cluster_log_status' in d else None, + if 'cluster_log_status' in d and d['cluster_log_status'] is not None else None, cluster_memory_mb=d.get('cluster_memory_mb', None), cluster_name=d.get('cluster_name', None), cluster_source=ClusterSource.__members__.get(d['cluster_source'], None) @@ -502,14 +510,15 @@ def from_dict(cls, d: Dict[str, any]) -> 'ClusterInfo': data_security_mode=DataSecurityMode.__members__.get(d['data_security_mode'], None) if 'data_security_mode' in d else None, default_tags=d.get('default_tags', None), - driver=SparkNode.from_dict(d['driver']) if 'driver' in d else None, + driver=SparkNode.from_dict(d['driver']) if 'driver' in d and d['driver'] is not None else None, driver_instance_pool_id=d.get('driver_instance_pool_id', None), driver_node_type_id=d.get('driver_node_type_id', None), enable_elastic_disk=d.get('enable_elastic_disk', None), enable_local_disk_encryption=d.get('enable_local_disk_encryption', None), executors=[SparkNode.from_dict(v) for v in d['executors']] if 'executors' in d and d['executors'] is not None else None, - gcp_attributes=GcpAttributes.from_dict(d['gcp_attributes']) if 'gcp_attributes' in d else None, + gcp_attributes=GcpAttributes.from_dict(d['gcp_attributes']) + if 'gcp_attributes' in d and d['gcp_attributes'] is not None else None, instance_pool_id=d.get('instance_pool_id', None), jdbc_port=d.get('jdbc_port', None), last_restarted_time=d.get('last_restarted_time', None), @@ -530,8 +539,9 @@ def from_dict(cls, d: Dict[str, any]) -> 'ClusterInfo': state_message=d.get('state_message', None), terminated_time=d.get('terminated_time', None), termination_reason=TerminationReason.from_dict(d['termination_reason']) - if 'termination_reason' in d else None, - workload_type=WorkloadType.from_dict(d['workload_type']) if 'workload_type' in d else None) + if 'termination_reason' in d and d['termination_reason'] is not None else None, + workload_type=WorkloadType.from_dict(d['workload_type']) + if 'workload_type' in d and d['workload_type'] is not None else None) @dataclass @@ -547,8 +557,9 @@ def as_dict(self) -> dict: @classmethod def from_dict(cls, d: Dict[str, any]) -> 'ClusterLogConf': - return cls(dbfs=DbfsStorageInfo.from_dict(d['dbfs']) if 'dbfs' in d else None, - s3=S3StorageInfo.from_dict(d['s3']) if 's3' in d else None) + return cls( + dbfs=DbfsStorageInfo.from_dict(d['dbfs']) if 'dbfs' in d and d['dbfs'] is not None else None, + s3=S3StorageInfo.from_dict(d['s3']) if 's3' in d and d['s3'] is not None else None) @dataclass @@ -564,7 +575,8 @@ def as_dict(self) -> dict: @classmethod def from_dict(cls, d: Dict[str, any]) -> 'ClusterSize': - return cls(autoscale=AutoScale.from_dict(d['autoscale']) if 'autoscale' in d else None, + return cls(autoscale=AutoScale.from_dict(d['autoscale']) + if 'autoscale' in d and d['autoscale'] is not None else None, num_workers=d.get('num_workers', None)) @@ -640,35 +652,38 @@ def as_dict(self) -> dict: @classmethod def from_dict(cls, d: Dict[str, any]) -> 'CreateCluster': - return cls( - apply_policy_default_values=d.get('apply_policy_default_values', None), - autoscale=AutoScale.from_dict(d['autoscale']) if 'autoscale' in d else None, - autotermination_minutes=d.get('autotermination_minutes', None), - aws_attributes=AwsAttributes.from_dict(d['aws_attributes']) if 'aws_attributes' in d else None, - azure_attributes=AzureAttributes.from_dict(d['azure_attributes']) - if 'azure_attributes' in d else None, - cluster_log_conf=ClusterLogConf.from_dict(d['cluster_log_conf']) - if 'cluster_log_conf' in d else None, - cluster_name=d.get('cluster_name', None), - cluster_source=ClusterSource.__members__.get(d['cluster_source'], None) - if 'cluster_source' in d else None, - custom_tags=d.get('custom_tags', None), - driver_instance_pool_id=d.get('driver_instance_pool_id', None), - driver_node_type_id=d.get('driver_node_type_id', None), - enable_elastic_disk=d.get('enable_elastic_disk', None), - enable_local_disk_encryption=d.get('enable_local_disk_encryption', None), - gcp_attributes=GcpAttributes.from_dict(d['gcp_attributes']) if 'gcp_attributes' in d else None, - instance_pool_id=d.get('instance_pool_id', None), - node_type_id=d.get('node_type_id', None), - num_workers=d.get('num_workers', None), - policy_id=d.get('policy_id', None), - runtime_engine=RuntimeEngine.__members__.get(d['runtime_engine'], None) - if 'runtime_engine' in d else None, - spark_conf=d.get('spark_conf', None), - spark_env_vars=d.get('spark_env_vars', None), - spark_version=d.get('spark_version', None), - ssh_public_keys=d.get('ssh_public_keys', None), - workload_type=WorkloadType.from_dict(d['workload_type']) if 'workload_type' in d else None) + return cls(apply_policy_default_values=d.get('apply_policy_default_values', None), + autoscale=AutoScale.from_dict(d['autoscale']) + if 'autoscale' in d and d['autoscale'] is not None else None, + autotermination_minutes=d.get('autotermination_minutes', None), + aws_attributes=AwsAttributes.from_dict(d['aws_attributes']) + if 'aws_attributes' in d and d['aws_attributes'] is not None else None, + azure_attributes=AzureAttributes.from_dict(d['azure_attributes']) + if 'azure_attributes' in d and d['azure_attributes'] is not None else None, + cluster_log_conf=ClusterLogConf.from_dict(d['cluster_log_conf']) + if 'cluster_log_conf' in d and d['cluster_log_conf'] is not None else None, + cluster_name=d.get('cluster_name', None), + cluster_source=ClusterSource.__members__.get(d['cluster_source'], None) + if 'cluster_source' in d else None, + custom_tags=d.get('custom_tags', None), + driver_instance_pool_id=d.get('driver_instance_pool_id', None), + driver_node_type_id=d.get('driver_node_type_id', None), + enable_elastic_disk=d.get('enable_elastic_disk', None), + enable_local_disk_encryption=d.get('enable_local_disk_encryption', None), + gcp_attributes=GcpAttributes.from_dict(d['gcp_attributes']) + if 'gcp_attributes' in d and d['gcp_attributes'] is not None else None, + instance_pool_id=d.get('instance_pool_id', None), + node_type_id=d.get('node_type_id', None), + num_workers=d.get('num_workers', None), + policy_id=d.get('policy_id', None), + runtime_engine=RuntimeEngine.__members__.get(d['runtime_engine'], None) + if 'runtime_engine' in d else None, + spark_conf=d.get('spark_conf', None), + spark_env_vars=d.get('spark_env_vars', None), + spark_version=d.get('spark_version', None), + ssh_public_keys=d.get('ssh_public_keys', None), + workload_type=WorkloadType.from_dict(d['workload_type']) + if 'workload_type' in d and d['workload_type'] is not None else None) @dataclass @@ -823,36 +838,39 @@ def as_dict(self) -> dict: @classmethod def from_dict(cls, d: Dict[str, any]) -> 'EditCluster': - return cls( - apply_policy_default_values=d.get('apply_policy_default_values', None), - autoscale=AutoScale.from_dict(d['autoscale']) if 'autoscale' in d else None, - autotermination_minutes=d.get('autotermination_minutes', None), - aws_attributes=AwsAttributes.from_dict(d['aws_attributes']) if 'aws_attributes' in d else None, - azure_attributes=AzureAttributes.from_dict(d['azure_attributes']) - if 'azure_attributes' in d else None, - cluster_id=d.get('cluster_id', None), - cluster_log_conf=ClusterLogConf.from_dict(d['cluster_log_conf']) - if 'cluster_log_conf' in d else None, - cluster_name=d.get('cluster_name', None), - cluster_source=ClusterSource.__members__.get(d['cluster_source'], None) - if 'cluster_source' in d else None, - custom_tags=d.get('custom_tags', None), - driver_instance_pool_id=d.get('driver_instance_pool_id', None), - driver_node_type_id=d.get('driver_node_type_id', None), - enable_elastic_disk=d.get('enable_elastic_disk', None), - enable_local_disk_encryption=d.get('enable_local_disk_encryption', None), - gcp_attributes=GcpAttributes.from_dict(d['gcp_attributes']) if 'gcp_attributes' in d else None, - instance_pool_id=d.get('instance_pool_id', None), - node_type_id=d.get('node_type_id', None), - num_workers=d.get('num_workers', None), - policy_id=d.get('policy_id', None), - runtime_engine=RuntimeEngine.__members__.get(d['runtime_engine'], None) - if 'runtime_engine' in d else None, - spark_conf=d.get('spark_conf', None), - spark_env_vars=d.get('spark_env_vars', None), - spark_version=d.get('spark_version', None), - ssh_public_keys=d.get('ssh_public_keys', None), - workload_type=WorkloadType.from_dict(d['workload_type']) if 'workload_type' in d else None) + return cls(apply_policy_default_values=d.get('apply_policy_default_values', None), + autoscale=AutoScale.from_dict(d['autoscale']) + if 'autoscale' in d and d['autoscale'] is not None else None, + autotermination_minutes=d.get('autotermination_minutes', None), + aws_attributes=AwsAttributes.from_dict(d['aws_attributes']) + if 'aws_attributes' in d and d['aws_attributes'] is not None else None, + azure_attributes=AzureAttributes.from_dict(d['azure_attributes']) + if 'azure_attributes' in d and d['azure_attributes'] is not None else None, + cluster_id=d.get('cluster_id', None), + cluster_log_conf=ClusterLogConf.from_dict(d['cluster_log_conf']) + if 'cluster_log_conf' in d and d['cluster_log_conf'] is not None else None, + cluster_name=d.get('cluster_name', None), + cluster_source=ClusterSource.__members__.get(d['cluster_source'], None) + if 'cluster_source' in d else None, + custom_tags=d.get('custom_tags', None), + driver_instance_pool_id=d.get('driver_instance_pool_id', None), + driver_node_type_id=d.get('driver_node_type_id', None), + enable_elastic_disk=d.get('enable_elastic_disk', None), + enable_local_disk_encryption=d.get('enable_local_disk_encryption', None), + gcp_attributes=GcpAttributes.from_dict(d['gcp_attributes']) + if 'gcp_attributes' in d and d['gcp_attributes'] is not None else None, + instance_pool_id=d.get('instance_pool_id', None), + node_type_id=d.get('node_type_id', None), + num_workers=d.get('num_workers', None), + policy_id=d.get('policy_id', None), + runtime_engine=RuntimeEngine.__members__.get(d['runtime_engine'], None) + if 'runtime_engine' in d else None, + spark_conf=d.get('spark_conf', None), + spark_env_vars=d.get('spark_env_vars', None), + spark_version=d.get('spark_version', None), + ssh_public_keys=d.get('ssh_public_keys', None), + workload_type=WorkloadType.from_dict(d['workload_type']) + if 'workload_type' in d and d['workload_type'] is not None else None) @dataclass @@ -903,9 +921,11 @@ def as_dict(self) -> dict: @classmethod def from_dict(cls, d: Dict[str, any]) -> 'EventDetails': - return cls(attributes=ClusterAttributes.from_dict(d['attributes']) if 'attributes' in d else None, + return cls(attributes=ClusterAttributes.from_dict(d['attributes']) + if 'attributes' in d and d['attributes'] is not None else None, cause=EventDetailsCause.__members__.get(d['cause'], None) if 'cause' in d else None, - cluster_size=ClusterSize.from_dict(d['cluster_size']) if 'cluster_size' in d else None, + cluster_size=ClusterSize.from_dict(d['cluster_size']) + if 'cluster_size' in d and d['cluster_size'] is not None else None, current_num_vcpus=d.get('current_num_vcpus', None), current_num_workers=d.get('current_num_workers', None), did_not_expand_reason=d.get('did_not_expand_reason', None), @@ -917,11 +937,12 @@ def from_dict(cls, d: Dict[str, any]) -> 'EventDetails': instance_id=d.get('instance_id', None), job_run_name=d.get('job_run_name', None), previous_attributes=ClusterAttributes.from_dict(d['previous_attributes']) - if 'previous_attributes' in d else None, + if 'previous_attributes' in d and d['previous_attributes'] is not None else None, previous_cluster_size=ClusterSize.from_dict(d['previous_cluster_size']) - if 'previous_cluster_size' in d else None, + if 'previous_cluster_size' in d and d['previous_cluster_size'] is not None else None, previous_disk_size=d.get('previous_disk_size', None), - reason=TerminationReason.from_dict(d['reason']) if 'reason' in d else None, + reason=TerminationReason.from_dict(d['reason']) + if 'reason' in d and d['reason'] is not None else None, target_num_vcpus=d.get('target_num_vcpus', None), target_num_workers=d.get('target_num_workers', None), user=d.get('user', None)) @@ -1058,7 +1079,8 @@ def as_dict(self) -> dict: def from_dict(cls, d: Dict[str, any]) -> 'GetEventsResponse': return cls(events=[ClusterEvent.from_dict(v) for v in d['events']] if 'events' in d and d['events'] is not None else None, - next_page=GetEvents.from_dict(d['next_page']) if 'next_page' in d else None, + next_page=GetEvents.from_dict(d['next_page']) + if 'next_page' in d and d['next_page'] is not None else None, total_count=d.get('total_count', None)) @@ -1286,9 +1308,10 @@ def from_dict(cls, d: Dict[str, any]) -> 'NodeType': is_hidden=d.get('is_hidden', None), is_io_cache_enabled=d.get('is_io_cache_enabled', None), memory_mb=d.get('memory_mb', None), - node_info=CloudProviderNodeInfo.from_dict(d['node_info']) if 'node_info' in d else None, + node_info=CloudProviderNodeInfo.from_dict(d['node_info']) + if 'node_info' in d and d['node_info'] is not None else None, node_instance_type=NodeInstanceType.from_dict(d['node_instance_type']) - if 'node_instance_type' in d else None, + if 'node_instance_type' in d and d['node_instance_type'] is not None else None, node_type_id=d.get('node_type_id', None), num_cores=d.get('num_cores', None), num_gpus=d.get('num_gpus', None), @@ -1356,7 +1379,8 @@ def as_dict(self) -> dict: @classmethod def from_dict(cls, d: Dict[str, any]) -> 'ResizeCluster': - return cls(autoscale=AutoScale.from_dict(d['autoscale']) if 'autoscale' in d else None, + return cls(autoscale=AutoScale.from_dict(d['autoscale']) + if 'autoscale' in d and d['autoscale'] is not None else None, cluster_id=d.get('cluster_id', None), num_workers=d.get('num_workers', None)) @@ -1444,7 +1468,7 @@ def from_dict(cls, d: Dict[str, any]) -> 'SparkNode': return cls(host_private_ip=d.get('host_private_ip', None), instance_id=d.get('instance_id', None), node_aws_attributes=SparkNodeAwsAttributes.from_dict(d['node_aws_attributes']) - if 'node_aws_attributes' in d else None, + if 'node_aws_attributes' in d and d['node_aws_attributes'] is not None else None, node_id=d.get('node_id', None), private_ip=d.get('private_ip', None), public_dns=d.get('public_dns', None), @@ -1646,7 +1670,8 @@ def as_dict(self) -> dict: @classmethod def from_dict(cls, d: Dict[str, any]) -> 'WorkloadType': - return cls(clients=ClientsTypes.from_dict(d['clients']) if 'clients' in d else None) + return cls(clients=ClientsTypes.from_dict(d['clients'] + ) if 'clients' in d and d['clients'] is not None else None) class ClustersAPI: diff --git a/databricks/sdk/service/commands.py b/databricks/sdk/service/commands.py index 5479f367..dbe24773 100755 --- a/databricks/sdk/service/commands.py +++ b/databricks/sdk/service/commands.py @@ -91,9 +91,10 @@ def as_dict(self) -> dict: @classmethod def from_dict(cls, d: Dict[str, any]) -> 'CommandStatusResponse': - return cls(id=d.get('id', None), - results=Results.from_dict(d['results']) if 'results' in d else None, - status=CommandStatus.__members__.get(d['status'], None) if 'status' in d else None) + return cls( + id=d.get('id', None), + results=Results.from_dict(d['results']) if 'results' in d and d['results'] is not None else None, + status=CommandStatus.__members__.get(d['status'], None) if 'status' in d else None) class ContextStatus(Enum): diff --git a/databricks/sdk/service/deployment.py b/databricks/sdk/service/deployment.py index 154ab353..19047a02 100755 --- a/databricks/sdk/service/deployment.py +++ b/databricks/sdk/service/deployment.py @@ -25,7 +25,8 @@ def as_dict(self) -> dict: @classmethod def from_dict(cls, d: Dict[str, any]) -> 'AwsCredentials': - return cls(sts_role=StsRole.from_dict(d['sts_role']) if 'sts_role' in d else None) + return cls(sts_role=StsRole.from_dict(d['sts_role'] + ) if 'sts_role' in d and d['sts_role'] is not None else None) @dataclass @@ -65,7 +66,8 @@ def as_dict(self) -> dict: @classmethod def from_dict(cls, d: Dict[str, any]) -> 'CloudResourceContainer': - return cls(gcp=CustomerFacingGcpCloudResourceContainer.from_dict(d['gcp']) if 'gcp' in d else None) + return cls(gcp=CustomerFacingGcpCloudResourceContainer. + from_dict(d['gcp']) if 'gcp' in d and d['gcp'] is not None else None) @dataclass @@ -100,7 +102,8 @@ def as_dict(self) -> dict: @classmethod def from_dict(cls, d: Dict[str, any]) -> 'CreateCredentialAwsCredentials': - return cls(sts_role=CreateCredentialStsRole.from_dict(d['sts_role']) if 'sts_role' in d else None) + return cls(sts_role=CreateCredentialStsRole. + from_dict(d['sts_role']) if 'sts_role' in d and d['sts_role'] is not None else None) @dataclass @@ -117,7 +120,7 @@ def as_dict(self) -> dict: @classmethod def from_dict(cls, d: Dict[str, any]) -> 'CreateCredentialRequest': return cls(aws_credentials=CreateCredentialAwsCredentials.from_dict(d['aws_credentials']) - if 'aws_credentials' in d else None, + if 'aws_credentials' in d and d['aws_credentials'] is not None else None, credentials_name=d.get('credentials_name', None)) @@ -148,9 +151,9 @@ def as_dict(self) -> dict: @classmethod def from_dict(cls, d: Dict[str, any]) -> 'CreateCustomerManagedKeyRequest': - return cls( - aws_key_info=CreateAwsKeyInfo.from_dict(d['aws_key_info']) if 'aws_key_info' in d else None, - use_cases=d.get('use_cases', None)) + return cls(aws_key_info=CreateAwsKeyInfo.from_dict(d['aws_key_info']) + if 'aws_key_info' in d and d['aws_key_info'] is not None else None, + use_cases=d.get('use_cases', None)) @dataclass @@ -174,14 +177,14 @@ def as_dict(self) -> dict: @classmethod def from_dict(cls, d: Dict[str, any]) -> 'CreateNetworkRequest': - return cls( - gcp_network_info=GcpNetworkInfo.from_dict(d['gcp_network_info']) - if 'gcp_network_info' in d else None, - network_name=d.get('network_name', None), - security_group_ids=d.get('security_group_ids', None), - subnet_ids=d.get('subnet_ids', None), - vpc_endpoints=NetworkVpcEndpoints.from_dict(d['vpc_endpoints']) if 'vpc_endpoints' in d else None, - vpc_id=d.get('vpc_id', None)) + return cls(gcp_network_info=GcpNetworkInfo.from_dict(d['gcp_network_info']) + if 'gcp_network_info' in d and d['gcp_network_info'] is not None else None, + network_name=d.get('network_name', None), + security_group_ids=d.get('security_group_ids', None), + subnet_ids=d.get('subnet_ids', None), + vpc_endpoints=NetworkVpcEndpoints.from_dict(d['vpc_endpoints']) + if 'vpc_endpoints' in d and d['vpc_endpoints'] is not None else None, + vpc_id=d.get('vpc_id', None)) @dataclass @@ -199,7 +202,7 @@ def as_dict(self) -> dict: @classmethod def from_dict(cls, d: Dict[str, any]) -> 'CreateStorageConfigurationRequest': return cls(root_bucket_info=RootBucketInfo.from_dict(d['root_bucket_info']) - if 'root_bucket_info' in d else None, + if 'root_bucket_info' in d and d['root_bucket_info'] is not None else None, storage_configuration_name=d.get('storage_configuration_name', None)) @@ -265,7 +268,7 @@ def from_dict(cls, d: Dict[str, any]) -> 'CreateWorkspaceRequest': return cls(aws_region=d.get('aws_region', None), cloud=d.get('cloud', None), cloud_resource_container=CloudResourceContainer.from_dict(d['cloud_resource_container']) - if 'cloud_resource_container' in d else None, + if 'cloud_resource_container' in d and d['cloud_resource_container'] is not None else None, credentials_id=d.get('credentials_id', None), deployment_name=d.get('deployment_name', None), location=d.get('location', None), @@ -301,7 +304,7 @@ def as_dict(self) -> dict: def from_dict(cls, d: Dict[str, any]) -> 'Credential': return cls(account_id=d.get('account_id', None), aws_credentials=AwsCredentials.from_dict(d['aws_credentials']) - if 'aws_credentials' in d else None, + if 'aws_credentials' in d and d['aws_credentials'] is not None else None, creation_time=d.get('creation_time', None), credentials_id=d.get('credentials_id', None), credentials_name=d.get('credentials_name', None)) @@ -343,7 +346,8 @@ def as_dict(self) -> dict: @classmethod def from_dict(cls, d: Dict[str, any]) -> 'CustomerManagedKey': return cls(account_id=d.get('account_id', None), - aws_key_info=AwsKeyInfo.from_dict(d['aws_key_info']) if 'aws_key_info' in d else None, + aws_key_info=AwsKeyInfo.from_dict(d['aws_key_info']) + if 'aws_key_info' in d and d['aws_key_info'] is not None else None, creation_time=d.get('creation_time', None), customer_managed_key_id=d.get('customer_managed_key_id', None), use_cases=d.get('use_cases', None)) @@ -622,23 +626,23 @@ def as_dict(self) -> dict: @classmethod def from_dict(cls, d: Dict[str, any]) -> 'Network': - return cls( - account_id=d.get('account_id', None), - creation_time=d.get('creation_time', None), - error_messages=[NetworkHealth.from_dict(v) for v in d['error_messages']] - if 'error_messages' in d and d['error_messages'] is not None else None, - gcp_network_info=GcpNetworkInfo.from_dict(d['gcp_network_info']) - if 'gcp_network_info' in d else None, - network_id=d.get('network_id', None), - network_name=d.get('network_name', None), - security_group_ids=d.get('security_group_ids', None), - subnet_ids=d.get('subnet_ids', None), - vpc_endpoints=NetworkVpcEndpoints.from_dict(d['vpc_endpoints']) if 'vpc_endpoints' in d else None, - vpc_id=d.get('vpc_id', None), - vpc_status=VpcStatus.__members__.get(d['vpc_status'], None) if 'vpc_status' in d else None, - warning_messages=[NetworkWarning.from_dict(v) for v in d['warning_messages']] - if 'warning_messages' in d and d['warning_messages'] is not None else None, - workspace_id=d.get('workspace_id', None)) + return cls(account_id=d.get('account_id', None), + creation_time=d.get('creation_time', None), + error_messages=[NetworkHealth.from_dict(v) for v in d['error_messages']] + if 'error_messages' in d and d['error_messages'] is not None else None, + gcp_network_info=GcpNetworkInfo.from_dict(d['gcp_network_info']) + if 'gcp_network_info' in d and d['gcp_network_info'] is not None else None, + network_id=d.get('network_id', None), + network_name=d.get('network_name', None), + security_group_ids=d.get('security_group_ids', None), + subnet_ids=d.get('subnet_ids', None), + vpc_endpoints=NetworkVpcEndpoints.from_dict(d['vpc_endpoints']) + if 'vpc_endpoints' in d and d['vpc_endpoints'] is not None else None, + vpc_id=d.get('vpc_id', None), + vpc_status=VpcStatus.__members__.get(d['vpc_status'], None) if 'vpc_status' in d else None, + warning_messages=[NetworkWarning.from_dict(v) for v in d['warning_messages']] + if 'warning_messages' in d and d['warning_messages'] is not None else None, + workspace_id=d.get('workspace_id', None)) @dataclass @@ -796,7 +800,7 @@ def from_dict(cls, d: Dict[str, any]) -> 'StorageConfiguration': return cls(account_id=d.get('account_id', None), creation_time=d.get('creation_time', None), root_bucket_info=RootBucketInfo.from_dict(d['root_bucket_info']) - if 'root_bucket_info' in d else None, + if 'root_bucket_info' in d and d['root_bucket_info'] is not None else None, storage_configuration_id=d.get('storage_configuration_id', None), storage_configuration_name=d.get('storage_configuration_name', None)) @@ -993,31 +997,32 @@ def as_dict(self) -> dict: @classmethod def from_dict(cls, d: Dict[str, any]) -> 'Workspace': - return cls(account_id=d.get('account_id', None), - aws_region=d.get('aws_region', None), - cloud=d.get('cloud', None), - cloud_resource_container=CloudResourceContainer.from_dict(d['cloud_resource_container']) - if 'cloud_resource_container' in d else None, - creation_time=d.get('creation_time', None), - credentials_id=d.get('credentials_id', None), - deployment_name=d.get('deployment_name', None), - gcp_managed_network_config=GcpManagedNetworkConfig.from_dict( - d['gcp_managed_network_config']) if 'gcp_managed_network_config' in d else None, - gke_config=GkeConfig.from_dict(d['gke_config']) if 'gke_config' in d else None, - location=d.get('location', None), - managed_services_customer_managed_key_id=d.get('managed_services_customer_managed_key_id', - None), - network_id=d.get('network_id', None), - pricing_tier=PricingTier.__members__.get(d['pricing_tier'], None) - if 'pricing_tier' in d else None, - private_access_settings_id=d.get('private_access_settings_id', None), - storage_configuration_id=d.get('storage_configuration_id', None), - storage_customer_managed_key_id=d.get('storage_customer_managed_key_id', None), - workspace_id=d.get('workspace_id', None), - workspace_name=d.get('workspace_name', None), - workspace_status=WorkspaceStatus.__members__.get(d['workspace_status'], None) - if 'workspace_status' in d else None, - workspace_status_message=d.get('workspace_status_message', None)) + return cls( + account_id=d.get('account_id', None), + aws_region=d.get('aws_region', None), + cloud=d.get('cloud', None), + cloud_resource_container=CloudResourceContainer.from_dict(d['cloud_resource_container']) + if 'cloud_resource_container' in d and d['cloud_resource_container'] is not None else None, + creation_time=d.get('creation_time', None), + credentials_id=d.get('credentials_id', None), + deployment_name=d.get('deployment_name', None), + gcp_managed_network_config=GcpManagedNetworkConfig.from_dict(d['gcp_managed_network_config']) + if 'gcp_managed_network_config' in d and d['gcp_managed_network_config'] is not None else None, + gke_config=GkeConfig.from_dict(d['gke_config']) + if 'gke_config' in d and d['gke_config'] is not None else None, + location=d.get('location', None), + managed_services_customer_managed_key_id=d.get('managed_services_customer_managed_key_id', None), + network_id=d.get('network_id', None), + pricing_tier=PricingTier.__members__.get(d['pricing_tier'], None) + if 'pricing_tier' in d else None, + private_access_settings_id=d.get('private_access_settings_id', None), + storage_configuration_id=d.get('storage_configuration_id', None), + storage_customer_managed_key_id=d.get('storage_customer_managed_key_id', None), + workspace_id=d.get('workspace_id', None), + workspace_name=d.get('workspace_name', None), + workspace_status=WorkspaceStatus.__members__.get(d['workspace_status'], None) + if 'workspace_status' in d else None, + workspace_status_message=d.get('workspace_status_message', None)) class WorkspaceStatus(Enum): diff --git a/databricks/sdk/service/endpoints.py b/databricks/sdk/service/endpoints.py index 66b43405..0d4bcb55 100755 --- a/databricks/sdk/service/endpoints.py +++ b/databricks/sdk/service/endpoints.py @@ -50,7 +50,8 @@ def as_dict(self) -> dict: @classmethod def from_dict(cls, d: Dict[str, any]) -> 'CreateServingEndpoint': - return cls(config=EndpointCoreConfigInput.from_dict(d['config']) if 'config' in d else None, + return cls(config=EndpointCoreConfigInput.from_dict(d['config']) + if 'config' in d and d['config'] is not None else None, name=d.get('name', None)) @@ -76,11 +77,11 @@ def as_dict(self) -> dict: @classmethod def from_dict(cls, d: Dict[str, any]) -> 'EndpointCoreConfigInput': - return cls( - name=d.get('name', None), - served_models=[ServedModelInput.from_dict(v) for v in d['served_models']] - if 'served_models' in d and d['served_models'] is not None else None, - traffic_config=TrafficConfig.from_dict(d['traffic_config']) if 'traffic_config' in d else None) + return cls(name=d.get('name', None), + served_models=[ServedModelInput.from_dict(v) for v in d['served_models']] + if 'served_models' in d and d['served_models'] is not None else None, + traffic_config=TrafficConfig.from_dict(d['traffic_config']) + if 'traffic_config' in d and d['traffic_config'] is not None else None) @dataclass @@ -98,11 +99,11 @@ def as_dict(self) -> dict: @classmethod def from_dict(cls, d: Dict[str, any]) -> 'EndpointCoreConfigOutput': - return cls( - config_version=d.get('config_version', None), - served_models=[ServedModelOutput.from_dict(v) for v in d['served_models']] - if 'served_models' in d and d['served_models'] is not None else None, - traffic_config=TrafficConfig.from_dict(d['traffic_config']) if 'traffic_config' in d else None) + return cls(config_version=d.get('config_version', None), + served_models=[ServedModelOutput.from_dict(v) for v in d['served_models']] + if 'served_models' in d and d['served_models'] is not None else None, + traffic_config=TrafficConfig.from_dict(d['traffic_config']) + if 'traffic_config' in d and d['traffic_config'] is not None else None) @dataclass @@ -137,12 +138,12 @@ def as_dict(self) -> dict: @classmethod def from_dict(cls, d: Dict[str, any]) -> 'EndpointPendingConfig': - return cls( - config_version=d.get('config_version', None), - served_models=[ServedModelOutput.from_dict(v) for v in d['served_models']] - if 'served_models' in d and d['served_models'] is not None else None, - start_time=d.get('start_time', None), - traffic_config=TrafficConfig.from_dict(d['traffic_config']) if 'traffic_config' in d else None) + return cls(config_version=d.get('config_version', None), + served_models=[ServedModelOutput.from_dict(v) for v in d['served_models']] + if 'served_models' in d and d['served_models'] is not None else None, + start_time=d.get('start_time', None), + traffic_config=TrafficConfig.from_dict(d['traffic_config']) + if 'traffic_config' in d and d['traffic_config'] is not None else None) @dataclass @@ -311,14 +312,15 @@ def as_dict(self) -> dict: @classmethod def from_dict(cls, d: Dict[str, any]) -> 'ServedModelOutput': - return cls(creation_timestamp=d.get('creation_timestamp', None), - creator=d.get('creator', None), - model_name=d.get('model_name', None), - model_version=d.get('model_version', None), - name=d.get('name', None), - scale_to_zero_enabled=d.get('scale_to_zero_enabled', None), - state=ServedModelState.from_dict(d['state']) if 'state' in d else None, - workload_size=d.get('workload_size', None)) + return cls( + creation_timestamp=d.get('creation_timestamp', None), + creator=d.get('creator', None), + model_name=d.get('model_name', None), + model_version=d.get('model_version', None), + name=d.get('name', None), + scale_to_zero_enabled=d.get('scale_to_zero_enabled', None), + state=ServedModelState.from_dict(d['state']) if 'state' in d and d['state'] is not None else None, + workload_size=d.get('workload_size', None)) @dataclass @@ -414,13 +416,15 @@ def as_dict(self) -> dict: @classmethod def from_dict(cls, d: Dict[str, any]) -> 'ServingEndpoint': - return cls(config=EndpointCoreConfigSummary.from_dict(d['config']) if 'config' in d else None, - creation_timestamp=d.get('creation_timestamp', None), - creator=d.get('creator', None), - id=d.get('id', None), - last_updated_timestamp=d.get('last_updated_timestamp', None), - name=d.get('name', None), - state=EndpointState.from_dict(d['state']) if 'state' in d else None) + return cls( + config=EndpointCoreConfigSummary.from_dict(d['config']) + if 'config' in d and d['config'] is not None else None, + creation_timestamp=d.get('creation_timestamp', None), + creator=d.get('creator', None), + id=d.get('id', None), + last_updated_timestamp=d.get('last_updated_timestamp', None), + name=d.get('name', None), + state=EndpointState.from_dict(d['state']) if 'state' in d and d['state'] is not None else None) @dataclass @@ -450,17 +454,19 @@ def as_dict(self) -> dict: @classmethod def from_dict(cls, d: Dict[str, any]) -> 'ServingEndpointDetailed': - return cls(config=EndpointCoreConfigOutput.from_dict(d['config']) if 'config' in d else None, - creation_timestamp=d.get('creation_timestamp', None), - creator=d.get('creator', None), - id=d.get('id', None), - last_updated_timestamp=d.get('last_updated_timestamp', None), - name=d.get('name', None), - pending_config=EndpointPendingConfig.from_dict(d['pending_config']) - if 'pending_config' in d else None, - permission_level=ServingEndpointDetailedPermissionLevel.__members__.get( - d['permission_level'], None) if 'permission_level' in d else None, - state=EndpointState.from_dict(d['state']) if 'state' in d else None) + return cls( + config=EndpointCoreConfigOutput.from_dict(d['config']) + if 'config' in d and d['config'] is not None else None, + creation_timestamp=d.get('creation_timestamp', None), + creator=d.get('creator', None), + id=d.get('id', None), + last_updated_timestamp=d.get('last_updated_timestamp', None), + name=d.get('name', None), + pending_config=EndpointPendingConfig.from_dict(d['pending_config']) + if 'pending_config' in d and d['pending_config'] is not None else None, + permission_level=ServingEndpointDetailedPermissionLevel.__members__.get( + d['permission_level'], None) if 'permission_level' in d else None, + state=EndpointState.from_dict(d['state']) if 'state' in d and d['state'] is not None else None) class ServingEndpointDetailedPermissionLevel(Enum): diff --git a/databricks/sdk/service/instancepools.py b/databricks/sdk/service/instancepools.py index 314e9b64..7e730b53 100755 --- a/databricks/sdk/service/instancepools.py +++ b/databricks/sdk/service/instancepools.py @@ -49,24 +49,25 @@ def as_dict(self) -> dict: @classmethod def from_dict(cls, d: Dict[str, any]) -> 'CreateInstancePool': - return cls( - aws_attributes=InstancePoolAwsAttributes.from_dict(d['aws_attributes']) - if 'aws_attributes' in d else None, - azure_attributes=InstancePoolAzureAttributes.from_dict(d['azure_attributes']) - if 'azure_attributes' in d else None, - custom_tags=d.get('custom_tags', None), - disk_spec=DiskSpec.from_dict(d['disk_spec']) if 'disk_spec' in d else None, - enable_elastic_disk=d.get('enable_elastic_disk', None), - idle_instance_autotermination_minutes=d.get('idle_instance_autotermination_minutes', None), - instance_pool_fleet_attributes=InstancePoolFleetAttributes.from_dict( - d['instance_pool_fleet_attributes']) if 'instance_pool_fleet_attributes' in d else None, - instance_pool_name=d.get('instance_pool_name', None), - max_capacity=d.get('max_capacity', None), - min_idle_instances=d.get('min_idle_instances', None), - node_type_id=d.get('node_type_id', None), - preloaded_docker_images=[DockerImage.from_dict(v) for v in d['preloaded_docker_images']] - if 'preloaded_docker_images' in d and d['preloaded_docker_images'] is not None else None, - preloaded_spark_versions=d.get('preloaded_spark_versions', None)) + return cls(aws_attributes=InstancePoolAwsAttributes.from_dict(d['aws_attributes']) + if 'aws_attributes' in d and d['aws_attributes'] is not None else None, + azure_attributes=InstancePoolAzureAttributes.from_dict(d['azure_attributes']) + if 'azure_attributes' in d and d['azure_attributes'] is not None else None, + custom_tags=d.get('custom_tags', None), + disk_spec=DiskSpec.from_dict(d['disk_spec']) + if 'disk_spec' in d and d['disk_spec'] is not None else None, + enable_elastic_disk=d.get('enable_elastic_disk', None), + idle_instance_autotermination_minutes=d.get('idle_instance_autotermination_minutes', None), + instance_pool_fleet_attributes=InstancePoolFleetAttributes.from_dict( + d['instance_pool_fleet_attributes']) if 'instance_pool_fleet_attributes' in d + and d['instance_pool_fleet_attributes'] is not None else None, + instance_pool_name=d.get('instance_pool_name', None), + max_capacity=d.get('max_capacity', None), + min_idle_instances=d.get('min_idle_instances', None), + node_type_id=d.get('node_type_id', None), + preloaded_docker_images=[DockerImage.from_dict(v) for v in d['preloaded_docker_images']] + if 'preloaded_docker_images' in d and d['preloaded_docker_images'] is not None else None, + preloaded_spark_versions=d.get('preloaded_spark_versions', None)) @dataclass @@ -120,7 +121,8 @@ def from_dict(cls, d: Dict[str, any]) -> 'DiskSpec': disk_iops=d.get('disk_iops', None), disk_size=d.get('disk_size', None), disk_throughput=d.get('disk_throughput', None), - disk_type=DiskType.from_dict(d['disk_type']) if 'disk_type' in d else None) + disk_type=DiskType.from_dict(d['disk_type']) + if 'disk_type' in d and d['disk_type'] is not None else None) @dataclass @@ -183,7 +185,8 @@ def as_dict(self) -> dict: @classmethod def from_dict(cls, d: Dict[str, any]) -> 'DockerImage': - return cls(basic_auth=DockerBasicAuth.from_dict(d['basic_auth']) if 'basic_auth' in d else None, + return cls(basic_auth=DockerBasicAuth.from_dict(d['basic_auth']) + if 'basic_auth' in d and d['basic_auth'] is not None else None, url=d.get('url', None)) @@ -228,25 +231,26 @@ def as_dict(self) -> dict: @classmethod def from_dict(cls, d: Dict[str, any]) -> 'EditInstancePool': - return cls( - aws_attributes=InstancePoolAwsAttributes.from_dict(d['aws_attributes']) - if 'aws_attributes' in d else None, - azure_attributes=InstancePoolAzureAttributes.from_dict(d['azure_attributes']) - if 'azure_attributes' in d else None, - custom_tags=d.get('custom_tags', None), - disk_spec=DiskSpec.from_dict(d['disk_spec']) if 'disk_spec' in d else None, - enable_elastic_disk=d.get('enable_elastic_disk', None), - idle_instance_autotermination_minutes=d.get('idle_instance_autotermination_minutes', None), - instance_pool_fleet_attributes=InstancePoolFleetAttributes.from_dict( - d['instance_pool_fleet_attributes']) if 'instance_pool_fleet_attributes' in d else None, - instance_pool_id=d.get('instance_pool_id', None), - instance_pool_name=d.get('instance_pool_name', None), - max_capacity=d.get('max_capacity', None), - min_idle_instances=d.get('min_idle_instances', None), - node_type_id=d.get('node_type_id', None), - preloaded_docker_images=[DockerImage.from_dict(v) for v in d['preloaded_docker_images']] - if 'preloaded_docker_images' in d and d['preloaded_docker_images'] is not None else None, - preloaded_spark_versions=d.get('preloaded_spark_versions', None)) + return cls(aws_attributes=InstancePoolAwsAttributes.from_dict(d['aws_attributes']) + if 'aws_attributes' in d and d['aws_attributes'] is not None else None, + azure_attributes=InstancePoolAzureAttributes.from_dict(d['azure_attributes']) + if 'azure_attributes' in d and d['azure_attributes'] is not None else None, + custom_tags=d.get('custom_tags', None), + disk_spec=DiskSpec.from_dict(d['disk_spec']) + if 'disk_spec' in d and d['disk_spec'] is not None else None, + enable_elastic_disk=d.get('enable_elastic_disk', None), + idle_instance_autotermination_minutes=d.get('idle_instance_autotermination_minutes', None), + instance_pool_fleet_attributes=InstancePoolFleetAttributes.from_dict( + d['instance_pool_fleet_attributes']) if 'instance_pool_fleet_attributes' in d + and d['instance_pool_fleet_attributes'] is not None else None, + instance_pool_id=d.get('instance_pool_id', None), + instance_pool_name=d.get('instance_pool_name', None), + max_capacity=d.get('max_capacity', None), + min_idle_instances=d.get('min_idle_instances', None), + node_type_id=d.get('node_type_id', None), + preloaded_docker_images=[DockerImage.from_dict(v) for v in d['preloaded_docker_images']] + if 'preloaded_docker_images' in d and d['preloaded_docker_images'] is not None else None, + preloaded_spark_versions=d.get('preloaded_spark_versions', None)) @dataclass @@ -390,29 +394,32 @@ def as_dict(self) -> dict: @classmethod def from_dict(cls, d: Dict[str, any]) -> 'GetInstancePool': - return cls( - aws_attributes=InstancePoolAwsAttributes.from_dict(d['aws_attributes']) - if 'aws_attributes' in d else None, - azure_attributes=InstancePoolAzureAttributes.from_dict(d['azure_attributes']) - if 'azure_attributes' in d else None, - custom_tags=d.get('custom_tags', None), - default_tags=d.get('default_tags', None), - disk_spec=DiskSpec.from_dict(d['disk_spec']) if 'disk_spec' in d else None, - enable_elastic_disk=d.get('enable_elastic_disk', None), - idle_instance_autotermination_minutes=d.get('idle_instance_autotermination_minutes', None), - instance_pool_fleet_attributes=InstancePoolFleetAttributes.from_dict( - d['instance_pool_fleet_attributes']) if 'instance_pool_fleet_attributes' in d else None, - instance_pool_id=d.get('instance_pool_id', None), - instance_pool_name=d.get('instance_pool_name', None), - max_capacity=d.get('max_capacity', None), - min_idle_instances=d.get('min_idle_instances', None), - node_type_id=d.get('node_type_id', None), - preloaded_docker_images=[DockerImage.from_dict(v) for v in d['preloaded_docker_images']] - if 'preloaded_docker_images' in d and d['preloaded_docker_images'] is not None else None, - preloaded_spark_versions=d.get('preloaded_spark_versions', None), - state=InstancePoolState.__members__.get(d['state'], None) if 'state' in d else None, - stats=InstancePoolStats.from_dict(d['stats']) if 'stats' in d else None, - status=InstancePoolStatus.from_dict(d['status']) if 'status' in d else None) + return cls(aws_attributes=InstancePoolAwsAttributes.from_dict(d['aws_attributes']) + if 'aws_attributes' in d and d['aws_attributes'] is not None else None, + azure_attributes=InstancePoolAzureAttributes.from_dict(d['azure_attributes']) + if 'azure_attributes' in d and d['azure_attributes'] is not None else None, + custom_tags=d.get('custom_tags', None), + default_tags=d.get('default_tags', None), + disk_spec=DiskSpec.from_dict(d['disk_spec']) + if 'disk_spec' in d and d['disk_spec'] is not None else None, + enable_elastic_disk=d.get('enable_elastic_disk', None), + idle_instance_autotermination_minutes=d.get('idle_instance_autotermination_minutes', None), + instance_pool_fleet_attributes=InstancePoolFleetAttributes.from_dict( + d['instance_pool_fleet_attributes']) if 'instance_pool_fleet_attributes' in d + and d['instance_pool_fleet_attributes'] is not None else None, + instance_pool_id=d.get('instance_pool_id', None), + instance_pool_name=d.get('instance_pool_name', None), + max_capacity=d.get('max_capacity', None), + min_idle_instances=d.get('min_idle_instances', None), + node_type_id=d.get('node_type_id', None), + preloaded_docker_images=[DockerImage.from_dict(v) for v in d['preloaded_docker_images']] + if 'preloaded_docker_images' in d and d['preloaded_docker_images'] is not None else None, + preloaded_spark_versions=d.get('preloaded_spark_versions', None), + state=InstancePoolState.__members__.get(d['state'], None) if 'state' in d else None, + stats=InstancePoolStats.from_dict(d['stats']) + if 'stats' in d and d['stats'] is not None else None, + status=InstancePoolStatus.from_dict(d['status']) + if 'status' in d and d['status'] is not None else None) @dataclass @@ -464,29 +471,32 @@ def as_dict(self) -> dict: @classmethod def from_dict(cls, d: Dict[str, any]) -> 'InstancePoolAndStats': - return cls( - aws_attributes=InstancePoolAwsAttributes.from_dict(d['aws_attributes']) - if 'aws_attributes' in d else None, - azure_attributes=InstancePoolAzureAttributes.from_dict(d['azure_attributes']) - if 'azure_attributes' in d else None, - custom_tags=d.get('custom_tags', None), - default_tags=d.get('default_tags', None), - disk_spec=DiskSpec.from_dict(d['disk_spec']) if 'disk_spec' in d else None, - enable_elastic_disk=d.get('enable_elastic_disk', None), - idle_instance_autotermination_minutes=d.get('idle_instance_autotermination_minutes', None), - instance_pool_fleet_attributes=InstancePoolFleetAttributes.from_dict( - d['instance_pool_fleet_attributes']) if 'instance_pool_fleet_attributes' in d else None, - instance_pool_id=d.get('instance_pool_id', None), - instance_pool_name=d.get('instance_pool_name', None), - max_capacity=d.get('max_capacity', None), - min_idle_instances=d.get('min_idle_instances', None), - node_type_id=d.get('node_type_id', None), - preloaded_docker_images=[DockerImage.from_dict(v) for v in d['preloaded_docker_images']] - if 'preloaded_docker_images' in d and d['preloaded_docker_images'] is not None else None, - preloaded_spark_versions=d.get('preloaded_spark_versions', None), - state=InstancePoolState.__members__.get(d['state'], None) if 'state' in d else None, - stats=InstancePoolStats.from_dict(d['stats']) if 'stats' in d else None, - status=InstancePoolStatus.from_dict(d['status']) if 'status' in d else None) + return cls(aws_attributes=InstancePoolAwsAttributes.from_dict(d['aws_attributes']) + if 'aws_attributes' in d and d['aws_attributes'] is not None else None, + azure_attributes=InstancePoolAzureAttributes.from_dict(d['azure_attributes']) + if 'azure_attributes' in d and d['azure_attributes'] is not None else None, + custom_tags=d.get('custom_tags', None), + default_tags=d.get('default_tags', None), + disk_spec=DiskSpec.from_dict(d['disk_spec']) + if 'disk_spec' in d and d['disk_spec'] is not None else None, + enable_elastic_disk=d.get('enable_elastic_disk', None), + idle_instance_autotermination_minutes=d.get('idle_instance_autotermination_minutes', None), + instance_pool_fleet_attributes=InstancePoolFleetAttributes.from_dict( + d['instance_pool_fleet_attributes']) if 'instance_pool_fleet_attributes' in d + and d['instance_pool_fleet_attributes'] is not None else None, + instance_pool_id=d.get('instance_pool_id', None), + instance_pool_name=d.get('instance_pool_name', None), + max_capacity=d.get('max_capacity', None), + min_idle_instances=d.get('min_idle_instances', None), + node_type_id=d.get('node_type_id', None), + preloaded_docker_images=[DockerImage.from_dict(v) for v in d['preloaded_docker_images']] + if 'preloaded_docker_images' in d and d['preloaded_docker_images'] is not None else None, + preloaded_spark_versions=d.get('preloaded_spark_versions', None), + state=InstancePoolState.__members__.get(d['state'], None) if 'state' in d else None, + stats=InstancePoolStats.from_dict(d['stats']) + if 'stats' in d and d['stats'] is not None else None, + status=InstancePoolStatus.from_dict(d['status']) + if 'status' in d and d['status'] is not None else None) @dataclass @@ -566,9 +576,9 @@ def as_dict(self) -> dict: def from_dict(cls, d: Dict[str, any]) -> 'InstancePoolFleetAttributes': return cls( fleet_on_demand_option=FleetOnDemandOption.from_dict(d['fleet_on_demand_option']) - if 'fleet_on_demand_option' in d else None, + if 'fleet_on_demand_option' in d and d['fleet_on_demand_option'] is not None else None, fleet_spot_option=FleetSpotOption.from_dict(d['fleet_spot_option']) - if 'fleet_spot_option' in d else None, + if 'fleet_spot_option' in d and d['fleet_spot_option'] is not None else None, launch_template_overrides=[ FleetLaunchTemplateOverride.from_dict(v) for v in d['launch_template_overrides'] ] if 'launch_template_overrides' in d and d['launch_template_overrides'] is not None else None) diff --git a/databricks/sdk/service/ipaccesslists.py b/databricks/sdk/service/ipaccesslists.py index 87077e63..6cd67f64 100755 --- a/databricks/sdk/service/ipaccesslists.py +++ b/databricks/sdk/service/ipaccesslists.py @@ -41,8 +41,8 @@ def as_dict(self) -> dict: @classmethod def from_dict(cls, d: Dict[str, any]) -> 'CreateIpAccessListResponse': - return cls( - ip_access_list=IpAccessListInfo.from_dict(d['ip_access_list']) if 'ip_access_list' in d else None) + return cls(ip_access_list=IpAccessListInfo.from_dict(d['ip_access_list']) + if 'ip_access_list' in d and d['ip_access_list'] is not None else None) @dataclass @@ -63,8 +63,8 @@ def as_dict(self) -> dict: @classmethod def from_dict(cls, d: Dict[str, any]) -> 'FetchIpAccessListResponse': - return cls( - ip_access_list=IpAccessListInfo.from_dict(d['ip_access_list']) if 'ip_access_list' in d else None) + return cls(ip_access_list=IpAccessListInfo.from_dict(d['ip_access_list']) + if 'ip_access_list' in d and d['ip_access_list'] is not None else None) @dataclass diff --git a/databricks/sdk/service/jobs.py b/databricks/sdk/service/jobs.py index de296636..abd9645f 100755 --- a/databricks/sdk/service/jobs.py +++ b/databricks/sdk/service/jobs.py @@ -38,7 +38,8 @@ def from_dict(cls, d: Dict[str, any]) -> 'BaseJob': return cls(created_time=d.get('created_time', None), creator_user_name=d.get('creator_user_name', None), job_id=d.get('job_id', None), - settings=JobSettings.from_dict(d['settings']) if 'settings' in d else None) + settings=JobSettings.from_dict(d['settings']) + if 'settings' in d and d['settings'] is not None else None) @dataclass @@ -103,29 +104,33 @@ def from_dict(cls, d: Dict[str, any]) -> 'BaseRun': return cls(attempt_number=d.get('attempt_number', None), cleanup_duration=d.get('cleanup_duration', None), cluster_instance=ClusterInstance.from_dict(d['cluster_instance']) - if 'cluster_instance' in d else None, - cluster_spec=ClusterSpec.from_dict(d['cluster_spec']) if 'cluster_spec' in d else None, - continuous=Continuous.from_dict(d['continuous']) if 'continuous' in d else None, + if 'cluster_instance' in d and d['cluster_instance'] is not None else None, + cluster_spec=ClusterSpec.from_dict(d['cluster_spec']) + if 'cluster_spec' in d and d['cluster_spec'] is not None else None, + continuous=Continuous.from_dict(d['continuous']) + if 'continuous' in d and d['continuous'] is not None else None, creator_user_name=d.get('creator_user_name', None), end_time=d.get('end_time', None), execution_duration=d.get('execution_duration', None), - git_source=GitSource.from_dict(d['git_source']) if 'git_source' in d else None, + git_source=GitSource.from_dict(d['git_source']) + if 'git_source' in d and d['git_source'] is not None else None, job_clusters=[JobCluster.from_dict(v) for v in d['job_clusters']] if 'job_clusters' in d and d['job_clusters'] is not None else None, job_id=d.get('job_id', None), number_in_job=d.get('number_in_job', None), original_attempt_run_id=d.get('original_attempt_run_id', None), overriding_parameters=RunParameters.from_dict(d['overriding_parameters']) - if 'overriding_parameters' in d else None, + if 'overriding_parameters' in d and d['overriding_parameters'] is not None else None, run_duration=d.get('run_duration', None), run_id=d.get('run_id', None), run_name=d.get('run_name', None), run_page_url=d.get('run_page_url', None), run_type=RunType.__members__.get(d['run_type'], None) if 'run_type' in d else None, - schedule=CronSchedule.from_dict(d['schedule']) if 'schedule' in d else None, + schedule=CronSchedule.from_dict(d['schedule']) + if 'schedule' in d and d['schedule'] is not None else None, setup_duration=d.get('setup_duration', None), start_time=d.get('start_time', None), - state=RunState.from_dict(d['state']) if 'state' in d else None, + state=RunState.from_dict(d['state']) if 'state' in d and d['state'] is not None else None, tasks=[RunTask.from_dict(v) for v in d['tasks']] if 'tasks' in d and d['tasks'] is not None else None, trigger=TriggerType.__members__.get(d['trigger'], None) if 'trigger' in d else None) @@ -192,7 +197,8 @@ def as_dict(self) -> dict: def from_dict(cls, d: Dict[str, any]) -> 'ClusterSpec': return cls(existing_cluster_id=d.get('existing_cluster_id', None), libraries=d.get('libraries', None), - new_cluster=BaseClusterInfo.from_dict(d['new_cluster']) if 'new_cluster' in d else None) + new_cluster=BaseClusterInfo.from_dict(d['new_cluster']) + if 'new_cluster' in d and d['new_cluster'] is not None else None) @dataclass @@ -255,23 +261,27 @@ def as_dict(self) -> dict: @classmethod def from_dict(cls, d: Dict[str, any]) -> 'CreateJob': return cls(access_control_list=d.get('access_control_list', None), - continuous=Continuous.from_dict(d['continuous']) if 'continuous' in d else None, + continuous=Continuous.from_dict(d['continuous']) + if 'continuous' in d and d['continuous'] is not None else None, email_notifications=JobEmailNotifications.from_dict(d['email_notifications']) - if 'email_notifications' in d else None, + if 'email_notifications' in d and d['email_notifications'] is not None else None, format=CreateJobFormat.__members__.get(d['format'], None) if 'format' in d else None, - git_source=GitSource.from_dict(d['git_source']) if 'git_source' in d else None, + git_source=GitSource.from_dict(d['git_source']) + if 'git_source' in d and d['git_source'] is not None else None, job_clusters=[JobCluster.from_dict(v) for v in d['job_clusters']] if 'job_clusters' in d and d['job_clusters'] is not None else None, max_concurrent_runs=d.get('max_concurrent_runs', None), name=d.get('name', None), - schedule=CronSchedule.from_dict(d['schedule']) if 'schedule' in d else None, + schedule=CronSchedule.from_dict(d['schedule']) + if 'schedule' in d and d['schedule'] is not None else None, tags=d.get('tags', None), tasks=[JobTaskSettings.from_dict(v) for v in d['tasks']] if 'tasks' in d and d['tasks'] is not None else None, timeout_seconds=d.get('timeout_seconds', None), - trigger=TriggerSettings.from_dict(d['trigger']) if 'trigger' in d else None, + trigger=TriggerSettings.from_dict(d['trigger']) + if 'trigger' in d and d['trigger'] is not None else None, webhook_notifications=JobWebhookNotifications.from_dict(d['webhook_notifications']) - if 'webhook_notifications' in d else None) + if 'webhook_notifications' in d and d['webhook_notifications'] is not None else None) class CreateJobFormat(Enum): @@ -510,7 +520,8 @@ def from_dict(cls, d: Dict[str, any]) -> 'GitSource': git_commit=d.get('git_commit', None), git_provider=GitSourceGitProvider.__members__.get(d['git_provider'], None) if 'git_provider' in d else None, - git_snapshot=GitSnapshot.from_dict(d['git_snapshot']) if 'git_snapshot' in d else None, + git_snapshot=GitSnapshot.from_dict(d['git_snapshot']) + if 'git_snapshot' in d and d['git_snapshot'] is not None else None, git_tag=d.get('git_tag', None), git_url=d.get('git_url', None)) @@ -553,9 +564,10 @@ def from_dict(cls, d: Dict[str, any]) -> 'Job': creator_user_name=d.get('creator_user_name', None), job_id=d.get('job_id', None), run_as_user_name=d.get('run_as_user_name', None), - settings=JobSettings.from_dict(d['settings']) if 'settings' in d else None, + settings=JobSettings.from_dict(d['settings']) + if 'settings' in d and d['settings'] is not None else None, trigger_history=TriggerHistory.from_dict(d['trigger_history']) - if 'trigger_history' in d else None) + if 'trigger_history' in d and d['trigger_history'] is not None else None) @dataclass @@ -572,7 +584,8 @@ def as_dict(self) -> dict: @classmethod def from_dict(cls, d: Dict[str, any]) -> 'JobCluster': return cls(job_cluster_key=d.get('job_cluster_key', None), - new_cluster=BaseClusterInfo.from_dict(d['new_cluster']) if 'new_cluster' in d else None) + new_cluster=BaseClusterInfo.from_dict(d['new_cluster']) + if 'new_cluster' in d and d['new_cluster'] is not None else None) @dataclass @@ -633,23 +646,27 @@ def as_dict(self) -> dict: @classmethod def from_dict(cls, d: Dict[str, any]) -> 'JobSettings': - return cls(continuous=Continuous.from_dict(d['continuous']) if 'continuous' in d else None, + return cls(continuous=Continuous.from_dict(d['continuous']) + if 'continuous' in d and d['continuous'] is not None else None, email_notifications=JobEmailNotifications.from_dict(d['email_notifications']) - if 'email_notifications' in d else None, + if 'email_notifications' in d and d['email_notifications'] is not None else None, format=JobSettingsFormat.__members__.get(d['format'], None) if 'format' in d else None, - git_source=GitSource.from_dict(d['git_source']) if 'git_source' in d else None, + git_source=GitSource.from_dict(d['git_source']) + if 'git_source' in d and d['git_source'] is not None else None, job_clusters=[JobCluster.from_dict(v) for v in d['job_clusters']] if 'job_clusters' in d and d['job_clusters'] is not None else None, max_concurrent_runs=d.get('max_concurrent_runs', None), name=d.get('name', None), - schedule=CronSchedule.from_dict(d['schedule']) if 'schedule' in d else None, + schedule=CronSchedule.from_dict(d['schedule']) + if 'schedule' in d and d['schedule'] is not None else None, tags=d.get('tags', None), tasks=[JobTaskSettings.from_dict(v) for v in d['tasks']] if 'tasks' in d and d['tasks'] is not None else None, timeout_seconds=d.get('timeout_seconds', None), - trigger=TriggerSettings.from_dict(d['trigger']) if 'trigger' in d else None, + trigger=TriggerSettings.from_dict(d['trigger']) + if 'trigger' in d and d['trigger'] is not None else None, webhook_notifications=JobWebhookNotifications.from_dict(d['webhook_notifications']) - if 'webhook_notifications' in d else None) + if 'webhook_notifications' in d and d['webhook_notifications'] is not None else None) class JobSettingsFormat(Enum): @@ -709,32 +726,37 @@ def as_dict(self) -> dict: @classmethod def from_dict(cls, d: Dict[str, any]) -> 'JobTaskSettings': - return cls( - dbt_task=DbtTask.from_dict(d['dbt_task']) if 'dbt_task' in d else None, - depends_on=[TaskDependenciesItem.from_dict(v) for v in d['depends_on']] - if 'depends_on' in d and d['depends_on'] is not None else None, - description=d.get('description', None), - email_notifications=JobEmailNotifications.from_dict(d['email_notifications']) - if 'email_notifications' in d else None, - existing_cluster_id=d.get('existing_cluster_id', None), - job_cluster_key=d.get('job_cluster_key', None), - libraries=d.get('libraries', None), - max_retries=d.get('max_retries', None), - min_retry_interval_millis=d.get('min_retry_interval_millis', None), - new_cluster=BaseClusterInfo.from_dict(d['new_cluster']) if 'new_cluster' in d else None, - notebook_task=NotebookTask.from_dict(d['notebook_task']) if 'notebook_task' in d else None, - pipeline_task=PipelineTask.from_dict(d['pipeline_task']) if 'pipeline_task' in d else None, - python_wheel_task=PythonWheelTask.from_dict(d['python_wheel_task']) - if 'python_wheel_task' in d else None, - retry_on_timeout=d.get('retry_on_timeout', None), - spark_jar_task=SparkJarTask.from_dict(d['spark_jar_task']) if 'spark_jar_task' in d else None, - spark_python_task=SparkPythonTask.from_dict(d['spark_python_task']) - if 'spark_python_task' in d else None, - spark_submit_task=SparkSubmitTask.from_dict(d['spark_submit_task']) - if 'spark_submit_task' in d else None, - sql_task=SqlTask.from_dict(d['sql_task']) if 'sql_task' in d else None, - task_key=d.get('task_key', None), - timeout_seconds=d.get('timeout_seconds', None)) + return cls(dbt_task=DbtTask.from_dict(d['dbt_task']) + if 'dbt_task' in d and d['dbt_task'] is not None else None, + depends_on=[TaskDependenciesItem.from_dict(v) for v in d['depends_on']] + if 'depends_on' in d and d['depends_on'] is not None else None, + description=d.get('description', None), + email_notifications=JobEmailNotifications.from_dict(d['email_notifications']) + if 'email_notifications' in d and d['email_notifications'] is not None else None, + existing_cluster_id=d.get('existing_cluster_id', None), + job_cluster_key=d.get('job_cluster_key', None), + libraries=d.get('libraries', None), + max_retries=d.get('max_retries', None), + min_retry_interval_millis=d.get('min_retry_interval_millis', None), + new_cluster=BaseClusterInfo.from_dict(d['new_cluster']) + if 'new_cluster' in d and d['new_cluster'] is not None else None, + notebook_task=NotebookTask.from_dict(d['notebook_task']) + if 'notebook_task' in d and d['notebook_task'] is not None else None, + pipeline_task=PipelineTask.from_dict(d['pipeline_task']) + if 'pipeline_task' in d and d['pipeline_task'] is not None else None, + python_wheel_task=PythonWheelTask.from_dict(d['python_wheel_task']) + if 'python_wheel_task' in d and d['python_wheel_task'] is not None else None, + retry_on_timeout=d.get('retry_on_timeout', None), + spark_jar_task=SparkJarTask.from_dict(d['spark_jar_task']) + if 'spark_jar_task' in d and d['spark_jar_task'] is not None else None, + spark_python_task=SparkPythonTask.from_dict(d['spark_python_task']) + if 'spark_python_task' in d and d['spark_python_task'] is not None else None, + spark_submit_task=SparkSubmitTask.from_dict(d['spark_submit_task']) + if 'spark_submit_task' in d and d['spark_submit_task'] is not None else None, + sql_task=SqlTask.from_dict(d['sql_task']) + if 'sql_task' in d and d['sql_task'] is not None else None, + task_key=d.get('task_key', None), + timeout_seconds=d.get('timeout_seconds', None)) @dataclass @@ -992,7 +1014,7 @@ def from_dict(cls, d: Dict[str, any]) -> 'RepairHistoryItem': return cls(end_time=d.get('end_time', None), id=d.get('id', None), start_time=d.get('start_time', None), - state=RunState.from_dict(d['state']) if 'state' in d else None, + state=RunState.from_dict(d['state']) if 'state' in d and d['state'] is not None else None, task_run_ids=d.get('task_run_ids', None), type=RepairHistoryItemType.__members__.get(d['type'], None) if 'type' in d else None) @@ -1042,7 +1064,7 @@ def from_dict(cls, d: Dict[str, any]) -> 'RepairRun': latest_repair_id=d.get('latest_repair_id', None), notebook_params=d.get('notebook_params', None), pipeline_params=PipelineParams.from_dict(d['pipeline_params']) - if 'pipeline_params' in d else None, + if 'pipeline_params' in d and d['pipeline_params'] is not None else None, python_named_params=d.get('python_named_params', None), python_params=d.get('python_params', None), rerun_all_failed_tasks=d.get('rerun_all_failed_tasks', None), @@ -1080,7 +1102,8 @@ def as_dict(self) -> dict: @classmethod def from_dict(cls, d: Dict[str, any]) -> 'ResetJob': return cls(job_id=d.get('job_id', None), - new_settings=JobSettings.from_dict(d['new_settings']) if 'new_settings' in d else None) + new_settings=JobSettings.from_dict(d['new_settings']) + if 'new_settings' in d and d['new_settings'] is not None else None) @dataclass @@ -1147,20 +1170,23 @@ def from_dict(cls, d: Dict[str, any]) -> 'Run': return cls(attempt_number=d.get('attempt_number', None), cleanup_duration=d.get('cleanup_duration', None), cluster_instance=ClusterInstance.from_dict(d['cluster_instance']) - if 'cluster_instance' in d else None, - cluster_spec=ClusterSpec.from_dict(d['cluster_spec']) if 'cluster_spec' in d else None, - continuous=Continuous.from_dict(d['continuous']) if 'continuous' in d else None, + if 'cluster_instance' in d and d['cluster_instance'] is not None else None, + cluster_spec=ClusterSpec.from_dict(d['cluster_spec']) + if 'cluster_spec' in d and d['cluster_spec'] is not None else None, + continuous=Continuous.from_dict(d['continuous']) + if 'continuous' in d and d['continuous'] is not None else None, creator_user_name=d.get('creator_user_name', None), end_time=d.get('end_time', None), execution_duration=d.get('execution_duration', None), - git_source=GitSource.from_dict(d['git_source']) if 'git_source' in d else None, + git_source=GitSource.from_dict(d['git_source']) + if 'git_source' in d and d['git_source'] is not None else None, job_clusters=[JobCluster.from_dict(v) for v in d['job_clusters']] if 'job_clusters' in d and d['job_clusters'] is not None else None, job_id=d.get('job_id', None), number_in_job=d.get('number_in_job', None), original_attempt_run_id=d.get('original_attempt_run_id', None), overriding_parameters=RunParameters.from_dict(d['overriding_parameters']) - if 'overriding_parameters' in d else None, + if 'overriding_parameters' in d and d['overriding_parameters'] is not None else None, repair_history=[RepairHistoryItem.from_dict(v) for v in d['repair_history']] if 'repair_history' in d and d['repair_history'] is not None else None, run_duration=d.get('run_duration', None), @@ -1168,10 +1194,11 @@ def from_dict(cls, d: Dict[str, any]) -> 'Run': run_name=d.get('run_name', None), run_page_url=d.get('run_page_url', None), run_type=RunType.__members__.get(d['run_type'], None) if 'run_type' in d else None, - schedule=CronSchedule.from_dict(d['schedule']) if 'schedule' in d else None, + schedule=CronSchedule.from_dict(d['schedule']) + if 'schedule' in d and d['schedule'] is not None else None, setup_duration=d.get('setup_duration', None), start_time=d.get('start_time', None), - state=RunState.from_dict(d['state']) if 'state' in d else None, + state=RunState.from_dict(d['state']) if 'state' in d and d['state'] is not None else None, tasks=[RunTask.from_dict(v) for v in d['tasks']] if 'tasks' in d and d['tasks'] is not None else None, trigger=TriggerType.__members__.get(d['trigger'], None) if 'trigger' in d else None) @@ -1225,7 +1252,7 @@ def from_dict(cls, d: Dict[str, any]) -> 'RunNow': job_id=d.get('job_id', None), notebook_params=d.get('notebook_params', None), pipeline_params=PipelineParams.from_dict(d['pipeline_params']) - if 'pipeline_params' in d else None, + if 'pipeline_params' in d and d['pipeline_params'] is not None else None, python_named_params=d.get('python_named_params', None), python_params=d.get('python_params', None), spark_submit_params=d.get('spark_submit_params', None), @@ -1273,15 +1300,18 @@ def as_dict(self) -> dict: @classmethod def from_dict(cls, d: Dict[str, any]) -> 'RunOutput': - return cls(dbt_output=DbtOutput.from_dict(d['dbt_output']) if 'dbt_output' in d else None, - error=d.get('error', None), - error_trace=d.get('error_trace', None), - logs=d.get('logs', None), - logs_truncated=d.get('logs_truncated', None), - metadata=Run.from_dict(d['metadata']) if 'metadata' in d else None, - notebook_output=NotebookOutput.from_dict(d['notebook_output']) - if 'notebook_output' in d else None, - sql_output=SqlOutput.from_dict(d['sql_output']) if 'sql_output' in d else None) + return cls( + dbt_output=DbtOutput.from_dict(d['dbt_output']) + if 'dbt_output' in d and d['dbt_output'] is not None else None, + error=d.get('error', None), + error_trace=d.get('error_trace', None), + logs=d.get('logs', None), + logs_truncated=d.get('logs_truncated', None), + metadata=Run.from_dict(d['metadata']) if 'metadata' in d and d['metadata'] is not None else None, + notebook_output=NotebookOutput.from_dict(d['notebook_output']) + if 'notebook_output' in d and d['notebook_output'] is not None else None, + sql_output=SqlOutput.from_dict(d['sql_output']) + if 'sql_output' in d and d['sql_output'] is not None else None) @dataclass @@ -1313,7 +1343,7 @@ def from_dict(cls, d: Dict[str, any]) -> 'RunParameters': jar_params=d.get('jar_params', None), notebook_params=d.get('notebook_params', None), pipeline_params=PipelineParams.from_dict(d['pipeline_params']) - if 'pipeline_params' in d else None, + if 'pipeline_params' in d and d['pipeline_params'] is not None else None, python_named_params=d.get('python_named_params', None), python_params=d.get('python_params', None), spark_submit_params=d.get('spark_submit_params', None), @@ -1390,23 +1420,26 @@ def as_dict(self) -> dict: @classmethod def from_dict(cls, d: Dict[str, any]) -> 'RunSubmitTaskSettings': - return cls( - depends_on=[TaskDependenciesItem.from_dict(v) for v in d['depends_on']] - if 'depends_on' in d and d['depends_on'] is not None else None, - existing_cluster_id=d.get('existing_cluster_id', None), - libraries=d.get('libraries', None), - new_cluster=BaseClusterInfo.from_dict(d['new_cluster']) if 'new_cluster' in d else None, - notebook_task=NotebookTask.from_dict(d['notebook_task']) if 'notebook_task' in d else None, - pipeline_task=PipelineTask.from_dict(d['pipeline_task']) if 'pipeline_task' in d else None, - python_wheel_task=PythonWheelTask.from_dict(d['python_wheel_task']) - if 'python_wheel_task' in d else None, - spark_jar_task=SparkJarTask.from_dict(d['spark_jar_task']) if 'spark_jar_task' in d else None, - spark_python_task=SparkPythonTask.from_dict(d['spark_python_task']) - if 'spark_python_task' in d else None, - spark_submit_task=SparkSubmitTask.from_dict(d['spark_submit_task']) - if 'spark_submit_task' in d else None, - task_key=d.get('task_key', None), - timeout_seconds=d.get('timeout_seconds', None)) + return cls(depends_on=[TaskDependenciesItem.from_dict(v) for v in d['depends_on']] + if 'depends_on' in d and d['depends_on'] is not None else None, + existing_cluster_id=d.get('existing_cluster_id', None), + libraries=d.get('libraries', None), + new_cluster=BaseClusterInfo.from_dict(d['new_cluster']) + if 'new_cluster' in d and d['new_cluster'] is not None else None, + notebook_task=NotebookTask.from_dict(d['notebook_task']) + if 'notebook_task' in d and d['notebook_task'] is not None else None, + pipeline_task=PipelineTask.from_dict(d['pipeline_task']) + if 'pipeline_task' in d and d['pipeline_task'] is not None else None, + python_wheel_task=PythonWheelTask.from_dict(d['python_wheel_task']) + if 'python_wheel_task' in d and d['python_wheel_task'] is not None else None, + spark_jar_task=SparkJarTask.from_dict(d['spark_jar_task']) + if 'spark_jar_task' in d and d['spark_jar_task'] is not None else None, + spark_python_task=SparkPythonTask.from_dict(d['spark_python_task']) + if 'spark_python_task' in d and d['spark_python_task'] is not None else None, + spark_submit_task=SparkSubmitTask.from_dict(d['spark_submit_task']) + if 'spark_submit_task' in d and d['spark_submit_task'] is not None else None, + task_key=d.get('task_key', None), + timeout_seconds=d.get('timeout_seconds', None)) @dataclass @@ -1466,36 +1499,42 @@ def as_dict(self) -> dict: @classmethod def from_dict(cls, d: Dict[str, any]) -> 'RunTask': - return cls( - attempt_number=d.get('attempt_number', None), - cleanup_duration=d.get('cleanup_duration', None), - cluster_instance=ClusterInstance.from_dict(d['cluster_instance']) - if 'cluster_instance' in d else None, - dbt_task=DbtTask.from_dict(d['dbt_task']) if 'dbt_task' in d else None, - depends_on=[TaskDependenciesItem.from_dict(v) for v in d['depends_on']] - if 'depends_on' in d and d['depends_on'] is not None else None, - description=d.get('description', None), - end_time=d.get('end_time', None), - execution_duration=d.get('execution_duration', None), - existing_cluster_id=d.get('existing_cluster_id', None), - git_source=GitSource.from_dict(d['git_source']) if 'git_source' in d else None, - libraries=d.get('libraries', None), - new_cluster=BaseClusterInfo.from_dict(d['new_cluster']) if 'new_cluster' in d else None, - notebook_task=NotebookTask.from_dict(d['notebook_task']) if 'notebook_task' in d else None, - pipeline_task=PipelineTask.from_dict(d['pipeline_task']) if 'pipeline_task' in d else None, - python_wheel_task=PythonWheelTask.from_dict(d['python_wheel_task']) - if 'python_wheel_task' in d else None, - run_id=d.get('run_id', None), - setup_duration=d.get('setup_duration', None), - spark_jar_task=SparkJarTask.from_dict(d['spark_jar_task']) if 'spark_jar_task' in d else None, - spark_python_task=SparkPythonTask.from_dict(d['spark_python_task']) - if 'spark_python_task' in d else None, - spark_submit_task=SparkSubmitTask.from_dict(d['spark_submit_task']) - if 'spark_submit_task' in d else None, - sql_task=SqlTask.from_dict(d['sql_task']) if 'sql_task' in d else None, - start_time=d.get('start_time', None), - state=RunState.from_dict(d['state']) if 'state' in d else None, - task_key=d.get('task_key', None)) + return cls(attempt_number=d.get('attempt_number', None), + cleanup_duration=d.get('cleanup_duration', None), + cluster_instance=ClusterInstance.from_dict(d['cluster_instance']) + if 'cluster_instance' in d and d['cluster_instance'] is not None else None, + dbt_task=DbtTask.from_dict(d['dbt_task']) + if 'dbt_task' in d and d['dbt_task'] is not None else None, + depends_on=[TaskDependenciesItem.from_dict(v) for v in d['depends_on']] + if 'depends_on' in d and d['depends_on'] is not None else None, + description=d.get('description', None), + end_time=d.get('end_time', None), + execution_duration=d.get('execution_duration', None), + existing_cluster_id=d.get('existing_cluster_id', None), + git_source=GitSource.from_dict(d['git_source']) + if 'git_source' in d and d['git_source'] is not None else None, + libraries=d.get('libraries', None), + new_cluster=BaseClusterInfo.from_dict(d['new_cluster']) + if 'new_cluster' in d and d['new_cluster'] is not None else None, + notebook_task=NotebookTask.from_dict(d['notebook_task']) + if 'notebook_task' in d and d['notebook_task'] is not None else None, + pipeline_task=PipelineTask.from_dict(d['pipeline_task']) + if 'pipeline_task' in d and d['pipeline_task'] is not None else None, + python_wheel_task=PythonWheelTask.from_dict(d['python_wheel_task']) + if 'python_wheel_task' in d and d['python_wheel_task'] is not None else None, + run_id=d.get('run_id', None), + setup_duration=d.get('setup_duration', None), + spark_jar_task=SparkJarTask.from_dict(d['spark_jar_task']) + if 'spark_jar_task' in d and d['spark_jar_task'] is not None else None, + spark_python_task=SparkPythonTask.from_dict(d['spark_python_task']) + if 'spark_python_task' in d and d['spark_python_task'] is not None else None, + spark_submit_task=SparkSubmitTask.from_dict(d['spark_submit_task']) + if 'spark_submit_task' in d and d['spark_submit_task'] is not None else None, + sql_task=SqlTask.from_dict(d['sql_task']) + if 'sql_task' in d and d['sql_task'] is not None else None, + start_time=d.get('start_time', None), + state=RunState.from_dict(d['state']) if 'state' in d and d['state'] is not None else None, + task_key=d.get('task_key', None)) class RunType(Enum): @@ -1609,7 +1648,8 @@ def as_dict(self) -> dict: @classmethod def from_dict(cls, d: Dict[str, any]) -> 'SqlDashboardOutput': return cls(warehouse_id=d.get('warehouse_id', None), - widgets=SqlDashboardWidgetOutput.from_dict(d['widgets']) if 'widgets' in d else None) + widgets=SqlDashboardWidgetOutput.from_dict(d['widgets']) + if 'widgets' in d and d['widgets'] is not None else None) @dataclass @@ -1635,14 +1675,15 @@ def as_dict(self) -> dict: @classmethod def from_dict(cls, d: Dict[str, any]) -> 'SqlDashboardWidgetOutput': - return cls(end_time=d.get('end_time', None), - error=SqlOutputError.from_dict(d['error']) if 'error' in d else None, - output_link=d.get('output_link', None), - start_time=d.get('start_time', None), - status=SqlDashboardWidgetOutputStatus.__members__.get(d['status'], None) - if 'status' in d else None, - widget_id=d.get('widget_id', None), - widget_title=d.get('widget_title', None)) + return cls( + end_time=d.get('end_time', None), + error=SqlOutputError.from_dict(d['error']) if 'error' in d and d['error'] is not None else None, + output_link=d.get('output_link', None), + start_time=d.get('start_time', None), + status=SqlDashboardWidgetOutputStatus.__members__.get(d['status'], None) + if 'status' in d else None, + widget_id=d.get('widget_id', None), + widget_title=d.get('widget_title', None)) class SqlDashboardWidgetOutputStatus(Enum): @@ -1670,10 +1711,12 @@ def as_dict(self) -> dict: @classmethod def from_dict(cls, d: Dict[str, any]) -> 'SqlOutput': - return cls(alert_output=SqlAlertOutput.from_dict(d['alert_output']) if 'alert_output' in d else None, + return cls(alert_output=SqlAlertOutput.from_dict(d['alert_output']) + if 'alert_output' in d and d['alert_output'] is not None else None, dashboard_output=SqlDashboardOutput.from_dict(d['dashboard_output']) - if 'dashboard_output' in d else None, - query_output=SqlQueryOutput.from_dict(d['query_output']) if 'query_output' in d else None) + if 'dashboard_output' in d and d['dashboard_output'] is not None else None, + query_output=SqlQueryOutput.from_dict(d['query_output']) + if 'query_output' in d and d['query_output'] is not None else None) @dataclass @@ -1747,11 +1790,13 @@ def as_dict(self) -> dict: @classmethod def from_dict(cls, d: Dict[str, any]) -> 'SqlTask': - return cls(alert=SqlTaskAlert.from_dict(d['alert']) if 'alert' in d else None, - dashboard=SqlTaskDashboard.from_dict(d['dashboard']) if 'dashboard' in d else None, - parameters=d.get('parameters', None), - query=SqlTaskQuery.from_dict(d['query']) if 'query' in d else None, - warehouse_id=d.get('warehouse_id', None)) + return cls( + alert=SqlTaskAlert.from_dict(d['alert']) if 'alert' in d and d['alert'] is not None else None, + dashboard=SqlTaskDashboard.from_dict(d['dashboard']) + if 'dashboard' in d and d['dashboard'] is not None else None, + parameters=d.get('parameters', None), + query=SqlTaskQuery.from_dict(d['query']) if 'query' in d and d['query'] is not None else None, + warehouse_id=d.get('warehouse_id', None)) @dataclass @@ -1853,14 +1898,15 @@ def as_dict(self) -> dict: @classmethod def from_dict(cls, d: Dict[str, any]) -> 'SubmitRun': return cls(access_control_list=d.get('access_control_list', None), - git_source=GitSource.from_dict(d['git_source']) if 'git_source' in d else None, + git_source=GitSource.from_dict(d['git_source']) + if 'git_source' in d and d['git_source'] is not None else None, idempotency_token=d.get('idempotency_token', None), run_name=d.get('run_name', None), tasks=[RunSubmitTaskSettings.from_dict(v) for v in d['tasks']] if 'tasks' in d and d['tasks'] is not None else None, timeout_seconds=d.get('timeout_seconds', None), webhook_notifications=JobWebhookNotifications.from_dict(d['webhook_notifications']) - if 'webhook_notifications' in d else None) + if 'webhook_notifications' in d and d['webhook_notifications'] is not None else None) @dataclass @@ -1926,11 +1972,12 @@ def as_dict(self) -> dict: @classmethod def from_dict(cls, d: Dict[str, any]) -> 'TriggerHistory': - return cls(last_failed=TriggerEvaluation.from_dict(d['last_failed']) if 'last_failed' in d else None, + return cls(last_failed=TriggerEvaluation.from_dict(d['last_failed']) + if 'last_failed' in d and d['last_failed'] is not None else None, last_not_triggered=TriggerEvaluation.from_dict(d['last_not_triggered']) - if 'last_not_triggered' in d else None, + if 'last_not_triggered' in d and d['last_not_triggered'] is not None else None, last_triggered=TriggerEvaluation.from_dict(d['last_triggered']) - if 'last_triggered' in d else None) + if 'last_triggered' in d and d['last_triggered'] is not None else None) @dataclass @@ -1947,7 +1994,7 @@ def as_dict(self) -> dict: @classmethod def from_dict(cls, d: Dict[str, any]) -> 'TriggerSettings': return cls(file_arrival=FileArrivalTriggerSettings.from_dict(d['file_arrival']) - if 'file_arrival' in d else None, + if 'file_arrival' in d and d['file_arrival'] is not None else None, pause_status=TriggerSettingsPauseStatus.__members__.get(d['pause_status'], None) if 'pause_status' in d else None) @@ -1985,7 +2032,8 @@ def as_dict(self) -> dict: def from_dict(cls, d: Dict[str, any]) -> 'UpdateJob': return cls(fields_to_remove=d.get('fields_to_remove', None), job_id=d.get('job_id', None), - new_settings=JobSettings.from_dict(d['new_settings']) if 'new_settings' in d else None) + new_settings=JobSettings.from_dict(d['new_settings']) + if 'new_settings' in d and d['new_settings'] is not None else None) @dataclass diff --git a/databricks/sdk/service/libraries.py b/databricks/sdk/service/libraries.py index 2316233e..872c367e 100755 --- a/databricks/sdk/service/libraries.py +++ b/databricks/sdk/service/libraries.py @@ -75,12 +75,13 @@ def as_dict(self) -> dict: @classmethod def from_dict(cls, d: Dict[str, any]) -> 'Library': - return cls(cran=RCranLibrary.from_dict(d['cran']) if 'cran' in d else None, - egg=d.get('egg', None), - jar=d.get('jar', None), - maven=MavenLibrary.from_dict(d['maven']) if 'maven' in d else None, - pypi=PythonPyPiLibrary.from_dict(d['pypi']) if 'pypi' in d else None, - whl=d.get('whl', None)) + return cls( + cran=RCranLibrary.from_dict(d['cran']) if 'cran' in d and d['cran'] is not None else None, + egg=d.get('egg', None), + jar=d.get('jar', None), + maven=MavenLibrary.from_dict(d['maven']) if 'maven' in d and d['maven'] is not None else None, + pypi=PythonPyPiLibrary.from_dict(d['pypi']) if 'pypi' in d and d['pypi'] is not None else None, + whl=d.get('whl', None)) @dataclass @@ -103,7 +104,7 @@ def as_dict(self) -> dict: def from_dict(cls, d: Dict[str, any]) -> 'LibraryFullStatus': return cls( is_library_for_all_clusters=d.get('is_library_for_all_clusters', None), - library=Library.from_dict(d['library']) if 'library' in d else None, + library=Library.from_dict(d['library']) if 'library' in d and d['library'] is not None else None, messages=d.get('messages', None), status=LibraryFullStatusStatus.__members__.get(d['status'], None) if 'status' in d else None) diff --git a/databricks/sdk/service/mlflow.py b/databricks/sdk/service/mlflow.py index 7ca6e27d..c1090afe 100755 --- a/databricks/sdk/service/mlflow.py +++ b/databricks/sdk/service/mlflow.py @@ -82,7 +82,8 @@ def as_dict(self) -> dict: @classmethod def from_dict(cls, d: Dict[str, any]) -> 'ApproveResponse': - return cls(activity=Activity.from_dict(d['activity']) if 'activity' in d else None) + return cls(activity=Activity.from_dict(d['activity'] + ) if 'activity' in d and d['activity'] is not None else None) @dataclass @@ -240,7 +241,8 @@ def as_dict(self) -> dict: @classmethod def from_dict(cls, d: Dict[str, any]) -> 'CreateModelVersionResponse': - return cls(model_version=ModelVersion.from_dict(d['model_version']) if 'model_version' in d else None) + return cls(model_version=ModelVersion.from_dict(d['model_version']) + if 'model_version' in d and d['model_version'] is not None else None) @dataclass @@ -275,8 +277,8 @@ def as_dict(self) -> dict: @classmethod def from_dict(cls, d: Dict[str, any]) -> 'CreateRegisteredModelResponse': - return cls(registered_model=RegisteredModel.from_dict(d['registered_model']) if 'registered_model' in - d else None) + return cls(registered_model=RegisteredModel.from_dict(d['registered_model']) + if 'registered_model' in d and d['registered_model'] is not None else None) @dataclass @@ -302,8 +304,10 @@ def as_dict(self) -> dict: def from_dict(cls, d: Dict[str, any]) -> 'CreateRegistryWebhook': return cls(description=d.get('description', None), events=d.get('events', None), - http_url_spec=HttpUrlSpec.from_dict(d['http_url_spec']) if 'http_url_spec' in d else None, - job_spec=JobSpec.from_dict(d['job_spec']) if 'job_spec' in d else None, + http_url_spec=HttpUrlSpec.from_dict(d['http_url_spec']) + if 'http_url_spec' in d and d['http_url_spec'] is not None else None, + job_spec=JobSpec.from_dict(d['job_spec']) + if 'job_spec' in d and d['job_spec'] is not None else None, model_name=d.get('model_name', None), status=RegistryWebhookStatus.__members__.get(d['status'], None) if 'status' in d else None) @@ -319,7 +323,8 @@ def as_dict(self) -> dict: @classmethod def from_dict(cls, d: Dict[str, any]) -> 'CreateResponse': - return cls(comment=CommentObject.from_dict(d['comment']) if 'comment' in d else None) + return cls(comment=CommentObject.from_dict(d['comment'] + ) if 'comment' in d and d['comment'] is not None else None) @dataclass @@ -357,7 +362,7 @@ def as_dict(self) -> dict: @classmethod def from_dict(cls, d: Dict[str, any]) -> 'CreateRunResponse': - return cls(run=Run.from_dict(d['run']) if 'run' in d else None) + return cls(run=Run.from_dict(d['run']) if 'run' in d and d['run'] is not None else None) @dataclass @@ -569,7 +574,8 @@ def as_dict(self) -> dict: @classmethod def from_dict(cls, d: Dict[str, any]) -> 'GetExperimentByNameResponse': - return cls(experiment=Experiment.from_dict(d['experiment']) if 'experiment' in d else None) + return cls(experiment=Experiment. + from_dict(d['experiment']) if 'experiment' in d and d['experiment'] is not None else None) @dataclass @@ -687,7 +693,8 @@ def as_dict(self) -> dict: @classmethod def from_dict(cls, d: Dict[str, any]) -> 'GetModelVersionResponse': - return cls(model_version=ModelVersion.from_dict(d['model_version']) if 'model_version' in d else None) + return cls(model_version=ModelVersion.from_dict(d['model_version']) + if 'model_version' in d and d['model_version'] is not None else None) @dataclass @@ -708,8 +715,8 @@ def as_dict(self) -> dict: @classmethod def from_dict(cls, d: Dict[str, any]) -> 'GetRegisteredModelResponse': - return cls(registered_model=RegisteredModel.from_dict(d['registered_model']) if 'registered_model' in - d else None) + return cls(registered_model=RegisteredModel.from_dict(d['registered_model']) + if 'registered_model' in d and d['registered_model'] is not None else None) @dataclass @@ -723,8 +730,8 @@ def as_dict(self) -> dict: @classmethod def from_dict(cls, d: Dict[str, any]) -> 'GetResponse': - return cls(registered_model=RegisteredModelDatabricks. - from_dict(d['registered_model']) if 'registered_model' in d else None) + return cls(registered_model=RegisteredModelDatabricks.from_dict(d['registered_model']) + if 'registered_model' in d and d['registered_model'] is not None else None) @dataclass @@ -746,7 +753,7 @@ def as_dict(self) -> dict: @classmethod def from_dict(cls, d: Dict[str, any]) -> 'GetRunResponse': - return cls(run=Run.from_dict(d['run']) if 'run' in d else None) + return cls(run=Run.from_dict(d['run']) if 'run' in d and d['run'] is not None else None) @dataclass @@ -1357,9 +1364,10 @@ def from_dict(cls, d: Dict[str, any]) -> 'RegistryWebhook': description=d.get('description', None), events=d.get('events', None), http_url_spec=HttpUrlSpecWithoutSecret.from_dict(d['http_url_spec']) - if 'http_url_spec' in d else None, + if 'http_url_spec' in d and d['http_url_spec'] is not None else None, id=d.get('id', None), - job_spec=JobSpecWithoutSecret.from_dict(d['job_spec']) if 'job_spec' in d else None, + job_spec=JobSpecWithoutSecret.from_dict(d['job_spec']) + if 'job_spec' in d and d['job_spec'] is not None else None, last_updated_timestamp=d.get('last_updated_timestamp', None), model_name=d.get('model_name', None), status=RegistryWebhookStatus.__members__.get(d['status'], None) if 'status' in d else None) @@ -1400,7 +1408,8 @@ def as_dict(self) -> dict: @classmethod def from_dict(cls, d: Dict[str, any]) -> 'RejectResponse': - return cls(activity=Activity.from_dict(d['activity']) if 'activity' in d else None) + return cls(activity=Activity.from_dict(d['activity'] + ) if 'activity' in d and d['activity'] is not None else None) @dataclass @@ -1453,8 +1462,8 @@ def as_dict(self) -> dict: @classmethod def from_dict(cls, d: Dict[str, any]) -> 'RenameRegisteredModelResponse': - return cls(registered_model=RegisteredModel.from_dict(d['registered_model']) if 'registered_model' in - d else None) + return cls(registered_model=RegisteredModel.from_dict(d['registered_model']) + if 'registered_model' in d and d['registered_model'] is not None else None) @dataclass @@ -1498,8 +1507,8 @@ def as_dict(self) -> dict: @classmethod def from_dict(cls, d: Dict[str, any]) -> 'Run': - return cls(data=RunData.from_dict(d['data']) if 'data' in d else None, - info=RunInfo.from_dict(d['info']) if 'info' in d else None) + return cls(data=RunData.from_dict(d['data']) if 'data' in d and d['data'] is not None else None, + info=RunInfo.from_dict(d['info']) if 'info' in d and d['info'] is not None else None) @dataclass @@ -1902,7 +1911,8 @@ def as_dict(self) -> dict: @classmethod def from_dict(cls, d: Dict[str, any]) -> 'TestRegistryWebhookResponse': - return cls(webhook=TestRegistryWebhook.from_dict(d['webhook']) if 'webhook' in d else None) + return cls(webhook=TestRegistryWebhook. + from_dict(d['webhook']) if 'webhook' in d and d['webhook'] is not None else None) @dataclass @@ -1965,7 +1975,8 @@ def as_dict(self) -> dict: @classmethod def from_dict(cls, d: Dict[str, any]) -> 'TransitionModelVersionStageResponse': - return cls(model_version=ModelVersion.from_dict(d['model_version']) if 'model_version' in d else None) + return cls(model_version=ModelVersion.from_dict(d['model_version']) + if 'model_version' in d and d['model_version'] is not None else None) @dataclass @@ -2007,8 +2018,8 @@ def as_dict(self) -> dict: @classmethod def from_dict(cls, d: Dict[str, any]) -> 'TransitionStageResponse': - return cls(model_version=ModelVersionDatabricks.from_dict(d['model_version']) if 'model_version' in - d else None) + return cls(model_version=ModelVersionDatabricks.from_dict(d['model_version']) + if 'model_version' in d and d['model_version'] is not None else None) @dataclass @@ -2102,9 +2113,11 @@ def as_dict(self) -> dict: def from_dict(cls, d: Dict[str, any]) -> 'UpdateRegistryWebhook': return cls(description=d.get('description', None), events=d.get('events', None), - http_url_spec=HttpUrlSpec.from_dict(d['http_url_spec']) if 'http_url_spec' in d else None, + http_url_spec=HttpUrlSpec.from_dict(d['http_url_spec']) + if 'http_url_spec' in d and d['http_url_spec'] is not None else None, id=d.get('id', None), - job_spec=JobSpec.from_dict(d['job_spec']) if 'job_spec' in d else None, + job_spec=JobSpec.from_dict(d['job_spec']) + if 'job_spec' in d and d['job_spec'] is not None else None, status=RegistryWebhookStatus.__members__.get(d['status'], None) if 'status' in d else None) @@ -2119,7 +2132,8 @@ def as_dict(self) -> dict: @classmethod def from_dict(cls, d: Dict[str, any]) -> 'UpdateResponse': - return cls(comment=CommentObject.from_dict(d['comment']) if 'comment' in d else None) + return cls(comment=CommentObject.from_dict(d['comment'] + ) if 'comment' in d and d['comment'] is not None else None) @dataclass @@ -2156,7 +2170,8 @@ def as_dict(self) -> dict: @classmethod def from_dict(cls, d: Dict[str, any]) -> 'UpdateRunResponse': - return cls(run_info=RunInfo.from_dict(d['run_info']) if 'run_info' in d else None) + return cls(run_info=RunInfo.from_dict(d['run_info'] + ) if 'run_info' in d and d['run_info'] is not None else None) class UpdateRunStatus(Enum): diff --git a/databricks/sdk/service/oauth2.py b/databricks/sdk/service/oauth2.py index d097493e..bcb337f2 100755 --- a/databricks/sdk/service/oauth2.py +++ b/databricks/sdk/service/oauth2.py @@ -30,7 +30,7 @@ def from_dict(cls, d: Dict[str, any]) -> 'CreateCustomAppIntegration': name=d.get('name', None), redirect_urls=d.get('redirect_urls', None), token_access_policy=TokenAccessPolicy.from_dict(d['token_access_policy']) - if 'token_access_policy' in d else None) + if 'token_access_policy' in d and d['token_access_policy'] is not None else None) @dataclass @@ -82,7 +82,7 @@ def as_dict(self) -> dict: def from_dict(cls, d: Dict[str, any]) -> 'CreatePublishedAppIntegration': return cls(app_id=d.get('app_id', None), token_access_policy=TokenAccessPolicy.from_dict(d['token_access_policy']) - if 'token_access_policy' in d else None) + if 'token_access_policy' in d and d['token_access_policy'] is not None else None) @dataclass @@ -140,7 +140,7 @@ def from_dict(cls, d: Dict[str, any]) -> 'GetCustomAppIntegrationOutput': name=d.get('name', None), redirect_urls=d.get('redirect_urls', None), token_access_policy=TokenAccessPolicy.from_dict(d['token_access_policy']) - if 'token_access_policy' in d else None) + if 'token_access_policy' in d and d['token_access_policy'] is not None else None) @dataclass @@ -186,7 +186,7 @@ def from_dict(cls, d: Dict[str, any]) -> 'GetPublishedAppIntegrationOutput': integration_id=d.get('integration_id', None), name=d.get('name', None), token_access_policy=TokenAccessPolicy.from_dict(d['token_access_policy']) - if 'token_access_policy' in d else None) + if 'token_access_policy' in d and d['token_access_policy'] is not None else None) @dataclass @@ -262,7 +262,7 @@ def from_dict(cls, d: Dict[str, any]) -> 'UpdateCustomAppIntegration': return cls(integration_id=d.get('integration_id', None), redirect_urls=d.get('redirect_urls', None), token_access_policy=TokenAccessPolicy.from_dict(d['token_access_policy']) - if 'token_access_policy' in d else None) + if 'token_access_policy' in d and d['token_access_policy'] is not None else None) @dataclass @@ -280,7 +280,7 @@ def as_dict(self) -> dict: def from_dict(cls, d: Dict[str, any]) -> 'UpdatePublishedAppIntegration': return cls(integration_id=d.get('integration_id', None), token_access_policy=TokenAccessPolicy.from_dict(d['token_access_policy']) - if 'token_access_policy' in d else None) + if 'token_access_policy' in d and d['token_access_policy'] is not None else None) class CustomAppIntegrationAPI: diff --git a/databricks/sdk/service/permissions.py b/databricks/sdk/service/permissions.py index 0cf5d798..94503135 100755 --- a/databricks/sdk/service/permissions.py +++ b/databricks/sdk/service/permissions.py @@ -191,7 +191,8 @@ def as_dict(self) -> dict: def from_dict(cls, d: Dict[str, any]) -> 'PermissionAssignment': return cls(error=d.get('error', None), permissions=d.get('permissions', None), - principal=PrincipalOutput.from_dict(d['principal']) if 'principal' in d else None) + principal=PrincipalOutput.from_dict(d['principal']) + if 'principal' in d and d['principal'] is not None else None) @dataclass diff --git a/databricks/sdk/service/pipelines.py b/databricks/sdk/service/pipelines.py index dcaccbba..03e19694 100755 --- a/databricks/sdk/service/pipelines.py +++ b/databricks/sdk/service/pipelines.py @@ -72,7 +72,7 @@ def from_dict(cls, d: Dict[str, any]) -> 'CreatePipeline': development=d.get('development', None), dry_run=d.get('dry_run', None), edition=d.get('edition', None), - filters=Filters.from_dict(d['filters']) if 'filters' in d else None, + filters=Filters.from_dict(d['filters']) if 'filters' in d and d['filters'] is not None else None, id=d.get('id', None), libraries=[PipelineLibrary.from_dict(v) for v in d['libraries']] if 'libraries' in d and d['libraries'] is not None else None, @@ -80,7 +80,8 @@ def from_dict(cls, d: Dict[str, any]) -> 'CreatePipeline': photon=d.get('photon', None), storage=d.get('storage', None), target=d.get('target', None), - trigger=PipelineTrigger.from_dict(d['trigger']) if 'trigger' in d else None) + trigger=PipelineTrigger.from_dict(d['trigger']) + if 'trigger' in d and d['trigger'] is not None else None) @dataclass @@ -97,7 +98,7 @@ def as_dict(self) -> dict: @classmethod def from_dict(cls, d: Dict[str, any]) -> 'CreatePipelineResponse': return cls(effective_settings=PipelineSpec.from_dict(d['effective_settings']) - if 'effective_settings' in d else None, + if 'effective_settings' in d and d['effective_settings'] is not None else None, pipeline_id=d.get('pipeline_id', None)) @@ -197,7 +198,7 @@ def from_dict(cls, d: Dict[str, any]) -> 'EditPipeline': development=d.get('development', None), edition=d.get('edition', None), expected_last_modified=d.get('expected_last_modified', None), - filters=Filters.from_dict(d['filters']) if 'filters' in d else None, + filters=Filters.from_dict(d['filters']) if 'filters' in d and d['filters'] is not None else None, id=d.get('id', None), libraries=[PipelineLibrary.from_dict(v) for v in d['libraries']] if 'libraries' in d and d['libraries'] is not None else None, @@ -206,7 +207,8 @@ def from_dict(cls, d: Dict[str, any]) -> 'EditPipeline': pipeline_id=d.get('pipeline_id', None), storage=d.get('storage', None), target=d.get('target', None), - trigger=PipelineTrigger.from_dict(d['trigger']) if 'trigger' in d else None) + trigger=PipelineTrigger.from_dict(d['trigger']) + if 'trigger' in d and d['trigger'] is not None else None) @dataclass @@ -301,7 +303,7 @@ def from_dict(cls, d: Dict[str, any]) -> 'GetPipelineResponse': name=d.get('name', None), pipeline_id=d.get('pipeline_id', None), run_as_user_name=d.get('run_as_user_name', None), - spec=PipelineSpec.from_dict(d['spec']) if 'spec' in d else None, + spec=PipelineSpec.from_dict(d['spec']) if 'spec' in d and d['spec'] is not None else None, state=PipelineState.__members__.get(d['state'], None) if 'state' in d else None) @@ -331,7 +333,8 @@ def as_dict(self) -> dict: @classmethod def from_dict(cls, d: Dict[str, any]) -> 'GetUpdateResponse': - return cls(update=UpdateInfo.from_dict(d['update']) if 'update' in d else None) + return cls( + update=UpdateInfo.from_dict(d['update']) if 'update' in d and d['update'] is not None else None) @dataclass @@ -554,26 +557,28 @@ def as_dict(self) -> dict: @classmethod def from_dict(cls, d: Dict[str, any]) -> 'PipelineCluster': - return cls( - apply_policy_default_values=d.get('apply_policy_default_values', None), - autoscale=AutoScale.from_dict(d['autoscale']) if 'autoscale' in d else None, - aws_attributes=AwsAttributes.from_dict(d['aws_attributes']) if 'aws_attributes' in d else None, - azure_attributes=AzureAttributes.from_dict(d['azure_attributes']) - if 'azure_attributes' in d else None, - cluster_log_conf=ClusterLogConf.from_dict(d['cluster_log_conf']) - if 'cluster_log_conf' in d else None, - custom_tags=d.get('custom_tags', None), - driver_instance_pool_id=d.get('driver_instance_pool_id', None), - driver_node_type_id=d.get('driver_node_type_id', None), - gcp_attributes=GcpAttributes.from_dict(d['gcp_attributes']) if 'gcp_attributes' in d else None, - instance_pool_id=d.get('instance_pool_id', None), - label=d.get('label', None), - node_type_id=d.get('node_type_id', None), - num_workers=d.get('num_workers', None), - policy_id=d.get('policy_id', None), - spark_conf=d.get('spark_conf', None), - spark_env_vars=d.get('spark_env_vars', None), - ssh_public_keys=d.get('ssh_public_keys', None)) + return cls(apply_policy_default_values=d.get('apply_policy_default_values', None), + autoscale=AutoScale.from_dict(d['autoscale']) + if 'autoscale' in d and d['autoscale'] is not None else None, + aws_attributes=AwsAttributes.from_dict(d['aws_attributes']) + if 'aws_attributes' in d and d['aws_attributes'] is not None else None, + azure_attributes=AzureAttributes.from_dict(d['azure_attributes']) + if 'azure_attributes' in d and d['azure_attributes'] is not None else None, + cluster_log_conf=ClusterLogConf.from_dict(d['cluster_log_conf']) + if 'cluster_log_conf' in d and d['cluster_log_conf'] is not None else None, + custom_tags=d.get('custom_tags', None), + driver_instance_pool_id=d.get('driver_instance_pool_id', None), + driver_node_type_id=d.get('driver_node_type_id', None), + gcp_attributes=GcpAttributes.from_dict(d['gcp_attributes']) + if 'gcp_attributes' in d and d['gcp_attributes'] is not None else None, + instance_pool_id=d.get('instance_pool_id', None), + label=d.get('label', None), + node_type_id=d.get('node_type_id', None), + num_workers=d.get('num_workers', None), + policy_id=d.get('policy_id', None), + spark_conf=d.get('spark_conf', None), + spark_env_vars=d.get('spark_env_vars', None), + ssh_public_keys=d.get('ssh_public_keys', None)) @dataclass @@ -603,16 +608,18 @@ def as_dict(self) -> dict: @classmethod def from_dict(cls, d: Dict[str, any]) -> 'PipelineEvent': - return cls(error=ErrorDetail.from_dict(d['error']) if 'error' in d else None, - event_type=d.get('event_type', None), - id=d.get('id', None), - level=EventLevel.__members__.get(d['level'], None) if 'level' in d else None, - maturity_level=MaturityLevel.__members__.get(d['maturity_level'], None) - if 'maturity_level' in d else None, - message=d.get('message', None), - origin=Origin.from_dict(d['origin']) if 'origin' in d else None, - sequence=Sequencing.from_dict(d['sequence']) if 'sequence' in d else None, - timestamp=d.get('timestamp', None)) + return cls( + error=ErrorDetail.from_dict(d['error']) if 'error' in d and d['error'] is not None else None, + event_type=d.get('event_type', None), + id=d.get('id', None), + level=EventLevel.__members__.get(d['level'], None) if 'level' in d else None, + maturity_level=MaturityLevel.__members__.get(d['maturity_level'], None) + if 'maturity_level' in d else None, + message=d.get('message', None), + origin=Origin.from_dict(d['origin']) if 'origin' in d and d['origin'] is not None else None, + sequence=Sequencing.from_dict(d['sequence']) + if 'sequence' in d and d['sequence'] is not None else None, + timestamp=d.get('timestamp', None)) @dataclass @@ -632,10 +639,12 @@ def as_dict(self) -> dict: @classmethod def from_dict(cls, d: Dict[str, any]) -> 'PipelineLibrary': - return cls(jar=d.get('jar', None), - maven=MavenLibrary.from_dict(d['maven']) if 'maven' in d else None, - notebook=NotebookLibrary.from_dict(d['notebook']) if 'notebook' in d else None, - whl=d.get('whl', None)) + return cls( + jar=d.get('jar', None), + maven=MavenLibrary.from_dict(d['maven']) if 'maven' in d and d['maven'] is not None else None, + notebook=NotebookLibrary.from_dict(d['notebook']) + if 'notebook' in d and d['notebook'] is not None else None, + whl=d.get('whl', None)) @dataclass @@ -686,7 +695,7 @@ def from_dict(cls, d: Dict[str, any]) -> 'PipelineSpec': continuous=d.get('continuous', None), development=d.get('development', None), edition=d.get('edition', None), - filters=Filters.from_dict(d['filters']) if 'filters' in d else None, + filters=Filters.from_dict(d['filters']) if 'filters' in d and d['filters'] is not None else None, id=d.get('id', None), libraries=[PipelineLibrary.from_dict(v) for v in d['libraries']] if 'libraries' in d and d['libraries'] is not None else None, @@ -694,7 +703,8 @@ def from_dict(cls, d: Dict[str, any]) -> 'PipelineSpec': photon=d.get('photon', None), storage=d.get('storage', None), target=d.get('target', None), - trigger=PipelineTrigger.from_dict(d['trigger']) if 'trigger' in d else None) + trigger=PipelineTrigger.from_dict(d['trigger']) + if 'trigger' in d and d['trigger'] is not None else None) class PipelineState(Enum): @@ -757,7 +767,7 @@ def as_dict(self) -> dict: @classmethod def from_dict(cls, d: Dict[str, any]) -> 'PipelineTrigger': - return cls(cron=CronTrigger.from_dict(d['cron']) if 'cron' in d else None, + return cls(cron=CronTrigger.from_dict(d['cron']) if 'cron' in d and d['cron'] is not None else None, manual=d.get('manual', None)) @@ -782,7 +792,8 @@ def as_dict(self) -> dict: @classmethod def from_dict(cls, d: Dict[str, any]) -> 'Sequencing': return cls(control_plane_seq_no=d.get('control_plane_seq_no', None), - data_plane_id=DataPlaneId.from_dict(d['data_plane_id']) if 'data_plane_id' in d else None) + data_plane_id=DataPlaneId.from_dict(d['data_plane_id']) + if 'data_plane_id' in d and d['data_plane_id'] is not None else None) @dataclass @@ -917,16 +928,17 @@ def as_dict(self) -> dict: @classmethod def from_dict(cls, d: Dict[str, any]) -> 'UpdateInfo': - return cls(cause=UpdateInfoCause.__members__.get(d['cause'], None) if 'cause' in d else None, - cluster_id=d.get('cluster_id', None), - config=PipelineSpec.from_dict(d['config']) if 'config' in d else None, - creation_time=d.get('creation_time', None), - full_refresh=d.get('full_refresh', None), - full_refresh_selection=d.get('full_refresh_selection', None), - pipeline_id=d.get('pipeline_id', None), - refresh_selection=d.get('refresh_selection', None), - state=UpdateInfoState.__members__.get(d['state'], None) if 'state' in d else None, - update_id=d.get('update_id', None)) + return cls( + cause=UpdateInfoCause.__members__.get(d['cause'], None) if 'cause' in d else None, + cluster_id=d.get('cluster_id', None), + config=PipelineSpec.from_dict(d['config']) if 'config' in d and d['config'] is not None else None, + creation_time=d.get('creation_time', None), + full_refresh=d.get('full_refresh', None), + full_refresh_selection=d.get('full_refresh_selection', None), + pipeline_id=d.get('pipeline_id', None), + refresh_selection=d.get('refresh_selection', None), + state=UpdateInfoState.__members__.get(d['state'], None) if 'state' in d else None, + update_id=d.get('update_id', None)) class UpdateInfoCause(Enum): diff --git a/databricks/sdk/service/repos.py b/databricks/sdk/service/repos.py index 6b8f6172..00b5e201 100755 --- a/databricks/sdk/service/repos.py +++ b/databricks/sdk/service/repos.py @@ -29,7 +29,7 @@ def from_dict(cls, d: Dict[str, any]) -> 'CreateRepo': return cls(path=d.get('path', None), provider=d.get('provider', None), sparse_checkout=SparseCheckout.from_dict(d['sparse_checkout']) - if 'sparse_checkout' in d else None, + if 'sparse_checkout' in d and d['sparse_checkout'] is not None else None, url=d.get('url', None)) @@ -102,7 +102,7 @@ def from_dict(cls, d: Dict[str, any]) -> 'RepoInfo': path=d.get('path', None), provider=d.get('provider', None), sparse_checkout=SparseCheckout.from_dict(d['sparse_checkout']) - if 'sparse_checkout' in d else None, + if 'sparse_checkout' in d and d['sparse_checkout'] is not None else None, url=d.get('url', None)) @@ -154,7 +154,7 @@ def from_dict(cls, d: Dict[str, any]) -> 'UpdateRepo': return cls(branch=d.get('branch', None), repo_id=d.get('repo_id', None), sparse_checkout=SparseCheckoutUpdate.from_dict(d['sparse_checkout']) - if 'sparse_checkout' in d else None, + if 'sparse_checkout' in d and d['sparse_checkout'] is not None else None, tag=d.get('tag', None)) diff --git a/databricks/sdk/service/scim.py b/databricks/sdk/service/scim.py index f6716133..295984b4 100755 --- a/databricks/sdk/service/scim.py +++ b/databricks/sdk/service/scim.py @@ -370,7 +370,7 @@ def from_dict(cls, d: Dict[str, any]) -> 'User': groups=[ComplexValue.from_dict(v) for v in d['groups']] if 'groups' in d and d['groups'] is not None else None, id=d.get('id', None), - name=Name.from_dict(d['name']) if 'name' in d else None, + name=Name.from_dict(d['name']) if 'name' in d and d['name'] is not None else None, roles=[ComplexValue.from_dict(v) for v in d['roles']] if 'roles' in d and d['roles'] is not None else None, user_name=d.get('userName', None)) diff --git a/databricks/sdk/service/secrets.py b/databricks/sdk/service/secrets.py index f8c046ce..642b1832 100755 --- a/databricks/sdk/service/secrets.py +++ b/databricks/sdk/service/secrets.py @@ -70,7 +70,7 @@ def as_dict(self) -> dict: def from_dict(cls, d: Dict[str, any]) -> 'CreateScope': return cls(initial_manage_principal=d.get('initial_manage_principal', None), keyvault_metadata=AzureKeyVaultSecretScopeMetadata.from_dict(d['keyvault_metadata']) - if 'keyvault_metadata' in d else None, + if 'keyvault_metadata' in d and d['keyvault_metadata'] is not None else None, scope=d.get('scope', None), scope_backend_type=ScopeBackendType.__members__.get(d['scope_backend_type'], None) if 'scope_backend_type' in d else None) @@ -273,7 +273,7 @@ def from_dict(cls, d: Dict[str, any]) -> 'SecretScope': return cls(backend_type=ScopeBackendType.__members__.get(d['backend_type'], None) if 'backend_type' in d else None, keyvault_metadata=AzureKeyVaultSecretScopeMetadata.from_dict(d['keyvault_metadata']) - if 'keyvault_metadata' in d else None, + if 'keyvault_metadata' in d and d['keyvault_metadata'] is not None else None, name=d.get('name', None)) diff --git a/databricks/sdk/service/sql.py b/databricks/sdk/service/sql.py index a323702c..a49792c5 100755 --- a/databricks/sdk/service/sql.py +++ b/databricks/sdk/service/sql.py @@ -70,13 +70,14 @@ def from_dict(cls, d: Dict[str, any]) -> 'Alert': id=d.get('id', None), last_triggered_at=d.get('last_triggered_at', None), name=d.get('name', None), - options=AlertOptions.from_dict(d['options']) if 'options' in d else None, + options=AlertOptions.from_dict(d['options']) + if 'options' in d and d['options'] is not None else None, parent=d.get('parent', None), - query=Query.from_dict(d['query']) if 'query' in d else None, + query=Query.from_dict(d['query']) if 'query' in d and d['query'] is not None else None, rearm=d.get('rearm', None), state=AlertState.__members__.get(d['state'], None) if 'state' in d else None, updated_at=d.get('updated_at', None), - user=User.from_dict(d['user']) if 'user' in d else None) + user=User.from_dict(d['user']) if 'user' in d and d['user'] is not None else None) @dataclass @@ -163,6 +164,7 @@ def from_dict(cls, d: Dict[str, any]) -> 'ChannelInfo': class ChannelName(Enum): + """Name of the channel""" CHANNEL_NAME_CURRENT = 'CHANNEL_NAME_CURRENT' CHANNEL_NAME_CUSTOM = 'CHANNEL_NAME_CUSTOM' @@ -280,7 +282,8 @@ def as_dict(self) -> dict: @classmethod def from_dict(cls, d: Dict[str, any]) -> 'CreateAlert': return cls(name=d.get('name', None), - options=AlertOptions.from_dict(d['options']) if 'options' in d else None, + options=AlertOptions.from_dict(d['options']) + if 'options' in d and d['options'] is not None else None, parent=d.get('parent', None), query_id=d.get('query_id', None), rearm=d.get('rearm', None)) @@ -356,21 +359,22 @@ def as_dict(self) -> dict: @classmethod def from_dict(cls, d: Dict[str, any]) -> 'CreateWarehouseRequest': - return cls(auto_stop_mins=d.get('auto_stop_mins', None), - channel=Channel.from_dict(d['channel']) if 'channel' in d else None, - cluster_size=d.get('cluster_size', None), - creator_name=d.get('creator_name', None), - enable_photon=d.get('enable_photon', None), - enable_serverless_compute=d.get('enable_serverless_compute', None), - instance_profile_arn=d.get('instance_profile_arn', None), - max_num_clusters=d.get('max_num_clusters', None), - min_num_clusters=d.get('min_num_clusters', None), - name=d.get('name', None), - spot_instance_policy=SpotInstancePolicy.__members__.get(d['spot_instance_policy'], None) - if 'spot_instance_policy' in d else None, - tags=EndpointTags.from_dict(d['tags']) if 'tags' in d else None, - warehouse_type=WarehouseType.__members__.get(d['warehouse_type'], None) - if 'warehouse_type' in d else None) + return cls( + auto_stop_mins=d.get('auto_stop_mins', None), + channel=Channel.from_dict(d['channel']) if 'channel' in d and d['channel'] is not None else None, + cluster_size=d.get('cluster_size', None), + creator_name=d.get('creator_name', None), + enable_photon=d.get('enable_photon', None), + enable_serverless_compute=d.get('enable_serverless_compute', None), + instance_profile_arn=d.get('instance_profile_arn', None), + max_num_clusters=d.get('max_num_clusters', None), + min_num_clusters=d.get('min_num_clusters', None), + name=d.get('name', None), + spot_instance_policy=SpotInstancePolicy.__members__.get(d['spot_instance_policy'], None) + if 'spot_instance_policy' in d else None, + tags=EndpointTags.from_dict(d['tags']) if 'tags' in d and d['tags'] is not None else None, + warehouse_type=WarehouseType.__members__.get(d['warehouse_type'], None) + if 'warehouse_type' in d else None) @dataclass @@ -440,14 +444,15 @@ def from_dict(cls, d: Dict[str, any]) -> 'Dashboard': is_draft=d.get('is_draft', None), is_favorite=d.get('is_favorite', None), name=d.get('name', None), - options=DashboardOptions.from_dict(d['options']) if 'options' in d else None, + options=DashboardOptions.from_dict(d['options']) + if 'options' in d and d['options'] is not None else None, parent=d.get('parent', None), permission_tier=PermissionLevel.__members__.get(d['permission_tier'], None) if 'permission_tier' in d else None, slug=d.get('slug', None), tags=d.get('tags', None), updated_at=d.get('updated_at', None), - user=User.from_dict(d['user']) if 'user' in d else None, + user=User.from_dict(d['user']) if 'user' in d and d['user'] is not None else None, user_id=d.get('user_id', None), widgets=[Widget.from_dict(v) for v in d['widgets']] if 'widgets' in d and d['widgets'] is not None else None) @@ -582,7 +587,8 @@ def as_dict(self) -> dict: def from_dict(cls, d: Dict[str, any]) -> 'EditAlert': return cls(alert_id=d.get('alert_id', None), name=d.get('name', None), - options=AlertOptions.from_dict(d['options']) if 'options' in d else None, + options=AlertOptions.from_dict(d['options']) + if 'options' in d and d['options'] is not None else None, query_id=d.get('query_id', None), rearm=d.get('rearm', None)) @@ -626,23 +632,24 @@ def as_dict(self) -> dict: @classmethod def from_dict(cls, d: Dict[str, any]) -> 'EditWarehouseRequest': - return cls(auto_stop_mins=d.get('auto_stop_mins', None), - channel=Channel.from_dict(d['channel']) if 'channel' in d else None, - cluster_size=d.get('cluster_size', None), - creator_name=d.get('creator_name', None), - enable_databricks_compute=d.get('enable_databricks_compute', None), - enable_photon=d.get('enable_photon', None), - enable_serverless_compute=d.get('enable_serverless_compute', None), - id=d.get('id', None), - instance_profile_arn=d.get('instance_profile_arn', None), - max_num_clusters=d.get('max_num_clusters', None), - min_num_clusters=d.get('min_num_clusters', None), - name=d.get('name', None), - spot_instance_policy=SpotInstancePolicy.__members__.get(d['spot_instance_policy'], None) - if 'spot_instance_policy' in d else None, - tags=EndpointTags.from_dict(d['tags']) if 'tags' in d else None, - warehouse_type=WarehouseType.__members__.get(d['warehouse_type'], None) - if 'warehouse_type' in d else None) + return cls( + auto_stop_mins=d.get('auto_stop_mins', None), + channel=Channel.from_dict(d['channel']) if 'channel' in d and d['channel'] is not None else None, + cluster_size=d.get('cluster_size', None), + creator_name=d.get('creator_name', None), + enable_databricks_compute=d.get('enable_databricks_compute', None), + enable_photon=d.get('enable_photon', None), + enable_serverless_compute=d.get('enable_serverless_compute', None), + id=d.get('id', None), + instance_profile_arn=d.get('instance_profile_arn', None), + max_num_clusters=d.get('max_num_clusters', None), + min_num_clusters=d.get('min_num_clusters', None), + name=d.get('name', None), + spot_instance_policy=SpotInstancePolicy.__members__.get(d['spot_instance_policy'], None) + if 'spot_instance_policy' in d else None, + tags=EndpointTags.from_dict(d['tags']) if 'tags' in d and d['tags'] is not None else None, + warehouse_type=WarehouseType.__members__.get(d['warehouse_type'], None) + if 'warehouse_type' in d else None) @dataclass @@ -682,7 +689,7 @@ def as_dict(self) -> dict: def from_dict(cls, d: Dict[str, any]) -> 'EndpointHealth': return cls(details=d.get('details', None), failure_reason=TerminationReason.from_dict(d['failure_reason']) - if 'failure_reason' in d else None, + if 'failure_reason' in d and d['failure_reason'] is not None else None, message=d.get('message', None), status=Status.__members__.get(d['status'], None) if 'status' in d else None, summary=d.get('summary', None)) @@ -739,29 +746,32 @@ def as_dict(self) -> dict: @classmethod def from_dict(cls, d: Dict[str, any]) -> 'EndpointInfo': - return cls(auto_stop_mins=d.get('auto_stop_mins', None), - channel=Channel.from_dict(d['channel']) if 'channel' in d else None, - cluster_size=d.get('cluster_size', None), - creator_name=d.get('creator_name', None), - enable_databricks_compute=d.get('enable_databricks_compute', None), - enable_photon=d.get('enable_photon', None), - enable_serverless_compute=d.get('enable_serverless_compute', None), - health=EndpointHealth.from_dict(d['health']) if 'health' in d else None, - id=d.get('id', None), - instance_profile_arn=d.get('instance_profile_arn', None), - jdbc_url=d.get('jdbc_url', None), - max_num_clusters=d.get('max_num_clusters', None), - min_num_clusters=d.get('min_num_clusters', None), - name=d.get('name', None), - num_active_sessions=d.get('num_active_sessions', None), - num_clusters=d.get('num_clusters', None), - odbc_params=OdbcParams.from_dict(d['odbc_params']) if 'odbc_params' in d else None, - spot_instance_policy=SpotInstancePolicy.__members__.get(d['spot_instance_policy'], None) - if 'spot_instance_policy' in d else None, - state=State.__members__.get(d['state'], None) if 'state' in d else None, - tags=EndpointTags.from_dict(d['tags']) if 'tags' in d else None, - warehouse_type=WarehouseType.__members__.get(d['warehouse_type'], None) - if 'warehouse_type' in d else None) + return cls( + auto_stop_mins=d.get('auto_stop_mins', None), + channel=Channel.from_dict(d['channel']) if 'channel' in d and d['channel'] is not None else None, + cluster_size=d.get('cluster_size', None), + creator_name=d.get('creator_name', None), + enable_databricks_compute=d.get('enable_databricks_compute', None), + enable_photon=d.get('enable_photon', None), + enable_serverless_compute=d.get('enable_serverless_compute', None), + health=EndpointHealth.from_dict(d['health']) + if 'health' in d and d['health'] is not None else None, + id=d.get('id', None), + instance_profile_arn=d.get('instance_profile_arn', None), + jdbc_url=d.get('jdbc_url', None), + max_num_clusters=d.get('max_num_clusters', None), + min_num_clusters=d.get('min_num_clusters', None), + name=d.get('name', None), + num_active_sessions=d.get('num_active_sessions', None), + num_clusters=d.get('num_clusters', None), + odbc_params=OdbcParams.from_dict(d['odbc_params']) + if 'odbc_params' in d and d['odbc_params'] is not None else None, + spot_instance_policy=SpotInstancePolicy.__members__.get(d['spot_instance_policy'], None) + if 'spot_instance_policy' in d else None, + state=State.__members__.get(d['state'], None) if 'state' in d else None, + tags=EndpointTags.from_dict(d['tags']) if 'tags' in d and d['tags'] is not None else None, + warehouse_type=WarehouseType.__members__.get(d['warehouse_type'], None) + if 'warehouse_type' in d else None) @dataclass @@ -852,10 +862,13 @@ def as_dict(self) -> dict: @classmethod def from_dict(cls, d: Dict[str, any]) -> 'ExecuteStatementResponse': - return cls(manifest=ResultManifest.from_dict(d['manifest']) if 'manifest' in d else None, - result=ResultData.from_dict(d['result']) if 'result' in d else None, - statement_id=d.get('statement_id', None), - status=StatementStatus.from_dict(d['status']) if 'status' in d else None) + return cls( + manifest=ResultManifest.from_dict(d['manifest']) + if 'manifest' in d and d['manifest'] is not None else None, + result=ResultData.from_dict(d['result']) if 'result' in d and d['result'] is not None else None, + statement_id=d.get('statement_id', None), + status=StatementStatus.from_dict(d['status']) + if 'status' in d and d['status'] is not None else None) @dataclass @@ -996,10 +1009,13 @@ def as_dict(self) -> dict: @classmethod def from_dict(cls, d: Dict[str, any]) -> 'GetStatementResponse': - return cls(manifest=ResultManifest.from_dict(d['manifest']) if 'manifest' in d else None, - result=ResultData.from_dict(d['result']) if 'result' in d else None, - statement_id=d.get('statement_id', None), - status=StatementStatus.from_dict(d['status']) if 'status' in d else None) + return cls( + manifest=ResultManifest.from_dict(d['manifest']) + if 'manifest' in d and d['manifest'] is not None else None, + result=ResultData.from_dict(d['result']) if 'result' in d and d['result'] is not None else None, + statement_id=d.get('statement_id', None), + status=StatementStatus.from_dict(d['status']) + if 'status' in d and d['status'] is not None else None) @dataclass @@ -1068,29 +1084,32 @@ def as_dict(self) -> dict: @classmethod def from_dict(cls, d: Dict[str, any]) -> 'GetWarehouseResponse': - return cls(auto_stop_mins=d.get('auto_stop_mins', None), - channel=Channel.from_dict(d['channel']) if 'channel' in d else None, - cluster_size=d.get('cluster_size', None), - creator_name=d.get('creator_name', None), - enable_databricks_compute=d.get('enable_databricks_compute', None), - enable_photon=d.get('enable_photon', None), - enable_serverless_compute=d.get('enable_serverless_compute', None), - health=EndpointHealth.from_dict(d['health']) if 'health' in d else None, - id=d.get('id', None), - instance_profile_arn=d.get('instance_profile_arn', None), - jdbc_url=d.get('jdbc_url', None), - max_num_clusters=d.get('max_num_clusters', None), - min_num_clusters=d.get('min_num_clusters', None), - name=d.get('name', None), - num_active_sessions=d.get('num_active_sessions', None), - num_clusters=d.get('num_clusters', None), - odbc_params=OdbcParams.from_dict(d['odbc_params']) if 'odbc_params' in d else None, - spot_instance_policy=SpotInstancePolicy.__members__.get(d['spot_instance_policy'], None) - if 'spot_instance_policy' in d else None, - state=State.__members__.get(d['state'], None) if 'state' in d else None, - tags=EndpointTags.from_dict(d['tags']) if 'tags' in d else None, - warehouse_type=WarehouseType.__members__.get(d['warehouse_type'], None) - if 'warehouse_type' in d else None) + return cls( + auto_stop_mins=d.get('auto_stop_mins', None), + channel=Channel.from_dict(d['channel']) if 'channel' in d and d['channel'] is not None else None, + cluster_size=d.get('cluster_size', None), + creator_name=d.get('creator_name', None), + enable_databricks_compute=d.get('enable_databricks_compute', None), + enable_photon=d.get('enable_photon', None), + enable_serverless_compute=d.get('enable_serverless_compute', None), + health=EndpointHealth.from_dict(d['health']) + if 'health' in d and d['health'] is not None else None, + id=d.get('id', None), + instance_profile_arn=d.get('instance_profile_arn', None), + jdbc_url=d.get('jdbc_url', None), + max_num_clusters=d.get('max_num_clusters', None), + min_num_clusters=d.get('min_num_clusters', None), + name=d.get('name', None), + num_active_sessions=d.get('num_active_sessions', None), + num_clusters=d.get('num_clusters', None), + odbc_params=OdbcParams.from_dict(d['odbc_params']) + if 'odbc_params' in d and d['odbc_params'] is not None else None, + spot_instance_policy=SpotInstancePolicy.__members__.get(d['spot_instance_policy'], None) + if 'spot_instance_policy' in d else None, + state=State.__members__.get(d['state'], None) if 'state' in d else None, + tags=EndpointTags.from_dict(d['tags']) if 'tags' in d and d['tags'] is not None else None, + warehouse_type=WarehouseType.__members__.get(d['warehouse_type'], None) + if 'warehouse_type' in d else None) @dataclass @@ -1128,9 +1147,9 @@ def as_dict(self) -> dict: @classmethod def from_dict(cls, d: Dict[str, any]) -> 'GetWorkspaceWarehouseConfigResponse': return cls( - channel=Channel.from_dict(d['channel']) if 'channel' in d else None, + channel=Channel.from_dict(d['channel']) if 'channel' in d and d['channel'] is not None else None, config_param=RepeatedEndpointConfPairs.from_dict(d['config_param']) - if 'config_param' in d else None, + if 'config_param' in d and d['config_param'] is not None else None, data_access_config=[EndpointConfPair.from_dict(v) for v in d['data_access_config']] if 'data_access_config' in d and d['data_access_config'] is not None else None, enable_databricks_compute=d.get('enable_databricks_compute', None), @@ -1138,13 +1157,14 @@ def from_dict(cls, d: Dict[str, any]) -> 'GetWorkspaceWarehouseConfigResponse': enabled_warehouse_types=[WarehouseTypePair.from_dict(v) for v in d['enabled_warehouse_types']] if 'enabled_warehouse_types' in d and d['enabled_warehouse_types'] is not None else None, global_param=RepeatedEndpointConfPairs.from_dict(d['global_param']) - if 'global_param' in d else None, + if 'global_param' in d and d['global_param'] is not None else None, google_service_account=d.get('google_service_account', None), instance_profile_arn=d.get('instance_profile_arn', None), security_policy=GetWorkspaceWarehouseConfigResponseSecurityPolicy.__members__.get( d['security_policy'], None) if 'security_policy' in d else None, sql_configuration_parameters=RepeatedEndpointConfPairs.from_dict( - d['sql_configuration_parameters']) if 'sql_configuration_parameters' in d else None) + d['sql_configuration_parameters']) if 'sql_configuration_parameters' in d + and d['sql_configuration_parameters'] is not None else None) class GetWorkspaceWarehouseConfigResponseSecurityPolicy(Enum): @@ -1412,32 +1432,33 @@ def as_dict(self) -> dict: @classmethod def from_dict(cls, d: Dict[str, any]) -> 'Query': - return cls( - can_edit=d.get('can_edit', None), - created_at=d.get('created_at', None), - data_source_id=d.get('data_source_id', None), - description=d.get('description', None), - id=d.get('id', None), - is_archived=d.get('is_archived', None), - is_draft=d.get('is_draft', None), - is_favorite=d.get('is_favorite', None), - is_safe=d.get('is_safe', None), - last_modified_by=User.from_dict(d['last_modified_by']) if 'last_modified_by' in d else None, - last_modified_by_id=d.get('last_modified_by_id', None), - latest_query_data_id=d.get('latest_query_data_id', None), - name=d.get('name', None), - options=QueryOptions.from_dict(d['options']) if 'options' in d else None, - parent=d.get('parent', None), - permission_tier=PermissionLevel.__members__.get(d['permission_tier'], None) - if 'permission_tier' in d else None, - query=d.get('query', None), - query_hash=d.get('query_hash', None), - tags=d.get('tags', None), - updated_at=d.get('updated_at', None), - user=User.from_dict(d['user']) if 'user' in d else None, - user_id=d.get('user_id', None), - visualizations=[Visualization.from_dict(v) for v in d['visualizations']] - if 'visualizations' in d and d['visualizations'] is not None else None) + return cls(can_edit=d.get('can_edit', None), + created_at=d.get('created_at', None), + data_source_id=d.get('data_source_id', None), + description=d.get('description', None), + id=d.get('id', None), + is_archived=d.get('is_archived', None), + is_draft=d.get('is_draft', None), + is_favorite=d.get('is_favorite', None), + is_safe=d.get('is_safe', None), + last_modified_by=User.from_dict(d['last_modified_by']) + if 'last_modified_by' in d and d['last_modified_by'] is not None else None, + last_modified_by_id=d.get('last_modified_by_id', None), + latest_query_data_id=d.get('latest_query_data_id', None), + name=d.get('name', None), + options=QueryOptions.from_dict(d['options']) + if 'options' in d and d['options'] is not None else None, + parent=d.get('parent', None), + permission_tier=PermissionLevel.__members__.get(d['permission_tier'], None) + if 'permission_tier' in d else None, + query=d.get('query', None), + query_hash=d.get('query_hash', None), + tags=d.get('tags', None), + updated_at=d.get('updated_at', None), + user=User.from_dict(d['user']) if 'user' in d and d['user'] is not None else None, + user_id=d.get('user_id', None), + visualizations=[Visualization.from_dict(v) for v in d['visualizations']] + if 'visualizations' in d and d['visualizations'] is not None else None) @dataclass @@ -1489,7 +1510,7 @@ def as_dict(self) -> dict: @classmethod def from_dict(cls, d: Dict[str, any]) -> 'QueryFilter': return cls(query_start_time_range=TimeRange.from_dict(d['query_start_time_range']) - if 'query_start_time_range' in d else None, + if 'query_start_time_range' in d and d['query_start_time_range'] is not None else None, statuses=d.get('statuses', None), user_ids=d.get('user_ids', None), warehouse_ids=d.get('warehouse_ids', None)) @@ -1549,7 +1570,8 @@ def as_dict(self) -> dict: @classmethod def from_dict(cls, d: Dict[str, any]) -> 'QueryInfo': return cls( - channel_used=ChannelInfo.from_dict(d['channel_used']) if 'channel_used' in d else None, + channel_used=ChannelInfo.from_dict(d['channel_used']) + if 'channel_used' in d and d['channel_used'] is not None else None, duration=d.get('duration', None), endpoint_id=d.get('endpoint_id', None), error_message=d.get('error_message', None), @@ -1558,7 +1580,8 @@ def from_dict(cls, d: Dict[str, any]) -> 'QueryInfo': execution_end_time_ms=d.get('execution_end_time_ms', None), is_final=d.get('is_final', None), lookup_key=d.get('lookup_key', None), - metrics=QueryMetrics.from_dict(d['metrics']) if 'metrics' in d else None, + metrics=QueryMetrics.from_dict(d['metrics']) + if 'metrics' in d and d['metrics'] is not None else None, plans_state=PlansState.__members__.get(d['plans_state'], None) if 'plans_state' in d else None, query_end_time_ms=d.get('query_end_time_ms', None), query_id=d.get('query_id', None), @@ -1856,13 +1879,14 @@ def as_dict(self) -> dict: @classmethod def from_dict(cls, d: Dict[str, any]) -> 'ResultManifest': - return cls(chunks=[ChunkInfo.from_dict(v) - for v in d['chunks']] if 'chunks' in d and d['chunks'] is not None else None, - format=Format.__members__.get(d['format'], None) if 'format' in d else None, - schema=ResultSchema.from_dict(d['schema']) if 'schema' in d else None, - total_byte_count=d.get('total_byte_count', None), - total_chunk_count=d.get('total_chunk_count', None), - total_row_count=d.get('total_row_count', None)) + return cls( + chunks=[ChunkInfo.from_dict(v) + for v in d['chunks']] if 'chunks' in d and d['chunks'] is not None else None, + format=Format.__members__.get(d['format'], None) if 'format' in d else None, + schema=ResultSchema.from_dict(d['schema']) if 'schema' in d and d['schema'] is not None else None, + total_byte_count=d.get('total_byte_count', None), + total_chunk_count=d.get('total_chunk_count', None), + total_row_count=d.get('total_row_count', None)) @dataclass @@ -2005,9 +2029,9 @@ def as_dict(self) -> dict: @classmethod def from_dict(cls, d: Dict[str, any]) -> 'SetWorkspaceWarehouseConfigRequest': return cls( - channel=Channel.from_dict(d['channel']) if 'channel' in d else None, + channel=Channel.from_dict(d['channel']) if 'channel' in d and d['channel'] is not None else None, config_param=RepeatedEndpointConfPairs.from_dict(d['config_param']) - if 'config_param' in d else None, + if 'config_param' in d and d['config_param'] is not None else None, data_access_config=[EndpointConfPair.from_dict(v) for v in d['data_access_config']] if 'data_access_config' in d and d['data_access_config'] is not None else None, enable_databricks_compute=d.get('enable_databricks_compute', None), @@ -2015,14 +2039,15 @@ def from_dict(cls, d: Dict[str, any]) -> 'SetWorkspaceWarehouseConfigRequest': enabled_warehouse_types=[WarehouseTypePair.from_dict(v) for v in d['enabled_warehouse_types']] if 'enabled_warehouse_types' in d and d['enabled_warehouse_types'] is not None else None, global_param=RepeatedEndpointConfPairs.from_dict(d['global_param']) - if 'global_param' in d else None, + if 'global_param' in d and d['global_param'] is not None else None, google_service_account=d.get('google_service_account', None), instance_profile_arn=d.get('instance_profile_arn', None), security_policy=SetWorkspaceWarehouseConfigRequestSecurityPolicy.__members__.get( d['security_policy'], None) if 'security_policy' in d else None, serverless_agreement=d.get('serverless_agreement', None), sql_configuration_parameters=RepeatedEndpointConfPairs.from_dict( - d['sql_configuration_parameters']) if 'sql_configuration_parameters' in d else None) + d['sql_configuration_parameters']) if 'sql_configuration_parameters' in d + and d['sql_configuration_parameters'] is not None else None) class SetWorkspaceWarehouseConfigRequestSecurityPolicy(Enum): @@ -2089,8 +2114,9 @@ def as_dict(self) -> dict: @classmethod def from_dict(cls, d: Dict[str, any]) -> 'StatementStatus': - return cls(error=ServiceError.from_dict(d['error']) if 'error' in d else None, - state=StatementState.__members__.get(d['state'], None) if 'state' in d else None) + return cls( + error=ServiceError.from_dict(d['error']) if 'error' in d and d['error'] is not None else None, + state=StatementState.__members__.get(d['state'], None) if 'state' in d else None) class Status(Enum): @@ -2303,7 +2329,8 @@ def as_dict(self) -> dict: @classmethod def from_dict(cls, d: Dict[str, any]) -> 'TransferOwnershipRequest': return cls(new_owner=d.get('new_owner', None), - object_id=TransferOwnershipObjectId.from_dict(d['objectId']) if 'objectId' in d else None, + object_id=TransferOwnershipObjectId.from_dict(d['objectId']) + if 'objectId' in d and d['objectId'] is not None else None, object_type=OwnableObjectType.__members__.get(d['objectType'], None) if 'objectType' in d else None) @@ -2413,11 +2440,12 @@ def as_dict(self) -> dict: @classmethod def from_dict(cls, d: Dict[str, any]) -> 'Widget': - return cls( - id=d.get('id', None), - options=WidgetOptions.from_dict(d['options']) if 'options' in d else None, - visualization=Visualization.from_dict(d['visualization']) if 'visualization' in d else None, - width=d.get('width', None)) + return cls(id=d.get('id', None), + options=WidgetOptions.from_dict(d['options']) + if 'options' in d and d['options'] is not None else None, + visualization=Visualization.from_dict(d['visualization']) + if 'visualization' in d and d['visualization'] is not None else None, + width=d.get('width', None)) @dataclass diff --git a/databricks/sdk/service/tokenmanagement.py b/databricks/sdk/service/tokenmanagement.py index 13260685..5548f505 100755 --- a/databricks/sdk/service/tokenmanagement.py +++ b/databricks/sdk/service/tokenmanagement.py @@ -42,7 +42,8 @@ def as_dict(self) -> dict: @classmethod def from_dict(cls, d: Dict[str, any]) -> 'CreateOboTokenResponse': - return cls(token_info=TokenInfo.from_dict(d['token_info']) if 'token_info' in d else None, + return cls(token_info=TokenInfo.from_dict(d['token_info']) + if 'token_info' in d and d['token_info'] is not None else None, token_value=d.get('token_value', None)) diff --git a/databricks/sdk/service/tokens.py b/databricks/sdk/service/tokens.py index 7ed61a7f..4a77db96 100755 --- a/databricks/sdk/service/tokens.py +++ b/databricks/sdk/service/tokens.py @@ -38,7 +38,8 @@ def as_dict(self) -> dict: @classmethod def from_dict(cls, d: Dict[str, any]) -> 'CreateTokenResponse': - return cls(token_info=PublicTokenInfo.from_dict(d['token_info']) if 'token_info' in d else None, + return cls(token_info=PublicTokenInfo.from_dict(d['token_info']) + if 'token_info' in d and d['token_info'] is not None else None, token_value=d.get('token_value', None)) diff --git a/databricks/sdk/service/unitycatalog.py b/databricks/sdk/service/unitycatalog.py index 1890d9b0..4acb48b9 100755 --- a/databricks/sdk/service/unitycatalog.py +++ b/databricks/sdk/service/unitycatalog.py @@ -99,26 +99,26 @@ def as_dict(self) -> dict: @classmethod def from_dict(cls, d: Dict[str, any]) -> 'CatalogInfo': - return cls( - catalog_type=CatalogType.__members__.get(d['catalog_type'], None) - if 'catalog_type' in d else None, - comment=d.get('comment', None), - created_at=d.get('created_at', None), - created_by=d.get('created_by', None), - effective_auto_maintenance_flag=EffectiveAutoMaintenanceFlag.from_dict( - d['effective_auto_maintenance_flag']) if 'effective_auto_maintenance_flag' in d else None, - enable_auto_maintenance=EnableAutoMaintenance.__members__.get(d['enable_auto_maintenance'], None) - if 'enable_auto_maintenance' in d else None, - metastore_id=d.get('metastore_id', None), - name=d.get('name', None), - owner=d.get('owner', None), - properties=d.get('properties', None), - provider_name=d.get('provider_name', None), - share_name=d.get('share_name', None), - storage_location=d.get('storage_location', None), - storage_root=d.get('storage_root', None), - updated_at=d.get('updated_at', None), - updated_by=d.get('updated_by', None)) + return cls(catalog_type=CatalogType.__members__.get(d['catalog_type'], None) + if 'catalog_type' in d else None, + comment=d.get('comment', None), + created_at=d.get('created_at', None), + created_by=d.get('created_by', None), + effective_auto_maintenance_flag=EffectiveAutoMaintenanceFlag.from_dict( + d['effective_auto_maintenance_flag']) if 'effective_auto_maintenance_flag' in d + and d['effective_auto_maintenance_flag'] is not None else None, + enable_auto_maintenance=EnableAutoMaintenance.__members__.get( + d['enable_auto_maintenance'], None) if 'enable_auto_maintenance' in d else None, + metastore_id=d.get('metastore_id', None), + name=d.get('name', None), + owner=d.get('owner', None), + properties=d.get('properties', None), + provider_name=d.get('provider_name', None), + share_name=d.get('share_name', None), + storage_location=d.get('storage_location', None), + storage_root=d.get('storage_root', None), + updated_at=d.get('updated_at', None), + updated_by=d.get('updated_by', None)) class CatalogType(Enum): @@ -164,7 +164,7 @@ def as_dict(self) -> dict: def from_dict(cls, d: Dict[str, any]) -> 'ColumnInfo': return cls( comment=d.get('comment', None), - mask=ColumnMask.from_dict(d['mask']) if 'mask' in d else None, + mask=ColumnMask.from_dict(d['mask']) if 'mask' in d and d['mask'] is not None else None, name=d.get('name', None), nullable=d.get('nullable', None), partition_index=d.get('partition_index', None), @@ -480,16 +480,16 @@ def as_dict(self) -> dict: @classmethod def from_dict(cls, d: Dict[str, any]) -> 'CreateRecipient': - return cls( - authentication_type=AuthenticationType.__members__.get(d['authentication_type'], None) - if 'authentication_type' in d else None, - comment=d.get('comment', None), - data_recipient_global_metastore_id=d.get('data_recipient_global_metastore_id', None), - ip_access_list=IpAccessList.from_dict(d['ip_access_list']) if 'ip_access_list' in d else None, - name=d.get('name', None), - owner=d.get('owner', None), - properties_kvpairs=d.get('properties_kvpairs', None), - sharing_code=d.get('sharing_code', None)) + return cls(authentication_type=AuthenticationType.__members__.get(d['authentication_type'], None) + if 'authentication_type' in d else None, + comment=d.get('comment', None), + data_recipient_global_metastore_id=d.get('data_recipient_global_metastore_id', None), + ip_access_list=IpAccessList.from_dict(d['ip_access_list']) + if 'ip_access_list' in d and d['ip_access_list'] is not None else None, + name=d.get('name', None), + owner=d.get('owner', None), + properties_kvpairs=d.get('properties_kvpairs', None), + sharing_code=d.get('sharing_code', None)) @dataclass @@ -561,12 +561,13 @@ def as_dict(self) -> dict: @classmethod def from_dict(cls, d: Dict[str, any]) -> 'CreateStorageCredential': - return cls(aws_iam_role=AwsIamRole.from_dict(d['aws_iam_role']) if 'aws_iam_role' in d else None, + return cls(aws_iam_role=AwsIamRole.from_dict(d['aws_iam_role']) + if 'aws_iam_role' in d and d['aws_iam_role'] is not None else None, azure_service_principal=AzureServicePrincipal.from_dict(d['azure_service_principal']) - if 'azure_service_principal' in d else None, + if 'azure_service_principal' in d and d['azure_service_principal'] is not None else None, comment=d.get('comment', None), gcp_service_account_key=GcpServiceAccountKey.from_dict(d['gcp_service_account_key']) - if 'gcp_service_account_key' in d else None, + if 'gcp_service_account_key' in d and d['gcp_service_account_key'] is not None else None, metastore_id=d.get('metastore_id', None), name=d.get('name', None), read_only=d.get('read_only', None), @@ -586,7 +587,8 @@ def as_dict(self) -> dict: @classmethod def from_dict(cls, d: Dict[str, any]) -> 'CreateTableConstraint': - return cls(constraint=TableConstraint.from_dict(d['constraint']) if 'constraint' in d else None, + return cls(constraint=TableConstraint.from_dict(d['constraint']) + if 'constraint' in d and d['constraint'] is not None else None, full_name_arg=d.get('full_name_arg', None)) @@ -719,8 +721,10 @@ def as_dict(self) -> dict: @classmethod def from_dict(cls, d: Dict[str, any]) -> 'Dependency': - return cls(function=FunctionDependency.from_dict(d['function']) if 'function' in d else None, - table=TableDependency.from_dict(d['table']) if 'table' in d else None) + return cls( + function=FunctionDependency.from_dict(d['function']) + if 'function' in d and d['function'] is not None else None, + table=TableDependency.from_dict(d['table']) if 'table' in d and d['table'] is not None else None) @dataclass @@ -1901,7 +1905,7 @@ def from_dict(cls, d: Dict[str, any]) -> 'ProviderInfo': name=d.get('name', None), owner=d.get('owner', None), recipient_profile=RecipientProfile.from_dict(d['recipient_profile']) - if 'recipient_profile' in d else None, + if 'recipient_profile' in d and d['recipient_profile'] is not None else None, recipient_profile_str=d.get('recipient_profile_str', None), region=d.get('region', None), updated_at=d.get('updated_at', None), @@ -1968,27 +1972,27 @@ def as_dict(self) -> dict: @classmethod def from_dict(cls, d: Dict[str, any]) -> 'RecipientInfo': - return cls( - activated=d.get('activated', None), - activation_url=d.get('activation_url', None), - authentication_type=AuthenticationType.__members__.get(d['authentication_type'], None) - if 'authentication_type' in d else None, - cloud=d.get('cloud', None), - comment=d.get('comment', None), - created_at=d.get('created_at', None), - created_by=d.get('created_by', None), - data_recipient_global_metastore_id=d.get('data_recipient_global_metastore_id', None), - ip_access_list=IpAccessList.from_dict(d['ip_access_list']) if 'ip_access_list' in d else None, - metastore_id=d.get('metastore_id', None), - name=d.get('name', None), - owner=d.get('owner', None), - properties_kvpairs=d.get('properties_kvpairs', None), - region=d.get('region', None), - sharing_code=d.get('sharing_code', None), - tokens=[RecipientTokenInfo.from_dict(v) - for v in d['tokens']] if 'tokens' in d and d['tokens'] is not None else None, - updated_at=d.get('updated_at', None), - updated_by=d.get('updated_by', None)) + return cls(activated=d.get('activated', None), + activation_url=d.get('activation_url', None), + authentication_type=AuthenticationType.__members__.get(d['authentication_type'], None) + if 'authentication_type' in d else None, + cloud=d.get('cloud', None), + comment=d.get('comment', None), + created_at=d.get('created_at', None), + created_by=d.get('created_by', None), + data_recipient_global_metastore_id=d.get('data_recipient_global_metastore_id', None), + ip_access_list=IpAccessList.from_dict(d['ip_access_list']) + if 'ip_access_list' in d and d['ip_access_list'] is not None else None, + metastore_id=d.get('metastore_id', None), + name=d.get('name', None), + owner=d.get('owner', None), + properties_kvpairs=d.get('properties_kvpairs', None), + region=d.get('region', None), + sharing_code=d.get('sharing_code', None), + tokens=[RecipientTokenInfo.from_dict(v) + for v in d['tokens']] if 'tokens' in d and d['tokens'] is not None else None, + updated_at=d.get('updated_at', None), + updated_by=d.get('updated_by', None)) @dataclass @@ -2133,25 +2137,25 @@ def as_dict(self) -> dict: @classmethod def from_dict(cls, d: Dict[str, any]) -> 'SchemaInfo': - return cls( - catalog_name=d.get('catalog_name', None), - catalog_type=d.get('catalog_type', None), - comment=d.get('comment', None), - created_at=d.get('created_at', None), - created_by=d.get('created_by', None), - effective_auto_maintenance_flag=EffectiveAutoMaintenanceFlag.from_dict( - d['effective_auto_maintenance_flag']) if 'effective_auto_maintenance_flag' in d else None, - enable_auto_maintenance=EnableAutoMaintenance.__members__.get(d['enable_auto_maintenance'], None) - if 'enable_auto_maintenance' in d else None, - full_name=d.get('full_name', None), - metastore_id=d.get('metastore_id', None), - name=d.get('name', None), - owner=d.get('owner', None), - properties=d.get('properties', None), - storage_location=d.get('storage_location', None), - storage_root=d.get('storage_root', None), - updated_at=d.get('updated_at', None), - updated_by=d.get('updated_by', None)) + return cls(catalog_name=d.get('catalog_name', None), + catalog_type=d.get('catalog_type', None), + comment=d.get('comment', None), + created_at=d.get('created_at', None), + created_by=d.get('created_by', None), + effective_auto_maintenance_flag=EffectiveAutoMaintenanceFlag.from_dict( + d['effective_auto_maintenance_flag']) if 'effective_auto_maintenance_flag' in d + and d['effective_auto_maintenance_flag'] is not None else None, + enable_auto_maintenance=EnableAutoMaintenance.__members__.get( + d['enable_auto_maintenance'], None) if 'enable_auto_maintenance' in d else None, + full_name=d.get('full_name', None), + metastore_id=d.get('metastore_id', None), + name=d.get('name', None), + owner=d.get('owner', None), + properties=d.get('properties', None), + storage_location=d.get('storage_location', None), + storage_root=d.get('storage_root', None), + updated_at=d.get('updated_at', None), + updated_by=d.get('updated_by', None)) SecurablePropertiesMap = Dict[str, str] @@ -2300,7 +2304,8 @@ def as_dict(self) -> dict: def from_dict(cls, d: Dict[str, any]) -> 'SharedDataObjectUpdate': return cls( action=SharedDataObjectUpdateAction.__members__.get(d['action'], None) if 'action' in d else None, - data_object=SharedDataObject.from_dict(d['data_object']) if 'data_object' in d else None) + data_object=SharedDataObject.from_dict(d['data_object']) + if 'data_object' in d and d['data_object'] is not None else None) class SharedDataObjectUpdateAction(Enum): @@ -2350,14 +2355,15 @@ def as_dict(self) -> dict: @classmethod def from_dict(cls, d: Dict[str, any]) -> 'StorageCredentialInfo': - return cls(aws_iam_role=AwsIamRole.from_dict(d['aws_iam_role']) if 'aws_iam_role' in d else None, + return cls(aws_iam_role=AwsIamRole.from_dict(d['aws_iam_role']) + if 'aws_iam_role' in d and d['aws_iam_role'] is not None else None, azure_service_principal=AzureServicePrincipal.from_dict(d['azure_service_principal']) - if 'azure_service_principal' in d else None, + if 'azure_service_principal' in d and d['azure_service_principal'] is not None else None, comment=d.get('comment', None), created_at=d.get('created_at', None), created_by=d.get('created_by', None), gcp_service_account_key=GcpServiceAccountKey.from_dict(d['gcp_service_account_key']) - if 'gcp_service_account_key' in d else None, + if 'gcp_service_account_key' in d and d['gcp_service_account_key'] is not None else None, id=d.get('id', None), metastore_id=d.get('metastore_id', None), name=d.get('name', None), @@ -2387,11 +2393,11 @@ def as_dict(self) -> dict: @classmethod def from_dict(cls, d: Dict[str, any]) -> 'TableConstraint': return cls(foreign_key_constraint=ForeignKeyConstraint.from_dict(d['foreign_key_constraint']) - if 'foreign_key_constraint' in d else None, + if 'foreign_key_constraint' in d and d['foreign_key_constraint'] is not None else None, named_table_constraint=NamedTableConstraint.from_dict(d['named_table_constraint']) - if 'named_table_constraint' in d else None, + if 'named_table_constraint' in d and d['named_table_constraint'] is not None else None, primary_key_constraint=PrimaryKeyConstraint.from_dict(d['primary_key_constraint']) - if 'primary_key_constraint' in d else None) + if 'primary_key_constraint' in d and d['primary_key_constraint'] is not None else None) @dataclass @@ -2493,41 +2499,42 @@ def as_dict(self) -> dict: @classmethod def from_dict(cls, d: Dict[str, any]) -> 'TableInfo': - return cls( - catalog_name=d.get('catalog_name', None), - columns=[ColumnInfo.from_dict(v) - for v in d['columns']] if 'columns' in d and d['columns'] is not None else None, - comment=d.get('comment', None), - created_at=d.get('created_at', None), - created_by=d.get('created_by', None), - data_access_configuration_id=d.get('data_access_configuration_id', None), - data_source_format=DataSourceFormat.__members__.get(d['data_source_format'], None) - if 'data_source_format' in d else None, - deleted_at=d.get('deleted_at', None), - delta_runtime_properties_kvpairs=d.get('delta_runtime_properties_kvpairs', None), - effective_auto_maintenance_flag=EffectiveAutoMaintenanceFlag.from_dict( - d['effective_auto_maintenance_flag']) if 'effective_auto_maintenance_flag' in d else None, - enable_auto_maintenance=EnableAutoMaintenance.__members__.get(d['enable_auto_maintenance'], None) - if 'enable_auto_maintenance' in d else None, - full_name=d.get('full_name', None), - metastore_id=d.get('metastore_id', None), - name=d.get('name', None), - owner=d.get('owner', None), - properties=d.get('properties', None), - row_filter=TableRowFilter.from_dict(d['row_filter']) if 'row_filter' in d else None, - schema_name=d.get('schema_name', None), - sql_path=d.get('sql_path', None), - storage_credential_name=d.get('storage_credential_name', None), - storage_location=d.get('storage_location', None), - table_constraints=TableConstraintList.from_dict(d['table_constraints']) - if 'table_constraints' in d else None, - table_id=d.get('table_id', None), - table_type=TableType.__members__.get(d['table_type'], None) if 'table_type' in d else None, - updated_at=d.get('updated_at', None), - updated_by=d.get('updated_by', None), - view_definition=d.get('view_definition', None), - view_dependencies=[Dependency.from_dict(v) for v in d['view_dependencies']] - if 'view_dependencies' in d and d['view_dependencies'] is not None else None) + return cls(catalog_name=d.get('catalog_name', None), + columns=[ColumnInfo.from_dict(v) + for v in d['columns']] if 'columns' in d and d['columns'] is not None else None, + comment=d.get('comment', None), + created_at=d.get('created_at', None), + created_by=d.get('created_by', None), + data_access_configuration_id=d.get('data_access_configuration_id', None), + data_source_format=DataSourceFormat.__members__.get(d['data_source_format'], None) + if 'data_source_format' in d else None, + deleted_at=d.get('deleted_at', None), + delta_runtime_properties_kvpairs=d.get('delta_runtime_properties_kvpairs', None), + effective_auto_maintenance_flag=EffectiveAutoMaintenanceFlag.from_dict( + d['effective_auto_maintenance_flag']) if 'effective_auto_maintenance_flag' in d + and d['effective_auto_maintenance_flag'] is not None else None, + enable_auto_maintenance=EnableAutoMaintenance.__members__.get( + d['enable_auto_maintenance'], None) if 'enable_auto_maintenance' in d else None, + full_name=d.get('full_name', None), + metastore_id=d.get('metastore_id', None), + name=d.get('name', None), + owner=d.get('owner', None), + properties=d.get('properties', None), + row_filter=TableRowFilter.from_dict(d['row_filter']) + if 'row_filter' in d and d['row_filter'] is not None else None, + schema_name=d.get('schema_name', None), + sql_path=d.get('sql_path', None), + storage_credential_name=d.get('storage_credential_name', None), + storage_location=d.get('storage_location', None), + table_constraints=TableConstraintList.from_dict(d['table_constraints']) + if 'table_constraints' in d and d['table_constraints'] is not None else None, + table_id=d.get('table_id', None), + table_type=TableType.__members__.get(d['table_type'], None) if 'table_type' in d else None, + updated_at=d.get('updated_at', None), + updated_by=d.get('updated_by', None), + view_definition=d.get('view_definition', None), + view_dependencies=[Dependency.from_dict(v) for v in d['view_dependencies']] + if 'view_dependencies' in d and d['view_dependencies'] is not None else None) @dataclass @@ -2786,12 +2793,12 @@ def as_dict(self) -> dict: @classmethod def from_dict(cls, d: Dict[str, any]) -> 'UpdateRecipient': - return cls( - comment=d.get('comment', None), - ip_access_list=IpAccessList.from_dict(d['ip_access_list']) if 'ip_access_list' in d else None, - name=d.get('name', None), - owner=d.get('owner', None), - properties_kvpairs=d.get('properties_kvpairs', None)) + return cls(comment=d.get('comment', None), + ip_access_list=IpAccessList.from_dict(d['ip_access_list']) + if 'ip_access_list' in d and d['ip_access_list'] is not None else None, + name=d.get('name', None), + owner=d.get('owner', None), + properties_kvpairs=d.get('properties_kvpairs', None)) @dataclass @@ -2891,13 +2898,14 @@ def as_dict(self) -> dict: @classmethod def from_dict(cls, d: Dict[str, any]) -> 'UpdateStorageCredential': - return cls(aws_iam_role=AwsIamRole.from_dict(d['aws_iam_role']) if 'aws_iam_role' in d else None, + return cls(aws_iam_role=AwsIamRole.from_dict(d['aws_iam_role']) + if 'aws_iam_role' in d and d['aws_iam_role'] is not None else None, azure_service_principal=AzureServicePrincipal.from_dict(d['azure_service_principal']) - if 'azure_service_principal' in d else None, + if 'azure_service_principal' in d and d['azure_service_principal'] is not None else None, comment=d.get('comment', None), force=d.get('force', None), gcp_service_account_key=GcpServiceAccountKey.from_dict(d['gcp_service_account_key']) - if 'gcp_service_account_key' in d else None, + if 'gcp_service_account_key' in d and d['gcp_service_account_key'] is not None else None, name=d.get('name', None), owner=d.get('owner', None), read_only=d.get('read_only', None), @@ -2929,12 +2937,13 @@ def as_dict(self) -> dict: @classmethod def from_dict(cls, d: Dict[str, any]) -> 'ValidateStorageCredential': - return cls(aws_iam_role=AwsIamRole.from_dict(d['aws_iam_role']) if 'aws_iam_role' in d else None, + return cls(aws_iam_role=AwsIamRole.from_dict(d['aws_iam_role']) + if 'aws_iam_role' in d and d['aws_iam_role'] is not None else None, azure_service_principal=AzureServicePrincipal.from_dict(d['azure_service_principal']) - if 'azure_service_principal' in d else None, + if 'azure_service_principal' in d and d['azure_service_principal'] is not None else None, external_location_name=d.get('external_location_name', None), gcp_service_account_key=GcpServiceAccountKey.from_dict(d['gcp_service_account_key']) - if 'gcp_service_account_key' in d else None, + if 'gcp_service_account_key' in d and d['gcp_service_account_key'] is not None else None, read_only=d.get('read_only', None), storage_credential_name=d.get('storage_credential_name', None), url=d.get('url', None)) diff --git a/setup.cfg b/setup.cfg index ef6f45d1..0adaaf3b 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,6 +1,6 @@ [tool:pytest] -log_cli=true -log_level=NOTSET +log_cli = true +log_level = NOTSET [autoflake] expand-star-imports = true diff --git a/setup.py b/setup.py index 85290543..e8c67e63 100644 --- a/setup.py +++ b/setup.py @@ -11,7 +11,7 @@ packages=find_packages(exclude=["tests", "*tests.*", "*tests"]), python_requires=">=3.7", install_requires=["requests>=2.28.1", ], - extras_require={"dev": ["pytest", "pytest-cov", "yapf", "pycodestyle", "autoflake", "isort", "wheel"]}, + extras_require={"dev": ["pytest", "pytest-cov", "pytest-xdist", "yapf", "pycodestyle", "autoflake", "isort", "wheel"]}, author="Serge Smertin ", description="Official Databricks SDK for Python", long_description=io.open("README.md", encoding="utf-8").read(), diff --git a/tests/integration/test_clusters.py b/tests/integration/test_clusters.py index c8be4a99..da73cdfb 100644 --- a/tests/integration/test_clusters.py +++ b/tests/integration/test_clusters.py @@ -1,9 +1,5 @@ import logging -import pytest - -from databricks.sdk.service.clusters import State - def test_smallest_node_type(w): node_type_id = w.clusters.select_node_type(local_disk=True) @@ -23,18 +19,15 @@ def test_cluster_events(w, env_or_skip): assert count > 0 -def test_start_cluster(w, env_or_skip): +def test_ensure_cluster_is_running(w, env_or_skip): cluster_id = env_or_skip("TEST_DEFAULT_CLUSTER_ID") - info = w.clusters.start(cluster_id) - assert info.state == State.RUNNING + w.clusters.ensure_cluster_is_running(cluster_id) -def test_create_cluster(w): - if not w.config.is_aws: - pytest.skip("this test runs only on AWS") +def test_create_cluster(w, env_or_skip): info = w.clusters.create(cluster_name='Created cluster', - spark_version='12.0.x-scala2.12', - node_type_id='m5d.large', + spark_version=w.clusters.select_spark_version(long_term_support=True), + instance_pool_id=env_or_skip('TEST_INSTANCE_POOL_ID'), autotermination_minutes=10, num_workers=1, timeout=10) diff --git a/tests/integration/test_dbconnect.py b/tests/integration/test_dbconnect.py index eec16938..0401c0e6 100644 --- a/tests/integration/test_dbconnect.py +++ b/tests/integration/test_dbconnect.py @@ -1,4 +1,9 @@ +import pytest + + def test_it_works_with_dbconnect(w): + pytest.skip('not yet available') + import pyspark.sql.connect.functions as F from pyspark.sql.connect.session import SparkSession @@ -11,6 +16,8 @@ def test_it_works_with_dbconnect(w): def test_it_works_with_vanilla_dbconnect(w): + pytest.skip('not yet available') + import os from urllib.parse import urlparse