Skip to content

Commit 9c80092

Browse files
committed
Fixing merge conflicts
2 parents 29e89e2 + 3ad2264 commit 9c80092

File tree

3 files changed

+58
-29
lines changed

3 files changed

+58
-29
lines changed

qiita_db/metadata_template/base_metadata_template.py

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1083,3 +1083,30 @@ def categories(self):
10831083
cols[idx] = self.translate_cols_dict[c]
10841084

10851085
return cols
1086+
1087+
def update_category(self, category, samples_and_values):
1088+
"""Update an existing column
1089+
1090+
Parameters
1091+
----------
1092+
category : str
1093+
The category to update
1094+
samples_and_values : dict
1095+
A mapping of {sample_id: value}
1096+
1097+
Raises
1098+
------
1099+
QiitaDBUnknownIDError
1100+
If a sample_id is included in values that is not in the template
1101+
QiitaDBColumnError
1102+
If the column does not exist in the table. This is implicit, and
1103+
can be thrown by the contained Samples.
1104+
"""
1105+
if not set(self.keys()).issuperset(samples_and_values):
1106+
missing = set(self.keys()) - set(samples_and_values)
1107+
table_name = self._table_name(self.study_id)
1108+
raise QiitaDBUnknownIDError(missing, table_name)
1109+
1110+
for k, v in viewitems(samples_and_values):
1111+
sample = self[k]
1112+
sample[category] = v

qiita_db/metadata_template/sample_template.py

Lines changed: 0 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88

99
from __future__ import division
1010
from future.builtins import zip
11-
from future.utils import viewitems
1211
from copy import deepcopy
1312
from os.path import join
1413
from time import strftime
@@ -20,7 +19,6 @@
2019

2120
from qiita_core.exceptions import IncompetentQiitaDeveloperError
2221
from qiita_db.exceptions import (QiitaDBDuplicateError, QiitaDBColumnError,
23-
QiitaDBUnknownIDError,
2422
QiitaDBDuplicateHeaderError, QiitaDBError,
2523
QiitaDBWarning)
2624
from qiita_db.sql_connection import SQLConnectionHandler
@@ -406,30 +404,3 @@ def update(self, md_template):
406404
# word qiime within the name of the file
407405
if '_qiime_' not in basename(fp):
408406
pt.create_qiime_mapping_file(fp)
409-
410-
def update_category(self, category, samples_and_values):
411-
"""Update an existing column
412-
413-
Parameters
414-
----------
415-
category : str
416-
The category to update
417-
samples_and_values : dict
418-
A mapping of {sample_id: value}
419-
420-
Raises
421-
------
422-
QiitaDBUnknownIDError
423-
If a sample_id is included in values that is not in the template
424-
QiitaDBColumnError
425-
If the column does not exist in the table. This is implicit, and
426-
can be thrown by the contained Samples.
427-
"""
428-
if not set(self.keys()).issuperset(samples_and_values):
429-
missing = set(self.keys()) - set(samples_and_values)
430-
table_name = self._table_name(self.study_id)
431-
raise QiitaDBUnknownIDError(missing, table_name)
432-
433-
for k, v in viewitems(samples_and_values):
434-
sample = self[k]
435-
sample[category] = v

qiita_db/metadata_template/test/test_prep_template.py

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1167,6 +1167,37 @@ def test_status(self):
11671167
self.test_study, self.data_type_id)
11681168
self.assertEqual(pt.status, 'sandbox')
11691169

1170+
def test_update_category(self):
1171+
with self.assertRaises(QiitaDBUnknownIDError):
1172+
self.tester.update_category('barcodesequence', {"foo": "bar"})
1173+
1174+
with self.assertRaises(QiitaDBColumnError):
1175+
self.tester.update_category('missing column',
1176+
{'1.SKB7.640196': 'bar'})
1177+
1178+
neg_test = self.tester['1.SKB7.640196']['barcodesequence']
1179+
mapping = {'1.SKB8.640193': 'AAAAAAAAAAAA',
1180+
'1.SKD8.640184': 'CCCCCCCCCCCC'}
1181+
1182+
self.tester.update_category('barcodesequence', mapping)
1183+
1184+
self.assertEqual(self.tester['1.SKB7.640196']['barcodesequence'],
1185+
neg_test)
1186+
self.assertEqual(self.tester['1.SKB8.640193']['barcodesequence'],
1187+
'AAAAAAAAAAAA')
1188+
self.assertEqual(self.tester['1.SKD8.640184']['barcodesequence'],
1189+
'CCCCCCCCCCCC')
1190+
1191+
neg_test = self.tester['1.SKB7.640196']['center_name']
1192+
mapping = {'1.SKB8.640193': 'FOO',
1193+
'1.SKD8.640184': 'BAR'}
1194+
1195+
self.tester.update_category('center_name', mapping)
1196+
1197+
self.assertEqual(self.tester['1.SKB7.640196']['center_name'], neg_test)
1198+
self.assertEqual(self.tester['1.SKB8.640193']['center_name'], 'FOO')
1199+
self.assertEqual(self.tester['1.SKD8.640184']['center_name'], 'BAR')
1200+
11701201

11711202
EXP_PREP_TEMPLATE = (
11721203
'sample_name\tbarcodesequence\tcenter_name\tcenter_project_name\t'

0 commit comments

Comments
 (0)