def test_dict_by(self, xs): """dict_by should apply a function to each item in a set to generate the values of the returned dict. """ m = u.dict_by(xs, len) # every value is properly constructed for k, v in m.items(): self.assertEqual(len(k), v) # the key set of the dict is equal to the incoming original set. self.assertSetEqual(set(m.keys()), xs)
def test_flipm_empty_values(self, ks): """Flipping a dictionary with empty values always equals the empty map.""" m = u.dict_by(ks, lambda k: {}) self.assertDictEqual({}, u.flipm(m))
def test_flipm_empty_values(ks): """Flipping a dictionary with empty values always equals the empty map.""" m = u.dict_by(ks, lambda k: {}) assert {} == u.flipm(m)
"""Returns a function that prepends the supplied prefix and converts underscores to the dashes required by Cloud constants.. """ def inner(name: str) -> str: return "{}-{}".format(prefix, name.replace('_', '-')) return inner US_REGIONS = {"west1", "west2", "central1", "east1", "east4"} EURO_REGIONS = {"west1", "west4", "north1"} ASIA_REGIONS = {"southeast1", "east1", "northeast1"} # Actual enum types. US = Enum('US', u.dict_by(US_REGIONS, _vfn("us"))) Europe = Enum('Europe', u.dict_by(EURO_REGIONS, _vfn("europe"))) Asia = Enum('Asia', u.dict_by(ASIA_REGIONS, _vfn("asia"))) Region = Union[US, Europe, Asia] Zone = str def valid_regions(zone: Optional[str] = None) -> List[Region]: """Returns valid region strings for Cloud, for the globe or for a particular region if specified. """ if zone is None: return valid_regions("americas") \ + valid_regions("europe") \ + valid_regions("asia")
} ASIA_REGIONS = { "south1", "southeast1", "east1", "east2", "northeast1", "northeast2", "northeast3", } AUSTRALIA_REGIONS = { "southeast1", } # Actual enum types. US = Enum('US', u.dict_by(US_REGIONS, _vfn("us"))) NorthAmerica = Enum('NorthAmerica', u.dict_by(NA_REGIONS, _vfn("northamerica"))) SouthAmerica = Enum('SouthAmerica', u.dict_by(SA_REGIONS, _vfn("southamerica"))) Europe = Enum('Europe', u.dict_by(EURO_REGIONS, _vfn("europe"))) Asia = Enum('Asia', u.dict_by(ASIA_REGIONS, _vfn("asia"))) Australia = Enum('Australia', u.dict_by(ASIA_REGIONS, _vfn("australia"))) Region = Union[US, NorthAmerica, SouthAmerica, Europe, Asia, Australia] Zone = str def valid_regions(zone: Optional[str] = None) -> List[Region]: """Returns valid region strings for Cloud, for the globe or for a particular region if specified. """ if zone is None: