diff --git a/qurator/eynollah/utils/counter.py b/qurator/eynollah/utils/counter.py index f076c23..5280c6f 100644 --- a/qurator/eynollah/utils/counter.py +++ b/qurator/eynollah/utils/counter.py @@ -19,13 +19,25 @@ class EynollahIdCounter(): def set(self, name, val): self._counter[name] = val + def region_id(self, region_idx=None): + if not region_idx: + region_idx = self._counter['region'] + return REGION_ID_TEMPLATE % region_idx + + def line_id(self, region_idx=None, line_idx=None): + if not region_idx: + region_idx = self._counter['region'] + if not line_idx: + line_idx = self._counter['line'] + return LINE_ID_TEMPLATE % (region_idx, line_idx) + @property def next_region_id(self): self.inc('region') self.set('line', 0) - return REGION_ID_TEMPLATE % self._counter['region'] + return self.region_id() @property def next_line_id(self): self.inc('line') - return LINE_ID_TEMPLATE % (self._counter['region'], self._counter['line']) + return self.line_id() diff --git a/tests/test_counter.py b/tests/test_counter.py index 44715b8..a157cd5 100644 --- a/tests/test_counter.py +++ b/tests/test_counter.py @@ -8,6 +8,8 @@ def test_counter_string(): assert c.next_line_id == 'region_0002_line_0001' assert c.next_region_id == 'region_0003' assert c.next_line_id == 'region_0003_line_0001' + assert c.region_id(999) == 'region_0999' + assert c.line_id(999, 888) == 'region_0999_line_0888' def test_counter_init(): c = EynollahIdCounter(region_idx=2)