Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix deserialization of repeated enums #450

Merged
merged 7 commits into from
Nov 21, 2023

Conversation

mgyucht
Copy link
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

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
9 checks passed
@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