Skip to content

Commit fbff71c

Browse files
committed
Fixing merge conflicts
2 parents 418a71e + 3ad2264 commit fbff71c

File tree

3 files changed

+60
-30
lines changed

3 files changed

+60
-30
lines changed

qiita_db/metadata_template/base_metadata_template.py

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

11641164
return cols
1165+
1166+
def update_category(self, category, samples_and_values):
1167+
"""Update an existing column
1168+
1169+
Parameters
1170+
----------
1171+
category : str
1172+
The category to update
1173+
samples_and_values : dict
1174+
A mapping of {sample_id: value}
1175+
1176+
Raises
1177+
------
1178+
QiitaDBUnknownIDError
1179+
If a sample_id is included in values that is not in the template
1180+
QiitaDBColumnError
1181+
If the column does not exist in the table. This is implicit, and
1182+
can be thrown by the contained Samples.
1183+
"""
1184+
if not set(self.keys()).issuperset(samples_and_values):
1185+
missing = set(self.keys()) - set(samples_and_values)
1186+
table_name = self._table_name(self.study_id)
1187+
raise QiitaDBUnknownIDError(missing, table_name)
1188+
1189+
for k, v in viewitems(samples_and_values):
1190+
sample = self[k]
1191+
sample[category] = v

qiita_db/metadata_template/sample_template.py

Lines changed: 2 additions & 30 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 os.path import join
1312
from time import strftime
1413
from os.path import basename
@@ -17,8 +16,8 @@
1716
import warnings
1817

1918
from qiita_core.exceptions import IncompetentQiitaDeveloperError
20-
from qiita_db.exceptions import (QiitaDBDuplicateError, QiitaDBUnknownIDError,
21-
QiitaDBError, QiitaDBWarning)
19+
from qiita_db.exceptions import (QiitaDBDuplicateError, QiitaDBError,
20+
QiitaDBWarning)
2221
from qiita_db.sql_connection import SQLConnectionHandler
2322
from qiita_db.util import (get_table_cols, get_required_sample_info_status,
2423
get_mountpoint, scrub_data)
@@ -338,33 +337,6 @@ def update(self, md_template):
338337
if '_qiime_' not in basename(fp):
339338
pt.create_qiime_mapping_file(fp)
340339

341-
def update_category(self, category, samples_and_values):
342-
"""Update an existing column
343-
344-
Parameters
345-
----------
346-
category : str
347-
The category to update
348-
samples_and_values : dict
349-
A mapping of {sample_id: value}
350-
351-
Raises
352-
------
353-
QiitaDBUnknownIDError
354-
If a sample_id is included in values that is not in the template
355-
QiitaDBColumnError
356-
If the column does not exist in the table. This is implicit, and
357-
can be thrown by the contained Samples.
358-
"""
359-
if not set(self.keys()).issuperset(samples_and_values):
360-
missing = set(self.keys()) - set(samples_and_values)
361-
table_name = self._table_name(self.study_id)
362-
raise QiitaDBUnknownIDError(missing, table_name)
363-
364-
for k, v in viewitems(samples_and_values):
365-
sample = self[k]
366-
sample[category] = v
367-
368340
def add_category(self, category, samples_and_values, dtype, default):
369341
"""Add a metadata category
370342

qiita_db/metadata_template/test/test_prep_template.py

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

1253+
def test_update_category(self):
1254+
with self.assertRaises(QiitaDBUnknownIDError):
1255+
self.tester.update_category('barcodesequence', {"foo": "bar"})
1256+
1257+
with self.assertRaises(QiitaDBColumnError):
1258+
self.tester.update_category('missing column',
1259+
{'1.SKB7.640196': 'bar'})
1260+
1261+
neg_test = self.tester['1.SKB7.640196']['barcodesequence']
1262+
mapping = {'1.SKB8.640193': 'AAAAAAAAAAAA',
1263+
'1.SKD8.640184': 'CCCCCCCCCCCC'}
1264+
1265+
self.tester.update_category('barcodesequence', mapping)
1266+
1267+
self.assertEqual(self.tester['1.SKB7.640196']['barcodesequence'],
1268+
neg_test)
1269+
self.assertEqual(self.tester['1.SKB8.640193']['barcodesequence'],
1270+
'AAAAAAAAAAAA')
1271+
self.assertEqual(self.tester['1.SKD8.640184']['barcodesequence'],
1272+
'CCCCCCCCCCCC')
1273+
1274+
neg_test = self.tester['1.SKB7.640196']['center_name']
1275+
mapping = {'1.SKB8.640193': 'FOO',
1276+
'1.SKD8.640184': 'BAR'}
1277+
1278+
self.tester.update_category('center_name', mapping)
1279+
1280+
self.assertEqual(self.tester['1.SKB7.640196']['center_name'], neg_test)
1281+
self.assertEqual(self.tester['1.SKB8.640193']['center_name'], 'FOO')
1282+
self.assertEqual(self.tester['1.SKD8.640184']['center_name'], 'BAR')
1283+
12531284

12541285
EXP_PREP_TEMPLATE = (
12551286
'sample_name\tbarcodesequence\tcenter_name\tcenter_project_name\t'

0 commit comments

Comments
 (0)