def source(self, new_source):
     # Attempt to fetch source from source manager if passed object
     # is not instance of source class
     if not isinstance(new_source, Source) and new_source is not None:
         new_source = SourceManager.get(new_source)
     old_source = self.source
     # Do not update anything if sources are the same
     if new_source is old_source:
         return
     self.__source = new_source
     # Update eos model with new data
     self._eos_fit.source = getattr(new_source, 'eos', None)
     # Update pyfa model with new data
     # Unlike fit, character represents EVE item, thus we need
     # to update it too
     self._update_source()
     for src_child in self._src_children:
         src_child._update_source()
    def _set_source(self, new_source):
        """
        Set fit's source. Source represents EVE data to be used.

        Required arguments:
        new_source -- source to use, can be None
        """
        # Attempt to fetch source from source manager if passed object
        # is not instance of source class
        if not isinstance(new_source, Source) and new_source is not None:
            new_source = SourceManager.get(new_source)
        old_source = self.source
        # Do not update anything if sources are the same
        if new_source is old_source:
            return
        self.__source = new_source
        # Update eos model with new data
        self._eos_fit.source = getattr(new_source, 'eos', None)
        # Update pyfa model with new data
        for src_child in self._src_children:
            src_child._update_source()