Source code for paltas.PointSource.point_source_base

# -*- coding: utf-8 -*-
"""
Provides the base class for specifying the point source of a lensing system.

This module contains the base class that all the point source classes will 
build from. Because the steps for rendering a source can vary between different
models, the required functions are very sparse.
"""
import copy


[docs] class PointSourceBase: """ Base class for producing lenstronomy PointSource arguments Args: point_source_parameters (dict): dictionary with source-specific parameters. Notes: Has no required parameters by default. """ required_parameters = tuple() def __init__(self, point_source_parameters): self.point_source_parameters = copy.deepcopy(point_source_parameters) # Check that all the required parameters are present self.check_parameterization(self.__class__.required_parameters)
[docs] def check_parameterization(self, required_params): """ Check that all the required parameters are present in the point_source_parameters. Args: required_params ([str,...]): A list of strings containing the required parameters. """ if not all(elem in self.point_source_parameters.keys() for elem in required_params): raise ValueError('Not all of the required parameters for the ' + 'parameterization are present.')
[docs] def update_parameters(self, point_source_parameters=None): """Update the class parameters Args: point_source_parameters (dict): A dictionary containing all the parameters needed to draw point sources. """ if point_source_parameters is not None: self.point_source_parameters.update(point_source_parameters)
[docs] def draw_point_source(self): """Return lenstronomy PointSource names and kwargs Returns: (list,list) A list containing the model name(s), and a list containing the model kwargs dictionaries. """ raise NotImplementedError