code: def combine_cache_keys(cls, cache_keys):
      
      if len(cache_keys) == 1:
        return cache_keys[0]
      else:
        combined_id = Target.maybe_readable_combine_ids(cache_key.id for cache_key in cache_keys)
        combined_hash = hash_all(sorted(cache_key.hash for cache_key in cache_keys))
        return cls(combined_id, combined_hash)
docs: Returns a cache key for a list of target sets that already have cache keys.
  
      This operation is 'idempotent' in the sense that if cache_keys contains a single key
      then that key is returned.
  
      Note that this operation is commutative but not associative.  We use the term 'combine' rather
      than 'merge' or 'union' to remind the user of this. Associativity is not a necessary property,
      in practice.