diff --git a/flagger/dmpflagger.py b/flagger/dmpflagger.py index fd3a4617b222020ba25216671c29cc5628d85785..06fc567d953350bab0b4a1e70e428b171c27686a 100644 --- a/flagger/dmpflagger.py +++ b/flagger/dmpflagger.py @@ -1,10 +1,15 @@ #! /usr/bin/env python # -*- coding: utf-8 -*- +import subprocess import pandas as pd from .baseflagger import BaseFlagger +class Keywords: + VERSION = "$version" + + class FlagFields: FLAG = "quality_flag" CAUSE = "quality_cause" @@ -24,6 +29,8 @@ class DmpFlagger(BaseFlagger): def __init__(self): super().__init__(FLAGS) self.flag_fields = [FlagFields.FLAG, FlagFields.CAUSE, FlagFields.COMMENT] + version = subprocess.check_output('git describe --tags --always --dirty'.split()) + self.project_version = version.decode().strip() def initFlags(self, data, **kwargs): columns = data.columns if isinstance(data, pd.DataFrame) else [data.name] @@ -48,6 +55,9 @@ class DmpFlagger(BaseFlagger): else: self._checkFlag(flag) + if Keywords.VERSION in comment: + comment = comment.replace(Keywords.VERSION, self.project_version) + flags = self._reduceColumns(flags) mask = flags[FlagFields.FLAG] < flag flags.loc[mask, self.flag_fields] = flag, cause, comment