Skip to content

Commit 5c7fba0

Browse files
committed
rm circular import
1 parent db968c3 commit 5c7fba0

File tree

4 files changed

+27
-20
lines changed

4 files changed

+27
-20
lines changed

qiita_db/analysis.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -215,6 +215,22 @@ def create(cls, owner, name, description, from_default=False,
215215
job.submit()
216216
return instance
217217

218+
@classmethod
219+
def delete_analysis_artifacts(cls, _id):
220+
"""Deletes the artifacts linked to an artifact and then the analysis
221+
222+
Parameters
223+
----------
224+
_id : int
225+
The analysis id
226+
"""
227+
analysis = cls(_id)
228+
aids = [a.id for a in analysis.artifacts if not a.parents]
229+
aids.sort(reverse=True)
230+
for aid in aids:
231+
cls.delete(aid)
232+
cls.delete(analysis.id)
233+
218234
@classmethod
219235
def delete(cls, _id):
220236
"""Deletes an analysis

qiita_db/metadata_template/prep_template.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111
from iteration_utilities import duplicates
1212

1313
from qiita_core.exceptions import IncompetentQiitaDeveloperError
14-
from qiita_ware.private_plugin import _delete_analysis_artifacts
1514
import qiita_db as qdb
1615
from .constants import (PREP_TEMPLATE_COLUMNS, TARGET_GENE_DATA_TYPES,
1716
PREP_TEMPLATE_COLUMNS_TARGET_GENE)
@@ -281,6 +280,7 @@ def delete(cls, id_):
281280
qdb.sql_connection.TRN.add(sql, args)
282281
archived_artifacts = set(
283282
qdb.sql_connection.TRN.execute_fetchflatten())
283+
ANALYSIS = qdb.analysis.Analysis
284284
if archived_artifacts:
285285
for aid in archived_artifacts:
286286
# before we can delete the archived artifact, we need
@@ -294,9 +294,11 @@ def delete(cls, id_):
294294
qdb.sql_connection.TRN.add(sql, [aid])
295295
analyses = set(
296296
qdb.sql_connection.TRN.execute_fetchflatten())
297-
for _id in analyses:
298-
_delete_analysis_artifacts(qdb.analysis.Analysis(_id))
299-
qdb.artifact.Artifact.delete(aid)
297+
if analyses:
298+
for _id in analyses:
299+
ANALYSIS.delete_analysis_artifacts(_id)
300+
else:
301+
ANALYSIS.delete(aid)
300302

301303
# Delete the prep template filepaths
302304
sql = """DELETE FROM qiita.prep_template_filepath

qiita_db/test/test_artifact.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@
2323
from qiita_core.util import qiita_test_checker
2424
from qiita_core.testing import wait_for_processing_job
2525
import qiita_db as qdb
26-
from qiita_ware.private_plugin import _delete_analysis_artifacts
2726

2827

2928
class ArtifactTestsReadOnly(TestCase):
@@ -1559,9 +1558,9 @@ def test_archive(self):
15591558
qdb.sql_connection.perform_as_transaction(sql)
15601559
sql = "UPDATE qiita.artifact SET visibility_id = 1"
15611560
qdb.sql_connection.perform_as_transaction(sql)
1562-
_delete_analysis_artifacts(qdb.analysis.Analysis(1))
1563-
_delete_analysis_artifacts(qdb.analysis.Analysis(2))
1564-
_delete_analysis_artifacts(qdb.analysis.Analysis(3))
1561+
qdb.analysis.Analysis.delete_analysis_artifacts(1)
1562+
qdb.analysis.Analysis.delete_analysis_artifacts(2)
1563+
qdb.analysis.Analysis.delete_analysis_artifacts(3)
15651564
for aid in [3, 2, 1]:
15661565
A.delete(aid)
15671566

qiita_ware/private_plugin.py

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -292,14 +292,6 @@ def delete_sample_or_column(job):
292292
job._set_status('success')
293293

294294

295-
def _delete_analysis_artifacts(analysis):
296-
aids = [a.id for a in analysis.artifacts if not a.parents]
297-
aids.sort(reverse=True)
298-
for aid in aids:
299-
qdb.artifact.Artifact.delete(aid)
300-
qdb.analysis.Analysis.delete(analysis.id)
301-
302-
303295
def delete_study(job):
304296
"""Deletes a full study
305297
@@ -315,7 +307,7 @@ def delete_study(job):
315307

316308
# deleting analyses
317309
for analysis in study.analyses():
318-
_delete_analysis_artifacts(analysis)
310+
qdb.analysis.Analysis.delete_analysis_artifacts(analysis)
319311

320312
for pt in study.prep_templates():
321313
if pt.artifact is not None:
@@ -375,9 +367,7 @@ def delete_analysis(job):
375367
"""
376368
with qdb.sql_connection.TRN:
377369
analysis_id = job.parameters.values['analysis_id']
378-
analysis = qdb.analysis.Analysis(analysis_id)
379-
380-
_delete_analysis_artifacts(analysis)
370+
qdb.analysis.Analysis.delete_analysis_artifacts(analysis_id)
381371

382372
r_client.delete('analysis_delete_%d' % analysis_id)
383373

0 commit comments

Comments
 (0)