Skip to content

Commit fb46041

Browse files
committed
API: unique_ids stub on base metadata object
1 parent 5399947 commit fb46041

File tree

2 files changed

+25
-1
lines changed

2 files changed

+25
-1
lines changed

qiita_db/metadata_template/base_metadata_template.py

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -470,6 +470,8 @@ class MetadataTemplate(qdb.base.QiitaObject):
470470
# forbidden_words not defined for base class. Please redefine for
471471
# sub-classes.
472472
_forbidden_words = {}
473+
# qiita-unique integer identifier mapping table
474+
_id_map_table = None
473475

474476
@classmethod
475477
def _check_id(cls, id_):
@@ -936,6 +938,21 @@ def _common_extend_steps(self, md_template):
936938

937939
return new_samples, new_cols
938940

941+
def unique_ids(self):
942+
r"""Return a stable mapping of sample_name to integers
943+
944+
Obtain a map from a sample_name to an integer. The association is
945+
unique Qiita-wide and 1-1.
946+
947+
This method is idempotent.
948+
949+
Returns
950+
------
951+
dict
952+
{sample_name: integer_index}
953+
"""
954+
raise IncompetentQiitaDeveloperError()
955+
939956
@classmethod
940957
def exists(cls, obj_id):
941958
r"""Checks if already exists a MetadataTemplate for the provided object

qiita_db/metadata_template/test/test_base_metadata_template.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,14 @@ def test_init(self):
4141
with self.assertRaises(IncompetentQiitaDeveloperError):
4242
MT(1)
4343

44-
def test_exist(self):
44+
def test_unique_ids(self):
45+
"""Unique IDs raises an error because it's not called from a subclass
46+
"""
47+
MT = qdb.metadata_template.base_metadata_template.MetadataTemplate
48+
with self.assertRaises(IncompetentQiitaDeveloperError):
49+
MT.unique_ids(self.study)
50+
51+
def test_exists(self):
4552
"""Exists raises an error because it's not called from a subclass"""
4653
MT = qdb.metadata_template.base_metadata_template.MetadataTemplate
4754
with self.assertRaises(IncompetentQiitaDeveloperError):

0 commit comments

Comments
 (0)