def test_merge(self, m1, m2): merged = u.merge(m1, m2) # Every item from the second map should be in the merged map. for k, v in m2.items(): self.assertEqual(merged[k], v) # Every item from the first map should be in the merged map, OR, if it # shares a key with m2, m2's value will have bumped it. for k, v in m1.items(): self.assertEqual(merged[k], m2.get(k, v))
} # Machines types in Cloud's high CPU tier. HIGHCPU_MACHINES = {"highcpu_16", "highcpu_32", "highcpu_64", "highcpu_96"} # Machine types allowed if running in TPU mode. TPU_MACHINES = {"cloud_tpu"} # Machine types allowed in CPU or GPU modes. NON_TPU_MACHINES = STANDARD_MACHINES.union(HIGHMEM_MACHINES).union( HIGHCPU_MACHINES) # Type of physical machine available -> cloud name. MachineType = Enum( 'MachineType', u.merge(u.dict_by(NON_TPU_MACHINES, _vfn("n1")), u.dict_by(TPU_MACHINES, lambda s: s))) # Various GPU types currently available on Cloud, mapped to their cloud # identifiers. GPU = Enum( "GPU", { "K80": "NVIDIA_TESLA_K80", "P4": "NVIDIA_TESLA_P4", "P100": "NVIDIA_TESLA_P100", "T4": "NVIDIA_TESLA_T4", "V100": "NVIDIA_TESLA_V100" }) # TPU types mapped from version to Cloud identifier. TPU = Enum( "TPU",