コード例 #1
0
ファイル: test_logging.py プロジェクト: changwn/cellrank
 def test_formats(self, capsys, logging_state):
     settings.logfile = sys.stderr
     settings.verbosity = Verbosity.debug
     logg.error("0")
     assert capsys.readouterr().err == "ERROR: 0\n"
     logg.warning("1")
     assert capsys.readouterr().err == "WARNING: 1\n"
     logg.info("2")
     assert capsys.readouterr().err == "2\n"
     logg.hint("3")
     assert capsys.readouterr().err == "--> 3\n"
コード例 #2
0
    def fit(
        self,
        x: Optional[np.ndarray] = None,
        y: Optional[np.ndarray] = None,
        w: Optional[np.ndarray] = None,
        **kwargs,
    ) -> "GAM":
        """
        %(base_model_fit.full_desc)s

        Parameters
        ----------
        %(base_model_fit.parameters)s

        Returns
        -------
        :class:`cellrank.ul.models.GAM`
            Fits the model and returns self.
        """  # noqa

        super().fit(x, y, w, **kwargs)

        if self._grid is not None:
            # use default search
            grid = {} if not isinstance(self._grid, dict) else self._grid
            try:
                self.model.gridsearch(
                    self.x,
                    self.y,
                    weights=self.w,
                    keep_best=True,
                    progress=False,
                    **grid,
                    **kwargs,
                )
                return self
            except Exception as e:
                # workaround for: https://github.com/dswah/pyGAM/issues/273
                self.model.fit(self.x, self.y, weights=self.w, **kwargs)
                logg.error(
                    f"Grid search failed, reason: `{e}`. Fitting with default values"
                )

        try:
            self.model.fit(self.x, self.y, weights=self.w, **kwargs)
            return self
        except Exception as e:
            raise RuntimeError(
                f"Unable to fit `{type(self).__name__}` for gene "
                f"`{self._gene!r}` in lineage `{self._lineage!r}`. Reason: `{e}`"
            ) from e
コード例 #3
0
ファイル: test_logging.py プロジェクト: changwn/cellrank
    def test_logfile(self, tmp_path, logging_state):
        settings.verbosity = Verbosity.hint

        io = StringIO()
        settings.logfile = io
        assert settings.logfile is io
        assert settings.logpath is None
        logg.error("test!")
        assert io.getvalue() == "ERROR: test!\n"

        p = tmp_path / "test.log"
        settings.logpath = p
        assert settings.logpath == p
        assert settings.logfile.name == str(p)
        logg.hint("test2")
        logg.debug("invisible")
        assert settings.logpath.read_text() == "--> test2\n"