Source code for coolest.template.classes.profile_list
__author__ = 'aymgal'
from types import ModuleType
from typing import Tuple
from coolest.template.classes.base import APIBaseObject
[docs]
class ProfileList(list, APIBaseObject):
def __init__(self,
profiles_module: ModuleType,
*profile_names: Tuple[str]) -> None:
"""Generic list of model (mass or light) profile.
Note that this class is not meant to be instantiated by the user.
Parameters
----------
profiles_module : mass or light profile submodule
Submodule in coolest.template.classes.profiles defining
the python classes corresponding to each model profile.
*profile_names: list of profile names, which must be class names
defined in the profiles_module submodule.
Raises
------
ValueError
If profile is not supported.
"""
profiles = []
for name in profile_names:
if name not in profiles_module.SUPPORTED_CHOICES:
raise ValueError(f"Profile '{name}' is not supported.")
profile_class = getattr(profiles_module, name)
profiles.append(profile_class())
list.__init__(self, profiles)
[docs]
def num_pixelated_profiles(self):
pass #TODO