diff --git a/src/python/pants/engine/struct.py b/src/python/pants/engine/struct.py index 63813d9b3d79..a04101c44f13 100644 --- a/src/python/pants/engine/struct.py +++ b/src/python/pants/engine/struct.py @@ -261,6 +261,8 @@ def hashable(value): return tuple(sorted((k, hashable(v)) for k, v in value.items())) elif isinstance(value, list): return tuple(hashable(v) for v in value) + elif isinstance(value, set): + return tuple(sorted(hashable(v) for v in value)) else: return value return tuple(sorted((k, hashable(v)) for k, v in self._kwargs.items() diff --git a/targets.txt b/targets.txt new file mode 100644 index 000000000000..97b24dd89c06 --- /dev/null +++ b/targets.txt @@ -0,0 +1,239 @@ +src/python/pants/backend/project_info/rules:rules_tests +tests/python/pants_test/backend/codegen/antlr/python:python +tests/python/pants_test/rules:rules +tests/python/pants_test/jvm/subsystems:jvm +tests/python/pants_test/util:argutil +tests/python/pants_test/util:collections +tests/python/pants_test/util:contextutil +tests/python/pants_test/util:dirutil +tests/python/pants_test/util:eval +tests/python/pants_test/util:fileutil +tests/python/pants_test/util:filtering +tests/python/pants_test/util:memo +tests/python/pants_test/util:meta +tests/python/pants_test/util:netrc +tests/python/pants_test/util:objects +tests/python/pants_test/util:osutil +tests/python/pants_test/util:process_handler +tests/python/pants_test/util:retry +tests/python/pants_test/util:rwbuf +tests/python/pants_test/util:socket +tests/python/pants_test/util:strutil +tests/python/pants_test/util:tarutil +tests/python/pants_test/util:xml_parser +tests/python/pants_test/scm:test_git +tests/python/pants_test/pantsd/service:fs_event_service +tests/python/pants_test/pantsd/service:pailgun_service +tests/python/pants_test/pantsd/service:pants_service +tests/python/pants_test/process:process +tests/python/pants_test/repo_scripts:git_hooks +tests/python/pants_test/backend/codegen/grpcio:grpcio +tests/python/pants_test/core_tasks:bash_completion +tests/python/pants_test/core_tasks:generate_pants_ini +tests/python/pants_test/core_tasks:roots +tests/python/pants_test/core_tasks:run_prep_command +tests/python/pants_test/backend/jvm/tasks/reports:reports +tests/python/pants_test/tasks:execution_graph +tests/python/pants_test/backend/python/tasks/native:native +tests/python/pants_test/ivy:bootstrapper +tests/python/pants_test/ivy:ivy_subsystem +tests/python/pants_test/pantsd:pailgun_server +tests/python/pants_test/pantsd:pants_daemon +tests/python/pants_test/pantsd:process_manager +tests/python/pants_test/pantsd:watchman +tests/python/pants_test/pantsd:watchman_client +tests/python/pants_test/pantsd:watchman_launcher +tests/python/pants_test/backend/native/targets:targets +tests/python/pants_test/backend/project_info/tasks:dependencies +tests/python/pants_test/backend/project_info/tasks:depmap +tests/python/pants_test/backend/project_info/tasks:export +tests/python/pants_test/backend/project_info/tasks:filedeps +tests/python/pants_test/auth:auth +tests/python/pants_test/backend/python:interpreter_cache +tests/python/pants_test/backend/python:pants_requirement +tests/python/pants_test/backend/python:python_requirement_list +tests/python/pants_test/backend/codegen/thrift/python:python +tests/python/pants_test/backend/native/tasks:tasks +tests/python/pants_test/engine/legacy:address_mapper +tests/python/pants_test/engine/legacy:graph +tests/python/pants_test/engine/legacy:options_parsing +tests/python/pants_test/engine/legacy:parser +tests/python/pants_test/engine/legacy:structs +tests/python/pants_test/backend/codegen/antlr/java:java +tests/python/pants_test/source:filespec +tests/python/pants_test/source:payload_fields +tests/python/pants_test/source:source_root +tests/python/pants_test/source:wrapped_globs +tests/python/pants_test/targets:java_agent +tests/python/pants_test/targets:python_binary +tests/python/pants_test/targets:python_target +tests/python/pants_test/targets:scala_library +tests/python/pants_test/targets:sort_targets +tests/python/pants_test/base:build_environment +tests/python/pants_test/base:build_root +tests/python/pants_test/base:cmd_line_spec_parser +tests/python/pants_test/base:deprecated +tests/python/pants_test/base:exception_sink +tests/python/pants_test/base:filesystem_build_file +tests/python/pants_test/base:fingerprint_strategy +tests/python/pants_test/base:generator +tests/python/pants_test/base:hash_utils +tests/python/pants_test/base:pants_ignore_file_system +tests/python/pants_test/base:payload +tests/python/pants_test/base:payload_field +tests/python/pants_test/base:revision +tests/python/pants_test/base:run_info +tests/python/pants_test/base:validation +tests/python/pants_test/base:worker_pool +tests/python/pants_test/backend/codegen/protobuf/java:java +tests/python/pants_test/backend/jvm/tasks/jvm_compile/java:java_compile_settings_partitioning +tests/python/pants_test/invalidation:build_invalidator +tests/python/pants_test/invalidation:cache_manager +tests/python/pants_test/backend/jvm/tasks/jvm_compile/rsc:rsc_compile +tests/python/pants_test/binaries:binaries +tests/python/pants_test/binaries:integration +tests/python/pants_test/java:executor +tests/python/pants_test/java:nailgun_client +tests/python/pants_test/java:nailgun_executor +tests/python/pants_test/java:nailgun_io +tests/python/pants_test/java:nailgun_protocol +tests/python/pants_test/java:test_runjava +tests/python/pants_test/java:util +tests/python/pants_test/net/http:http +tests/python/pants_test/help:build_dictionary_info_extracter +tests/python/pants_test/help:help_formatter +tests/python/pants_test/help:help_info_extracter +tests/python/pants_test/help:scope_info_iterator +tests/python/pants_test/reporting:json_reporter +tests/python/pants_test/reporting:linkify +tests/python/pants_test/reporting:reporting +tests/python/pants_test/engine:addressable +tests/python/pants_test/engine:build_files +tests/python/pants_test/engine:engine +tests/python/pants_test/engine:fs +tests/python/pants_test/engine:isolated_process +tests/python/pants_test/engine:mapper +tests/python/pants_test/engine:objects +tests/python/pants_test/engine:parsers +tests/python/pants_test/engine:rules +tests/python/pants_test/engine:scheduler +tests/python/pants_test/engine:selectors +tests/python/pants_test/engine:struct +tests/python/pants_test/engine:test_legacy_engine +tests/python/pants_test/engine:test_round_engine +tests/python/pants_test/build_graph:address +tests/python/pants_test/build_graph:build_configuration +tests/python/pants_test/build_graph:build_file_aliases +tests/python/pants_test/build_graph:build_file_parser +tests/python/pants_test/build_graph:build_graph +tests/python/pants_test/build_graph:files +tests/python/pants_test/build_graph:scopes +tests/python/pants_test/build_graph:source_mapper +tests/python/pants_test/build_graph:target +tests/python/pants_test/build_graph:target_filter_subsystem +tests/python/pants_test/logging:logging +tests/python/pants_test/backend/jvm/targets:credentials +tests/python/pants_test/backend/jvm/targets:jar_dependency +tests/python/pants_test/backend/jvm/targets:jar_library +tests/python/pants_test/backend/jvm/targets:junit_tests +tests/python/pants_test/backend/jvm/targets:jvm_app +tests/python/pants_test/backend/jvm/targets:jvm_binary +tests/python/pants_test/backend/jvm/targets:unpacked_jars +tests/python/pants_test/option:testing +tests/python/pants_test/backend/python/targets:targets +tests/python/pants_test/backend/docgen/tasks:markdown_to_html +tests/python/pants_test/java/jar:manifest +tests/python/pants_test/backend/docgen/targets:wiki_page +tests/python/pants_test/backend/codegen/thrift/java:java +tests/python/pants_test/backend/codegen/jaxb:jaxb +tests/python/pants_test/init:init +tests/python/pants_test/jvm:artifact +tests/python/pants_test/jvm:test_safeargs +tests/python/pants_test/backend/python/subsystems:python_setup +tests/python/pants_test/backend/jvm:jar_dependency_utils +tests/python/pants_test/subsystem:subsystem +tests/python/pants_test/backend/jvm/tasks/jvm_compile:jvm_classpath_published +tests/python/pants_test/backend/jvm/tasks/jvm_compile:jvm_compile +tests/python/pants_test/backend/jvm/tasks/jvm_compile:missing_dependency_finder +tests/python/pants_test/backend/jvm/tasks/coverage:coverage +tests/python/pants_test/backend/codegen/ragel/java:java +tests/python/pants_test/backend/python/tasks:build_local_python_distributions +tests/python/pants_test/backend/python/tasks:gather_sources +tests/python/pants_test/backend/python/tasks:isort_run +tests/python/pants_test/backend/python/tasks:pytest_run +tests/python/pants_test/backend/python/tasks:python_binary_create +tests/python/pants_test/backend/python/tasks:python_repl +tests/python/pants_test/backend/python/tasks:python_tool +tests/python/pants_test/backend/python/tasks:resolve_requirements +tests/python/pants_test/backend/python/tasks:select_interpreter +tests/python/pants_test/backend/python/tasks:setup_py +tests/python/pants_test/backend/python/tasks:unpack_wheels +tests/python/pants_test/backend/jvm/tasks:benchmark_run +tests/python/pants_test/backend/jvm/tasks:binary_create +tests/python/pants_test/backend/jvm/tasks:bootstrap_jvm_tools +tests/python/pants_test/backend/jvm/tasks:bundle_create +tests/python/pants_test/backend/jvm/tasks:check_published_deps +tests/python/pants_test/backend/jvm/tasks:checkstyle +tests/python/pants_test/backend/jvm/tasks:classmap +tests/python/pants_test/backend/jvm/tasks:classpath_products +tests/python/pants_test/backend/jvm/tasks:classpath_util +tests/python/pants_test/backend/jvm/tasks:consolidate_classpath +tests/python/pants_test/backend/jvm/tasks:coursier_resolve +tests/python/pants_test/backend/jvm/tasks:detect_duplicates +tests/python/pants_test/backend/jvm/tasks:ivy_imports +tests/python/pants_test/backend/jvm/tasks:ivy_resolve +tests/python/pants_test/backend/jvm/tasks:ivy_utils +tests/python/pants_test/backend/jvm/tasks:jar_create +tests/python/pants_test/backend/jvm/tasks:jar_dependency_management_setup +tests/python/pants_test/backend/jvm/tasks:jar_publish +tests/python/pants_test/backend/jvm/tasks:jar_task +tests/python/pants_test/backend/jvm/tasks:junit_run +tests/python/pants_test/backend/jvm/tasks:jvm_dependency_usage +tests/python/pants_test/backend/jvm/tasks:jvm_platform_analysis +tests/python/pants_test/backend/jvm/tasks:jvm_prep_command +tests/python/pants_test/backend/jvm/tasks:jvm_run +tests/python/pants_test/backend/jvm/tasks:jvm_task +tests/python/pants_test/backend/jvm/tasks:jvmdoc_gen +tests/python/pants_test/backend/jvm/tasks:prepare_resources +tests/python/pants_test/backend/jvm/tasks:prepare_services +tests/python/pants_test/backend/jvm/tasks:properties +tests/python/pants_test/backend/jvm/tasks:resources_task +tests/python/pants_test/backend/jvm/tasks:scalafmt +tests/python/pants_test/backend/jvm/tasks:scalastyle +tests/python/pants_test/backend/jvm/tasks:unpack_jars +tests/python/pants_test/task:console_task +tests/python/pants_test/task:mutex_task_mixin +tests/python/pants_test/task:scm_publish +tests/python/pants_test/task:simple_codegen_task +tests/python/pants_test/task:task +tests/python/pants_test/task:testrunner_task_mixin +tests/python/pants_test/task:unpack_remote_sources_base +tests/python/pants_test/java/junit:junit +tests/python/pants_test/fs:fs +tests/python/pants_test/backend/jvm/subsystems:custom_scala +tests/python/pants_test/backend/jvm/subsystems:jar_dependency_management +tests/python/pants_test/backend/jvm/subsystems:shader +tests/python/pants_test/java/distribution:distribution +tests/python/pants_test/goal:artifact_cache_stats +tests/python/pants_test/goal:other +tests/python/pants_test/backend/native/subsystems:subsystems +tests/python/pants_test/backend/python/rules:inject_init +tests/python/pants_test/backend/python/rules:python_test_runner +tests/python/pants_test/cache:artifact +tests/python/pants_test/cache:artifact_cache +tests/python/pants_test/cache:cache_setup +tests/python/pants_test/cache:caching +tests/python/pants_test/cache:caching_dereference_symlinks +tests/python/pants_test/cache:pinger +tests/python/pants_test/cache:resolver +tests/python/pants_test/backend/graph_info/tasks:cloc +tests/python/pants_test/backend/graph_info/tasks:dependees +tests/python/pants_test/backend/graph_info/tasks:filemap +tests/python/pants_test/backend/graph_info/tasks:filter +tests/python/pants_test/backend/graph_info/tasks:list_targets +tests/python/pants_test/backend/graph_info/tasks:minimal_cover +tests/python/pants_test/backend/graph_info/tasks:paths +tests/python/pants_test/backend/graph_info/tasks:sort_targets +tests/python/pants_test/backend/graph_info/tasks:target_filter_task_mixin +tests/python/pants_test:test_maven_layout +tests/python/pants_test/backend/codegen/wire/java:java