Joe McDonnell has uploaded this change for review. ( http://gerrit.cloudera.org:8080/19588
Change subject: IMPALA-11973: Add absolute_import, division to all eligible Python files ...................................................................... IMPALA-11973: Add absolute_import, division to all eligible Python files This takes steps to make Python 2 behave like Python 3 as a way to flush out issues with running on Python 3. Specifically, it handles two main differences: 1. Python 3 requires absolute imports within packages. This can be emulated via "from __future__ import absolute_import" 2. Python 3 changed division to "true" division that doesn't round to an integer. This can be emulated via "from __future__ import division" This changes all Python files to add imports for absolute_import and division. For completeness, this also includes print_function in the import. I scrutinized each old-division location and converted some locations to use the integer division '//' operator if it needed an integer result (e.g. for indices, counts of records, etc). Some code was also using relative imports and needed to be adjusted to handle absolute_import. This fixes all Pylint warnings about no-absolute-import and old-division, and these warnings are now banned. Testing: - Ran core tests Change-Id: Idb0fcbd11f3e8791f5951c4944be44fb580e576b --- M bin/banned_py3k_warnings.txt M bin/dump_breakpad_symbols.py M bin/generate_minidump_collection_testdata.py M bin/get_code_size.py M bin/inline_pom.py M bin/load-data.py M bin/parse-thrift-profile.py M bin/run-workload.py M bin/single_node_perf_run.py M bin/start-impala-cluster.py M docker/setup_build_context.py M infra/python/bootstrap_virtualenv.py M lib/python/impala_py_lib/gdb/impala-gdb.py M lib/python/impala_py_lib/helpers.py M lib/python/impala_py_lib/profiles.py M testdata/bin/check-hbase-nodes.py M testdata/bin/generate-schema-statements.py M testdata/bin/generate-test-vectors.py M testdata/bin/load-tpc-kudu.py M testdata/bin/load_nested.py M testdata/bin/random_avro_schema.py M testdata/bin/rewrite-iceberg-metadata.py M testdata/bin/wait-for-hiveserver2.py M testdata/bin/wait-for-metastore.py M testdata/common/cgroups.py M testdata/common/text_delims_table.py M testdata/common/widetable.py M tests/authorization/test_authorization.py M tests/authorization/test_authorized_proxy.py M tests/authorization/test_provider.py M tests/authorization/test_ranger.py M tests/beeswax/impala_beeswax.py M tests/benchmark/plugins/clear_buffer_cache.py M tests/benchmark/plugins/vtune_plugin.py M tests/benchmark/report_benchmark_results.py M tests/catalog_service/test_catalog_service_client.py M tests/catalog_service/test_large_num_partitions.py M tests/common/base_test_suite.py M tests/common/custom_cluster_test_suite.py M tests/common/environ.py M tests/common/file_utils.py M tests/common/iceberg_test_suite.py M tests/common/impala_cluster.py M tests/common/impala_connection.py M tests/common/impala_service.py M tests/common/impala_test_suite.py M tests/common/kudu_test_suite.py M tests/common/network.py M tests/common/parametrize.py M tests/common/patterns.py M tests/common/resource_pool_config.py M tests/common/skip.py M tests/common/test_dimensions.py M tests/common/test_result_verifier.py M tests/common/test_vector.py M tests/comparison/cli_options.py M tests/comparison/cluster.py M tests/comparison/common.py M tests/comparison/compat.py M tests/comparison/data_generator.py M tests/comparison/data_generator_mapred_common.py M tests/comparison/db_connection.py M tests/comparison/db_types.py M tests/comparison/discrepancy_searcher.py M tests/comparison/funcs.py M tests/comparison/leopard/controller.py M tests/comparison/leopard/front_end.py M tests/comparison/leopard/impala_docker_env.py M tests/comparison/leopard/job.py M tests/comparison/leopard/report.py M tests/comparison/leopard/schedule_item.py M tests/comparison/model_translator.py M tests/comparison/query.py M tests/comparison/query_flattener.py M tests/comparison/query_generator.py M tests/comparison/query_profile.py M tests/comparison/random_val_generator.py M tests/comparison/statement_generator.py M tests/comparison/tests/conftest.py M tests/comparison/tests/fake_query.py M tests/comparison/tests/hive/test_hive_create_agg_or_analytic_tree.py M tests/comparison/tests/hive/test_hive_create_relational_join_condition.py M tests/comparison/tests/query_object_testdata.py M tests/comparison/tests/test_cluster.py M tests/comparison/tests/test_cursor.py M tests/comparison/tests/test_query_generator.py M tests/comparison/tests/test_query_objects.py M tests/comparison/tests/test_use_nested_with.py M tests/comparison/util/verify-oracle-connection.py M tests/conftest.py M tests/custom_cluster/test_admission_controller.py M tests/custom_cluster/test_alloc_fail.py M tests/custom_cluster/test_always_false_filter.py M tests/custom_cluster/test_auto_scaling.py M tests/custom_cluster/test_automatic_invalidation.py M tests/custom_cluster/test_blacklist.py M tests/custom_cluster/test_blacklisted_dbs_and_tables.py M tests/custom_cluster/test_breakpad.py M tests/custom_cluster/test_catalog_hms_failures.py M tests/custom_cluster/test_catalog_wait.py M tests/custom_cluster/test_client_ssl.py M tests/custom_cluster/test_codegen_cache.py M tests/custom_cluster/test_compact_catalog_updates.py M tests/custom_cluster/test_concurrent_ddls.py M tests/custom_cluster/test_concurrent_kudu_create.py M tests/custom_cluster/test_coordinators.py M tests/custom_cluster/test_custom_hive_configs.py M tests/custom_cluster/test_custom_statestore.py M tests/custom_cluster/test_data_cache.py M tests/custom_cluster/test_delegation.py M tests/custom_cluster/test_disable_catalog_data_ops.py M tests/custom_cluster/test_disable_features.py M tests/custom_cluster/test_disk_spill_configurations.py M tests/custom_cluster/test_events_custom_configs.py M tests/custom_cluster/test_exchange_deferred_batches.py M tests/custom_cluster/test_exchange_delays.py M tests/custom_cluster/test_exchange_eos.py M tests/custom_cluster/test_executor_groups.py M tests/custom_cluster/test_frontend_connection_limit.py M tests/custom_cluster/test_geospatial_library.py M tests/custom_cluster/test_hbase_hms_column_order.py M tests/custom_cluster/test_hdfs_fd_caching.py M tests/custom_cluster/test_hdfs_timeout.py M tests/custom_cluster/test_hedged_reads.py M tests/custom_cluster/test_hive_parquet_codec_interop.py M tests/custom_cluster/test_hive_parquet_timestamp_conversion.py M tests/custom_cluster/test_hive_text_codec_interop.py M tests/custom_cluster/test_hs2.py M tests/custom_cluster/test_hs2_fault_injection.py M tests/custom_cluster/test_incremental_metadata_updates.py M tests/custom_cluster/test_insert_behaviour.py M tests/custom_cluster/test_jvm_mem_tracking.py M tests/custom_cluster/test_krpc_mem_usage.py M tests/custom_cluster/test_krpc_metrics.py M tests/custom_cluster/test_krpc_options.py M tests/custom_cluster/test_krpc_socket.py M tests/custom_cluster/test_kudu.py M tests/custom_cluster/test_kudu_not_available.py M tests/custom_cluster/test_kudu_table_create_without_hms.py M tests/custom_cluster/test_lineage.py M tests/custom_cluster/test_local_catalog.py M tests/custom_cluster/test_local_tz_conversion.py M tests/custom_cluster/test_logging.py M tests/custom_cluster/test_mem_reservations.py M tests/custom_cluster/test_metadata_no_events_processing.py M tests/custom_cluster/test_metadata_replicas.py M tests/custom_cluster/test_metastore_events_cleanup.py M tests/custom_cluster/test_metastore_service.py M tests/custom_cluster/test_mt_dop.py M tests/custom_cluster/test_observability.py M tests/custom_cluster/test_parquet_max_page_header.py M tests/custom_cluster/test_partition.py M tests/custom_cluster/test_pause_monitor.py M tests/custom_cluster/test_permanent_udfs.py M tests/custom_cluster/test_preload_table_types.py M tests/custom_cluster/test_process_failures.py M tests/custom_cluster/test_query_concurrency.py M tests/custom_cluster/test_query_event_hooks.py M tests/custom_cluster/test_query_expiration.py M tests/custom_cluster/test_query_retries.py M tests/custom_cluster/test_re2_max_mem.py M tests/custom_cluster/test_redaction.py M tests/custom_cluster/test_reserved_words_version.py M tests/custom_cluster/test_restart_services.py M tests/custom_cluster/test_result_spooling.py M tests/custom_cluster/test_rpc_exception.py M tests/custom_cluster/test_rpc_timeout.py M tests/custom_cluster/test_runtime_profile.py M tests/custom_cluster/test_s3a_access.py M tests/custom_cluster/test_saml2_sso.py M tests/custom_cluster/test_scheduler_locality.py M tests/custom_cluster/test_scratch_disk.py M tests/custom_cluster/test_seq_file_filtering.py M tests/custom_cluster/test_services_rpc_errors.py M tests/custom_cluster/test_session_expiration.py M tests/custom_cluster/test_set_and_unset.py M tests/custom_cluster/test_shared_tzdb.py M tests/custom_cluster/test_shell_commandline.py M tests/custom_cluster/test_shell_interactive.py M tests/custom_cluster/test_shell_interactive_reconnect.py M tests/custom_cluster/test_startup_filesystem_checks.py M tests/custom_cluster/test_stats_extrapolation.py M tests/custom_cluster/test_thrift_debug_string_exception.py M tests/custom_cluster/test_thrift_socket.py M tests/custom_cluster/test_topic_update_frequency.py M tests/custom_cluster/test_udf_concurrency.py M tests/custom_cluster/test_web_pages.py M tests/custom_cluster/test_wide_table_operations.py M tests/data_errors/test_data_errors.py M tests/experiments/test_targeted_perf.py M tests/failure/test_failpoints.py M tests/hs2/hs2_test_suite.py M tests/hs2/test_fetch.py M tests/hs2/test_fetch_first.py M tests/hs2/test_fetch_timeout.py M tests/hs2/test_hs2.py M tests/hs2/test_json_endpoints.py M tests/infra/test_perf_infra.py M tests/infra/test_stress_infra.py M tests/infra/test_utils.py M tests/metadata/test_catalogd_debug_actions.py M tests/metadata/test_compute_stats.py M tests/metadata/test_ddl.py M tests/metadata/test_ddl_base.py M tests/metadata/test_event_processing.py M tests/metadata/test_explain.py M tests/metadata/test_hdfs_encryption.py M tests/metadata/test_hdfs_permissions.py M tests/metadata/test_hidden_files.py M tests/metadata/test_hms_integration.py M tests/metadata/test_last_ddl_time_update.py M tests/metadata/test_load.py M tests/metadata/test_metadata_query_statements.py M tests/metadata/test_partition_metadata.py M tests/metadata/test_recover_partitions.py M tests/metadata/test_recursive_listing.py M tests/metadata/test_refresh_partition.py M tests/metadata/test_reset_metadata.py M tests/metadata/test_reuse_partitions.py M tests/metadata/test_set.py M tests/metadata/test_show_create_table.py M tests/metadata/test_stale_metadata.py M tests/metadata/test_stats_extrapolation.py M tests/metadata/test_testcase_builder.py M tests/metadata/test_views_compatibility.py M tests/observability/test_jvm_metrics.py M tests/observability/test_log_fragments.py M tests/observability/test_profile_tool.py M tests/performance/query.py M tests/performance/query_exec_functions.py M tests/performance/query_executor.py M tests/performance/scheduler.py M tests/performance/workload.py M tests/performance/workload_runner.py M tests/query_test/test_acid.py M tests/query_test/test_acid_row_validation.py M tests/query_test/test_aggregation.py M tests/query_test/test_analytic_tpcds.py M tests/query_test/test_async_codegen.py M tests/query_test/test_avro_schema_resolution.py M tests/query_test/test_beeswax.py M tests/query_test/test_cancellation.py M tests/query_test/test_cast_with_format.py M tests/query_test/test_chars.py M tests/query_test/test_codegen.py M tests/query_test/test_compressed_formats.py M tests/query_test/test_datasketches.py M tests/query_test/test_datastream_sender.py M tests/query_test/test_date_queries.py M tests/query_test/test_decimal_casting.py M tests/query_test/test_decimal_fuzz.py M tests/query_test/test_decimal_queries.py M tests/query_test/test_delimited_text.py M tests/query_test/test_errorlog.py M tests/query_test/test_exprs.py M tests/query_test/test_fetch.py M tests/query_test/test_geospatial_functions.py M tests/query_test/test_hash_join_timer.py M tests/query_test/test_hbase_queries.py M tests/query_test/test_hdfs_caching.py M tests/query_test/test_hdfs_file_mods.py M tests/query_test/test_iceberg.py M tests/query_test/test_insert.py M tests/query_test/test_insert_behaviour.py M tests/query_test/test_insert_parquet.py M tests/query_test/test_insert_permutation.py M tests/query_test/test_invalid_test_header.py M tests/query_test/test_io_metrics.py M tests/query_test/test_join_queries.py M tests/query_test/test_kudu.py M tests/query_test/test_lifecycle.py M tests/query_test/test_limit.py M tests/query_test/test_limit_pushdown_analytic.py M tests/query_test/test_local_fs.py M tests/query_test/test_mem_usage_scaling.py M tests/query_test/test_mt_dop.py M tests/query_test/test_multiple_filesystems.py M tests/query_test/test_nested_types.py M tests/query_test/test_observability.py M tests/query_test/test_orc_stats.py M tests/query_test/test_parquet_bloom_filter.py M tests/query_test/test_parquet_late_materialization.py M tests/query_test/test_parquet_page_index.py M tests/query_test/test_parquet_stats.py M tests/query_test/test_partitioning.py M tests/query_test/test_queries.py M tests/query_test/test_query_compilation.py M tests/query_test/test_query_mem_limit.py M tests/query_test/test_query_opts.py M tests/query_test/test_resource_limits.py M tests/query_test/test_result_spooling.py M tests/query_test/test_rows_availability.py M tests/query_test/test_runtime_filters.py M tests/query_test/test_scanners.py M tests/query_test/test_scanners_fuzz.py M tests/query_test/test_scratch_limit.py M tests/query_test/test_sfs.py M tests/query_test/test_sort.py M tests/query_test/test_spilling.py M tests/query_test/test_tablesample.py M tests/query_test/test_tpcds_queries.py M tests/query_test/test_tpch_nested_queries.py M tests/query_test/test_tpch_queries.py M tests/query_test/test_udfs.py M tests/query_test/test_utf8_strings.py M tests/run-tests.py M tests/shell/test_cookie_util.py M tests/shell/test_shell_client.py M tests/shell/test_shell_commandline.py M tests/shell/test_shell_interactive.py M tests/shell/util.py M tests/statestore/test_statestore.py M tests/stress/concurrent_select.py M tests/stress/extract_min_mem.py M tests/stress/mem_broker.py M tests/stress/queries.py M tests/stress/query_retries_stress_runner.py M tests/stress/query_runner.py M tests/stress/runtime_info.py M tests/stress/stress_util.py M tests/stress/test_acid_stress.py M tests/stress/test_ddl_stress.py M tests/stress/test_insert_stress.py M tests/stress/util.py M tests/unittests/test_command.py M tests/unittests/test_file_parser.py M tests/unittests/test_result_verifier.py M tests/util/acid_txn.py M tests/util/adls_util.py M tests/util/auto_scaler.py M tests/util/calculation_util.py M tests/util/cancel_util.py M tests/util/cluster_controller.py M tests/util/compute_table_stats.py M tests/util/concurrent_workload.py M tests/util/event_processor_utils.py M tests/util/failpoints_util.py M tests/util/filesystem_base.py M tests/util/filesystem_utils.py M tests/util/get_parquet_metadata.py M tests/util/hdfs_util.py M tests/util/iceberg_util.py M tests/util/parse_util.py M tests/util/plugin_runner.py M tests/util/run_impyla_http_query.py M tests/util/shell_util.py M tests/util/ssh_util.py M tests/util/test_file_parser.py M tests/util/thrift_util.py M tests/util/web_pages_util.py M tests/verifiers/mem_usage_verifier.py M tests/verifiers/metric_verifier.py M tests/verifiers/test_verify_metrics.py M tests/webserver/test_web_pages.py 354 files changed, 408 insertions(+), 113 deletions(-) git pull ssh://gerrit.cloudera.org:29418/Impala-ASF refs/changes/88/19588/1 -- To view, visit http://gerrit.cloudera.org:8080/19588 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-Project: Impala-ASF Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Idb0fcbd11f3e8791f5951c4944be44fb580e576b Gerrit-Change-Number: 19588 Gerrit-PatchSet: 1 Gerrit-Owner: Joe McDonnell <joemcdonn...@cloudera.com>