Skip to content

md5 hash eval

8302590
Select commit
Loading
Failed to load commit list.
Open

Script to upload time series and observations to spanner graph #1957

md5 hash eval
8302590
Select commit
Loading
Failed to load commit list.
Google Cloud Build / data-pull-request-py (datcom-ci) failed Apr 22, 2026 in 8m 31s

Summary

Build Information

Trigger data-pull-request-py
Build acfaefb9-2173-4820-ad8d-925f184ae87f
Start 2026-04-22T02:00:06-07:00
Duration 8m27.826s
Status FAILURE

Steps

Step Status Duration
python_install SUCCESS 4m52.556s
python_test CANCELLED 2m59.866s
python_format_check FAILURE 2m57.66s

Details

starting build "acfaefb9-2173-4820-ad8d-925f184ae87f"

FETCHSOURCE
From https://github.com/datacommonsorg/data
 * branch            8302590f8731f81a7f710e6dadb000596d8f65b5 -> FETCH_HEAD
Updating files:  18% (947/5058)
Updating files:  19% (962/5058)
Updating files:  20% (1012/5058)
Updating files:  20% (1024/5058)
Updating files:  21% (1063/5058)
Updating files:  22% (1113/5058)
Updating files:  23% (1164/5058)
Updating files:  24% (1214/5058)
Updating files:  25% (1265/5058)
Updating files:  26% (1316/5058)
Updating files:  27% (1366/5058)
Updating files:  28% (1417/5058)
Updating files:  29% (1467/5058)
Updating files:  30% (1518/5058)
Updating files:  31% (1568/5058)
Updating files:  32% (1619/5058)
Updating files:  33% (1670/5058)
Updating files:  34% (1720/5058)
Updating files:  35% (1771/5058)
Updating files:  36% (1821/5058)
Updating files:  37% (1872/5058)
Updating files:  38% (1923/5058)
Updating files:  39% (1973/5058)
Updating files:  40% (2024/5058)
Updating files:  41% (2074/5058)
Updating files:  42% (2125/5058)
Updating files:  43% (2175/5058)
Updating files:  44% (2226/5058)
Updating files:  45% (2277/5058)
Updating files:  45% (2288/5058)
Updating files:  46% (2327/5058)
Updating files:  47% (2378/5058)
Updating files:  48% (2428/5058)
Updating files:  49% (2479/5058)
Updating files:  50% (2529/5058)
Updating files:  51% (2580/5058)
Updating files:  52% (2631/5058)
Updating files:  53% (2681/5058)
Updating files:  54% (2732/5058)
Updating files:  55% (2782/5058)
Updating files:  56% (2833/5058)
Updating files:  57% (2884/5058)
Updating files:  58% (2934/5058)
Updating files:  59% (2985/5058)
Updating files:  60% (3035/5058)
Updating files:  61% (3086/5058)
Updating files:  62% (3136/5058)
Updating files:  63% (3187/5058)
Updating files:  64% (3238/5058)
Updating files:  65% (3288/5058)
Updating files:  66% (3339/5058)
Updating files:  67% (3389/5058)
Updating files:  68% (3440/5058)
Updating files:  69% (3491/5058)
Updating files:  70% (3541/5058)
Updating files:  71% (3592/5058)
Updating files:  72% (3642/5058)
Updating files:  73% (3693/5058)
Updating files:  74% (3743/5058)
Updating files:  75% (3794/5058)
Updating files:  76% (3845/5058)
Updating files:  77% (3895/5058)
Updating files:  78% (3946/5058)
Updating files:  79% (3996/5058)
Updating files:  80% (4047/5058)
Updating files:  81% (4097/5058)
Updating files:  82% (4148/5058)
Updating files:  83% (4199/5058)
Updating files:  84% (4249/5058)
Updating files:  85% (4300/5058)
Updating files:  86% (4350/5058)
Updating files:  87% (4401/5058)
Updating files:  88% (4452/5058)
Updating files:  89% (4502/5058)
Updating files:  90% (4553/5058)
Updating files:  91% (4603/5058)
Updating files:  92% (4654/5058)
Updating files:  93% (4704/5058)
Updating files:  94% (4755/5058)
Updating files:  95% (4806/5058)
Updating files:  96% (4856/5058)
Updating files:  97% (4907/5058)
Updating files:  98% (4957/5058)
Updating files:  99% (5008/5058)
Updating files: 100% (5058/5058)
Updating files: 100% (5058/5058), done.
HEAD is now at 8302590 md5 hash eval
GitCommit:
8302590f8731f81a7f710e6dadb000596d8f65b5
BUILD
Starting Step #0 - "python_install"
Step #0 - "python_install": Pulling image: python:3.12.8
Step #0 - "python_install": 3.12.8: Pulling from library/python
Step #0 - "python_install": a492eee5e559: Pulling fs layer
Step #0 - "python_install": 32b550be6cb6: Pulling fs layer
Step #0 - "python_install": 35af2a7690f2: Pulling fs layer
Step #0 - "python_install": 7576b00d9bb1: Pulling fs layer
Step #0 - "python_install": a57a7d4db735: Pulling fs layer
Step #0 - "python_install": a113cc029c60: Pulling fs layer
Step #0 - "python_install": dc93fee02728: Pulling fs layer
Step #0 - "python_install": dc93fee02728: Waiting
Step #0 - "python_install": a57a7d4db735: Verifying Checksum
Step #0 - "python_install": a57a7d4db735: Download complete
Step #0 - "python_install": 32b550be6cb6: Verifying Checksum
Step #0 - "python_install": 32b550be6cb6: Download complete
Step #0 - "python_install": a113cc029c60: Verifying Checksum
Step #0 - "python_install": a113cc029c60: Download complete
Step #0 - "python_install": dc93fee02728: Verifying Checksum
Step #0 - "python_install": dc93fee02728: Download complete
Step #0 - "python_install": a492eee5e559: Verifying Checksum
Step #0 - "python_install": a492eee5e559: Download complete
Step #0 - "python_install": 35af2a7690f2: Download complete
Step #0 - "python_install": 7576b00d9bb1: Verifying Checksum
Step #0 - "python_install": 7576b00d9bb1: Download complete
Step #0 - "python_install": a492eee5e559: Pull complete
Step #0 - "python_install": 32b550be6cb6: Pull complete
Step #0 - "python_install": 35af2a7690f2: Pull complete
Step #0 - "python_install": 7576b00d9bb1: Pull complete
Step #0 - "python_install": a57a7d4db735: Pull complete
Step #0 - "python_install": a113cc029c60: Pull complete
Step #0 - "python_install": dc93fee02728: Pull complete
Step #0 - "python_install": Digest: sha256:e74938514dc67ad3eade8798aa929f5dd569e463758c83243636d4e1b54aa559
Step #0 - "python_install": Status: Downloaded newer image for python:3.12.8
Step #0 - "python_install": docker.io/library/python:3.12.8
Step #0 - "python_install": ### Installing Python requirements
Step #0 - "python_install": Installing Python requirements
Step #0 - "python_install": 
Step #0 - "python_install": [notice] A new release of pip is available: 24.3.1 -> 26.0.1
Step #0 - "python_install": [notice] To update, run: pip install --upgrade pip
Finished Step #0 - "python_install"
Starting Step #1 - "python_test"
Starting Step #2 - "python_format_check"
Step #2 - "python_format_check": Already have image (with digest): python:3.12.8
Step #1 - "python_test": Already have image (with digest): python:3.12.8
Step #2 - "python_format_check": ### Testing lint
Step #1 - "python_test": ### Running all tests
Step #1 - "python_test": Installing Python requirements
Step #2 - "python_format_check": Installing Python requirements
Step #1 - "python_test": 
Step #1 - "python_test": [notice] A new release of pip is available: 24.3.1 -> 26.0.1
Step #1 - "python_test": [notice] To update, run: pip install --upgrade pip
Step #2 - "python_format_check": 
Step #2 - "python_format_check": [notice] A new release of pip is available: 24.3.1 -> 26.0.1
Step #2 - "python_format_check": [notice] To update, run: pip install --upgrade pip
Step #1 - "python_test": #### Testing Python code in util/
Step #2 - "python_format_check": #### Testing Python lint
Step #1 - "python_test": test_aggregate_dict (aggregation_util_test.AggregationUtilTest.test_aggregate_dict) ... ok
Step #1 - "python_test": test_aggregate_value (aggregation_util_test.AggregationUtilTest.test_aggregate_value) ... ok
Step #1 - "python_test": test_config_map_with_override (config_map_test.TestConfigMap.test_config_map_with_override) ... ok
Step #1 - "python_test": test_load_config_file (config_map_test.TestConfigMap.test_load_config_file)
Step #1 - "python_test": Test loading of config dictionary from a file. ... ok
Step #1 - "python_test": test_set_config (config_map_test.TestConfigMap.test_set_config) ... ok
Step #1 - "python_test": test_update_config (config_map_test.TestConfigMap.test_update_config) ... ok
Step #1 - "python_test": test_add_counter_decrement (counters_test.TestCounters.test_add_counter_decrement) ... ok
Step #1 - "python_test": test_add_counter_default_increment (counters_test.TestCounters.test_add_counter_default_increment) ... ok
Step #1 - "python_test": test_add_counter_increment (counters_test.TestCounters.test_add_counter_increment) ... ok
Step #1 - "python_test": test_add_counters (counters_test.TestCounters.test_add_counters) ... ok
Step #1 - "python_test": test_counter_dict_is_shared (counters_test.TestCounters.test_counter_dict_is_shared)
Step #1 - "python_test": Verify counter dict is shared across counters. ... ok
Step #1 - "python_test": test_debug_counters_are_correctly_updated (counters_test.TestCounters.test_debug_counters_are_correctly_updated)
Step #1 - "python_test": Verify counters with debug string suffixes. ... ok
Step #1 - "python_test": test_debug_counters_are_not_created_when_debug_is_false (counters_test.TestCounters.test_debug_counters_are_not_created_when_debug_is_false) ... ok
Step #1 - "python_test": test_get_counters_string (counters_test.TestCounters.test_get_counters_string) ... ok
Step #1 - "python_test": test_get_non_existent_counter (counters_test.TestCounters.test_get_non_existent_counter) ... ok
Step #1 - "python_test": test_max_counter (counters_test.TestCounters.test_max_counter) ... ok
Step #1 - "python_test": test_min_counter (counters_test.TestCounters.test_min_counter) ... ok
Step #1 - "python_test": test_prefix (counters_test.TestCounters.test_prefix) ... ok
Step #1 - "python_test": test_processing_rate (counters_test.TestCounters.test_processing_rate) ... ok
Step #1 - "python_test": test_set_counter_overwrites_value (counters_test.TestCounters.test_set_counter_overwrites_value)
Step #1 - "python_test": Verify set_counter overrides current value. ... ok
Step #1 - "python_test": test_show_counters_produces_correct_output (counters_test.TestCounters.test_show_counters_produces_correct_output) ... ok
Step #1 - "python_test": test_convert_v1_to_v2_coordinate_request (dc_api_wrapper_test.TestDCAPIWrapper.test_convert_v1_to_v2_coordinate_request)
Step #1 - "python_test": Test coordinate request conversion from v1 to v2. ... ok
Step #1 - "python_test": test_convert_v2_to_v1_coordinate_response (dc_api_wrapper_test.TestDCAPIWrapper.test_convert_v2_to_v1_coordinate_response)
Step #1 - "python_test": Test coordinate response conversion from v2 to v1. ... ok
Step #1 - "python_test": test_dc_api_batched_wrapper (dc_api_wrapper_test.TestDCAPIWrapper.test_dc_api_batched_wrapper)
Step #1 - "python_test": Test DC API wrapper for batched calls. ... ok
Step #1 - "python_test": test_dc_api_get_node_property (dc_api_wrapper_test.TestDCAPIWrapper.test_dc_api_get_node_property)
Step #1 - "python_test": Test API wrapper to get a single property for a node. ... ok
Step #1 - "python_test": test_dc_api_get_node_property_multi_v2 (dc_api_wrapper_test.TestDCAPIWrapper.test_dc_api_get_node_property_multi_v2)
Step #1 - "python_test": Test API wrapper to get multiple properties for a node. ... ok
Step #1 - "python_test": test_dc_api_is_defined_dcid (dc_api_wrapper_test.TestDCAPIWrapper.test_dc_api_is_defined_dcid)
Step #1 - "python_test": Test API wrapper for defined DCIDs. ... ok
Step #1 - "python_test": test_dc_api_resolve_latlng (dc_api_wrapper_test.TestDCAPIWrapper.test_dc_api_resolve_latlng)
Step #1 - "python_test": Test API wrapper for latlng resolution. ... ok
Step #1 - "python_test": test_dc_api_resolve_latlng_v1_compat_shape (dc_api_wrapper_test.TestDCAPIWrapper.test_dc_api_resolve_latlng_v1_compat_shape)
Step #1 - "python_test": Test latlng resolution supports v1 compatibility response shape. ... ok
Step #1 - "python_test": test_dc_api_resolve_placeid (dc_api_wrapper_test.TestDCAPIWrapper.test_dc_api_resolve_placeid)
Step #1 - "python_test": Test API wrapper to resolve entity using a placeid. ... ok
Step #1 - "python_test": test_dc_api_wrapper (dc_api_wrapper_test.TestDCAPIWrapper.test_dc_api_wrapper)
Step #1 - "python_test": Test the wrapper for DC API. ... ok
Step #1 - "python_test": test_dc_api_wrapper_attempts_no_extra_retries (dc_api_wrapper_test.TestDCAPIWrapper.test_dc_api_wrapper_attempts_no_extra_retries)
Step #1 - "python_test": Test wrapper doesn't retry beyond the max attempts. ... ok
Step #1 - "python_test": test_dc_api_wrapper_does_not_retry_http_400 (dc_api_wrapper_test.TestDCAPIWrapper.test_dc_api_wrapper_does_not_retry_http_400)
Step #1 - "python_test": Test wrapper does not retry non-transient HTTP errors. ... ERROR:absl:Got status: 400, not retrying.
Step #1 - "python_test": ok
Step #1 - "python_test": test_dc_api_wrapper_keyerror_returns_none_without_retry (dc_api_wrapper_test.TestDCAPIWrapper.test_dc_api_wrapper_keyerror_returns_none_without_retry)
Step #1 - "python_test": Test wrapper returns None and does not retry for KeyError. ... ERROR:absl:Got exception for api: <Mock id='140186516730464'>, 'missing-dcid'
Step #1 - "python_test": ok
Step #1 - "python_test": test_dc_api_wrapper_non_positive_retries_defaults_to_one_attempt (dc_api_wrapper_test.TestDCAPIWrapper.test_dc_api_wrapper_non_positive_retries_defaults_to_one_attempt)
Step #1 - "python_test": Test non-positive retries are treated as one attempt. ... ok
Step #1 - "python_test": test_dc_api_wrapper_non_retryable_exception_has_note (dc_api_wrapper_test.TestDCAPIWrapper.test_dc_api_wrapper_non_retryable_exception_has_note)
Step #1 - "python_test": Test non-retryable exceptions bubble once with added context note. ... ok
Step #1 - "python_test": test_dc_api_wrapper_retries_http_429 (dc_api_wrapper_test.TestDCAPIWrapper.test_dc_api_wrapper_retries_http_429)
Step #1 - "python_test": Test wrapper retries HTTP 429 and succeeds. ... ok
Step #1 - "python_test": test_dc_api_wrapper_retries_http_503_until_exhausted (dc_api_wrapper_test.TestDCAPIWrapper.test_dc_api_wrapper_retries_http_503_until_exhausted)
Step #1 - "python_test": Test wrapper retries HTTP 503 until max attempts are exhausted. ... ok
Step #1 - "python_test": test_dc_api_wrapper_stops_after_success (dc_api_wrapper_test.TestDCAPIWrapper.test_dc_api_wrapper_stops_after_success)
Step #1 - "python_test": Test wrapper stops retrying after a successful response. ... ok
Step #1 - "python_test": test_dc_get_node_property_values (dc_api_wrapper_test.TestDCAPIWrapper.test_dc_get_node_property_values)
Step #1 - "python_test": Test API wrapper to get all property:values for a node. ... ok
Step #1 - "python_test": test_non_v2_config_rejected (dc_api_wrapper_test.TestDCAPIWrapper.test_non_v2_config_rejected)
Step #1 - "python_test": Test wrapper rejects non-V2 dc_api_version values. ... ok
Step #1 - "python_test": test_download_and_unzip_file (download_util_script_test.DownloadFileTest.test_download_and_unzip_file) ... ok
Step #1 - "python_test": test_download_failure (download_util_script_test.DownloadFileTest.test_download_failure) ... WARNING:absl:Direct HEAD request failed for 'http://example.com/error' (cannot get Last-Modified): 404 Client Error: Not Found for url: http://example.com/error
Step #1 - "python_test": ERROR:absl:Processing failed: File system error for 'http://example.com/error'. Error: 404 Client Error: Not Found for url: http://example.com/error
Step #1 - "python_test": ok
Step #1 - "python_test": test_download_file_without_extension (download_util_script_test.DownloadFileTest.test_download_file_without_extension) ... ok
Step #1 - "python_test": test_download_invalid_url (download_util_script_test.DownloadFileTest.test_download_invalid_url) ... ERROR:absl:Invalid URL format or missing scheme for 'invalid_url'. Please ensure URL starts with 'http://' or 'https://'.
Step #1 - "python_test": ok
Step #1 - "python_test": test_download_txt_file (download_util_script_test.DownloadFileTest.test_download_txt_file) ... ok
Step #1 - "python_test": test_download_file (download_util_test.TestCounters.test_download_file) ... ok
Step #1 - "python_test": test_prefilled_url (download_util_test.TestCounters.test_prefilled_url) ... ok
Step #1 - "python_test": test_request_url (download_util_test.TestCounters.test_request_url) ... ok
Step #1 - "python_test": test_read_write (file_util_test.FileIOTest.test_read_write) ... ok
Step #1 - "python_test": test_file_get_estimate_num_rows (file_util_test.FileUtilsTest.test_file_get_estimate_num_rows) ... ok
Step #1 - "python_test": test_file_get_matching (file_util_test.FileUtilsTest.test_file_get_matching) ... ok
Step #1 - "python_test": test_file_load_csv_dict (file_util_test.FileUtilsTest.test_file_load_csv_dict) ... ok
Step #1 - "python_test": test_file_type (file_util_test.FileUtilsTest.test_file_type) ... ok
Step #1 - "python_test": test_file_write_load_py_dict (file_util_test.FileUtilsTest.test_file_write_load_py_dict) ... ok
Step #1 - "python_test": test_aa2 (latlng2place_mapsapi_test.Latlng2PlaceMapsAPITest.test_aa2) ... /workspace/.env/lib/python3.12/site-packages/url_normalize/normalize_host.py:35: DeprecationWarning: Transitional processing has been removed from UTS #46. The transitional argument will be removed in a future version.
Step #1 - "python_test":   idna.encode(p, uts46=True, transitional=True).decode(charset)
Step #1 - "python_test": ok
Step #1 - "python_test": test_country (latlng2place_mapsapi_test.Latlng2PlaceMapsAPITest.test_country) ... ok
Step #1 - "python_test": test_main (latlng_recon_geojson_test.LatlngReconGeojsonTest.test_main) ... ok
Step #1 - "python_test": test_basic (latlng_recon_service_test.LatlngReconServiceTest.test_basic) ... ok
Step #1 - "python_test": test_filter (latlng_recon_service_test.LatlngReconServiceTest.test_filter) ... ok
Step #1 - "python_test": test_dict_list_to_mcf_str (mcf_dict_util_test.TestMCFDict.test_dict_list_to_mcf_str) ... ok
Step #1 - "python_test": test_drop_nodes (mcf_dict_util_test.TestMCFDict.test_drop_nodes) ... ok
Step #1 - "python_test": test_get_dcid_node (mcf_dict_util_test.TestMCFDict.test_get_dcid_node) ... ok
Step #1 - "python_test": test_mcf_dict_rename_namespace (mcf_dict_util_test.TestMCFDict.test_mcf_dict_rename_namespace) ... ok
Step #1 - "python_test": test_mcf_dict_rename_prop (mcf_dict_util_test.TestMCFDict.test_mcf_dict_rename_prop) ... ok
Step #1 - "python_test": test_mcf_dict_rename_prop_value (mcf_dict_util_test.TestMCFDict.test_mcf_dict_rename_prop_value) ... ok
Step #1 - "python_test": test_mcf_to_dict_list (mcf_dict_util_test.TestMCFDict.test_mcf_to_dict_list) ... ok
Step #1 - "python_test": test_node_list_check_existence_dc (mcf_dict_util_test.TestMCFDict.test_node_list_check_existence_dc) ... ok
Step #1 - "python_test": test_node_list_check_existence_node_list (mcf_dict_util_test.TestMCFDict.test_node_list_check_existence_node_list) ... ok
Step #1 - "python_test": test_example_usage (mcf_template_filler_test.MCFTemplateFillerTest.test_example_usage) ... ok
Step #1 - "python_test": test_pop_and_2_obs_with_all_pv (mcf_template_filler_test.MCFTemplateFillerTest.test_pop_and_2_obs_with_all_pv)
Step #1 - "python_test": Use separate templates for Pop Obs, and use Obs template repeatedly. ... ok
Step #1 - "python_test": test_pop_with_missing_req_pv (mcf_template_filler_test.MCFTemplateFillerTest.test_pop_with_missing_req_pv) ... ok
Step #1 - "python_test": test_require_node_name (mcf_template_filler_test.MCFTemplateFillerTest.test_require_node_name) ... ok
Step #1 - "python_test": test_unified_pop_obs_with_missing_optional_pv (mcf_template_filler_test.MCFTemplateFillerTest.test_unified_pop_obs_with_missing_optional_pv) ... ok
Step #1 - "python_test": test_place_id_resolution_by_name (state_division_to_dcid_test.PlaceMapTest.test_place_id_resolution_by_name) ... ok
Step #1 - "python_test": test_boolean_naming (statvar_dcid_generator_test.TestStatVarDcidGenerator.test_boolean_naming) ... ok
Step #1 - "python_test": test_double_underscore (statvar_dcid_generator_test.TestStatVarDcidGenerator.test_double_underscore) ... ok
Step #1 - "python_test": test_ignore_props (statvar_dcid_generator_test.TestStatVarDcidGenerator.test_ignore_props) ... ok
Step #1 - "python_test": test_legacy_mapping (statvar_dcid_generator_test.TestStatVarDcidGenerator.test_legacy_mapping) ... ok
Step #1 - "python_test": test_measured_property (statvar_dcid_generator_test.TestStatVarDcidGenerator.test_measured_property) ... ok
Step #1 - "python_test": test_measurement_constraint_removal (statvar_dcid_generator_test.TestStatVarDcidGenerator.test_measurement_constraint_removal) ... ok
Step #1 - "python_test": test_measurement_denominator (statvar_dcid_generator_test.TestStatVarDcidGenerator.test_measurement_denominator) ... ok
Step #1 - "python_test": test_measurement_qualifier (statvar_dcid_generator_test.TestStatVarDcidGenerator.test_measurement_qualifier) ... ok
Step #1 - "python_test": test_naics_name_generation (statvar_dcid_generator_test.TestStatVarDcidGenerator.test_naics_name_generation) ... ok
Step #1 - "python_test": test_namespace_removal (statvar_dcid_generator_test.TestStatVarDcidGenerator.test_namespace_removal) ... ok
Step #1 - "python_test": test_prepend_append_replace (statvar_dcid_generator_test.TestStatVarDcidGenerator.test_prepend_append_replace) ... ok
Step #1 - "python_test": test_quantity_name_generation (statvar_dcid_generator_test.TestStatVarDcidGenerator.test_quantity_name_generation) ... ok
Step #1 - "python_test": test_quantity_range_name_generation (statvar_dcid_generator_test.TestStatVarDcidGenerator.test_quantity_range_name_generation) ... ok
Step #1 - "python_test": test_soc_map (statvar_dcid_generator_test.TestStatVarDcidGenerator.test_soc_map) ... ok
Step #1 - "python_test": test_soc_name_generation (statvar_dcid_generator_test.TestStatVarDcidGenerator.test_soc_name_generation) ... ok
Step #1 - "python_test": test_sorted_constraints (statvar_dcid_generator_test.TestStatVarDcidGenerator.test_sorted_constraints) ... ok
Step #1 - "python_test": test_stat_type (statvar_dcid_generator_test.TestStatVarDcidGenerator.test_stat_type) ... ok
Step #1 - "python_test": test_timer_start (timer_test.TimerTest.test_timer_start) ... ok
Step #1 - "python_test": test_timer_stop (timer_test.TimerTest.test_timer_stop) ... ok
Step #1 - "python_test": test_timer_time (timer_test.TimerTest.test_timer_time) ... ok
Step #1 - "python_test": test_xml_with_different_data_types (xml_to_json_test.XMLToJsonConverterTest.test_xml_with_different_data_types) ... ok
Step #1 - "python_test": 
Step #1 - "python_test": ----------------------------------------------------------------------
Step #1 - "python_test": Ran 96 tests in 8.155s
Step #1 - "python_test": 
Step #1 - "python_test": OK
Step #1 - "python_test": #### Testing Python code in tools/
Step #1 - "python_test": /workspace/tools/statvar_importer/place/place_name_matcher.py:14: SyntaxWarning: invalid escape sequence '\`'
Step #1 - "python_test":   """Script to lookup places by names.
Step #1 - "python_test": test_diff_analysis (import_differ.import_differ_test.TestImportDiffer.test_diff_analysis) ... ok
Step #1 - "python_test": test_empty_differ_file_runs_validation (import_validation.import_validation_test.ImportValidationTest.test_empty_differ_file_runs_validation)
Step #1 - "python_test": Tests that a differ file with only headers (empty DataFrame) still runs ... ok
Step #1 - "python_test": test_failed_run (import_validation.import_validation_test.ImportValidationTest.test_failed_run)
Step #1 - "python_test": Tests a failed run of the script. ... ok
Step #1 - "python_test": test_missing_differ_file_does_not_throw_exception (import_validation.import_validation_test.ImportValidationTest.test_missing_differ_file_does_not_throw_exception)
Step #1 - "python_test": Tests that a missing differ file does not cause the runner to throw an ... ok
Step #1 - "python_test": test_missing_required_file_fails (import_validation.import_validation_test.ImportValidationTest.test_missing_required_file_fails)
Step #1 - "python_test": Tests that the script fails when a required data file is missing. ... ok
Step #1 - "python_test": test_sql_validator_fails (import_validation.import_validation_test.ImportValidationTest.test_sql_validator_fails)
Step #1 - "python_test": Tests that the SQL_VALIDATOR works in a run. ... ok
Step #1 - "python_test": test_successful_run (import_validation.import_validation_test.ImportValidationTest.test_successful_run)
Step #1 - "python_test": Tests a successful run of the script. ... ok
Step #1 - "python_test": test_variables_filtering (import_validation.import_validation_test.ImportValidationTest.test_variables_filtering)
Step #1 - "python_test": Tests that the runner correctly applies the 'variables' filter. ... ok
Step #1 - "python_test": test_generate_csv_report (import_validation.report_generator_test.TestReportGenerator.test_generate_csv_report) ... ok
Step #1 - "python_test": test_generate_json_report (import_validation.report_generator_test.TestReportGenerator.test_generate_json_report) ... ok
Step #1 - "python_test": test_generate_summary_report_placeholder (import_validation.report_generator_test.TestReportGenerator.test_generate_summary_report_placeholder) ... ok
Step #1 - "python_test": test_init_raises_error_if_required_file_is_missing (import_validation.runner_test.TestValidationRunner.test_init_raises_error_if_required_file_is_missing)
Step #1 - "python_test": Tests that the constructor raises a ValueError if a required file is missing. ... ok
Step #1 - "python_test": test_runner_applies_filters_correctly (import_validation.runner_test.TestValidationRunner.test_runner_applies_filters_correctly) ... WARNING:absl:
Step #1 - "python_test": ok
Step #1 - "python_test": test_runner_calls_correct_validator_function (import_validation.runner_test.TestValidationRunner.test_runner_calls_correct_validator_function) ... WARNING:absl:
Step #1 - "python_test": ok
Step #1 - "python_test": test_runner_deleted_records_percent (import_validation.runner_test.TestValidationRunner.test_runner_deleted_records_percent) ... WARNING:absl:
Step #1 - "python_test": ok
Step #1 - "python_test": test_runner_handles_failed_validation (import_validation.runner_test.TestValidationRunner.test_runner_handles_failed_validation) ... WARNING:absl:It failed
Step #1 - "python_test": ok
Step #1 - "python_test": test_runner_handles_unknown_validation (import_validation.runner_test.TestValidationRunner.test_runner_handles_unknown_validation) ... ok
Step #1 - "python_test": test_runner_uses_custom_name (import_validation.runner_test.TestValidationRunner.test_runner_uses_custom_name) ... WARNING:absl:
Step #1 - "python_test": ok
Step #1 - "python_test": test_runner_writes_correct_output (import_validation.runner_test.TestValidationRunner.test_runner_writes_correct_output) ... WARNING:absl:Too many deletions, found 100
Step #1 - "python_test": ok
Step #1 - "python_test": test_filter_with_dcids (import_validation.util_test.TestFilterDataFrame.test_filter_with_dcids)
Step #1 - "python_test": Tests filtering by a list of exact StatVar DCIDs. ... ok
Step #1 - "python_test": test_filter_with_multiple_substrings_match (import_validation.util_test.TestFilterDataFrame.test_filter_with_multiple_substrings_match)
Step #1 - "python_test": Tests that all substrings must match for a row to be included. ... ok
Step #1 - "python_test": test_filter_with_non_matching_dcid (import_validation.util_test.TestFilterDataFrame.test_filter_with_non_matching_dcid)
Step #1 - "python_test": Tests that a non-matching DCID returns an empty DataFrame. ... ok
Step #1 - "python_test": test_filter_with_non_matching_regex (import_validation.util_test.TestFilterDataFrame.test_filter_with_non_matching_regex)
Step #1 - "python_test": Tests that a non-matching regex returns an empty DataFrame. ... ok
Step #1 - "python_test": test_filter_with_non_matching_substring (import_validation.util_test.TestFilterDataFrame.test_filter_with_non_matching_substring)
Step #1 - "python_test": Tests that a non-matching substring returns an empty DataFrame. ... ok
Step #1 - "python_test": test_filter_with_regex (import_validation.util_test.TestFilterDataFrame.test_filter_with_regex)
Step #1 - "python_test": Tests filtering by a regex pattern. ... ok
Step #1 - "python_test": test_filter_with_single_substring_match (import_validation.util_test.TestFilterDataFrame.test_filter_with_single_substring_match)
Step #1 - "python_test": Tests filtering by a single matching substring. ... ok
Step #1 - "python_test": test_filter_with_substring_existence (import_validation.util_test.TestFilterDataFrame.test_filter_with_substring_existence)
Step #1 - "python_test": Tests filtering for the existence of a substring. ... ok
Step #1 - "python_test": test_multiple_filter_types_are_unioned (import_validation.util_test.TestFilterDataFrame.test_multiple_filter_types_are_unioned)
Step #1 - "python_test": Tests that results from different filter types are combined (union). ... ok
Step #1 - "python_test": test_no_filters (import_validation.util_test.TestFilterDataFrame.test_no_filters)
Step #1 - "python_test": Tests that providing no filters returns the original DataFrame. ... ok
Step #1 - "python_test": test_both_missing_files_raise (import_validation.validation_config_test.ValidationConfigTest.test_both_missing_files_raise) ... ok
Step #1 - "python_test": test_definitions_are_deep_merged (import_validation.validation_config_test.ValidationConfigTest.test_definitions_are_deep_merged) ... ok
Step #1 - "python_test": test_rule_list_params_are_replaced (import_validation.validation_config_test.ValidationConfigTest.test_rule_list_params_are_replaced)
Step #1 - "python_test": Lists should follow OmegaConf default: override list replaces base. ... ok
Step #1 - "python_test": test_rules_are_deep_merged_by_rule_id (import_validation.validation_config_test.ValidationConfigTest.test_rules_are_deep_merged_by_rule_id) ... ok
Step #1 - "python_test": test_generate_goldens (import_validation.validator_goldens_test.TestValidatorGoldens.test_generate_goldens) ... ok
Step #1 - "python_test": test_generate_goldens_all_props (import_validation.validator_goldens_test.TestValidatorGoldens.test_generate_goldens_all_props) ... ok
Step #1 - "python_test": test_generate_goldens_all_props_mixed_schema (import_validation.validator_goldens_test.TestValidatorGoldens.test_generate_goldens_all_props_mixed_schema) ... ok
Step #1 - "python_test": test_generate_goldens_with_sampling (import_validation.validator_goldens_test.TestValidatorGoldens.test_generate_goldens_with_sampling) ... ok
Step #1 - "python_test": test_get_validator_goldens_config (import_validation.validator_goldens_test.TestValidatorGoldens.test_get_validator_goldens_config) ... ok
Step #1 - "python_test": test_validate_goldens (import_validation.validator_goldens_test.TestValidatorGoldens.test_validate_goldens) ... ok
Step #1 - "python_test": test_validator_compare_nodes (import_validation.validator_goldens_test.TestValidatorGoldens.test_validator_compare_nodes) ... ERROR:absl:Missing 1 among 2 goldens in 2 input nodes.
Step #1 - "python_test": ok
Step #1 - "python_test": test_validator_compare_nodes_multiple_sets (import_validation.validator_goldens_test.TestValidatorGoldens.test_validator_compare_nodes_multiple_sets) ... ok
Step #1 - "python_test": test_added_records_count_fails_on_inconsistent_counts (import_validation.validator_test.TestAddedRecordsCountValidation.test_added_records_count_fails_on_inconsistent_counts) ... ok
Step #1 - "python_test": test_added_records_count_fails_on_missing_column (import_validation.validator_test.TestAddedRecordsCountValidation.test_added_records_count_fails_on_missing_column) ... ok
Step #1 - "python_test": test_added_records_count_passes_on_consistent_counts (import_validation.validator_test.TestAddedRecordsCountValidation.test_added_records
...
[Logs truncated due to log size limitations. For full logs, see https://console.cloud.google.com/cloud-build/builds/acfaefb9-2173-4820-ad8d-925f184ae87f?project=879489846695.]
...
^^^^^^^^^^^^^^^^^^^
Step #1 - "python_test":   File "/usr/local/lib/python3.12/subprocess.py", line 550, in run
Step #1 - "python_test":     stdout, stderr = process.communicate(input, timeout=timeout)
Step #1 - "python_test":                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Step #1 - "python_test":   File "/usr/local/lib/python3.12/subprocess.py", line 1209, in communicate
Step #1 - "python_test":     stdout, stderr = self._communicate(input, endtime, timeout)
Step #1 - "python_test":                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Step #1 - "python_test":   File "/usr/local/lib/python3.12/subprocess.py", line 2116, in _communicate
Step #1 - "python_test":     self._check_timeout(endtime, orig_timeout, stdout, stderr)
Step #1 - "python_test":   File "/usr/local/lib/python3.12/subprocess.py", line 1253, in _check_timeout
Step #1 - "python_test":     raise TimeoutExpired(
Step #1 - "python_test": subprocess.TimeoutExpired: Command '['sleep', '5']' timed out after 0.1 seconds
Step #1 - "python_test": Traceback (most recent call last):
Step #1 - "python_test":   File "/workspace/import-automation/executor/app/executor/import_executor.py", line 1211, in _run_with_timeout
Step #1 - "python_test":     process = subprocess.run(args,
Step #1 - "python_test":               ^^^^^^^^^^^^^^^^^^^^
Step #1 - "python_test":   File "/usr/local/lib/python3.12/subprocess.py", line 550, in run
Step #1 - "python_test":     stdout, stderr = process.communicate(input, timeout=timeout)
Step #1 - "python_test":                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Step #1 - "python_test":   File "/usr/local/lib/python3.12/subprocess.py", line 1209, in communicate
Step #1 - "python_test":     stdout, stderr = self._communicate(input, endtime, timeout)
Step #1 - "python_test":                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Step #1 - "python_test":   File "/usr/local/lib/python3.12/subprocess.py", line 2116, in _communicate
Step #1 - "python_test":     self._check_timeout(endtime, orig_timeout, stdout, stderr)
Step #1 - "python_test":   File "/usr/local/lib/python3.12/subprocess.py", line 1253, in _check_timeout
Step #1 - "python_test":     raise TimeoutExpired(
Step #1 - "python_test": subprocess.TimeoutExpired: Command '['sleep', '5']' timed out after 0.1 seconds
Step #1 - "python_test": ok
Step #1 - "python_test": test_are_imports_finished (test.import_service_test.ImportServiceTest.test_are_imports_finished) ... ok
Step #1 - "python_test": test_block_on_import (test.import_service_test.ImportServiceTest.test_block_on_import) ... ok
Step #1 - "python_test": test_fix_input_path (test.import_service_test.ImportServiceTest.test_fix_input_path) ... ok
Step #1 - "python_test": test_format_import_info (test.import_service_test.ImportServiceTest.test_format_import_info) ... ok
Step #1 - "python_test": test_get_fixed_absolute_import_name (test.import_service_test.ImportServiceTest.test_get_fixed_absolute_import_name) ... ok
Step #1 - "python_test": test_get_import_id (test.import_service_test.ImportServiceTest.test_get_import_id) ... ok
Step #1 - "python_test": test_smart_import (test.import_service_test.ImportServiceTest.test_smart_import) ... ok
Step #1 - "python_test": test_absolute_import_name (test.import_target_test.ImportTargetTest.test_absolute_import_name) ... ok
Step #1 - "python_test": test_is_import_targetted_by_commit (test.import_target_test.ImportTargetTest.test_is_import_targetted_by_commit) ... ok
Step #1 - "python_test": test_parse_commit_message_targets (test.import_target_test.ImportTargetTest.test_parse_commit_message_targets) ... ok
Step #1 - "python_test": test_download_file (test.utils_test.AppUtilsTest.test_download_file)
Step #1 - "python_test": Response does not have a Content-Disposition header. ... ok
Step #1 - "python_test": test_download_file_timeout (test.utils_test.AppUtilsTest.test_download_file_timeout)
Step #1 - "python_test": Raises requests.Timeout exception. ... ok
Step #1 - "python_test": test_get_filename (test.utils_test.AppUtilsTest.test_get_filename) ... ok
Step #1 - "python_test": test_get_filename_raise (test.utils_test.AppUtilsTest.test_get_filename_raise) ... ok
Step #1 - "python_test": test_next_utc_date (test.utils_test.AppUtilsTest.test_next_utc_date)
Step #1 - "python_test": Tests next_utc_date. ... ok
Step #1 - "python_test": test_pacific_time_to_datetime (test.utils_test.AppUtilsTest.test_pacific_time_to_datetime)
Step #1 - "python_test": Tests that the string returned by pacific_time can be converted to ... ok
Step #1 - "python_test": test_pacific_time_to_datetime_then_back (test.utils_test.AppUtilsTest.test_pacific_time_to_datetime_then_back)
Step #1 - "python_test": Tests that the string returned by pacific_time can be converted to ... ok
Step #1 - "python_test": test_compare_lines (test.utils_test.TestUtilsTest.test_compare_lines) ... ok
Step #1 - "python_test": test_import_spec_valid (test.validation_test.ValidationTest.test_import_spec_valid) ... ok
Step #1 - "python_test": test_import_spec_valid_fields_absent (test.validation_test.ValidationTest.test_import_spec_valid_fields_absent) ... ok
Step #1 - "python_test": test_import_spec_valid_script_not_exist (test.validation_test.ValidationTest.test_import_spec_valid_script_not_exist) ... ok
Step #1 - "python_test": test_import_targets_valid_absolute_names (test.validation_test.ValidationTest.test_import_targets_valid_absolute_names) ... ok
Step #1 - "python_test": test_import_targets_valid_manifest_not_exist (test.validation_test.ValidationTest.test_import_targets_valid_manifest_not_exist) ... ok
Step #1 - "python_test": test_import_targets_valid_name_not_exist (test.validation_test.ValidationTest.test_import_targets_valid_name_not_exist) ... ok
Step #1 - "python_test": test_import_targets_valid_relative_names (test.validation_test.ValidationTest.test_import_targets_valid_relative_names) ... ok
Step #1 - "python_test": test_import_targets_valid_relative_names_multiple_dirs (test.validation_test.ValidationTest.test_import_targets_valid_relative_names_multiple_dirs) ... ok
Step #1 - "python_test": test_manifest_valid_fields_absent (test.validation_test.ValidationTest.test_manifest_valid_fields_absent) ... ok
Step #1 - "python_test": 
Step #1 - "python_test": ----------------------------------------------------------------------
Step #1 - "python_test": Ran 66 tests in 13.364s
Step #1 - "python_test": 
Step #1 - "python_test": OK
Step #1 - "python_test": #### Testing Python code in scripts/
Step #1 - "python_test": /workspace/scripts/un/sdg/util.py:188: SyntaxWarning: invalid escape sequence '\('
Step #1 - "python_test":   formatted = re.sub('\((?:[^)(]|\([^)(]*\))*\)', '', s)
Step #1 - "python_test": /workspace/scripts/un/sdg/util.py:190: SyntaxWarning: invalid escape sequence '\['
Step #1 - "python_test":   formatted = re.sub('\[(?:[^)(]|\[[^)(]*\])*\]', '', formatted)
Step #1 - "python_test": INFO:absl:Started writing statistical variable schemas to 'BLSJolts_StatisticalVariables.mcf'.
Step #1 - "python_test": INFO:absl:Finished writing all statistical variable schemas.
Step #1 - "python_test": INFO:absl:Started writing statistical variable schemas to 'BLSJolts_StatisticalVariables.mcf'.
Step #1 - "python_test": INFO:absl:Finished writing all statistical variable schemas.
Step #1 - "python_test": INFO:absl:Started writing statistical variable schemas to 'BLSJolts_StatisticalVariables.mcf'.
Step #1 - "python_test": INFO:absl:Finished writing all statistical variable schemas.
Step #1 - "python_test": /workspace/scripts/us_census/enhanced_tmcf/process_etmcf_test.py:160: SyntaxWarning: invalid escape sequence '\?'
Step #1 - "python_test":   "Exactly one '\?' expected in variableMeasured*"):
Step #1 - "python_test": test_write_csv (aqicn.aqicn_test.AqicnTest.test_write_csv) ... ok
Step #1 - "python_test": test_main (biomedical.antibodyABCD.parse_abcd_test.TestParseAbcd.test_main)
Step #1 - "python_test": Test in the main function ... ok
Step #1 - "python_test": test_MergeAndProcessData (climate_trace.preprocess_data_test.PreprocessDataTest.test_MergeAndProcessData) ... ok
Step #1 - "python_test": test_create_csv (covid19_india.cases_count_states_data.preprocess_test.TestPreprocessCSVTest.test_create_csv) ... ok
Step #1 - "python_test": test_create_csv_include_dn_dd (covid19_india.cases_count_states_data.preprocess_test.TestPreprocessCSVTest.test_create_csv_include_dn_dd) ... ok
Step #1 - "python_test": test_create_csv_ingore_invalid_state (covid19_india.cases_count_states_data.preprocess_test.TestPreprocessCSVTest.test_create_csv_ingore_invalid_state) ... ok
Step #1 - "python_test": test_create_csv_latest_report_of_the_day (covid19_india.cases_count_states_data.preprocess_test.TestPreprocessCSVTest.test_create_csv_latest_report_of_the_day) ... ok
Step #1 - "python_test": test_create_csv_skip_unassigned (covid19_india.cases_count_states_data.preprocess_test.TestPreprocessCSVTest.test_create_csv_skip_unassigned) ... ok
Step #1 - "python_test": test_create_csv (covid19_india.medical_tests_in_data.preprocess_test.TestPreprocessCSVTest.test_create_csv) ... ok
Step #1 - "python_test": test_create_csv_remove_duplicate_dates (covid19_india.medical_tests_in_data.preprocess_test.TestPreprocessCSVTest.test_create_csv_remove_duplicate_dates) ... ok
Step #1 - "python_test": test_generate_tmcf (covid_tracking_project.historic_state_data.preprocess_csv_test.TestPreprocessCSVTest.test_generate_tmcf) ... ok
Step #1 - "python_test": test_write_csv (deepsolar.deepsolar_test.TestDeepSolar.test_write_csv) ... ok
Step #1 - "python_test": test_geocode_city (fbi.crime.geocode_cities_test.GeocodeCitiesTest.test_geocode_city) ... ok
Step #1 - "python_test": test_manual_geocode_city (fbi.crime.geocode_cities_test.GeocodeCitiesTest.test_manual_geocode_city) ... ok
Step #1 - "python_test": test_update_crime_geocode (fbi.crime.geocode_cities_test.GeocodeCitiesTest.test_update_crime_geocode) ... ok
Step #1 - "python_test": test_calculate_crimes (fbi.crime.preprocess_states_test.CleanCrimeFileTest.test_calculate_crimes) ... ok
Step #1 - "python_test": test_clean_crime_file (fbi.crime.preprocess_states_test.CleanCrimeFileTest.test_clean_crime_file) ... ok
Step #1 - "python_test": test_create_tmcf (fbi.crime.preprocess_states_test.CleanCrimeFileTest.test_create_tmcf) ... ok
Step #1 - "python_test": test_calculate_crimes (fbi.crime.preprocess_test.CleanCrimeFileTest.test_calculate_crimes) ... ok
Step #1 - "python_test": test_clean_crime_file (fbi.crime.preprocess_test.CleanCrimeFileTest.test_clean_crime_file) ... ok
Step #1 - "python_test": test_create_tmcf (fbi.crime.preprocess_test.CleanCrimeFileTest.test_create_tmcf) ... ok
Step #1 - "python_test": test_extract_geojsons (fires.perimeter.wfigs_fire_perimeter_test.PerimeterDataTest.test_extract_geojsons) ... ok
Step #1 - "python_test": test_ProcessDF (fires.wfigs_data_test.PreprocessDataTest.test_ProcessDF) ... INFO:absl:Initial size: 4, without duplicates: 4
Step #1 - "python_test": /workspace/scripts/fires/wfigs_data_test.py:45: FutureWarning: Mismatched null-like values None and nan found. In a future version, pandas equality-testing functions (e.g. assert_frame_equal) will consider these not-matching and raise.
Step #1 - "python_test":   pd.testing.assert_frame_equal(processed,
Step #1 - "python_test": /workspace/scripts/fires/wfigs_data_test.py:45: FutureWarning: Mismatched null-like values None and nan found. In a future version, pandas equality-testing functions (e.g. assert_frame_equal) will consider these not-matching and raise.
Step #1 - "python_test":   pd.testing.assert_frame_equal(processed,
Step #1 - "python_test": /workspace/scripts/fires/wfigs_data_test.py:45: FutureWarning: Mismatched null-like values None and nan found. In a future version, pandas equality-testing functions (e.g. assert_frame_equal) will consider these not-matching and raise.
Step #1 - "python_test":   pd.testing.assert_frame_equal(processed,
Step #1 - "python_test": /workspace/scripts/fires/wfigs_data_test.py:45: FutureWarning: Mismatched null-like values None and nan found. In a future version, pandas equality-testing functions (e.g. assert_frame_equal) will consider these not-matching and raise.
Step #1 - "python_test":   pd.testing.assert_frame_equal(processed,
Step #1 - "python_test": /workspace/scripts/fires/wfigs_data_test.py:45: FutureWarning: Mismatched null-like values None and nan found. In a future version, pandas equality-testing functions (e.g. assert_frame_equal) will consider these not-matching and raise.
Step #1 - "python_test":   pd.testing.assert_frame_equal(processed,
Step #1 - "python_test": /workspace/scripts/fires/wfigs_data_test.py:45: FutureWarning: Mismatched null-like values None and nan found. In a future version, pandas equality-testing functions (e.g. assert_frame_equal) will consider these not-matching and raise.
Step #1 - "python_test":   pd.testing.assert_frame_equal(processed,
Step #1 - "python_test": /workspace/scripts/fires/wfigs_data_test.py:45: FutureWarning: Mismatched null-like values None and nan found. In a future version, pandas equality-testing functions (e.g. assert_frame_equal) will consider these not-matching and raise.
Step #1 - "python_test":   pd.testing.assert_frame_equal(processed,
Step #1 - "python_test": /workspace/scripts/fires/wfigs_data_test.py:45: FutureWarning: Mismatched null-like values None and nan found. In a future version, pandas equality-testing functions (e.g. assert_frame_equal) will consider these not-matching and raise.
Step #1 - "python_test":   pd.testing.assert_frame_equal(processed,
Step #1 - "python_test": /workspace/scripts/fires/wfigs_data_test.py:45: FutureWarning: Mismatched null-like values None and nan found. In a future version, pandas equality-testing functions (e.g. assert_frame_equal) will consider these not-matching and raise.
Step #1 - "python_test":   pd.testing.assert_frame_equal(processed,
Step #1 - "python_test": /workspace/scripts/fires/wfigs_data_test.py:45: FutureWarning: Mismatched null-like values None and nan found. In a future version, pandas equality-testing functions (e.g. assert_frame_equal) will consider these not-matching and raise.
Step #1 - "python_test":   pd.testing.assert_frame_equal(processed,
Step #1 - "python_test": /workspace/scripts/fires/wfigs_data_test.py:45: FutureWarning: Mismatched null-like values None and nan found. In a future version, pandas equality-testing functions (e.g. assert_frame_equal) will consider these not-matching and raise.
Step #1 - "python_test":   pd.testing.assert_frame_equal(processed,
Step #1 - "python_test": ok
Step #1 - "python_test": test1 (google_datasets.covid_mobility.covidmobility_test.TestCovidMobility.test1)
Step #1 - "python_test": Simple test 1 ... ok
Step #1 - "python_test": test2 (google_datasets.covid_mobility.covidmobility_test.TestCovidMobility.test2)
Step #1 - "python_test": Simple test 2 ... ok
Step #1 - "python_test": test3 (google_datasets.covid_mobility.covidmobility_test.TestCovidMobility.test3)
Step #1 - "python_test": Tests a row with empty data. ... ok
Step #1 - "python_test": test4 (google_datasets.covid_mobility.covidmobility_test.TestCovidMobility.test4)
Step #1 - "python_test": Tests a row with an empty date. ... ok
Step #1 - "python_test": test_format_census2001_district_code (india.formatters_test.TestPreprocess.test_format_census2001_district_code) ... ok
Step #1 - "python_test": test_format_census2011_code (india.formatters_test.TestPreprocess.test_format_census2011_code) ... ok
Step #1 - "python_test": test_format_lgd_district_code (india.formatters_test.TestPreprocess.test_format_lgd_district_code) ... ok
Step #1 - "python_test": test_format_lgd_state_code (india.formatters_test.TestPreprocess.test_format_lgd_state_code) ... ok
Step #1 - "python_test": test_get_district_name_to_lgd_code_mapping (india.geo.districts_test.TestPreprocess.test_get_district_name_to_lgd_code_mapping) ... ok
Step #1 - "python_test": test_get_state_name_to_census2001_code_mapping (india.geo.states_test.TestPreprocess.test_get_state_name_to_census2001_code_mapping) ... ok
Step #1 - "python_test": test_get_state_name_to_iso_code_mapping (india.geo.states_test.TestPreprocess.test_get_state_name_to_iso_code_mapping) ... ok
Step #1 - "python_test": test_create_csv (india_aqi.preprocess_test.TestPreprocess.test_create_csv) ... /workspace/scripts/india_aqi/preprocess.py:89: FutureWarning: errors='ignore' is deprecated and will raise in a future version. Use to_numeric without passing `errors` and catch exceptions explicitly instead
Step #1 - "python_test":   self.clean_df[column] = pd.to_numeric(self.clean_df[column],
Step #1 - "python_test": /workspace/scripts/india_aqi/preprocess.py:89: FutureWarning: errors='ignore' is deprecated and will raise in a future version. Use to_numeric without passing `errors` and catch exceptions explicitly instead
Step #1 - "python_test":   self.clean_df[column] = pd.to_numeric(self.clean_df[column],
Step #1 - "python_test": /workspace/scripts/india_aqi/preprocess.py:89: FutureWarning: errors='ignore' is deprecated and will raise in a future version. Use to_numeric without passing `errors` and catch exceptions explicitly instead
Step #1 - "python_test":   self.clean_df[column] = pd.to_numeric(self.clean_df[column],
Step #1 - "python_test": /workspace/scripts/india_aqi/preprocess.py:89: FutureWarning: errors='ignore' is deprecated and will raise in a future version. Use to_numeric without passing `errors` and catch exceptions explicitly instead
Step #1 - "python_test":   self.clean_df[column] = pd.to_numeric(self.clean_df[column],
Step #1 - "python_test": /workspace/scripts/india_aqi/preprocess.py:89: FutureWarning: errors='ignore' is deprecated and will raise in a future version. Use to_numeric without passing `errors` and catch exceptions explicitly instead
Step #1 - "python_test":   self.clean_df[column] = pd.to_numeric(self.clean_df[column],
Step #1 - "python_test": /workspace/scripts/india_aqi/preprocess.py:89: FutureWarning: errors='ignore' is deprecated and will raise in a future version. Use to_numeric without passing `errors` and catch exceptions explicitly instead
Step #1 - "python_test":   self.clean_df[column] = pd.to_numeric(self.clean_df[column],
Step #1 - "python_test": /workspace/scripts/india_aqi/preprocess.py:89: FutureWarning: errors='ignore' is deprecated and will raise in a future version. Use to_numeric without passing `errors` and catch exceptions explicitly instead
Step #1 - "python_test":   self.clean_df[column] = pd.to_numeric(self.clean_df[column],
Step #1 - "python_test": /workspace/scripts/india_aqi/preprocess.py:89: FutureWarning: errors='ignore' is deprecated and will raise in a future version. Use to_numeric without passing `errors` and catch exceptions explicitly instead
Step #1 - "python_test":   self.clean_df[column] = pd.to_numeric(self.clean_df[column],
Step #1 - "python_test": /workspace/scripts/india_aqi/preprocess.py:89: FutureWarning: errors='ignore' is deprecated and will raise in a future version. Use to_numeric without passing `errors` and catch exceptions explicitly instead
Step #1 - "python_test":   self.clean_df[column] = pd.to_numeric(self.clean_df[column],
Step #1 - "python_test": /workspace/scripts/india_aqi/preprocess.py:89: FutureWarning: errors='ignore' is deprecated and will raise in a future version. Use to_numeric without passing `errors` and catch exceptions explicitly instead
Step #1 - "python_test":   self.clean_df[column] = pd.to_numeric(self.clean_df[column],
Step #1 - "python_test": /workspace/scripts/india_aqi/preprocess.py:89: FutureWarning: errors='ignore' is deprecated and will raise in a future version. Use to_numeric without passing `errors` and catch exceptions explicitly instead
Step #1 - "python_test":   self.clean_df[column] = pd.to_numeric(self.clean_df[column],
Step #1 - "python_test": /workspace/scripts/india_aqi/preprocess.py:89: FutureWarning: errors='ignore' is deprecated and will raise in a future version. Use to_numeric without passing `errors` and catch exceptions explicitly instead
Step #1 - "python_test":   self.clean_df[column] = pd.to_numeric(self.clean_df[column],
Step #1 - "python_test": /workspace/scripts/india_aqi/preprocess.py:89: FutureWarning: errors='ignore' is deprecated and will raise in a future version. Use to_numeric without passing `errors` and catch exceptions explicitly instead
Step #1 - "python_test":   self.clean_df[column] = pd.to_numeric(self.clean_df[column],
Step #1 - "python_test": /workspace/scripts/india_aqi/preprocess.py:89: FutureWarning: errors='ignore' is deprecated and will raise in a future version. Use to_numeric without passing `errors` and catch exceptions explicitly instead
Step #1 - "python_test":   self.clean_df[column] = pd.to_numeric(self.clean_df[column],
Step #1 - "python_test": /workspace/scripts/india_aqi/preprocess.py:89: FutureWarning: errors='ignore' is deprecated and will raise in a future version. Use to_numeric without passing `errors` and catch exceptions explicitly instead
Step #1 - "python_test":   self.clean_df[column] = pd.to_numeric(self.clean_df[column],
Step #1 - "python_test": /workspace/scripts/india_aqi/preprocess.py:89: FutureWarning: errors='ignore' is deprecated and will raise in a future version. Use to_numeric without passing `errors` and catch exceptions explicitly instead
Step #1 - "python_test":   self.clean_df[column] = pd.to_numeric(self.clean_df[column],
Step #1 - "python_test": /workspace/scripts/india_aqi/preprocess.py:89: FutureWarning: errors='ignore' is deprecated and will raise in a future version. Use to_numeric without passing `errors` and catch exceptions explicitly instead
Step #1 - "python_test":   self.clean_df[column] = pd.to_numeric(self.clean_df[column],
Step #1 - "python_test": /workspace/scripts/india_aqi/preprocess.py:89: FutureWarning: errors='ignore' is deprecated and will raise in a future version. Use to_numeric without passing `errors` and catch exceptions explicitly instead
Step #1 - "python_test":   self.clean_df[column] = pd.to_numeric(self.clean_df[column],
Step #1 - "python_test": /workspace/scripts/india_aqi/preprocess.py:89: FutureWarning: errors='ignore' is deprecated and will raise in a future version. Use to_numeric without passing `errors` and catch exceptions explicitly instead
Step #1 - "python_test":   self.clean_df[column] = pd.to_numeric(self.clean_df[column],
Step #1 - "python_test": ok
Step #1 - "python_test": test_create_csv (india_census.common.base_test.TestCensusPrimaryAbstractDataLoaderBase.test_create_csv) ... ok
Step #1 - "python_test": test_create_csv_literate_data (india_census.common.base_test.TestCensusPrimaryAbstractDataLoaderBase.test_create_csv_literate_data) ... ok
Step #1 - "python_test": test_create_csv_workers_data (india_census.common.base_test.TestCensusPrimaryAbstractDataLoaderBase.test_create_csv_workers_data) ... ok
Step #1 - "python_test": test_create_cleaned_religion_data_csv (india_census.primary_religion_data.preprocess_test.TestCensusCensusPrimaryReligiousDataLoader.test_create_cleaned_religion_data_csv) ... ok
Step #2 - "python_format_check": --- tools/statvar_importer/eval_functions.py	(original)
Step #2 - "python_format_check": +++ tools/statvar_importer/eval_functions.py	(reformatted)
Step #2 - "python_format_check": @@ -124,6 +124,7 @@
Step #2 - "python_format_check":      if not isinstance(input_string, str):
Step #2 - "python_format_check":          input_string = str(input_string)
Step #2 - "python_format_check":      return str(zlib.crc32(input_string.encode('utf-8')))
Step #2 - "python_format_check": +
Step #2 - "python_format_check":  
Step #2 - "python_format_check":  def md5(input_string: str) -> str:
Step #2 - "python_format_check":      """Computes the MD5 hash of a string
Step #2 - "python_format_check": concurrent.futures.process._RemoteTraceback: 
Step #2 - "python_format_check": """
Step #2 - "python_format_check": Traceback (most recent call last):
Step #2 - "python_format_check":   File "/workspace/.env/lib/python3.12/site-packages/yapf/yapflib/yapf_api.py", line 198, in FormatCode
Step #2 - "python_format_check":     tree = pytree_utils.ParseCodeToTree(unformatted_source)
Step #2 - "python_format_check":            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Step #2 - "python_format_check":   File "/workspace/.env/lib/python3.12/site-packages/yapf/pytree/pytree_utils.py", line 113, in ParseCodeToTree
Step #2 - "python_format_check":     tree = parser_driver.parse_string(code, debug=False)
Step #2 - "python_format_check":            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Step #2 - "python_format_check":   File "/workspace/.env/lib/python3.12/site-packages/yapf_third_party/_ylib2to3/pgen2/driver.py", line 187, in parse_string
Step #2 - "python_format_check":     return self.parse_tokens(tokens, debug)
Step #2 - "python_format_check":            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Step #2 - "python_format_check":   File "/workspace/.env/lib/python3.12/site-packages/yapf_third_party/_ylib2to3/pgen2/driver.py", line 156, in parse_tokens
Step #2 - "python_format_check":     if p.addtoken(type, value, (prefix, start)):
Step #2 - "python_format_check":        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Step #2 - "python_format_check":   File "/workspace/.env/lib/python3.12/site-packages/yapf_third_party/_ylib2to3/pgen2/parse.py", line 230, in addtoken
Step #2 - "python_format_check":     return self._addtoken(ilabel, type, value, context)
Step #2 - "python_format_check":            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Step #2 - "python_format_check":   File "/workspace/.env/lib/python3.12/site-packages/yapf_third_party/_ylib2to3/pgen2/parse.py", line 313, in _addtoken
Step #2 - "python_format_check":     raise ParseError('bad input', type, value, context)
Step #2 - "python_format_check": yapf_third_party._ylib2to3.pgen2.parse.ParseError: bad input: type=1, value='SpannerTables', context=('', (447, 94))
Step #2 - "python_format_check": 
Step #2 - "python_format_check": During handling of the above exception, another exception occurred:
Step #2 - "python_format_check": 
Step #2 - "python_format_check": Traceback (most recent call last):
Step #2 - "python_format_check":   File "/workspace/.env/lib/python3.12/site-packages/yapf/__init__.py", line 238, in _FormatFile
Step #2 - "python_format_check":     reformatted_code, encoding, has_change = yapf_api.FormatFile(
Step #2 - "python_format_check":                                              ^^^^^^^^^^^^^^^^^^^^
Step #2 - "python_format_check":   File "/workspace/.env/lib/python3.12/site-packages/yapf/yapflib/yapf_api.py", line 88, in FormatFile
Step #2 - "python_format_check":     reformatted_source, changed = FormatCode(
Step #2 - "python_format_check":                                   ^^^^^^^^^^^
Step #2 - "python_format_check":   File "/workspace/.env/lib/python3.12/site-packages/yapf/yapflib/yapf_api.py", line 201, in FormatCode
Step #2 - "python_format_check":     raise errors.YapfError(errors.FormatErrorMsg(e))
Step #2 - "python_format_check":                            ^^^^^^^^^^^^^^^^^^^^^^^^
Step #2 - "python_format_check":   File "/workspace/.env/lib/python3.12/site-packages/yapf/yapflib/errors.py", line 37, in FormatErrorMsg
Step #2 - "python_format_check":     return '{}:{}:{}: {}'.format(e.args[1][0], e.args[1][1], e.args[1][2], e.msg)
Step #2 - "python_format_check":                                  ~~~~~~^^^
Step #2 - "python_format_check": IndexError: tuple index out of range
Step #2 - "python_format_check": 
Step #2 - "python_format_check": During handling of the above exception, another exception occurred:
Step #2 - "python_format_check": 
Step #2 - "python_format_check": Traceback (most recent call last):
Step #2 - "python_format_check":   File "/usr/local/lib/python3.12/concurrent/futures/process.py", line 264, in _process_worker
Step #2 - "python_format_check":     r = call_item.fn(*call_item.args, **call_item.kwargs)
Step #2 - "python_format_check":         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Step #2 - "python_format_check":   File "/workspace/.env/lib/python3.12/site-packages/yapf/__init__.py", line 248, in _FormatFile
Step #2 - "python_format_check":     raise errors.YapfError(errors.FormatErrorMsg(e))
Step #2 - "python_format_check":                            ^^^^^^^^^^^^^^^^^^^^^^^^
Step #2 - "python_format_check":   File "/workspace/.env/lib/python3.12/site-packages/yapf/yapflib/errors.py", line 37, in FormatErrorMsg
Step #2 - "python_format_check":     return '{}:{}:{}: {}'.format(e.args[1][0], e.args[1][1], e.args[1][2], e.msg)
Step #2 - "python_format_check":                                  ~~~~~~^^^
Step #2 - "python_format_check": IndexError: tuple index out of range
Step #2 - "python_format_check": """
Step #2 - "python_format_check": 
Step #2 - "python_format_check": The above exception was the direct cause of the following exception:
Step #2 - "python_format_check": 
Step #2 - "python_format_check": Traceback (most recent call last):
Step #2 - "python_format_check":   File "/workspace/.env/bin/yapf", line 8, in <module>
Step #2 - "python_format_check":     sys.exit(run_main())
Step #2 - "python_format_check":              ^^^^^^^^^^
Step #2 - "python_format_check":   File "/workspace/.env/lib/python3.12/site-packages/yapf/__init__.py", line 377, in run_main
Step #2 - "python_format_check":     sys.exit(main(sys.argv))
Step #2 - "python_format_check":              ^^^^^^^^^^^^^^
Step #2 - "python_format_check":   File "/workspace/.env/lib/python3.12/site-packages/yapf/__init__.py", line 136, in main
Step #2 - "python_format_check":     changed = FormatFiles(
Step #2 - "python_format_check":               ^^^^^^^^^^^^
Step #2 - "python_format_check":   File "/workspace/.env/lib/python3.12/site-packages/yapf/__init__.py", line 211, in FormatFiles
Step #2 - "python_format_check":     changed |= future.result()
Step #2 - "python_format_check":                ^^^^^^^^^^^^^^^
Step #2 - "python_format_check":   File "/usr/local/lib/python3.12/concurrent/futures/_base.py", line 449, in result
Step #2 - "python_format_check":     return self.__get_result()
Step #2 - "python_format_check":            ^^^^^^^^^^^^^^^^^^^
Step #2 - "python_format_check":   File "/usr/local/lib/python3.12/concurrent/futures/_base.py", line 401, in __get_result
Step #2 - "python_format_check":     raise self._exception
Step #2 - "python_format_check": IndexError: tuple index out of range
Step #2 - "python_format_check": ERROR: Fix lint errors by running ./run_tests.sh -f
Finished Step #2 - "python_format_check"
ERROR
ERROR: build step 2 "python:3.12.8" failed: step exited with non-zero status: 1
Step #1 - "python_test": test_specific_religion_data_csv (india_census.primary_religion_data.preprocess_test.TestCensusCensusPrimaryReligiousDataLoader.test_specific_religion_data_csv) ... 

Build Log: https://console.cloud.google.com/cloud-build/builds/acfaefb9-2173-4820-ad8d-925f184ae87f?project=879489846695