Skip to content

Add is_valid_url row-level check - #1457

Open
ghanse wants to merge 4 commits into
mainfrom
ghanse/is-valid-url
Open

Add is_valid_url row-level check#1457
ghanse wants to merge 4 commits into
mainfrom
ghanse/is-valid-url

Conversation

@ghanse

@ghanse ghanse commented Aug 12, 2026

Copy link
Copy Markdown
Collaborator

Changes

Adds a new row-level check is_valid_url(column) that validates URL format against the RFC 3986 4.3 absolute-URI grammar. A scheme is required, so relative references such as /path or example.com are rejected. Reserved characters must be percent-encoded.

Linked issues

Tests

  • manually tested
  • added unit tests
  • added integration tests
  • added end-to-end tests
  • added performance tests

Documentation and Demos

  • added/updated demos
  • added/updated docs
  • added/updated agent skills

This pull request and its description were co-written by Isaac.

Adds a row-level check that validates URL format against the RFC 3986 §4.3
absolute-URI grammar: scheme ":" hier-part with an optional "?" query and
"#" fragment. A scheme is required, so relative references such as "/path" or
"example.com" are rejected, and reserved characters must be percent-encoded to be
accepted inside a path, query, or fragment. Follows the existing DQPattern
approach used by is_valid_email and is_valid_ipv4_address, so the check itself is
a thin _matches_pattern call.

Any syntactically valid scheme is accepted, which keeps non-network URLs such as
s3://, ftp://, mailto: and urn: valid alongside http:// and https://. Two
consequences are documented in the docstring and the reference table: the check
validates URL *syntax* and not safety, so script-bearing schemes
(javascript:alert(1)) and inline data: payloads pass and it must not be used to
sanitize untrusted input; and RFC 3986 permits an empty host, so file:///path
passes.

The pattern is anchored with \A...\z rather than ^...$ so that a value with a
trailing newline is rejected under Java regex semantics, consistent with the fix
in issue #1440. Every repetition in the pattern is over alternatives with
disjoint first characters, so there is no catastrophic backtracking; this was
verified against pathological multi-kilobyte inputs.
@codecov

codecov Bot commented Aug 12, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 92.44%. Comparing base (010f070) to head (121a9c9).
⚠️ Report is 1 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #1457      +/-   ##
==========================================
- Coverage   92.51%   92.44%   -0.08%     
==========================================
  Files         141      141              
  Lines       13577    13591      +14     
  Branches      151      151              
==========================================
+ Hits        12561    12564       +3     
- Misses        946      955       +9     
- Partials       70       72       +2     
Flag Coverage Δ
anomaly 10.94% <0.00%> (-41.00%) ⬇️
anomaly-serverless 51.99% <92.85%> (+0.04%) ⬆️
integration ?
integration-serverless 48.85% <7.14%> (-0.09%) ⬇️
mcp 78.12% <ø> (-1.55%) ⬇️
unit 65.57% <92.85%> (+0.57%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

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

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@github-actions

github-actions Bot commented Aug 12, 2026

Copy link
Copy Markdown
Contributor

❌ 956/957 passed, 1 failed, 50 skipped, 8h21m15s total

❌ TestDataContractIntegration.test_generate_rules_with_text_processing: litellm.exceptions.RateLimitError: litellm.RateLimitError: DatabricksException - {"error_code":"REQUEST_LIMIT_EXCEEDED","message":"REQUEST_LIMIT_EXCEEDED: Exceeded workspace input tokens per minute rate limit for databricks-claude-sonnet-4-5. Work with your Databricks account team to request a higher FMAPI rate limit tier."} (58.035s)
... (skipped 472894 bytes)
sfully: <function is_valid_uuid at 0x7f62698b45e0>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_valid_country_code
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_valid_country_code resolved successfully: <function is_valid_country_code at 0x7f62698b5080>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_valid_currency_code
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_valid_currency_code resolved successfully: <function is_valid_currency_code at 0x7f62698b5120>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_valid_subdivision_code
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_valid_subdivision_code resolved successfully: <function is_valid_subdivision_code at 0x7f62698b5440>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_valid_language_code
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_valid_language_code resolved successfully: <function is_valid_language_code at 0x7f62698b54e0>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_ipv4_address_in_cidr
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_ipv4_address_in_cidr resolved successfully: <function is_ipv4_address_in_cidr at 0x7f62698b5580>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_valid_ipv6_address
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_valid_ipv6_address resolved successfully: <function is_valid_ipv6_address at 0x7f62698b5620>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_ipv6_address_in_cidr
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_ipv6_address_in_cidr resolved successfully: <function is_ipv6_address_in_cidr at 0x7f62698b56c0>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_data_fresh
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_data_fresh resolved successfully: <function is_data_fresh at 0x7f62698b5760>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: has_no_outliers
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function has_no_outliers resolved successfully: <function has_no_outliers at 0x7f62698b5800>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_unique
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_unique resolved successfully: <function is_unique at 0x7f62698b58a0>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: foreign_key
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function foreign_key resolved successfully: <function foreign_key at 0x7f62698b5940>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: sql_query
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function sql_query resolved successfully: <function sql_query at 0x7f62698b59e0>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_aggr_not_greater_than
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_aggr_not_greater_than resolved successfully: <function is_aggr_not_greater_than at 0x7f62698b5b20>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_aggr_not_less_than
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_aggr_not_less_than resolved successfully: <function is_aggr_not_less_than at 0x7f62698b5c60>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_aggr_equal
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_aggr_equal resolved successfully: <function is_aggr_equal at 0x7f62698b5d00>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_aggr_not_equal
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_aggr_not_equal resolved successfully: <function is_aggr_not_equal at 0x7f62698b5da0>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: has_no_aggr_outliers
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function has_no_aggr_outliers resolved successfully: <function has_no_aggr_outliers at 0x7f62698b5e40>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: aggr_matches_dataset
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function aggr_matches_dataset resolved successfully: <function aggr_matches_dataset at 0x7f62698b5ee0>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: compare_datasets
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function compare_datasets resolved successfully: <function compare_datasets at 0x7f62698b5f80>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_data_fresh_per_time_window
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_data_fresh_per_time_window resolved successfully: <function is_data_fresh_per_time_window at 0x7f62698b60c0>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: has_no_gaps_per_time_window
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function has_no_gaps_per_time_window resolved successfully: <function has_no_gaps_per_time_window at 0x7f62698b6160>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: has_valid_schema
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function has_valid_schema resolved successfully: <function has_valid_schema at 0x7f62698b6340>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_valid_json
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_valid_json resolved successfully: <function is_valid_json at 0x7f62698b6200>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: has_json_keys
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function has_json_keys resolved successfully: <function has_json_keys at 0x7f62698b63e0>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: has_valid_json_schema
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function has_valid_json_schema resolved successfully: <function has_valid_json_schema at 0x7f62698b6480>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_latitude
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_latitude resolved successfully: <function is_latitude at 0x7f62698cc360>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_longitude
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_longitude resolved successfully: <function is_longitude at 0x7f62698cc400>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_geometry
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_geometry resolved successfully: <function is_geometry at 0x7f62698cc540>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_geography
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_geography resolved successfully: <function is_geography at 0x7f62698cc5e0>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_point
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_point resolved successfully: <function is_point at 0x7f62698cc680>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_linestring
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_linestring resolved successfully: <function is_linestring at 0x7f62698cc720>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_polygon
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_polygon resolved successfully: <function is_polygon at 0x7f62698cc7c0>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_multipoint
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_multipoint resolved successfully: <function is_multipoint at 0x7f62698cc860>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_multilinestring
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_multilinestring resolved successfully: <function is_multilinestring at 0x7f62698cc900>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_multipolygon
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_multipolygon resolved successfully: <function is_multipolygon at 0x7f62698cc9a0>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_geometrycollection
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_geometrycollection resolved successfully: <function is_geometrycollection at 0x7f62698cca40>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_ogc_valid
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_ogc_valid resolved successfully: <function is_ogc_valid at 0x7f62698ccae0>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_non_empty_geometry
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_non_empty_geometry resolved successfully: <function is_non_empty_geometry at 0x7f62698ccb80>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_not_null_island
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_not_null_island resolved successfully: <function is_not_null_island at 0x7f62698ccc20>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: has_dimension
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function has_dimension resolved successfully: <function has_dimension at 0x7f62698cccc0>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: has_x_coordinate_between
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function has_x_coordinate_between resolved successfully: <function has_x_coordinate_between at 0x7f62698ccd60>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: has_y_coordinate_between
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function has_y_coordinate_between resolved successfully: <function has_y_coordinate_between at 0x7f62698cce00>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_area_equal_to
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_area_equal_to resolved successfully: <function is_area_equal_to at 0x7f62698ccea0>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_area_not_equal_to
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_area_not_equal_to resolved successfully: <function is_area_not_equal_to at 0x7f62698ccf40>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_area_not_greater_than
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_area_not_greater_than resolved successfully: <function is_area_not_greater_than at 0x7f62698ccfe0>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_area_not_less_than
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_area_not_less_than resolved successfully: <function is_area_not_less_than at 0x7f62698cd080>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_num_points_equal_to
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_num_points_equal_to resolved successfully: <function is_num_points_equal_to at 0x7f62698cd120>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_num_points_not_equal_to
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_num_points_not_equal_to resolved successfully: <function is_num_points_not_equal_to at 0x7f62698cd1c0>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_num_points_not_greater_than
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_num_points_not_greater_than resolved successfully: <function is_num_points_not_greater_than at 0x7f62698cd260>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_num_points_not_less_than
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_num_points_not_less_than resolved successfully: <function is_num_points_not_less_than at 0x7f62698cd300>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: are_polygons_mutually_disjoint
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function are_polygons_mutually_disjoint resolved successfully: <function are_polygons_mutually_disjoint at 0x7f62698cd440>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_geo_contains
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_geo_contains resolved successfully: <function is_geo_contains at 0x7f62698cd620>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_geo_covers
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_geo_covers resolved successfully: <function is_geo_covers at 0x7f62698cd760>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_geo_intersects
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_geo_intersects resolved successfully: <function is_geo_intersects at 0x7f62698cd8a0>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_geo_touches
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_geo_touches resolved successfully: <function is_geo_touches at 0x7f62698cd940>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_geo_within
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_geo_within resolved successfully: <function is_geo_within at 0x7f62698cd9e0>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: custom_row_check_func_global_registered
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function custom_row_check_func_global_registered resolved successfully: None
15:32 WARNING [databricks.labs.dqx.llm.llm_utils] Check function custom_row_check_func_global_registered not found in the registry
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: custom_dataset_check_func_with_ref_dfs
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function custom_dataset_check_func_with_ref_dfs resolved successfully: None
15:32 WARNING [databricks.labs.dqx.llm.llm_utils] Check function custom_dataset_check_func_with_ref_dfs not found in the registry
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: _check_requires_dbr_v1
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function _check_requires_dbr_v1 resolved successfully: None
15:32 WARNING [databricks.labs.dqx.llm.llm_utils] Check function _check_requires_dbr_v1 not found in the registry
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: does_not_contain_pii
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function does_not_contain_pii resolved successfully: <function does_not_contain_pii at 0x7f6262093f60>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: has_no_row_anomalies
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function has_no_row_anomalies resolved successfully: <function has_no_row_anomalies at 0x7f61f32c3ec0>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_not_null_and_not_empty
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_not_null_and_not_empty resolved successfully: <function is_not_null_and_not_empty at 0x7f626988f380>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_not_empty
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_not_empty resolved successfully: <function is_not_empty at 0x7f626988f1a0>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_not_null
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_not_null resolved successfully: <function is_not_null at 0x7f626988f420>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_null
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_null resolved successfully: <function is_null at 0x7f626988f4c0>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_empty
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_empty resolved successfully: <function is_empty at 0x7f626988f560>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_null_or_empty
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_null_or_empty resolved successfully: <function is_null_or_empty at 0x7f626988f600>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: has_valid_string_case
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function has_valid_string_case resolved successfully: <function has_valid_string_case at 0x7f626988f6a0>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_not_null_and_is_in_list
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_not_null_and_is_in_list resolved successfully: <function is_not_null_and_is_in_list at 0x7f626988f7e0>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_in_list
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_in_list resolved successfully: <function is_in_list at 0x7f626988f880>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_not_in_list
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_not_in_list resolved successfully: <function is_not_in_list at 0x7f626988f920>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: sql_expression
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function sql_expression resolved successfully: <function sql_expression at 0x7f626988f9c0>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_older_than_col2_for_n_days
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_older_than_col2_for_n_days resolved successfully: <function is_older_than_col2_for_n_days at 0x7f626988fa60>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_older_than_n_days
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_older_than_n_days resolved successfully: <function is_older_than_n_days at 0x7f626988fb00>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_not_in_future
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_not_in_future resolved successfully: <function is_not_in_future at 0x7f626988fba0>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_not_in_near_future
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_not_in_near_future resolved successfully: <function is_not_in_near_future at 0x7f626988fc40>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_equal_to
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_equal_to resolved successfully: <function is_equal_to at 0x7f626988fce0>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_not_equal_to
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_not_equal_to resolved successfully: <function is_not_equal_to at 0x7f626988fd80>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_not_less_than
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_not_less_than resolved successfully: <function is_not_less_than at 0x7f626988fe20>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_not_greater_than
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_not_greater_than resolved successfully: <function is_not_greater_than at 0x7f626988fec0>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_in_range
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_in_range resolved successfully: <function is_in_range at 0x7f626988ff60>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_not_in_range
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_not_in_range resolved successfully: <function is_not_in_range at 0x7f62698b4040>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: regex_match
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function regex_match resolved successfully: <function regex_match at 0x7f62698b40e0>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_not_null_and_not_empty_array
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_not_null_and_not_empty_array resolved successfully: <function is_not_null_and_not_empty_array at 0x7f62698b4180>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_valid_date
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_valid_date resolved successfully: <function is_valid_date at 0x7f62698b4220>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_valid_timestamp
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_valid_timestamp resolved successfully: <function is_valid_timestamp at 0x7f62698b42c0>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_valid_ipv4_address
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_valid_ipv4_address resolved successfully: <function is_valid_ipv4_address at 0x7f62698b4360>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_valid_email
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_valid_email resolved successfully: <function is_valid_email at 0x7f62698b4400>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_valid_url
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_valid_url resolved successfully: <function is_valid_url at 0x7f62698b44a0>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_valid_national_id
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_valid_national_id resolved successfully: <function is_valid_national_id at 0x7f62698b4540>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_valid_uuid
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_valid_uuid resolved successfully: <function is_valid_uuid at 0x7f62698b45e0>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_valid_country_code
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_valid_country_code resolved successfully: <function is_valid_country_code at 0x7f62698b5080>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_valid_currency_code
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_valid_currency_code resolved successfully: <function is_valid_currency_code at 0x7f62698b5120>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_valid_subdivision_code
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_valid_subdivision_code resolved successfully: <function is_valid_subdivision_code at 0x7f62698b5440>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_valid_language_code
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_valid_language_code resolved successfully: <function is_valid_language_code at 0x7f62698b54e0>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_ipv4_address_in_cidr
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_ipv4_address_in_cidr resolved successfully: <function is_ipv4_address_in_cidr at 0x7f62698b5580>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_valid_ipv6_address
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_valid_ipv6_address resolved successfully: <function is_valid_ipv6_address at 0x7f62698b5620>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_ipv6_address_in_cidr
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_ipv6_address_in_cidr resolved successfully: <function is_ipv6_address_in_cidr at 0x7f62698b56c0>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_data_fresh
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_data_fresh resolved successfully: <function is_data_fresh at 0x7f62698b5760>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: has_no_outliers
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function has_no_outliers resolved successfully: <function has_no_outliers at 0x7f62698b5800>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_unique
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_unique resolved successfully: <function is_unique at 0x7f62698b58a0>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: foreign_key
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function foreign_key resolved successfully: <function foreign_key at 0x7f62698b5940>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: sql_query
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function sql_query resolved successfully: <function sql_query at 0x7f62698b59e0>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_aggr_not_greater_than
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_aggr_not_greater_than resolved successfully: <function is_aggr_not_greater_than at 0x7f62698b5b20>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_aggr_not_less_than
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_aggr_not_less_than resolved successfully: <function is_aggr_not_less_than at 0x7f62698b5c60>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_aggr_equal
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_aggr_equal resolved successfully: <function is_aggr_equal at 0x7f62698b5d00>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_aggr_not_equal
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_aggr_not_equal resolved successfully: <function is_aggr_not_equal at 0x7f62698b5da0>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: has_no_aggr_outliers
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function has_no_aggr_outliers resolved successfully: <function has_no_aggr_outliers at 0x7f62698b5e40>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: aggr_matches_dataset
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function aggr_matches_dataset resolved successfully: <function aggr_matches_dataset at 0x7f62698b5ee0>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: compare_datasets
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function compare_datasets resolved successfully: <function compare_datasets at 0x7f62698b5f80>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_data_fresh_per_time_window
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_data_fresh_per_time_window resolved successfully: <function is_data_fresh_per_time_window at 0x7f62698b60c0>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: has_no_gaps_per_time_window
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function has_no_gaps_per_time_window resolved successfully: <function has_no_gaps_per_time_window at 0x7f62698b6160>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: has_valid_schema
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function has_valid_schema resolved successfully: <function has_valid_schema at 0x7f62698b6340>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_valid_json
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_valid_json resolved successfully: <function is_valid_json at 0x7f62698b6200>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: has_json_keys
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function has_json_keys resolved successfully: <function has_json_keys at 0x7f62698b63e0>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: has_valid_json_schema
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function has_valid_json_schema resolved successfully: <function has_valid_json_schema at 0x7f62698b6480>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_latitude
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_latitude resolved successfully: <function is_latitude at 0x7f62698cc360>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_longitude
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_longitude resolved successfully: <function is_longitude at 0x7f62698cc400>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_geometry
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_geometry resolved successfully: <function is_geometry at 0x7f62698cc540>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_geography
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_geography resolved successfully: <function is_geography at 0x7f62698cc5e0>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_point
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_point resolved successfully: <function is_point at 0x7f62698cc680>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_linestring
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_linestring resolved successfully: <function is_linestring at 0x7f62698cc720>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_polygon
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_polygon resolved successfully: <function is_polygon at 0x7f62698cc7c0>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_multipoint
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_multipoint resolved successfully: <function is_multipoint at 0x7f62698cc860>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_multilinestring
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_multilinestring resolved successfully: <function is_multilinestring at 0x7f62698cc900>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_multipolygon
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_multipolygon resolved successfully: <function is_multipolygon at 0x7f62698cc9a0>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_geometrycollection
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_geometrycollection resolved successfully: <function is_geometrycollection at 0x7f62698cca40>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_ogc_valid
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_ogc_valid resolved successfully: <function is_ogc_valid at 0x7f62698ccae0>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_non_empty_geometry
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_non_empty_geometry resolved successfully: <function is_non_empty_geometry at 0x7f62698ccb80>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_not_null_island
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_not_null_island resolved successfully: <function is_not_null_island at 0x7f62698ccc20>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: has_dimension
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function has_dimension resolved successfully: <function has_dimension at 0x7f62698cccc0>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: has_x_coordinate_between
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function has_x_coordinate_between resolved successfully: <function has_x_coordinate_between at 0x7f62698ccd60>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: has_y_coordinate_between
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function has_y_coordinate_between resolved successfully: <function has_y_coordinate_between at 0x7f62698cce00>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_area_equal_to
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_area_equal_to resolved successfully: <function is_area_equal_to at 0x7f62698ccea0>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_area_not_equal_to
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_area_not_equal_to resolved successfully: <function is_area_not_equal_to at 0x7f62698ccf40>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_area_not_greater_than
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_area_not_greater_than resolved successfully: <function is_area_not_greater_than at 0x7f62698ccfe0>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_area_not_less_than
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_area_not_less_than resolved successfully: <function is_area_not_less_than at 0x7f62698cd080>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_num_points_equal_to
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_num_points_equal_to resolved successfully: <function is_num_points_equal_to at 0x7f62698cd120>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_num_points_not_equal_to
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_num_points_not_equal_to resolved successfully: <function is_num_points_not_equal_to at 0x7f62698cd1c0>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_num_points_not_greater_than
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_num_points_not_greater_than resolved successfully: <function is_num_points_not_greater_than at 0x7f62698cd260>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_num_points_not_less_than
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_num_points_not_less_than resolved successfully: <function is_num_points_not_less_than at 0x7f62698cd300>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: are_polygons_mutually_disjoint
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function are_polygons_mutually_disjoint resolved successfully: <function are_polygons_mutually_disjoint at 0x7f62698cd440>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_geo_contains
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_geo_contains resolved successfully: <function is_geo_contains at 0x7f62698cd620>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_geo_covers
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_geo_covers resolved successfully: <function is_geo_covers at 0x7f62698cd760>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_geo_intersects
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_geo_intersects resolved successfully: <function is_geo_intersects at 0x7f62698cd8a0>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_geo_touches
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_geo_touches resolved successfully: <function is_geo_touches at 0x7f62698cd940>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_geo_within
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_geo_within resolved successfully: <function is_geo_within at 0x7f62698cd9e0>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: custom_row_check_func_global_registered
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function custom_row_check_func_global_registered resolved successfully: None
15:32 WARNING [databricks.labs.dqx.llm.llm_utils] Check function custom_row_check_func_global_registered not found in the registry
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: custom_dataset_check_func_with_ref_dfs
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function custom_dataset_check_func_with_ref_dfs resolved successfully: None
15:32 WARNING [databricks.labs.dqx.llm.llm_utils] Check function custom_dataset_check_func_with_ref_dfs not found in the registry
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: _check_requires_dbr_v1
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function _check_requires_dbr_v1 resolved successfully: None
15:32 WARNING [databricks.labs.dqx.llm.llm_utils] Check function _check_requires_dbr_v1 not found in the registry
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: does_not_contain_pii
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function does_not_contain_pii resolved successfully: <function does_not_contain_pii at 0x7f6262093f60>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: has_no_row_anomalies
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function has_no_row_anomalies resolved successfully: <function has_no_row_anomalies at 0x7f61f32c3ec0>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_not_null_and_not_empty
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_not_null_and_not_empty resolved successfully: <function is_not_null_and_not_empty at 0x7f626988f380>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_not_empty
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_not_empty resolved successfully: <function is_not_empty at 0x7f626988f1a0>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_not_null
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_not_null resolved successfully: <function is_not_null at 0x7f626988f420>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_null
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_null resolved successfully: <function is_null at 0x7f626988f4c0>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_empty
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_empty resolved successfully: <function is_empty at 0x7f626988f560>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_null_or_empty
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_null_or_empty resolved successfully: <function is_null_or_empty at 0x7f626988f600>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: has_valid_string_case
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function has_valid_string_case resolved successfully: <function has_valid_string_case at 0x7f626988f6a0>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_not_null_and_is_in_list
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_not_null_and_is_in_list resolved successfully: <function is_not_null_and_is_in_list at 0x7f626988f7e0>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_in_list
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_in_list resolved successfully: <function is_in_list at 0x7f626988f880>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_not_in_list
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_not_in_list resolved successfully: <function is_not_in_list at 0x7f626988f920>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: sql_expression
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function sql_expression resolved successfully: <function sql_expression at 0x7f626988f9c0>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_older_than_col2_for_n_days
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_older_than_col2_for_n_days resolved successfully: <function is_older_than_col2_for_n_days at 0x7f626988fa60>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_older_than_n_days
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_older_than_n_days resolved successfully: <function is_older_than_n_days at 0x7f626988fb00>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_not_in_future
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_not_in_future resolved successfully: <function is_not_in_future at 0x7f626988fba0>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_not_in_near_future
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_not_in_near_future resolved successfully: <function is_not_in_near_future at 0x7f626988fc40>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_equal_to
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_equal_to resolved successfully: <function is_equal_to at 0x7f626988fce0>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_not_equal_to
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_not_equal_to resolved successfully: <function is_not_equal_to at 0x7f626988fd80>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_not_less_than
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_not_less_than resolved successfully: <function is_not_less_than at 0x7f626988fe20>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_not_greater_than
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_not_greater_than resolved successfully: <function is_not_greater_than at 0x7f626988fec0>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_in_range
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_in_range resolved successfully: <function is_in_range at 0x7f626988ff60>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_not_in_range
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_not_in_range resolved successfully: <function is_not_in_range at 0x7f62698b4040>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: regex_match
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function regex_match resolved successfully: <function regex_match at 0x7f62698b40e0>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_not_null_and_not_empty_array
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_not_null_and_not_empty_array resolved successfully: <function is_not_null_and_not_empty_array at 0x7f62698b4180>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_valid_date
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_valid_date resolved successfully: <function is_valid_date at 0x7f62698b4220>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_valid_timestamp
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_valid_timestamp resolved successfully: <function is_valid_timestamp at 0x7f62698b42c0>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_valid_ipv4_address
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_valid_ipv4_address resolved successfully: <function is_valid_ipv4_address at 0x7f62698b4360>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_valid_email
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_valid_email resolved successfully: <function is_valid_email at 0x7f62698b4400>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_valid_url
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_valid_url resolved successfully: <function is_valid_url at 0x7f62698b44a0>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_valid_national_id
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_valid_national_id resolved successfully: <function is_valid_national_id at 0x7f62698b4540>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_valid_uuid
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_valid_uuid resolved successfully: <function is_valid_uuid at 0x7f62698b45e0>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_valid_country_code
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_valid_country_code resolved successfully: <function is_valid_country_code at 0x7f62698b5080>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_valid_currency_code
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_valid_currency_code resolved successfully: <function is_valid_currency_code at 0x7f62698b5120>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_valid_subdivision_code
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_valid_subdivision_code resolved successfully: <function is_valid_subdivision_code at 0x7f62698b5440>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_valid_language_code
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_valid_language_code resolved successfully: <function is_valid_language_code at 0x7f62698b54e0>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_ipv4_address_in_cidr
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_ipv4_address_in_cidr resolved successfully: <function is_ipv4_address_in_cidr at 0x7f62698b5580>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_valid_ipv6_address
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_valid_ipv6_address resolved successfully: <function is_valid_ipv6_address at 0x7f62698b5620>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_ipv6_address_in_cidr
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_ipv6_address_in_cidr resolved successfully: <function is_ipv6_address_in_cidr at 0x7f62698b56c0>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_data_fresh
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_data_fresh resolved successfully: <function is_data_fresh at 0x7f62698b5760>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: has_no_outliers
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function has_no_outliers resolved successfully: <function has_no_outliers at 0x7f62698b5800>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_unique
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_unique resolved successfully: <function is_unique at 0x7f62698b58a0>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: foreign_key
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function foreign_key resolved successfully: <function foreign_key at 0x7f62698b5940>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: sql_query
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function sql_query resolved successfully: <function sql_query at 0x7f62698b59e0>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_aggr_not_greater_than
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_aggr_not_greater_than resolved successfully: <function is_aggr_not_greater_than at 0x7f62698b5b20>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_aggr_not_less_than
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_aggr_not_less_than resolved successfully: <function is_aggr_not_less_than at 0x7f62698b5c60>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_aggr_equal
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_aggr_equal resolved successfully: <function is_aggr_equal at 0x7f62698b5d00>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_aggr_not_equal
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_aggr_not_equal resolved successfully: <function is_aggr_not_equal at 0x7f62698b5da0>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: has_no_aggr_outliers
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function has_no_aggr_outliers resolved successfully: <function has_no_aggr_outliers at 0x7f62698b5e40>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: aggr_matches_dataset
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function aggr_matches_dataset resolved successfully: <function aggr_matches_dataset at 0x7f62698b5ee0>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: compare_datasets
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function compare_datasets resolved successfully: <function compare_datasets at 0x7f62698b5f80>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_data_fresh_per_time_window
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_data_fresh_per_time_window resolved successfully: <function is_data_fresh_per_time_window at 0x7f62698b60c0>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: has_no_gaps_per_time_window
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function has_no_gaps_per_time_window resolved successfully: <function has_no_gaps_per_time_window at 0x7f62698b6160>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: has_valid_schema
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function has_valid_schema resolved successfully: <function has_valid_schema at 0x7f62698b6340>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_valid_json
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_valid_json resolved successfully: <function is_valid_json at 0x7f62698b6200>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: has_json_keys
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function has_json_keys resolved successfully: <function has_json_keys at 0x7f62698b63e0>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: has_valid_json_schema
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function has_valid_json_schema resolved successfully: <function has_valid_json_schema at 0x7f62698b6480>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_latitude
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_latitude resolved successfully: <function is_latitude at 0x7f62698cc360>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_longitude
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_longitude resolved successfully: <function is_longitude at 0x7f62698cc400>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_geometry
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_geometry resolved successfully: <function is_geometry at 0x7f62698cc540>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_geography
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_geography resolved successfully: <function is_geography at 0x7f62698cc5e0>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_point
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_point resolved successfully: <function is_point at 0x7f62698cc680>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_linestring
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_linestring resolved successfully: <function is_linestring at 0x7f62698cc720>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_polygon
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_polygon resolved successfully: <function is_polygon at 0x7f62698cc7c0>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_multipoint
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_multipoint resolved successfully: <function is_multipoint at 0x7f62698cc860>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_multilinestring
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_multilinestring resolved successfully: <function is_multilinestring at 0x7f62698cc900>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_multipolygon
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_multipolygon resolved successfully: <function is_multipolygon at 0x7f62698cc9a0>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_geometrycollection
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_geometrycollection resolved successfully: <function is_geometrycollection at 0x7f62698cca40>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_ogc_valid
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_ogc_valid resolved successfully: <function is_ogc_valid at 0x7f62698ccae0>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_non_empty_geometry
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_non_empty_geometry resolved successfully: <function is_non_empty_geometry at 0x7f62698ccb80>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_not_null_island
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_not_null_island resolved successfully: <function is_not_null_island at 0x7f62698ccc20>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: has_dimension
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function has_dimension resolved successfully: <function has_dimension at 0x7f62698cccc0>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: has_x_coordinate_between
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function has_x_coordinate_between resolved successfully: <function has_x_coordinate_between at 0x7f62698ccd60>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: has_y_coordinate_between
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function has_y_coordinate_between resolved successfully: <function has_y_coordinate_between at 0x7f62698cce00>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_area_equal_to
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_area_equal_to resolved successfully: <function is_area_equal_to at 0x7f62698ccea0>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_area_not_equal_to
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_area_not_equal_to resolved successfully: <function is_area_not_equal_to at 0x7f62698ccf40>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_area_not_greater_than
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_area_not_greater_than resolved successfully: <function is_area_not_greater_than at 0x7f62698ccfe0>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_area_not_less_than
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_area_not_less_than resolved successfully: <function is_area_not_less_than at 0x7f62698cd080>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_num_points_equal_to
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_num_points_equal_to resolved successfully: <function is_num_points_equal_to at 0x7f62698cd120>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_num_points_not_equal_to
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_num_points_not_equal_to resolved successfully: <function is_num_points_not_equal_to at 0x7f62698cd1c0>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_num_points_not_greater_than
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_num_points_not_greater_than resolved successfully: <function is_num_points_not_greater_than at 0x7f62698cd260>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_num_points_not_less_than
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_num_points_not_less_than resolved successfully: <function is_num_points_not_less_than at 0x7f62698cd300>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: are_polygons_mutually_disjoint
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function are_polygons_mutually_disjoint resolved successfully: <function are_polygons_mutually_disjoint at 0x7f62698cd440>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_geo_contains
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_geo_contains resolved successfully: <function is_geo_contains at 0x7f62698cd620>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_geo_covers
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_geo_covers resolved successfully: <function is_geo_covers at 0x7f62698cd760>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_geo_intersects
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_geo_intersects resolved successfully: <function is_geo_intersects at 0x7f62698cd8a0>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_geo_touches
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_geo_touches resolved successfully: <function is_geo_touches at 0x7f62698cd940>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_geo_within
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_geo_within resolved successfully: <function is_geo_within at 0x7f62698cd9e0>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: custom_row_check_func_global_registered
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function custom_row_check_func_global_registered resolved successfully: None
15:32 WARNING [databricks.labs.dqx.llm.llm_utils] Check function custom_row_check_func_global_registered not found in the registry
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: custom_dataset_check_func_with_ref_dfs
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function custom_dataset_check_func_with_ref_dfs resolved successfully: None
15:32 WARNING [databricks.labs.dqx.llm.llm_utils] Check function custom_dataset_check_func_with_ref_dfs not found in the registry
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: _check_requires_dbr_v1
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function _check_requires_dbr_v1 resolved successfully: None
15:32 WARNING [databricks.labs.dqx.llm.llm_utils] Check function _check_requires_dbr_v1 not found in the registry
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: does_not_contain_pii
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function does_not_contain_pii resolved successfully: <function does_not_contain_pii at 0x7f6262093f60>
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: has_no_row_anomalies
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function has_no_row_anomalies resolved successfully: <function has_no_row_anomalies at 0x7f61f32c3ec0>
15:32 DEBUG [databricks.labs.dqx.llm.validators] ✓ JSON parsing successful
15:32 DEBUG [databricks.labs.dqx.checks_validator] Processing check definition: {'criticality': 'error', 'check': {'function': 'is_not_null_and_not_empty', 'arguments': {'column': 'product_code', 'trim_strings': True}}}
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_not_null_and_not_empty
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_not_null_and_not_empty resolved successfully: <function is_not_null_and_not_empty at 0x7f626988f380>
15:32 DEBUG [databricks.labs.dqx.llm.validators] ✓ Rules validation passed
15:32 DEBUG [databricks.labs.dqx.llm.validators] Final validation score: 1.00
15:32 DEBUG [databricks.labs.dqx.llm.validators] ✓ JSON parsing successful
15:32 DEBUG [databricks.labs.dqx.checks_validator] Processing check definition: {'criticality': 'error', 'check': {'function': 'is_in_list', 'arguments': {'column': 'status', 'allowed': [1, 2, 3]}}, 'filter': 'order_id IS NOT NULL'}
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Resolving function: is_in_list
15:32 DEBUG [databricks.labs.dqx.checks_resolver] Function is_in_list resolved successfully: <function is_in_list at 0x7f626988f880>
15:32 DEBUG [databricks.labs.dqx.llm.validators] ✓ Rules validation passed
15:32 DEBUG [databricks.labs.dqx.llm.validators] Final validation score: 1.00
15:32 INFO [databricks.sdk] Using Databricks Metadata Service authentication
15:32 INFO [databricks.sdk] Using Databricks Metadata Service authentication
15:32 INFO [databricks.sdk] Using Databricks Metadata Service authentication
15:32 INFO [databricks.sdk] Using Databricks Metadata Service authentication
15:32 INFO [databricks.sdk] Using Databricks Metadata Service authentication
15:32 INFO [databricks.sdk] Using Databricks Metadata Service authentication
15:32 INFO [databricks.labs.dqx.datacontract.contract_rules_generator] Processing text rule for property 'temperature_celsius': Temperature readings above 100°C should be flagged as anomalies
and require manual review by the operations team.

15:32 INFO [databricks.sdk] Using Databricks Metadata Service authentication
15:32 INFO [databricks.sdk] Using Databricks Metadata Service authentication
15:32 INFO [databricks.sdk] Using Databricks Metadata Service authentication
15:32 INFO [databricks.sdk] Using Databricks Metadata Service authentication
15:32 INFO [databricks.sdk] Using Databricks Metadata Service authentication
15:32 INFO [databricks.sdk] Using Databricks Metadata Service authentication
15:33 INFO [databricks.sdk] Using Databricks Metadata Service authentication
15:33 INFO [databricks.sdk] Using Databricks Metadata Service authentication
15:33 INFO [databricks.sdk] Using Databricks Metadata Service authentication
15:33 INFO [databricks.sdk] Using Databricks Metadata Service authentication
15:33 INFO [databricks.sdk] Using Databricks Metadata Service authentication
15:33 INFO [databricks.sdk] Using Databricks Metadata Service authentication
15:33 INFO [databricks.sdk] Using Databricks Metadata Service authentication
15:33 INFO [databricks.sdk] Using Databricks Metadata Service authentication
15:33 INFO [databricks.labs.dqx.datacontract.contract_rules_generator] Processing text rule for property 'location': Location codes should correspond to valid facility locations in 
the company's asset management system.

15:33 INFO [databricks.sdk] Using Databricks Metadata Service authentication
15:33 INFO [databricks.sdk] Using Databricks Metadata Service authentication
15:33 INFO [databricks.sdk] Using Databricks Metadata Service authentication
15:33 INFO [databricks.sdk] Using Databricks Metadata Service authentication
15:33 INFO [databricks.sdk] Using Databricks Metadata Service authentication
15:33 INFO [databricks.sdk] Using Databricks Metadata Service authentication
15:33 INFO [databricks.sdk] Using Databricks Metadata Service authentication
15:33 INFO [databricks.sdk] Using Databricks Metadata Service authentication
15:33 INFO [databricks.sdk] Using Databricks Metadata Service authentication
15:33 INFO [databricks.sdk] Using Databricks Metadata Service authentication
15:33 INFO [databricks.sdk] Using Databricks Metadata Service authentication
15:33 INFO [databricks.sdk] Using Databricks Metadata Service authentication
15:33 INFO [databricks.sdk] Using Databricks Metadata Service authentication
15:33 INFO [databricks.sdk] Using Databricks Metadata Service authentication
15:33 INFO [databricks.sdk] Using Databricks Metadata Service authentication
15:33 INFO [databricks.sdk] Using Databricks Metadata Service authentication
15:33 INFO [databricks.sdk] Using Databricks Metadata Service authentication
15:33 INFO [databricks.sdk] Using Databricks Metadata Service authentication
15:33 INFO [databricks.sdk] Using Databricks Metadata Service authentication
15:33 INFO [databricks.sdk] Using Databricks Metadata Service authentication
15:33 INFO [databricks.sdk] Using Databricks Metadata Service authentication
15:33 INFO [databricks.sdk] Using Databricks Metadata Service authentication
15:33 INFO [databricks.sdk] Using Databricks Metadata Service authentication
15:33 INFO [databricks.sdk] Using Databricks Metadata Service authentication
[gw2] linux -- Python 3.12.3 /home/runner/work/dqx/dqx/.venv/bin/python

Running from acceptance #5655

@github-actions

github-actions Bot commented Aug 12, 2026

Copy link
Copy Markdown
Contributor

✅ 1/1 passed, 30m19s total

Running from mcp #404

@github-actions

github-actions Bot commented Aug 12, 2026

Copy link
Copy Markdown
Contributor

✅ 135/135 passed, 1 skipped, 8h29m45s total

Running from anomaly #1769

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.

1 participant