Skip to content

Fix deserialization of repeated enums#450

Merged
mgyucht merged 7 commits intomainfrom
fix/repeated-enum-deserialization
Nov 21, 2023
Merged

Fix deserialization of repeated enums#450
mgyucht merged 7 commits intomainfrom
fix/repeated-enum-deserialization

Conversation

@mgyucht
Copy link
Copy Markdown
Contributor

@mgyucht mgyucht commented Nov 20, 2023

Changes

Resolves #449.

We need to handle deserializing repeated enums specially, like we do with handling deserializing plain enums.

Tests

  • make test run locally
  • make fmt applied
  • relevant integration tests applied

@mgyucht mgyucht requested a review from tanmay-db November 20, 2023 16:21
@codecov-commenter
Copy link
Copy Markdown

codecov-commenter commented Nov 20, 2023

Codecov Report

Attention: 177 lines in your changes are missing coverage. Please review.

Comparison is base (86ca043) 51.62% compared to head (1e293cf) 51.60%.
Report is 2 commits behind head on main.

Files Patch % Lines
databricks/sdk/service/compute.py 3.70% 26 Missing ⚠️
databricks/sdk/service/catalog.py 3.84% 25 Missing ⚠️
databricks/sdk/service/ml.py 4.16% 23 Missing ⚠️
databricks/sdk/service/workspace.py 6.66% 14 Missing ⚠️
databricks/sdk/service/iam.py 7.69% 12 Missing ⚠️
databricks/sdk/service/sharing.py 7.69% 12 Missing ⚠️
databricks/sdk/service/sql.py 8.33% 11 Missing ⚠️
databricks/sdk/service/_internal.py 28.57% 10 Missing ⚠️
databricks/sdk/service/jobs.py 9.09% 10 Missing ⚠️
databricks/sdk/service/serving.py 9.09% 10 Missing ⚠️
... and 5 more
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #450      +/-   ##
==========================================
- Coverage   51.62%   51.60%   -0.02%     
==========================================
  Files          38       38              
  Lines       22266    22277      +11     
==========================================
+ Hits        11495    11497       +2     
- Misses      10771    10780       +9     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@mgyucht mgyucht added this pull request to the merge queue Nov 21, 2023
Merged via the queue into main with commit 2b952c9 Nov 21, 2023
@mgyucht mgyucht deleted the fix/repeated-enum-deserialization branch November 21, 2023 09:01
github-merge-queue bot pushed a commit that referenced this pull request Nov 22, 2023
## Changes
#450 introduced a regression in the deserialization logic when referring
to types defined in external packages. This PR fixes this.

## Tests
Running nightly tests to make sure they pass.
@mgyucht mgyucht mentioned this pull request Nov 29, 2023
mgyucht added a commit that referenced this pull request Nov 29, 2023
Major changes:
* GCP Auth is now supported in the Python SDK. To use Google credentials-based authentication, specify your Default Application Credentials in the `GOOGLE_CREDENTIALS` environment variable or corresponding `google_credentials` parameter in `Config` or the client constructors. You may provide either the path to the file containing your credentials or the credentials themselves serialized as JSON. To use Google impersonation, specify the service principal to impersonate in the `DATABRICKS_GOOGLE_SERVICE_ACCOUNT` environment variable or the corresponding `google_service_account` parameter in `Config` or the client constructors. See [#444](#444) for the changes.

Bug fixes:
* Fix flask app example ([#445](#445)).
* Fix deserialization of repeated enums ([#450](#450), [#452](#452)).
* Capture stdout and stderr separately when calling Azure CLI ([#460](#460)).

Other changes:
* Change the name of retries logger to `databricks.sdk.retries` ([#453](#453)).

API Changes:

 * Added `pipeline_id` field for `databricks.sdk.service.catalog.TableInfo`.
 * Added `enable_predictive_optimization` field for `databricks.sdk.service.catalog.UpdateCatalog` and `databricks.sdk.service.catalog.UpdateSchema`.
 * Removed `databricks.sdk.service.catalog.UpdatePredictiveOptimization` and `databricks.sdk.service.catalog.UpdatePredictiveOptimizationResponse` dataclasses.
 * Removed `enable_optimization()` method for [w.metastores](https://databricks-sdk-py.readthedocs.io/en/latest/workspace/metastores.html) workspace-level service.
 * Added `description` field for `databricks.sdk.service.jobs.CreateJob`  and `databricks.sdk.service.jobs.JobSettings`.
 * Added `list_network_connectivity_configurations()` and `list_private_endpoint_rules()` methods for [a.network_connectivity](https://databricks-sdk-py.readthedocs.io/en/latest/account/network_connectivity.html) account-level service.
 * Added `databricks.sdk.service.settings.ListNccAzurePrivateEndpointRulesResponse`, `databricks.sdk.service.settings.ListNetworkConnectivityConfigurationsRequest`, `databricks.sdk.service.settings.ListNetworkConnectivityConfigurationsResponse`, and `databricks.sdk.service.settings.ListPrivateEndpointRulesRequest` dataclasses.

Internal changes:

* Make ucws tests skipped when DATABRICKS_ACCOUNT_ID is present ([#448](#448)).

OpenAPI SHA: 22f09783eb8a84d52026f856be3b2068f9498db3, Date: 2023-11-23
Dependency updates:

 * Bump API spec for Python SDK ([#454](#454)).
github-merge-queue bot pushed a commit that referenced this pull request Nov 29, 2023
Major changes:
* GCP Auth is now supported in the Python SDK. To use Google
credentials-based authentication, specify your Default Application
Credentials in the `GOOGLE_CREDENTIALS` environment variable or
corresponding `google_credentials` parameter in `Config` or the client
constructors. You may provide either the path to the file containing
your credentials or the credentials themselves serialized as JSON. To
use Google impersonation, specify the service principal to impersonate
in the `DATABRICKS_GOOGLE_SERVICE_ACCOUNT` environment variable or the
corresponding `google_service_account` parameter in `Config` or the
client constructors. See
[#444](#444) for the
changes.

Bug fixes:
* Fix flask app example
([#445](#445)).
* Fix deserialization of repeated enums
([#450](#450),
[#452](#452)).
* Capture stdout and stderr separately when calling Azure CLI
([#460](#460)).

Other changes:
* Change the name of retries logger to `databricks.sdk.retries`
([#453](#453)).

API Changes:

* Added `pipeline_id` field for
`databricks.sdk.service.catalog.TableInfo`.
* Added `enable_predictive_optimization` field for
`databricks.sdk.service.catalog.UpdateCatalog` and
`databricks.sdk.service.catalog.UpdateSchema`.
* Removed `databricks.sdk.service.catalog.UpdatePredictiveOptimization`
and
`databricks.sdk.service.catalog.UpdatePredictiveOptimizationResponse`
dataclasses.
* Removed `enable_optimization()` method for
[w.metastores](https://databricks-sdk-py.readthedocs.io/en/latest/workspace/metastores.html)
workspace-level service.
* Added `description` field for `databricks.sdk.service.jobs.CreateJob`
and `databricks.sdk.service.jobs.JobSettings`.
* Added `list_network_connectivity_configurations()` and
`list_private_endpoint_rules()` methods for
[a.network_connectivity](https://databricks-sdk-py.readthedocs.io/en/latest/account/network_connectivity.html)
account-level service.
* Added
`databricks.sdk.service.settings.ListNccAzurePrivateEndpointRulesResponse`,
`databricks.sdk.service.settings.ListNetworkConnectivityConfigurationsRequest`,
`databricks.sdk.service.settings.ListNetworkConnectivityConfigurationsResponse`,
and `databricks.sdk.service.settings.ListPrivateEndpointRulesRequest`
dataclasses.

Internal changes:

* Make ucws tests skipped when DATABRICKS_ACCOUNT_ID is present
([#448](#448)).

OpenAPI SHA: 22f09783eb8a84d52026f856be3b2068f9498db3, Date: 2023-11-23
Dependency updates:

 * Introduced "google-auth" dependency to support Google authentication.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[ISSUE] iam.User.as_dict() raises error in 0.11.0+ sdk

3 participants