Skip to content

Commit

Permalink
Visualize internal errors.
Browse files Browse the repository at this point in the history
  • Loading branch information
Paebbels committed Jan 11, 2024
1 parent ae81ea2 commit 795f384
Show file tree
Hide file tree
Showing 4 changed files with 26 additions and 10 deletions.
11 changes: 6 additions & 5 deletions doc/DocCov/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -53,11 +53,12 @@ See the :ref:`overview page <OVER>` on how to setup and enable the Sphinx extens
"directory": "../myPackage",
"fail_below": 80,
"levels": {
30: {"class": "report-cov-below30", "desc": "almost undocumented"},
50: {"class": "report-cov-below50", "desc": "poorly documented"},
80: {"class": "report-cov-below80", "desc": "roughly documented"},
90: {"class": "report-cov-below90", "desc": "well documented"},
100: {"class": "report-cov-below100", "desc": "excellent documented"},
30: {"class": "report-cov-below30", "desc": "almost undocumented"},
50: {"class": "report-cov-below50", "desc": "poorly documented"},
80: {"class": "report-cov-below80", "desc": "roughly documented"},
90: {"class": "report-cov-below90", "desc": "well documented"},
100: {"class": "report-cov-below100", "desc": "excellent documented"},
"error": {"class": "report-cov-error", "desc": "internal errord"},
},
}
}
Expand Down
10 changes: 8 additions & 2 deletions sphinx_reports/CodeCoverage.py
Original file line number Diff line number Diff line change
Expand Up @@ -126,6 +126,12 @@ def _CheckConfiguration(self) -> None:
except KeyError as ex:
raise ReportExtensionError(f"conf.py: {ReportDomain.name}_{self.configPrefix}_packages:{self._packageID}.levels: Configuration is missing.") from ex

if 100 not in packageConfiguration["levels"]:
raise ReportExtensionError(f"conf.py: {ReportDomain.name}_{self.configPrefix}_packages:{self._packageID}.levels[100]: Configuration is missing.")

if "error" not in packageConfiguration["levels"]:
raise ReportExtensionError(f"conf.py: {ReportDomain.name}_{self.configPrefix}_packages:{self._packageID}.levels[error]: Configuration is missing.")

self._levels = {}
for level, levelConfig in levels.items():
try:
Expand All @@ -151,11 +157,11 @@ def _CheckConfiguration(self) -> None:
self._levels[level] = {"class": cssClass, "desc": description}

def _ConvertToColor(self, currentLevel: float, configKey: str) -> str:
if currentLevel == -1.0:
if currentLevel < 0.0:
return self._levels["error"][configKey]

for levelLimit, levelConfig in self._levels.items():
if (currentLevel * 100) < levelLimit:
if isinstance(levelLimit, int) and (currentLevel * 100) < levelLimit:
return levelConfig[configKey]

return self._levels[100][configKey]
Expand Down
13 changes: 11 additions & 2 deletions sphinx_reports/DocCoverage.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@
**Report documentation coverage as Sphinx documentation page(s).**
"""
from pathlib import Path
from typing import Dict, Tuple, Any, List, Iterable, Mapping, Generator, TypedDict
from typing import Dict, Tuple, Any, List, Iterable, Mapping, Generator, TypedDict, Union

from docutils import nodes
from pyTooling.Decorators import export
Expand Down Expand Up @@ -75,7 +75,7 @@ class DocCoverage(BaseDirective):
_packageName: str
_directory: Path
_failBelow: float
_levels: Dict[int, Dict[str, str]]
_levels: Dict[Union[int, str], Dict[str, str]]
_coverage: PackageCoverage

def _CheckOptions(self) -> None:
Expand Down Expand Up @@ -126,6 +126,12 @@ def _CheckConfiguration(self) -> None:
except KeyError as ex:
raise ReportExtensionError(f"conf.py: {ReportDomain.name}_{self.configPrefix}_packages:{self._packageID}.levels: Configuration is missing.") from ex

if 100 not in packageConfiguration["levels"]:
raise ReportExtensionError(f"conf.py: {ReportDomain.name}_{self.configPrefix}_packages:{self._packageID}.levels[100]: Configuration is missing.")

if "error" not in packageConfiguration["levels"]:
raise ReportExtensionError(f"conf.py: {ReportDomain.name}_{self.configPrefix}_packages:{self._packageID}.levels[error]: Configuration is missing.")

self._levels = {}
for level, levelConfig in levels.items():
try:
Expand All @@ -151,6 +157,9 @@ def _CheckConfiguration(self) -> None:
self._levels[level] = {"class": cssClass, "desc": description}

def _ConvertToColor(self, currentLevel: float, configKey: str) -> str:
if currentLevel < 0.0:
return self._levels["error"][configKey]

for levelLimit, levelConfig in self._levels.items():
if isinstance(levelLimit, int) and (currentLevel * 100) < levelLimit:
return levelConfig[configKey]
Expand Down
2 changes: 1 addition & 1 deletion sphinx_reports/static/sphinx-reports.css
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@
}
/* internal error */
.report-cov-error{
background: rgba(255, 0, 0, .2);
background: rgba(255, 0, 0, .4);
}

.report-dep-summary-row {
Expand Down

0 comments on commit 795f384

Please sign in to comment.