Skip to content

Commit

Permalink
Fix sets not hashing correctly
Browse files Browse the repository at this point in the history
  • Loading branch information
Eric-Arellano committed May 17, 2019
1 parent 0348332 commit 359cc48
Show file tree
Hide file tree
Showing 2 changed files with 241 additions and 0 deletions.
2 changes: 2 additions & 0 deletions src/python/pants/engine/struct.py
Original file line number Diff line number Diff line change
Expand Up @@ -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()
Expand Down
239 changes: 239 additions & 0 deletions targets.txt
Original file line number Diff line number Diff line change
@@ -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

0 comments on commit 359cc48

Please sign in to comment.