diff --git a/pyproject.toml b/pyproject.toml index 5123f5969f33f515824f6b920683ef2a39974ec7..c30243c4a7a882c0f6759727947d161bad5ca8e4 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -276,6 +276,7 @@ exclude = [ # don't report on objects that match any of these regex '\.__getitem__$', '\.__iter__$', ] + override_SS05 = [ # override SS05 to allow docstrings starting with these words '^Process ', '^Assess ', diff --git a/src/mednet/data/typing.py b/src/mednet/data/typing.py index f61b423059f165f22fd0f860843f2573fa6be772..e5b68d982af5ae421ce94b442dbbfa5617843d4f 100644 --- a/src/mednet/data/typing.py +++ b/src/mednet/data/typing.py @@ -25,7 +25,13 @@ class RawDataLoader: """A loader object can load samples and labels from storage.""" def sample(self, _: typing.Any) -> Sample: - """Load whole samples from media.""" + """Load whole samples from media. + + Parameters + ---------- + _ + Information about the sample to load. Implementation dependent. + """ raise NotImplementedError("You must implement the `sample()` method") def label(self, k: typing.Any) -> int | list[int]: diff --git a/src/mednet/scripts/config.py b/src/mednet/scripts/config.py index 9494cda452df0c25c0a0bd99ea9a0de44049813a..5091cd28d9faf62f9e7dcc988a23868e85768dec 100644 --- a/src/mednet/scripts/config.py +++ b/src/mednet/scripts/config.py @@ -42,7 +42,7 @@ def config(): """ ) @verbosity_option(logger=logger) -def list(verbose) -> None: +def list(verbose) -> None: # numpydoc ignore=PR01 """List configuration files installed.""" entry_points = importlib.metadata.entry_points().select( group="mednet.config" @@ -121,7 +121,7 @@ def list(verbose) -> None: nargs=-1, ) @verbosity_option(logger=logger) -def describe(name, verbose) -> None: +def describe(name, verbose) -> None: # numpydoc ignore=PR01 """Describe a specific configuration file.""" entry_points = importlib.metadata.entry_points().select( group="mednet.config" @@ -172,7 +172,7 @@ def describe(name, verbose) -> None: nargs=1, ) @verbosity_option(logger=logger, expose_value=False) -def copy(source, destination) -> None: +def copy(source, destination) -> None: # numpydoc ignore=PR01 """Copy a specific configuration resource so it can be modified locally.""" import shutil diff --git a/src/mednet/scripts/database.py b/src/mednet/scripts/database.py index dd3134f10a6a59ff29b4eeb3bed323df0601adfe..e968ef26e8f8b0c6422c28814fb8828c0507b45c 100644 --- a/src/mednet/scripts/database.py +++ b/src/mednet/scripts/database.py @@ -131,7 +131,7 @@ def list(): default=0, ) @verbosity_option(logger=logger, expose_value=False) -def check(split, limit): +def check(split, limit): # numpydoc ignore=PR01 """Check file access on one or more DataModules.""" import importlib.metadata import sys diff --git a/src/mednet/scripts/evaluate.py b/src/mednet/scripts/evaluate.py index 657e23278122f7fbc4d91e5cf55760dd7c0c1aa1..3c21ef632a25bcac0e39ba7d7678dc5737b2637f 100644 --- a/src/mednet/scripts/evaluate.py +++ b/src/mednet/scripts/evaluate.py @@ -78,7 +78,7 @@ def evaluate( output_folder: pathlib.Path, threshold: str | float, **_, # ignored -) -> None: +) -> None: # numpydoc ignore=PR01 """Evaluate predictions (from a model) on a classification task.""" import json diff --git a/src/mednet/scripts/experiment.py b/src/mednet/scripts/experiment.py index 6c83e9269b1117adb2c563c7b35b35530ceaa426..38d88fd94c32fee58c8959ea3ed767c59ff0fd2f 100644 --- a/src/mednet/scripts/experiment.py +++ b/src/mednet/scripts/experiment.py @@ -50,7 +50,7 @@ def experiment( monitoring_interval, balance_classes, **_, -): +): # numpydoc ignore=PR01 """Run a complete experiment, from training, to prediction and evaluation. This script is just a wrapper around the individual scripts for training, diff --git a/src/mednet/scripts/predict.py b/src/mednet/scripts/predict.py index 214b85e7e7315b2f0f1d195c57dcd3693c6f71e7..68dd8da7e5f1e28b03d21746b9550039f4caa440 100644 --- a/src/mednet/scripts/predict.py +++ b/src/mednet/scripts/predict.py @@ -124,7 +124,7 @@ def predict( weight, parallel, **_, -) -> None: +) -> None: # numpydoc ignore=PR01 """Run inference (generates scores) on all input images, using a pre-trained model.""" import json diff --git a/src/mednet/scripts/saliency/completeness.py b/src/mednet/scripts/saliency/completeness.py index 5ce8578ddf3f4bfa60d849d3b6b66fd0f14b0cc7..a6e30bbea94e3420927c439bd5710ebfeb5853a6 100644 --- a/src/mednet/scripts/saliency/completeness.py +++ b/src/mednet/scripts/saliency/completeness.py @@ -172,7 +172,7 @@ def completeness( positive_only, percentile, **_, -) -> None: +) -> None: # numpydoc ignore=PR01 """Evaluate saliency map algorithm completeness using RemOve And Debias (ROAD). diff --git a/src/mednet/scripts/saliency/evaluate.py b/src/mednet/scripts/saliency/evaluate.py index d5b753369e8db03c756765cc9926faec87ff68cc..26a9b8d1f6ce75b3a4202240541266e0fafa38c8 100644 --- a/src/mednet/scripts/saliency/evaluate.py +++ b/src/mednet/scripts/saliency/evaluate.py @@ -76,7 +76,7 @@ def evaluate( entry, output_folder, **_, # ignored -) -> None: +) -> None: # numpydoc ignore=PR01 """Calculate summary statistics for a saliency map algorithm.""" import json diff --git a/src/mednet/scripts/saliency/generate.py b/src/mednet/scripts/saliency/generate.py index 7f2d5842f1c4df46af35f9233aa83cde693000fb..583c250c7061181298d6a5ed0bdb27f12826211d 100644 --- a/src/mednet/scripts/saliency/generate.py +++ b/src/mednet/scripts/saliency/generate.py @@ -161,7 +161,7 @@ def generate( target_class, positive_only, **_, -) -> None: +) -> None: # numpydoc ignore=PR01 """Generate saliency maps for locations on input images that affected the prediction. diff --git a/src/mednet/scripts/saliency/interpretability.py b/src/mednet/scripts/saliency/interpretability.py index 5c3da890ed21308aa22d03e28c8d6f37380d0110..0d1b84f7692a1c218cca603d7e9306b617a8d1c5 100644 --- a/src/mednet/scripts/saliency/interpretability.py +++ b/src/mednet/scripts/saliency/interpretability.py @@ -83,7 +83,7 @@ def interpretability( target_label, output_json, **_, -) -> None: +) -> None: # numpydoc ignore=PR01 """Evaluate saliency map agreement with annotations (human interpretability). diff --git a/src/mednet/scripts/saliency/view.py b/src/mednet/scripts/saliency/view.py index e644b8e27ff95cbc53541f84bb544646a5586975..f44be79f8f4999fcc69fc38da368b53869fe696e 100644 --- a/src/mednet/scripts/saliency/view.py +++ b/src/mednet/scripts/saliency/view.py @@ -97,7 +97,7 @@ def view( show_groundtruth, threshold, **_, -) -> None: +) -> None: # numpydoc ignore=PR01 """Generate heatmaps for input CXRs based on existing saliency maps.""" from ...engine.saliency.viewer import run diff --git a/src/mednet/scripts/train.py b/src/mednet/scripts/train.py index f1956715d0c77db955a8e808bc1ceed4ce6f044e..1dc78e4a68e690e7a311b31966270b2de4eedadf 100644 --- a/src/mednet/scripts/train.py +++ b/src/mednet/scripts/train.py @@ -248,7 +248,7 @@ def train( monitoring_interval, balance_classes, **_, -) -> None: +) -> None: # numpydoc ignore=PR01 """Train an CNN to perform image classification. Training is performed for a configurable number of epochs, and diff --git a/src/mednet/scripts/train_analysis.py b/src/mednet/scripts/train_analysis.py index 73e683a1072e3ea1065208c1e692481272e1e484..9b7a514486e5faeaa50e78f7d6e0f47769b38e04 100644 --- a/src/mednet/scripts/train_analysis.py +++ b/src/mednet/scripts/train_analysis.py @@ -133,7 +133,7 @@ def create_figures( def train_analysis( logdir: pathlib.Path, output: pathlib.Path, -) -> None: +) -> None: # numpydoc ignore=PR01 """Create a plot for each metric in the training logs and saves them in a .pdf file.""" import matplotlib.pyplot as plt