Newer
Older
class Basin(object):
def __init__(self, shortname, fullname):
self._shortname = shortname
self._fullname = fullname
@property
def shortname(self):
return self._shortname
@property
def fullname(self):
return self._fullname
class Basins(object):
Global = Basin('glob', 'global_ocean')
Atlantic = Basin('Atl', 'atlantic_ocean')
NorthAtlantic = Basin('NAtl', 'north_atlantic_ocean')
TropicalAtlantic = Basin('TAtl', 'tropical_atlantic_ocean')
Pacific = Basin('Pac', 'pacific_ocean')
NorthPacific = Basin('NPac', 'north_pacific_ocean')
TropicalPacific = Basin('TPac', 'tropical_pacific_ocean')
IndoPacific = Basin('IndPac', 'indo_pacific_ocean')
Indian = Basin('Ind', 'indian_ocean')
TropicalIndian = Basin('TInd', 'tropical_indian_ocean')
Antarctic = Basin('Anta', 'antarctic_ocean')
Arctic = Basin('Arct', 'arctic_ocean')
Javier Vegas-Regidor
committed
@classmethod
def parse(cls, basin):
for name in cls.__dict__.keys():
if name.startswith('_'):
continue
# noinspection PyCallByClass
value = cls.__getattribute__(cls, name)
if isinstance(value, Basin):
if basin.lower() in [value.shortname.lower(), value.fullname.lower()]:
return value
return None