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

Update databricks-sdk requirement from <0.22,>=0.18 to >=0.18,<0.23 #178

Merged

Conversation

dependabot[bot]
Copy link
Contributor

@dependabot dependabot bot commented on behalf of github Mar 18, 2024

Updates the requirements on databricks-sdk to permit the latest version.

Changelog

Sourced from databricks-sdk's changelog.

0.22.0

  • Fix typos in doc string for select_spark_version (#575).

API Changes:

  • Changed notifications field for databricks.sdk.service.catalog.CreateMonitor, databricks.sdk.service.catalog.MonitorInfo, and databricks.sdk.service.catalog.UpdateMonitor to databricks.sdk.service.catalog.MonitorNotificationsConfig dataclass.
  • Added browse_only field for databricks.sdk.service.catalog.ExternalLocationInfo, databricks.sdk.service.catalog.FunctionInfo, databricks.sdk.service.catalog.ModelVersionInfo, databricks.sdk.service.catalog.RegisteredModelInfo, databricks.sdk.service.catalog.SchemaInfo, databricks.sdk.service.catalog.TableInfo, and databricks.sdk.service.catalog.VolumeInfo.
  • Added include_browse field for databricks.sdk.service.catalog.GetCatalogRequest, databricks.sdk.service.catalog.GetExternalLocationRequest, databricks.sdk.service.catalog.GetFunctionRequest, databricks.sdk.service.catalog.GetModelVersionRequest, databricks.sdk.service.catalog.GetRegisteredModelRequest, databricks.sdk.service.catalog.GetSchemaRequest, databricks.sdk.service.catalog.GetTableRequest, databricks.sdk.service.catalog.ListExternalLocationsRequest, databricks.sdk.service.catalog.ListFunctionsRequest, databricks.sdk.service.catalog.ListModelVersionsRequest, databricks.sdk.service.catalog.ListRegisteredModelsRequest, databricks.sdk.service.catalog.ListSchemasRequest, databricks.sdk.service.catalog.ListTablesRequest, databricks.sdk.service.catalog.ListVolumesRequest, and databricks.sdk.service.catalog.ReadVolumeRequest.
  • Changed publish() method for w.lakeview workspace-level service to return databricks.sdk.service.dashboards.PublishedDashboard dataclass.
  • Added create(), get(), get_published(), trash(), and update() methods for w.lakeview workspace-level service.
  • Added databricks.sdk.service.dashboards.CreateDashboardRequest, databricks.sdk.service.dashboards.Dashboard, databricks.sdk.service.dashboards.GetLakeviewRequest, databricks.sdk.service.dashboards.GetPublishedRequest, databricks.sdk.service.dashboards.LifecycleState, databricks.sdk.service.dashboards.PublishedDashboard, databricks.sdk.service.dashboards.TrashRequest, and databricks.sdk.service.dashboards.UpdateDashboardRequest dataclasses.

OpenAPI SHA: c84caf9e5ef531cc0b1ddd0a76970d9a8b664e32, Date: 2024-03-15

0.21.0

New Features and Improvements

  • Fixed get_workspace_client in GCP (#532).
  • Use all-apis scope with external-browser (#563).
  • Make a best effort attempt to initialise all Databricks globals (#562).
  • Fixed type issue with widgets.getArgument (#581)
  • Note: Backwards incompatible changes - Settings are now nested, please see the API changes below.

Documentation

  • Added Files API docs to the SDK Documentation (#556).
  • Added new example to list compute resource for SUBMIT_RUN job runs (#572).
  • Sorted index pages by name in docs (#560).
  • Added back enums to docs (#557).

API Changes

Added

Services:

Dataclasses:

  • databricks.sdk.service.settings.AutomaticClusterUpdateSetting
  • databricks.sdk.service.settings.ClusterAutoRestartMessage
  • databricks.sdk.service.settings.ClusterAutoRestartMessageEnablementDetails
  • databricks.sdk.service.settings.ClusterAutoRestartMessageMaintenanceWindow
  • databricks.sdk.service.settings.ClusterAutoRestartMessageMaintenanceWindowDayOfWeek
  • databricks.sdk.service.settings.ClusterAutoRestartMessageMaintenanceWindowWeekDayBasedSchedule

... (truncated)

Commits

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot merge will merge this PR after your CI passes on it
  • @dependabot squash and merge will squash and merge this PR after your CI passes on it
  • @dependabot cancel merge will cancel a previously requested merge and block automerging
  • @dependabot reopen will reopen this PR if it is closed
  • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

@dependabot dependabot bot requested a review from a team as a code owner March 18, 2024 09:48
@dependabot dependabot bot added the dependencies Pull requests that update a dependency file label Mar 18, 2024
Copy link

codecov bot commented Mar 18, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 95.95%. Comparing base (218ee0b) to head (348b21f).

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #178   +/-   ##
=======================================
  Coverage   95.95%   95.95%           
=======================================
  Files          19       19           
  Lines        1236     1236           
  Branches      200      200           
=======================================
  Hits         1186     1186           
  Misses         25       25           
  Partials       25       25           

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

Updates the requirements on [databricks-sdk](https://github.com/databricks/databricks-sdk-py) to permit the latest version.
- [Release notes](https://github.com/databricks/databricks-sdk-py/releases)
- [Changelog](https://github.com/databricks/databricks-sdk-py/blob/main/CHANGELOG.md)
- [Commits](databricks/databricks-sdk-py@v0.18.0...v0.22.0)

---
updated-dependencies:
- dependency-name: databricks-sdk
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <[email protected]>
@dependabot dependabot bot force-pushed the dependabot/pip/databricks-sdk-gte-0.18-and-lt-0.23 branch from 4b9f7b9 to 348b21f Compare March 19, 2024 04:48
Copy link
Collaborator

@sundarshankar89 sundarshankar89 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@sundarshankar89 sundarshankar89 added this pull request to the merge queue Mar 19, 2024
Merged via the queue into main with commit 4f060ab Mar 19, 2024
6 checks passed
@sundarshankar89 sundarshankar89 deleted the dependabot/pip/databricks-sdk-gte-0.18-and-lt-0.23 branch March 19, 2024 05:00
sundarshankar89 added a commit that referenced this pull request Apr 4, 2024
* Added Databricks Source Adapter ([#185](#185)). In this release, the project has been enhanced with several new features for the Databricks Source Adapter. A new `engine` parameter has been added to the `DataSource` class, replacing the original `source` parameter. The `_get_secrets` and `_get_table_or_query` methods have been updated to use the `engine` parameter for key naming and handling queries with a `select` statement differently, respectively. A Databricks Source Adapter for Oracle databases has been introduced, which includes a new `OracleDataSource` class that provides functionality to connect to an Oracle database using JDBC. A Databricks Source Adapter for Snowflake has also been added, featuring the `SnowflakeDataSource` class that handles data reading and schema retrieval from Snowflake. The `DatabricksDataSource` class has been updated to handle data reading and schema retrieval from Databricks, including a new `get_schema_query` method that generates the query to fetch the schema based on the provided catalog and table name. Exception handling for reading data and fetching schema has been implemented for all new classes. These changes provide increased flexibility for working with various data sources, improved code maintainability, and better support for different use cases.
* Added Issue Templates for bugs, feature and config ([#194](#194)). Two new issue templates have been added to the project's GitHub repository to improve issue creation and management. The first template, located in `.github/ISSUE_TEMPLATE/bug.yml`, is for reporting bugs and prompts users to provide detailed information about the issue, including the current and expected behavior, steps to reproduce, relevant log output, and sample query. The second template, added under the path `.github/ISSUE_TEMPLATE/config.yml`, is for configuration-related issues and includes support contact links for general Databricks questions and Remorph documentation, as well as fields for specifying the operating system and software version. A new issue template for feature requests, named "Feature Request", has also been added, providing a structured format for users to submit requests for new functionality for the Remorph project. These templates will help streamline the issue creation process, improve the quality of information provided, and make it easier for the development team to quickly identify and address bugs and feature requests.
* Added Threshold Query Builder ([#188](#188)). In this release, the open-source library has added a Threshold Query Builder feature, which includes several changes to the existing functionality in the data source connector. A new import statement adds the `re` module for regular expressions, and new parameters have been added to the `read_data` and `get_schema` abstract methods. The `_get_jdbc_reader_options` method has been updated to accept a `options` parameter of type "JdbcReaderOptions", and a new static method, "_get_table_or_query", has been added to construct the table or query string based on provided parameters. Additionally, a new class, "QueryConfig", has been introduced in the "databricks.labs.remorph.reconcile" package to configure queries for data reconciliation tasks. A new abstract base class QueryBuilder has been added to the query_builder.py file, along with HashQueryBuilder and ThresholdQueryBuilder classes to construct SQL queries for generating hash values and selecting columns based on threshold values, transformation rules, and filtering conditions. These changes aim to enhance the functionality of the data source connector, add modularity, customizability, and reusability to the query builder, and improve data reconciliation tasks.
* Added serverless validation using lsql library ([#176](#176)).
* Added snowflake connector code ([#177](#177)). In this release, the open-source library has been updated to add a Snowflake connector for data extraction and schema manipulation. The changes include the addition of the SnowflakeDataSource class, which is used to read data from Snowflake using PySpark, and has methods for getting the JDBC URL, reading data with and without JDBC reader options, getting the schema, and handling exceptions. A new constant, SNOWFLAKE, has been added to the SourceDriver enum in constants.py, which represents the Snowflake JDBC driver class. The code modifications include updating the constructor of the DataSource abstract base class to include a new parameter 'scope', and updating the `_get_secrets` method to accept a `key_name` parameter instead of 'key'. Additionally, a test file 'test_snowflake.py' has been added to test the functionality of the SnowflakeDataSource class. This release also updates the pyproject.toml file to version lock the dependencies like black, ruff, and isort, and modifies the coverage report configuration to exclude certain files and lines from coverage checks. These changes were completed by Ravikumar Thangaraj and SundarShankar89.
* Enhanced install script to enforce usage of a warehouse or cluster when `skip-validation` is set to `False` ([#213](#213)). In this release, the installation process has been enhanced to mandate the use of a warehouse or cluster when the `skip-validation` parameter is set to `False`. This change has been implemented across various components, including the install script, `transpile` function, and `get_sql_backend` function. Additionally, new pytest fixtures and methods have been added to improve test configuration and resource management during testing. Unit tests have been updated to enforce usage of a warehouse or cluster when the `skip-validation` flag is set to `False`, ensuring proper resource allocation and validation process improvement. This development focuses on promoting a proper setup and usage of the system, guiding new users towards a correct configuration and improving the overall reliability of the tool.
* Patch subquery with json column access ([#190](#190)). The open-source library has been updated with new functionality to modify how subqueries with JSON column access are handled in the `snowflake.py` file. This change includes the addition of a check for an opening parenthesis after the `FROM` keyword to detect and break loops when a subquery is found, as opposed to a table name. This improvement enhances the handling of complex subqueries and JSON column access, making the code more robust and adaptable to different query structures. Additionally, a new test method, `test_nested_query_with_json`, has been introduced to the `tests/unit/snow/test_databricks.py` file to test the behavior of nested queries involving JSON column access when using a Snowflake dialect. This new method validates the expected output of a specific nested query when it is transpiled to Snowflake's SQL dialect, allowing for more comprehensive testing of JSON column access and type casting in Snowflake dialects. The existing `test_delete_from_keyword` method remains unchanged.
* Prevent adding `# pylint: disable` comments without explicit approval ([#191](#191)). A new job, "no-lint-disabled", has been added to the GitHub Actions workflow defined in the "push.yml" file to enforce the use of the pylint linter. This job checks for the addition of "# pylint: disable" comments in new code without explicit approval, preventing the linter from being bypassed without permission. It runs on the latest version of Ubuntu, checks out the repository with a full history, extracts the new code using the `git diff` command, and searches for any instances of "# pylint: disable" using "grep". If any are found, the script outputs an error message and exits with a non-zero status, causing the workflow to fail. This new job helps maintain code quality and consistency across the project by ensuring that the pylint linter is used appropriately in new code.
* Snowflake `UPDATE FROM` to Databricks `MERGE INTO` implementation ([#198](#198)).
* Use Runtime SQL backend in Notebooks ([#211](#211)). In this update, the `db_sql.py` file in the `databricks/labs/remorph/helpers` directory has been modified to support the use of the Runtime SQL backend in Notebooks. This change includes the addition of a new `RuntimeBackend` class in the `backends` module and an import statement for `os`. The `get_sql_backend` function now returns a `RuntimeBackend` instance when the `DATABRICKS_RUNTIME_VERSION` environment variable is present, allowing for more efficient and secure SQL statement execution in Databricks notebooks. Additionally, a new test case for the `get_sql_backend` function has been added to ensure the correct behavior of the function in various runtime environments. These enhancements improve SQL execution performance and security in Databricks notebooks and increase the project's versatility for different use cases.
* `remorph reconcile` baseline for Query Builder and Source Adapter for oracle as source ([#150](#150)).

Dependency updates:

 * Bump sqlglot from 22.4.0 to 22.5.0 ([#175](#175)).
 * Updated databricks-sdk requirement from <0.22,>=0.18 to >=0.18,<0.23 ([#178](#178)).
 * Updated databricks-sdk requirement from <0.23,>=0.18 to >=0.18,<0.24 ([#189](#189)).
 * Bump actions/checkout from 3 to 4 ([#203](#203)).
 * Bump actions/setup-python from 4 to 5 ([#201](#201)).
 * Bump codecov/codecov-action from 1 to 4 ([#202](#202)).
 * Bump softprops/action-gh-release from 1 to 2 ([#204](#204)).
@sundarshankar89 sundarshankar89 mentioned this pull request Apr 4, 2024
github-merge-queue bot pushed a commit that referenced this pull request Apr 4, 2024
* Added serverless validation using lsql library
([#176](#176)).
Workspaceclient object is used with `product` name and `product_version`
along with corresponding `cluster_id` or `warehouse_id` as `sdk_config`
in `MorphConfig` object.
* Enhanced install script to enforce usage of a warehouse or cluster
when `skip-validation` is set to `False`
([#213](#213)). In this
release, the installation process has been enhanced to mandate the use
of a warehouse or cluster when the `skip-validation` parameter is set to
`False`. This change has been implemented across various components,
including the install script, `transpile` function, and
`get_sql_backend` function. Additionally, new pytest fixtures and
methods have been added to improve test configuration and resource
management during testing. Unit tests have been updated to enforce usage
of a warehouse or cluster when the `skip-validation` flag is set to
`False`, ensuring proper resource allocation and validation process
improvement. This development focuses on promoting a proper setup and
usage of the system, guiding new users towards a correct configuration
and improving the overall reliability of the tool.
* Patch subquery with json column access
([#190](#190)). The
open-source library has been updated with new functionality to modify
how subqueries with JSON column access are handled in the `snowflake.py`
file. This change includes the addition of a check for an opening
parenthesis after the `FROM` keyword to detect and break loops when a
subquery is found, as opposed to a table name. This improvement enhances
the handling of complex subqueries and JSON column access, making the
code more robust and adaptable to different query structures.
Additionally, a new test method, `test_nested_query_with_json`, has been
introduced to the `tests/unit/snow/test_databricks.py` file to test the
behavior of nested queries involving JSON column access when using a
Snowflake dialect. This new method validates the expected output of a
specific nested query when it is transpiled to Snowflake's SQL dialect,
allowing for more comprehensive testing of JSON column access and type
casting in Snowflake dialects. The existing `test_delete_from_keyword`
method remains unchanged.
* Snowflake `UPDATE FROM` to Databricks `MERGE INTO` implementation
([#198](#198)).
* Use Runtime SQL backend in Notebooks
([#211](#211)). In this
update, the `db_sql.py` file in the `databricks/labs/remorph/helpers`
directory has been modified to support the use of the Runtime SQL
backend in Notebooks. This change includes the addition of a new
`RuntimeBackend` class in the `backends` module and an import statement
for `os`. The `get_sql_backend` function now returns a `RuntimeBackend`
instance when the `DATABRICKS_RUNTIME_VERSION` environment variable is
present, allowing for more efficient and secure SQL statement execution
in Databricks notebooks. Additionally, a new test case for the
`get_sql_backend` function has been added to ensure the correct behavior
of the function in various runtime environments. These enhancements
improve SQL execution performance and security in Databricks notebooks
and increase the project's versatility for different use cases.
* Added Issue Templates for bugs, feature and config
([#194](#194)). Two new
issue templates have been added to the project's GitHub repository to
improve issue creation and management. The first template, located in
`.github/ISSUE_TEMPLATE/bug.yml`, is for reporting bugs and prompts
users to provide detailed information about the issue, including the
current and expected behavior, steps to reproduce, relevant log output,
and sample query. The second template, added under the path
`.github/ISSUE_TEMPLATE/config.yml`, is for configuration-related issues
and includes support contact links for general Databricks questions and
Remorph documentation, as well as fields for specifying the operating
system and software version. A new issue template for feature requests,
named "Feature Request", has also been added, providing a structured
format for users to submit requests for new functionality for the
Remorph project. These templates will help streamline the issue creation
process, improve the quality of information provided, and make it easier
for the development team to quickly identify and address bugs and
feature requests.
* Added Databricks Source Adapter
([#185](#185)). In this
release, the project has been enhanced with several new features for the
Databricks Source Adapter. A new `engine` parameter has been added to
the `DataSource` class, replacing the original `source` parameter. The
`_get_secrets` and `_get_table_or_query` methods have been updated to
use the `engine` parameter for key naming and handling queries with a
`select` statement differently, respectively. A Databricks Source
Adapter for Oracle databases has been introduced, which includes a new
`OracleDataSource` class that provides functionality to connect to an
Oracle database using JDBC. A Databricks Source Adapter for Snowflake
has also been added, featuring the `SnowflakeDataSource` class that
handles data reading and schema retrieval from Snowflake. The
`DatabricksDataSource` class has been updated to handle data reading and
schema retrieval from Databricks, including a new `get_schema_query`
method that generates the query to fetch the schema based on the
provided catalog and table name. Exception handling for reading data and
fetching schema has been implemented for all new classes. These changes
provide increased flexibility for working with various data sources,
improved code maintainability, and better support for different use
cases.
* Added Threshold Query Builder
([#188](#188)). In this
release, the open-source library has added a Threshold Query Builder
feature, which includes several changes to the existing functionality in
the data source connector. A new import statement adds the `re` module
for regular expressions, and new parameters have been added to the
`read_data` and `get_schema` abstract methods. The
`_get_jdbc_reader_options` method has been updated to accept a `options`
parameter of type "JdbcReaderOptions", and a new static method,
"_get_table_or_query", has been added to construct the table or query
string based on provided parameters. Additionally, a new class,
"QueryConfig", has been introduced in the
"databricks.labs.remorph.reconcile" package to configure queries for
data reconciliation tasks. A new abstract base class QueryBuilder has
been added to the query_builder.py file, along with HashQueryBuilder and
ThresholdQueryBuilder classes to construct SQL queries for generating
hash values and selecting columns based on threshold values,
transformation rules, and filtering conditions. These changes aim to
enhance the functionality of the data source connector, add modularity,
customizability, and reusability to the query builder, and improve data
reconciliation tasks.
* Added snowflake connector code
([#177](#177)). In this
release, the open-source library has been updated to add a Snowflake
connector for data extraction and schema manipulation. The changes
include the addition of the SnowflakeDataSource class, which is used to
read data from Snowflake using PySpark, and has methods for getting the
JDBC URL, reading data with and without JDBC reader options, getting the
schema, and handling exceptions. A new constant, SNOWFLAKE, has been
added to the SourceDriver enum in constants.py, which represents the
Snowflake JDBC driver class. The code modifications include updating the
constructor of the DataSource abstract base class to include a new
parameter 'scope', and updating the `_get_secrets` method to accept a
`key_name` parameter instead of 'key'. Additionally, a test file
'test_snowflake.py' has been added to test the functionality of the
SnowflakeDataSource class. This release also updates the pyproject.toml
file to version lock the dependencies like black, ruff, and isort, and
modifies the coverage report configuration to exclude certain files and
lines from coverage checks. These changes were completed by Ravikumar
Thangaraj and SundarShankar89.
* `remorph reconcile` baseline for Query Builder and Source Adapter for
oracle as source
([#150](#150)).

Dependency updates:

* Bump sqlglot from 22.4.0 to 22.5.0
([#175](#175)).
* Updated databricks-sdk requirement from <0.22,>=0.18 to >=0.18,<0.23
([#178](#178)).
* Updated databricks-sdk requirement from <0.23,>=0.18 to >=0.18,<0.24
([#189](#189)).
* Bump actions/checkout from 3 to 4
([#203](#203)).
* Bump actions/setup-python from 4 to 5
([#201](#201)).
* Bump codecov/codecov-action from 1 to 4
([#202](#202)).
* Bump softprops/action-gh-release from 1 to 2
([#204](#204)).
ravit-db pushed a commit that referenced this pull request Apr 18, 2024
* Added serverless validation using lsql library
([#176](#176)).
Workspaceclient object is used with `product` name and `product_version`
along with corresponding `cluster_id` or `warehouse_id` as `sdk_config`
in `MorphConfig` object.
* Enhanced install script to enforce usage of a warehouse or cluster
when `skip-validation` is set to `False`
([#213](#213)). In this
release, the installation process has been enhanced to mandate the use
of a warehouse or cluster when the `skip-validation` parameter is set to
`False`. This change has been implemented across various components,
including the install script, `transpile` function, and
`get_sql_backend` function. Additionally, new pytest fixtures and
methods have been added to improve test configuration and resource
management during testing. Unit tests have been updated to enforce usage
of a warehouse or cluster when the `skip-validation` flag is set to
`False`, ensuring proper resource allocation and validation process
improvement. This development focuses on promoting a proper setup and
usage of the system, guiding new users towards a correct configuration
and improving the overall reliability of the tool.
* Patch subquery with json column access
([#190](#190)). The
open-source library has been updated with new functionality to modify
how subqueries with JSON column access are handled in the `snowflake.py`
file. This change includes the addition of a check for an opening
parenthesis after the `FROM` keyword to detect and break loops when a
subquery is found, as opposed to a table name. This improvement enhances
the handling of complex subqueries and JSON column access, making the
code more robust and adaptable to different query structures.
Additionally, a new test method, `test_nested_query_with_json`, has been
introduced to the `tests/unit/snow/test_databricks.py` file to test the
behavior of nested queries involving JSON column access when using a
Snowflake dialect. This new method validates the expected output of a
specific nested query when it is transpiled to Snowflake's SQL dialect,
allowing for more comprehensive testing of JSON column access and type
casting in Snowflake dialects. The existing `test_delete_from_keyword`
method remains unchanged.
* Snowflake `UPDATE FROM` to Databricks `MERGE INTO` implementation
([#198](#198)).
* Use Runtime SQL backend in Notebooks
([#211](#211)). In this
update, the `db_sql.py` file in the `databricks/labs/remorph/helpers`
directory has been modified to support the use of the Runtime SQL
backend in Notebooks. This change includes the addition of a new
`RuntimeBackend` class in the `backends` module and an import statement
for `os`. The `get_sql_backend` function now returns a `RuntimeBackend`
instance when the `DATABRICKS_RUNTIME_VERSION` environment variable is
present, allowing for more efficient and secure SQL statement execution
in Databricks notebooks. Additionally, a new test case for the
`get_sql_backend` function has been added to ensure the correct behavior
of the function in various runtime environments. These enhancements
improve SQL execution performance and security in Databricks notebooks
and increase the project's versatility for different use cases.
* Added Issue Templates for bugs, feature and config
([#194](#194)). Two new
issue templates have been added to the project's GitHub repository to
improve issue creation and management. The first template, located in
`.github/ISSUE_TEMPLATE/bug.yml`, is for reporting bugs and prompts
users to provide detailed information about the issue, including the
current and expected behavior, steps to reproduce, relevant log output,
and sample query. The second template, added under the path
`.github/ISSUE_TEMPLATE/config.yml`, is for configuration-related issues
and includes support contact links for general Databricks questions and
Remorph documentation, as well as fields for specifying the operating
system and software version. A new issue template for feature requests,
named "Feature Request", has also been added, providing a structured
format for users to submit requests for new functionality for the
Remorph project. These templates will help streamline the issue creation
process, improve the quality of information provided, and make it easier
for the development team to quickly identify and address bugs and
feature requests.
* Added Databricks Source Adapter
([#185](#185)). In this
release, the project has been enhanced with several new features for the
Databricks Source Adapter. A new `engine` parameter has been added to
the `DataSource` class, replacing the original `source` parameter. The
`_get_secrets` and `_get_table_or_query` methods have been updated to
use the `engine` parameter for key naming and handling queries with a
`select` statement differently, respectively. A Databricks Source
Adapter for Oracle databases has been introduced, which includes a new
`OracleDataSource` class that provides functionality to connect to an
Oracle database using JDBC. A Databricks Source Adapter for Snowflake
has also been added, featuring the `SnowflakeDataSource` class that
handles data reading and schema retrieval from Snowflake. The
`DatabricksDataSource` class has been updated to handle data reading and
schema retrieval from Databricks, including a new `get_schema_query`
method that generates the query to fetch the schema based on the
provided catalog and table name. Exception handling for reading data and
fetching schema has been implemented for all new classes. These changes
provide increased flexibility for working with various data sources,
improved code maintainability, and better support for different use
cases.
* Added Threshold Query Builder
([#188](#188)). In this
release, the open-source library has added a Threshold Query Builder
feature, which includes several changes to the existing functionality in
the data source connector. A new import statement adds the `re` module
for regular expressions, and new parameters have been added to the
`read_data` and `get_schema` abstract methods. The
`_get_jdbc_reader_options` method has been updated to accept a `options`
parameter of type "JdbcReaderOptions", and a new static method,
"_get_table_or_query", has been added to construct the table or query
string based on provided parameters. Additionally, a new class,
"QueryConfig", has been introduced in the
"databricks.labs.remorph.reconcile" package to configure queries for
data reconciliation tasks. A new abstract base class QueryBuilder has
been added to the query_builder.py file, along with HashQueryBuilder and
ThresholdQueryBuilder classes to construct SQL queries for generating
hash values and selecting columns based on threshold values,
transformation rules, and filtering conditions. These changes aim to
enhance the functionality of the data source connector, add modularity,
customizability, and reusability to the query builder, and improve data
reconciliation tasks.
* Added snowflake connector code
([#177](#177)). In this
release, the open-source library has been updated to add a Snowflake
connector for data extraction and schema manipulation. The changes
include the addition of the SnowflakeDataSource class, which is used to
read data from Snowflake using PySpark, and has methods for getting the
JDBC URL, reading data with and without JDBC reader options, getting the
schema, and handling exceptions. A new constant, SNOWFLAKE, has been
added to the SourceDriver enum in constants.py, which represents the
Snowflake JDBC driver class. The code modifications include updating the
constructor of the DataSource abstract base class to include a new
parameter 'scope', and updating the `_get_secrets` method to accept a
`key_name` parameter instead of 'key'. Additionally, a test file
'test_snowflake.py' has been added to test the functionality of the
SnowflakeDataSource class. This release also updates the pyproject.toml
file to version lock the dependencies like black, ruff, and isort, and
modifies the coverage report configuration to exclude certain files and
lines from coverage checks. These changes were completed by Ravikumar
Thangaraj and SundarShankar89.
* `remorph reconcile` baseline for Query Builder and Source Adapter for
oracle as source
([#150](#150)).

Dependency updates:

* Bump sqlglot from 22.4.0 to 22.5.0
([#175](#175)).
* Updated databricks-sdk requirement from <0.22,>=0.18 to >=0.18,<0.23
([#178](#178)).
* Updated databricks-sdk requirement from <0.23,>=0.18 to >=0.18,<0.24
([#189](#189)).
* Bump actions/checkout from 3 to 4
([#203](#203)).
* Bump actions/setup-python from 4 to 5
([#201](#201)).
* Bump codecov/codecov-action from 1 to 4
([#202](#202)).
* Bump softprops/action-gh-release from 1 to 2
([#204](#204)).
sundarshankar89 pushed a commit to sundarshankar89/remorph that referenced this pull request Jan 2, 2025
…atabrickslabs#178)

Updates the requirements on
[databricks-sdk](https://github.com/databricks/databricks-sdk-py) to
permit the latest version.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/databricks/databricks-sdk-py/blob/main/CHANGELOG.md">databricks-sdk's
changelog</a>.</em></p>
<blockquote>
<h2>0.22.0</h2>
<ul>
<li>Fix typos in doc string for select_spark_version (<a
href="https://redirect.github.com/databricks/databricks-sdk-py/pull/575">#575</a>).</li>
</ul>
<p>API Changes:</p>
<ul>
<li>Changed <code>notifications</code> field for
<code>databricks.sdk.service.catalog.CreateMonitor</code>,
<code>databricks.sdk.service.catalog.MonitorInfo</code>, and
<code>databricks.sdk.service.catalog.UpdateMonitor</code> to
<code>databricks.sdk.service.catalog.MonitorNotificationsConfig</code>
dataclass.</li>
<li>Added <code>browse_only</code> field for
<code>databricks.sdk.service.catalog.ExternalLocationInfo</code>,
<code>databricks.sdk.service.catalog.FunctionInfo</code>,
<code>databricks.sdk.service.catalog.ModelVersionInfo</code>,
<code>databricks.sdk.service.catalog.RegisteredModelInfo</code>,
<code>databricks.sdk.service.catalog.SchemaInfo</code>,
<code>databricks.sdk.service.catalog.TableInfo</code>, and
<code>databricks.sdk.service.catalog.VolumeInfo</code>.</li>
<li>Added <code>include_browse</code> field for
<code>databricks.sdk.service.catalog.GetCatalogRequest</code>,
<code>databricks.sdk.service.catalog.GetExternalLocationRequest</code>,
<code>databricks.sdk.service.catalog.GetFunctionRequest</code>,
<code>databricks.sdk.service.catalog.GetModelVersionRequest</code>,
<code>databricks.sdk.service.catalog.GetRegisteredModelRequest</code>,
<code>databricks.sdk.service.catalog.GetSchemaRequest</code>,
<code>databricks.sdk.service.catalog.GetTableRequest</code>,
<code>databricks.sdk.service.catalog.ListExternalLocationsRequest</code>,
<code>databricks.sdk.service.catalog.ListFunctionsRequest</code>,
<code>databricks.sdk.service.catalog.ListModelVersionsRequest</code>,
<code>databricks.sdk.service.catalog.ListRegisteredModelsRequest</code>,
<code>databricks.sdk.service.catalog.ListSchemasRequest</code>,
<code>databricks.sdk.service.catalog.ListTablesRequest</code>,
<code>databricks.sdk.service.catalog.ListVolumesRequest</code>, and
<code>databricks.sdk.service.catalog.ReadVolumeRequest</code>.</li>
<li>Changed <code>publish()</code> method for <a
href="https://databricks-sdk-py.readthedocs.io/en/latest/workspace/lakeview.html">w.lakeview</a>
workspace-level service to return
<code>databricks.sdk.service.dashboards.PublishedDashboard</code>
dataclass.</li>
<li>Added <code>create()</code>, <code>get()</code>,
<code>get_published()</code>, <code>trash()</code>, and
<code>update()</code> methods for <a
href="https://databricks-sdk-py.readthedocs.io/en/latest/workspace/lakeview.html">w.lakeview</a>
workspace-level service.</li>
<li>Added
<code>databricks.sdk.service.dashboards.CreateDashboardRequest</code>,
<code>databricks.sdk.service.dashboards.Dashboard</code>,
<code>databricks.sdk.service.dashboards.GetLakeviewRequest</code>,
<code>databricks.sdk.service.dashboards.GetPublishedRequest</code>,
<code>databricks.sdk.service.dashboards.LifecycleState</code>,
<code>databricks.sdk.service.dashboards.PublishedDashboard</code>,
<code>databricks.sdk.service.dashboards.TrashRequest</code>, and
<code>databricks.sdk.service.dashboards.UpdateDashboardRequest</code>
dataclasses.</li>
</ul>
<p>OpenAPI SHA: c84caf9e5ef531cc0b1ddd0a76970d9a8b664e32, Date:
2024-03-15</p>
<h2>0.21.0</h2>
<h3>New Features and Improvements</h3>
<ul>
<li>Fixed get_workspace_client in GCP (<a
href="https://redirect.github.com/databricks/databricks-sdk-py/pull/532">#532</a>).</li>
<li>Use all-apis scope with external-browser (<a
href="https://redirect.github.com/databricks/databricks-sdk-py/pull/563">#563</a>).</li>
<li>Make a best effort attempt to initialise all Databricks globals (<a
href="https://redirect.github.com/databricks/databricks-sdk-py/pull/562">#562</a>).</li>
<li>Fixed type issue with widgets.getArgument (<a
href="https://redirect.github.com/databricks/databricks-sdk-py/pull/581">#581</a>)</li>
<li>Note: Backwards incompatible changes - Settings are now nested,
please see the API changes below.</li>
</ul>
<h3>Documentation</h3>
<ul>
<li>Added Files API docs to the SDK Documentation (<a
href="https://redirect.github.com/databricks/databricks-sdk-py/pull/556">#556</a>).</li>
<li>Added new example to list compute resource for SUBMIT_RUN job runs
(<a
href="https://redirect.github.com/databricks/databricks-sdk-py/pull/572">#572</a>).</li>
<li>Sorted index pages by name in docs (<a
href="https://redirect.github.com/databricks/databricks-sdk-py/pull/560">#560</a>).</li>
<li>Added back enums to docs (<a
href="https://redirect.github.com/databricks/databricks-sdk-py/pull/557">#557</a>).</li>
</ul>
<h3>API Changes</h3>
<h4>Added</h4>
<p>Services:</p>
<ul>
<li><a
href="https://databricks-sdk-py.readthedocs.io/en/latest/workspace/permission_migration.html">w.permission_migration</a>
workspace-level service.</li>
<li><a
href="https://databricks-sdk-py.readthedocs.io/en/latest/workspace/settings/automatic_cluster_update.html">w.settings.automatic_cluster_update</a>
workspace-level service.</li>
<li><a
href="https://databricks-sdk-py.readthedocs.io/en/latest/workspace/settings/csp_enablement.html">w.settings.csp_enablement</a>
workspace-level service.</li>
<li><a
href="https://databricks-sdk-py.readthedocs.io/en/latest/account/settings/csp_enablement_account.html">a.settings.csp_enablement_account</a>
account-level service.</li>
<li><a
href="https://databricks-sdk-py.readthedocs.io/en/latest/workspace/settings/default_namespace.html">w.settings.default_namespace</a>
workspace-level service.</li>
<li><a
href="https://databricks-sdk-py.readthedocs.io/en/latest/workspace/settings/esm_enablement.html">w.settings.esm_enablement</a>
workspace-level service.</li>
<li><a
href="https://databricks-sdk-py.readthedocs.io/en/latest/account/settings/esm_enablement_account.html">a.settings.esm_enablement_account</a>
account-level service.</li>
<li><a
href="https://databricks-sdk-py.readthedocs.io/en/latest/account/settings/personal_compute.html">a.settings.personal_compute</a>
account-level service.</li>
<li><a
href="https://databricks-sdk-py.readthedocs.io/en/latest/workspace/settings/restrict_workspace_admins.html">w.settings.restrict_workspace_admins</a>
workspace-level service.</li>
</ul>
<p>Dataclasses:</p>
<ul>

<li><code>databricks.sdk.service.settings.AutomaticClusterUpdateSetting</code></li>

<li><code>databricks.sdk.service.settings.ClusterAutoRestartMessage</code></li>

<li><code>databricks.sdk.service.settings.ClusterAutoRestartMessageEnablementDetails</code></li>

<li><code>databricks.sdk.service.settings.ClusterAutoRestartMessageMaintenanceWindow</code></li>

<li><code>databricks.sdk.service.settings.ClusterAutoRestartMessageMaintenanceWindowDayOfWeek</code></li>

<li><code>databricks.sdk.service.settings.ClusterAutoRestartMessageMaintenanceWindowWeekDayBasedSchedule</code></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/databricks/databricks-sdk-py/commit/33b209bdbaca4a956c7375fd65cbf8d6c3b4d95d"><code>33b209b</code></a>
Release v0.22.0 (<a
href="https://redirect.github.com/databricks/databricks-sdk-py/issues/584">#584</a>)</li>
<li><a
href="https://github.com/databricks/databricks-sdk-py/commit/48c28b1d1dc96107d7927ee30d8b149506f9d41c"><code>48c28b1</code></a>
Fix typos in doc string for select_spark_version (<a
href="https://redirect.github.com/databricks/databricks-sdk-py/issues/575">#575</a>)</li>
<li><a
href="https://github.com/databricks/databricks-sdk-py/commit/898b57d2558a23f2f1f03b374b7687915d868a9d"><code>898b57d</code></a>
Release v0.21.0 (<a
href="https://redirect.github.com/databricks/databricks-sdk-py/issues/578">#578</a>)</li>
<li><a
href="https://github.com/databricks/databricks-sdk-py/commit/ddf64933cc4764b47626dd400ac0dd6564b62785"><code>ddf6493</code></a>
Fix type issue with widgets.getArgument (<a
href="https://redirect.github.com/databricks/databricks-sdk-py/issues/581">#581</a>)</li>
<li><a
href="https://github.com/databricks/databricks-sdk-py/commit/e861140836523d02a0f991e0aae154a80c79bf15"><code>e861140</code></a>
Update SDK to latest OpenAPI spec (<a
href="https://redirect.github.com/databricks/databricks-sdk-py/issues/576">#576</a>)</li>
<li><a
href="https://github.com/databricks/databricks-sdk-py/commit/a282eee599c3176ccf33a00429356a4627c1b977"><code>a282eee</code></a>
New example to list compute resource for SUBMIT_RUN job runs (<a
href="https://redirect.github.com/databricks/databricks-sdk-py/issues/572">#572</a>)</li>
<li><a
href="https://github.com/databricks/databricks-sdk-py/commit/9813180303a7d12bf14426da6d76dca2ff313f80"><code>9813180</code></a>
Added tokei.rs badge (<a
href="https://redirect.github.com/databricks/databricks-sdk-py/issues/567">#567</a>)</li>
<li><a
href="https://github.com/databricks/databricks-sdk-py/commit/f0fe02358e7c576857ac41ac62458165cd81b192"><code>f0fe023</code></a>
Make a best effort attempt to initialise all Databricks globals (<a
href="https://redirect.github.com/databricks/databricks-sdk-py/issues/562">#562</a>)</li>
<li><a
href="https://github.com/databricks/databricks-sdk-py/commit/525576073da90de0b98ff652ad5b6f2d2bb77871"><code>5255760</code></a>
Use all-apis scope with external-browser (<a
href="https://redirect.github.com/databricks/databricks-sdk-py/issues/563">#563</a>)</li>
<li><a
href="https://github.com/databricks/databricks-sdk-py/commit/2a91e8d0c2d61beabf996b7824835bd0b9c67bfd"><code>2a91e8d</code></a>
Support subservices (<a
href="https://redirect.github.com/databricks/databricks-sdk-py/issues/559">#559</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/databricks/databricks-sdk-py/compare/v0.18.0...v0.22.0">compare
view</a></li>
</ul>
</details>
<br />


Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
sundarshankar89 pushed a commit to sundarshankar89/remorph that referenced this pull request Jan 3, 2025
…atabrickslabs#178)

Updates the requirements on
[databricks-sdk](https://github.com/databricks/databricks-sdk-py) to
permit the latest version.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/databricks/databricks-sdk-py/blob/main/CHANGELOG.md">databricks-sdk's
changelog</a>.</em></p>
<blockquote>
<h2>0.22.0</h2>
<ul>
<li>Fix typos in doc string for select_spark_version (<a
href="https://redirect.github.com/databricks/databricks-sdk-py/pull/575">#575</a>).</li>
</ul>
<p>API Changes:</p>
<ul>
<li>Changed <code>notifications</code> field for
<code>databricks.sdk.service.catalog.CreateMonitor</code>,
<code>databricks.sdk.service.catalog.MonitorInfo</code>, and
<code>databricks.sdk.service.catalog.UpdateMonitor</code> to
<code>databricks.sdk.service.catalog.MonitorNotificationsConfig</code>
dataclass.</li>
<li>Added <code>browse_only</code> field for
<code>databricks.sdk.service.catalog.ExternalLocationInfo</code>,
<code>databricks.sdk.service.catalog.FunctionInfo</code>,
<code>databricks.sdk.service.catalog.ModelVersionInfo</code>,
<code>databricks.sdk.service.catalog.RegisteredModelInfo</code>,
<code>databricks.sdk.service.catalog.SchemaInfo</code>,
<code>databricks.sdk.service.catalog.TableInfo</code>, and
<code>databricks.sdk.service.catalog.VolumeInfo</code>.</li>
<li>Added <code>include_browse</code> field for
<code>databricks.sdk.service.catalog.GetCatalogRequest</code>,
<code>databricks.sdk.service.catalog.GetExternalLocationRequest</code>,
<code>databricks.sdk.service.catalog.GetFunctionRequest</code>,
<code>databricks.sdk.service.catalog.GetModelVersionRequest</code>,
<code>databricks.sdk.service.catalog.GetRegisteredModelRequest</code>,
<code>databricks.sdk.service.catalog.GetSchemaRequest</code>,
<code>databricks.sdk.service.catalog.GetTableRequest</code>,
<code>databricks.sdk.service.catalog.ListExternalLocationsRequest</code>,
<code>databricks.sdk.service.catalog.ListFunctionsRequest</code>,
<code>databricks.sdk.service.catalog.ListModelVersionsRequest</code>,
<code>databricks.sdk.service.catalog.ListRegisteredModelsRequest</code>,
<code>databricks.sdk.service.catalog.ListSchemasRequest</code>,
<code>databricks.sdk.service.catalog.ListTablesRequest</code>,
<code>databricks.sdk.service.catalog.ListVolumesRequest</code>, and
<code>databricks.sdk.service.catalog.ReadVolumeRequest</code>.</li>
<li>Changed <code>publish()</code> method for <a
href="https://databricks-sdk-py.readthedocs.io/en/latest/workspace/lakeview.html">w.lakeview</a>
workspace-level service to return
<code>databricks.sdk.service.dashboards.PublishedDashboard</code>
dataclass.</li>
<li>Added <code>create()</code>, <code>get()</code>,
<code>get_published()</code>, <code>trash()</code>, and
<code>update()</code> methods for <a
href="https://databricks-sdk-py.readthedocs.io/en/latest/workspace/lakeview.html">w.lakeview</a>
workspace-level service.</li>
<li>Added
<code>databricks.sdk.service.dashboards.CreateDashboardRequest</code>,
<code>databricks.sdk.service.dashboards.Dashboard</code>,
<code>databricks.sdk.service.dashboards.GetLakeviewRequest</code>,
<code>databricks.sdk.service.dashboards.GetPublishedRequest</code>,
<code>databricks.sdk.service.dashboards.LifecycleState</code>,
<code>databricks.sdk.service.dashboards.PublishedDashboard</code>,
<code>databricks.sdk.service.dashboards.TrashRequest</code>, and
<code>databricks.sdk.service.dashboards.UpdateDashboardRequest</code>
dataclasses.</li>
</ul>
<p>OpenAPI SHA: c84caf9e5ef531cc0b1ddd0a76970d9a8b664e32, Date:
2024-03-15</p>
<h2>0.21.0</h2>
<h3>New Features and Improvements</h3>
<ul>
<li>Fixed get_workspace_client in GCP (<a
href="https://redirect.github.com/databricks/databricks-sdk-py/pull/532">#532</a>).</li>
<li>Use all-apis scope with external-browser (<a
href="https://redirect.github.com/databricks/databricks-sdk-py/pull/563">#563</a>).</li>
<li>Make a best effort attempt to initialise all Databricks globals (<a
href="https://redirect.github.com/databricks/databricks-sdk-py/pull/562">#562</a>).</li>
<li>Fixed type issue with widgets.getArgument (<a
href="https://redirect.github.com/databricks/databricks-sdk-py/pull/581">#581</a>)</li>
<li>Note: Backwards incompatible changes - Settings are now nested,
please see the API changes below.</li>
</ul>
<h3>Documentation</h3>
<ul>
<li>Added Files API docs to the SDK Documentation (<a
href="https://redirect.github.com/databricks/databricks-sdk-py/pull/556">#556</a>).</li>
<li>Added new example to list compute resource for SUBMIT_RUN job runs
(<a
href="https://redirect.github.com/databricks/databricks-sdk-py/pull/572">#572</a>).</li>
<li>Sorted index pages by name in docs (<a
href="https://redirect.github.com/databricks/databricks-sdk-py/pull/560">#560</a>).</li>
<li>Added back enums to docs (<a
href="https://redirect.github.com/databricks/databricks-sdk-py/pull/557">#557</a>).</li>
</ul>
<h3>API Changes</h3>
<h4>Added</h4>
<p>Services:</p>
<ul>
<li><a
href="https://databricks-sdk-py.readthedocs.io/en/latest/workspace/permission_migration.html">w.permission_migration</a>
workspace-level service.</li>
<li><a
href="https://databricks-sdk-py.readthedocs.io/en/latest/workspace/settings/automatic_cluster_update.html">w.settings.automatic_cluster_update</a>
workspace-level service.</li>
<li><a
href="https://databricks-sdk-py.readthedocs.io/en/latest/workspace/settings/csp_enablement.html">w.settings.csp_enablement</a>
workspace-level service.</li>
<li><a
href="https://databricks-sdk-py.readthedocs.io/en/latest/account/settings/csp_enablement_account.html">a.settings.csp_enablement_account</a>
account-level service.</li>
<li><a
href="https://databricks-sdk-py.readthedocs.io/en/latest/workspace/settings/default_namespace.html">w.settings.default_namespace</a>
workspace-level service.</li>
<li><a
href="https://databricks-sdk-py.readthedocs.io/en/latest/workspace/settings/esm_enablement.html">w.settings.esm_enablement</a>
workspace-level service.</li>
<li><a
href="https://databricks-sdk-py.readthedocs.io/en/latest/account/settings/esm_enablement_account.html">a.settings.esm_enablement_account</a>
account-level service.</li>
<li><a
href="https://databricks-sdk-py.readthedocs.io/en/latest/account/settings/personal_compute.html">a.settings.personal_compute</a>
account-level service.</li>
<li><a
href="https://databricks-sdk-py.readthedocs.io/en/latest/workspace/settings/restrict_workspace_admins.html">w.settings.restrict_workspace_admins</a>
workspace-level service.</li>
</ul>
<p>Dataclasses:</p>
<ul>

<li><code>databricks.sdk.service.settings.AutomaticClusterUpdateSetting</code></li>

<li><code>databricks.sdk.service.settings.ClusterAutoRestartMessage</code></li>

<li><code>databricks.sdk.service.settings.ClusterAutoRestartMessageEnablementDetails</code></li>

<li><code>databricks.sdk.service.settings.ClusterAutoRestartMessageMaintenanceWindow</code></li>

<li><code>databricks.sdk.service.settings.ClusterAutoRestartMessageMaintenanceWindowDayOfWeek</code></li>

<li><code>databricks.sdk.service.settings.ClusterAutoRestartMessageMaintenanceWindowWeekDayBasedSchedule</code></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/databricks/databricks-sdk-py/commit/33b209bdbaca4a956c7375fd65cbf8d6c3b4d95d"><code>33b209b</code></a>
Release v0.22.0 (<a
href="https://redirect.github.com/databricks/databricks-sdk-py/issues/584">#584</a>)</li>
<li><a
href="https://github.com/databricks/databricks-sdk-py/commit/48c28b1d1dc96107d7927ee30d8b149506f9d41c"><code>48c28b1</code></a>
Fix typos in doc string for select_spark_version (<a
href="https://redirect.github.com/databricks/databricks-sdk-py/issues/575">#575</a>)</li>
<li><a
href="https://github.com/databricks/databricks-sdk-py/commit/898b57d2558a23f2f1f03b374b7687915d868a9d"><code>898b57d</code></a>
Release v0.21.0 (<a
href="https://redirect.github.com/databricks/databricks-sdk-py/issues/578">#578</a>)</li>
<li><a
href="https://github.com/databricks/databricks-sdk-py/commit/ddf64933cc4764b47626dd400ac0dd6564b62785"><code>ddf6493</code></a>
Fix type issue with widgets.getArgument (<a
href="https://redirect.github.com/databricks/databricks-sdk-py/issues/581">#581</a>)</li>
<li><a
href="https://github.com/databricks/databricks-sdk-py/commit/e861140836523d02a0f991e0aae154a80c79bf15"><code>e861140</code></a>
Update SDK to latest OpenAPI spec (<a
href="https://redirect.github.com/databricks/databricks-sdk-py/issues/576">#576</a>)</li>
<li><a
href="https://github.com/databricks/databricks-sdk-py/commit/a282eee599c3176ccf33a00429356a4627c1b977"><code>a282eee</code></a>
New example to list compute resource for SUBMIT_RUN job runs (<a
href="https://redirect.github.com/databricks/databricks-sdk-py/issues/572">#572</a>)</li>
<li><a
href="https://github.com/databricks/databricks-sdk-py/commit/9813180303a7d12bf14426da6d76dca2ff313f80"><code>9813180</code></a>
Added tokei.rs badge (<a
href="https://redirect.github.com/databricks/databricks-sdk-py/issues/567">#567</a>)</li>
<li><a
href="https://github.com/databricks/databricks-sdk-py/commit/f0fe02358e7c576857ac41ac62458165cd81b192"><code>f0fe023</code></a>
Make a best effort attempt to initialise all Databricks globals (<a
href="https://redirect.github.com/databricks/databricks-sdk-py/issues/562">#562</a>)</li>
<li><a
href="https://github.com/databricks/databricks-sdk-py/commit/525576073da90de0b98ff652ad5b6f2d2bb77871"><code>5255760</code></a>
Use all-apis scope with external-browser (<a
href="https://redirect.github.com/databricks/databricks-sdk-py/issues/563">#563</a>)</li>
<li><a
href="https://github.com/databricks/databricks-sdk-py/commit/2a91e8d0c2d61beabf996b7824835bd0b9c67bfd"><code>2a91e8d</code></a>
Support subservices (<a
href="https://redirect.github.com/databricks/databricks-sdk-py/issues/559">#559</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/databricks/databricks-sdk-py/compare/v0.18.0...v0.22.0">compare
view</a></li>
</ul>
</details>
<br />


Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
sundarshankar89 added a commit to sundarshankar89/remorph that referenced this pull request Jan 3, 2025
* Added serverless validation using lsql library
([databrickslabs#176](databrickslabs#176)).
Workspaceclient object is used with `product` name and `product_version`
along with corresponding `cluster_id` or `warehouse_id` as `sdk_config`
in `MorphConfig` object.
* Enhanced install script to enforce usage of a warehouse or cluster
when `skip-validation` is set to `False`
([databrickslabs#213](databrickslabs#213)). In this
release, the installation process has been enhanced to mandate the use
of a warehouse or cluster when the `skip-validation` parameter is set to
`False`. This change has been implemented across various components,
including the install script, `transpile` function, and
`get_sql_backend` function. Additionally, new pytest fixtures and
methods have been added to improve test configuration and resource
management during testing. Unit tests have been updated to enforce usage
of a warehouse or cluster when the `skip-validation` flag is set to
`False`, ensuring proper resource allocation and validation process
improvement. This development focuses on promoting a proper setup and
usage of the system, guiding new users towards a correct configuration
and improving the overall reliability of the tool.
* Patch subquery with json column access
([databrickslabs#190](databrickslabs#190)). The
open-source library has been updated with new functionality to modify
how subqueries with JSON column access are handled in the `snowflake.py`
file. This change includes the addition of a check for an opening
parenthesis after the `FROM` keyword to detect and break loops when a
subquery is found, as opposed to a table name. This improvement enhances
the handling of complex subqueries and JSON column access, making the
code more robust and adaptable to different query structures.
Additionally, a new test method, `test_nested_query_with_json`, has been
introduced to the `tests/unit/snow/test_databricks.py` file to test the
behavior of nested queries involving JSON column access when using a
Snowflake dialect. This new method validates the expected output of a
specific nested query when it is transpiled to Snowflake's SQL dialect,
allowing for more comprehensive testing of JSON column access and type
casting in Snowflake dialects. The existing `test_delete_from_keyword`
method remains unchanged.
* Snowflake `UPDATE FROM` to Databricks `MERGE INTO` implementation
([databrickslabs#198](databrickslabs#198)).
* Use Runtime SQL backend in Notebooks
([databrickslabs#211](databrickslabs#211)). In this
update, the `db_sql.py` file in the `databricks/labs/remorph/helpers`
directory has been modified to support the use of the Runtime SQL
backend in Notebooks. This change includes the addition of a new
`RuntimeBackend` class in the `backends` module and an import statement
for `os`. The `get_sql_backend` function now returns a `RuntimeBackend`
instance when the `DATABRICKS_RUNTIME_VERSION` environment variable is
present, allowing for more efficient and secure SQL statement execution
in Databricks notebooks. Additionally, a new test case for the
`get_sql_backend` function has been added to ensure the correct behavior
of the function in various runtime environments. These enhancements
improve SQL execution performance and security in Databricks notebooks
and increase the project's versatility for different use cases.
* Added Issue Templates for bugs, feature and config
([databrickslabs#194](databrickslabs#194)). Two new
issue templates have been added to the project's GitHub repository to
improve issue creation and management. The first template, located in
`.github/ISSUE_TEMPLATE/bug.yml`, is for reporting bugs and prompts
users to provide detailed information about the issue, including the
current and expected behavior, steps to reproduce, relevant log output,
and sample query. The second template, added under the path
`.github/ISSUE_TEMPLATE/config.yml`, is for configuration-related issues
and includes support contact links for general Databricks questions and
Remorph documentation, as well as fields for specifying the operating
system and software version. A new issue template for feature requests,
named "Feature Request", has also been added, providing a structured
format for users to submit requests for new functionality for the
Remorph project. These templates will help streamline the issue creation
process, improve the quality of information provided, and make it easier
for the development team to quickly identify and address bugs and
feature requests.
* Added Databricks Source Adapter
([databrickslabs#185](databrickslabs#185)). In this
release, the project has been enhanced with several new features for the
Databricks Source Adapter. A new `engine` parameter has been added to
the `DataSource` class, replacing the original `source` parameter. The
`_get_secrets` and `_get_table_or_query` methods have been updated to
use the `engine` parameter for key naming and handling queries with a
`select` statement differently, respectively. A Databricks Source
Adapter for Oracle databases has been introduced, which includes a new
`OracleDataSource` class that provides functionality to connect to an
Oracle database using JDBC. A Databricks Source Adapter for Snowflake
has also been added, featuring the `SnowflakeDataSource` class that
handles data reading and schema retrieval from Snowflake. The
`DatabricksDataSource` class has been updated to handle data reading and
schema retrieval from Databricks, including a new `get_schema_query`
method that generates the query to fetch the schema based on the
provided catalog and table name. Exception handling for reading data and
fetching schema has been implemented for all new classes. These changes
provide increased flexibility for working with various data sources,
improved code maintainability, and better support for different use
cases.
* Added Threshold Query Builder
([databrickslabs#188](databrickslabs#188)). In this
release, the open-source library has added a Threshold Query Builder
feature, which includes several changes to the existing functionality in
the data source connector. A new import statement adds the `re` module
for regular expressions, and new parameters have been added to the
`read_data` and `get_schema` abstract methods. The
`_get_jdbc_reader_options` method has been updated to accept a `options`
parameter of type "JdbcReaderOptions", and a new static method,
"_get_table_or_query", has been added to construct the table or query
string based on provided parameters. Additionally, a new class,
"QueryConfig", has been introduced in the
"databricks.labs.remorph.reconcile" package to configure queries for
data reconciliation tasks. A new abstract base class QueryBuilder has
been added to the query_builder.py file, along with HashQueryBuilder and
ThresholdQueryBuilder classes to construct SQL queries for generating
hash values and selecting columns based on threshold values,
transformation rules, and filtering conditions. These changes aim to
enhance the functionality of the data source connector, add modularity,
customizability, and reusability to the query builder, and improve data
reconciliation tasks.
* Added snowflake connector code
([databrickslabs#177](databrickslabs#177)). In this
release, the open-source library has been updated to add a Snowflake
connector for data extraction and schema manipulation. The changes
include the addition of the SnowflakeDataSource class, which is used to
read data from Snowflake using PySpark, and has methods for getting the
JDBC URL, reading data with and without JDBC reader options, getting the
schema, and handling exceptions. A new constant, SNOWFLAKE, has been
added to the SourceDriver enum in constants.py, which represents the
Snowflake JDBC driver class. The code modifications include updating the
constructor of the DataSource abstract base class to include a new
parameter 'scope', and updating the `_get_secrets` method to accept a
`key_name` parameter instead of 'key'. Additionally, a test file
'test_snowflake.py' has been added to test the functionality of the
SnowflakeDataSource class. This release also updates the pyproject.toml
file to version lock the dependencies like black, ruff, and isort, and
modifies the coverage report configuration to exclude certain files and
lines from coverage checks. These changes were completed by Ravikumar
Thangaraj and SundarShankar89.
* `remorph reconcile` baseline for Query Builder and Source Adapter for
oracle as source
([databrickslabs#150](databrickslabs#150)).

Dependency updates:

* Bump sqlglot from 22.4.0 to 22.5.0
([databrickslabs#175](databrickslabs#175)).
* Updated databricks-sdk requirement from <0.22,>=0.18 to >=0.18,<0.23
([databrickslabs#178](databrickslabs#178)).
* Updated databricks-sdk requirement from <0.23,>=0.18 to >=0.18,<0.24
([databrickslabs#189](databrickslabs#189)).
* Bump actions/checkout from 3 to 4
([databrickslabs#203](databrickslabs#203)).
* Bump actions/setup-python from 4 to 5
([databrickslabs#201](databrickslabs#201)).
* Bump codecov/codecov-action from 1 to 4
([databrickslabs#202](databrickslabs#202)).
* Bump softprops/action-gh-release from 1 to 2
([databrickslabs#204](databrickslabs#204)).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dependencies Pull requests that update a dependency file
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant