Skip to content

Commit 5e54547

Browse files
Merge pull request #3169 from antgonza/update-python
Python 3.9
2 parents 714f358 + e551545 commit 5e54547

File tree

7 files changed

+43
-39
lines changed

7 files changed

+43
-39
lines changed

.github/workflows/qiita-ci.yml

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ jobs:
4545
uses: conda-incubator/setup-miniconda@v2
4646
with:
4747
auto-update-conda: true
48-
python-version: 3.6
48+
python-version: '3.9'
4949

5050
- name: Basic dependencies install
5151
env:
@@ -63,7 +63,10 @@ jobs:
6363
6464
# Setting up main qiita conda environment
6565
conda config --add channels conda-forge
66-
conda create -q --yes -n qiita python=3.6 pip==9.0.3 libgfortran numpy nginx cython redis
66+
conda deactivate
67+
conda install --quiet mamba
68+
mamba create --quiet --yes -n qiita python=3.9 pip libgfortran numpy nginx cython redis
69+
conda env list
6770
conda activate qiita
6871
pip install -U pip
6972
pip install sphinx sphinx-bootstrap-theme nose-timer Click coverage
@@ -91,6 +94,7 @@ jobs:
9194
export QIITA_SERVER_CERT=`pwd`/qiita_core/support_files/server.crt
9295
export QIITA_CONFIG_FP=`pwd`/qiita_core/support_files/config_test.cfg
9396
export REDBIOM_HOST="http://localhost:7379"
97+
9498
pip install . --no-binary redbiom
9599
pwd
96100
mkdir ~/.qiita_plugins
@@ -99,7 +103,7 @@ jobs:
99103
shell: bash -l {0}
100104
run: |
101105
wget https://data.qiime2.org/distro/core/qiime2-2019.4-py36-linux-conda.yml
102-
conda env create -q -n qtp-biom --file qiime2-2019.4-py36-linux-conda.yml
106+
mamba env create --quiet -n qtp-biom --file qiime2-2019.4-py36-linux-conda.yml
103107
rm qiime2-2019.4-py36-linux-conda.yml
104108
export QIITA_SERVER_CERT=`pwd`/qiita_core/support_files/server.crt
105109
export QIITA_CONFIG_FP=`pwd`/qiita_core/support_files/config_test.cfg
@@ -210,7 +214,7 @@ jobs:
210214
- name: flake8
211215
uses: actions/setup-python@v2
212216
with:
213-
python-version: 3.6
217+
python-version: '3.9'
214218
- name: install dependencies
215219
run: python -m pip install --upgrade pip
216220
- name: Check out repository code

qiita_db/metadata_template/base_metadata_template.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@
4141

4242
import pandas as pd
4343
import numpy as np
44-
from skbio.util import find_duplicates
44+
from iteration_utilities import duplicates
4545
import warnings
4646

4747
from qiita_core.exceptions import IncompetentQiitaDeveloperError
@@ -525,7 +525,7 @@ def _clean_validate_template(cls, md_template, study_id,
525525

526526
if len(set(md_template.index)) != len(md_template.index):
527527
raise qdb.exceptions.QiitaDBDuplicateSamplesError(
528-
find_duplicates(md_template.index))
528+
set(duplicates(md_template.index)))
529529

530530
# We are going to modify the md_template. We create a copy so
531531
# we don't modify the user one
@@ -584,7 +584,7 @@ def _clean_validate_template(cls, md_template, study_id,
584584
# Check that we don't have duplicate columns
585585
if len(set(md_template.columns)) != len(md_template.columns):
586586
raise qdb.exceptions.QiitaDBDuplicateHeaderError(
587-
find_duplicates(md_template.columns))
587+
set(duplicates(md_template.columns)))
588588

589589
return md_template
590590

qiita_db/metadata_template/prep_template.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
from itertools import chain
99
from os.path import join
1010
from copy import deepcopy
11-
from skbio.util import find_duplicates
11+
from iteration_utilities import duplicates
1212

1313
from qiita_core.exceptions import IncompetentQiitaDeveloperError
1414
import qiita_db as qdb
@@ -34,7 +34,7 @@ def _check_duplicated_columns(prep_cols, sample_cols):
3434
If there are duplicated columns names in the sample and the prep
3535
"""
3636
prep_cols.extend(sample_cols)
37-
dups = find_duplicates(prep_cols)
37+
dups = set(duplicates(prep_cols))
3838
if dups:
3939
raise qdb.exceptions.QiitaDBColumnError(
4040
'Duplicated column names in the sample and prep info '

qiita_db/metadata_template/util.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
import pandas as pd
1111
import numpy as np
1212
import warnings
13-
from skbio.util import find_duplicates
13+
from iteration_utilities import duplicates
1414

1515
import qiita_db as qdb
1616

@@ -131,7 +131,7 @@ def load_template_to_dataframe(fn, index='sample_name'):
131131
raise ValueError(
132132
'Your file has empty columns headers.')
133133
raise qdb.exceptions.QiitaDBDuplicateHeaderError(
134-
find_duplicates(newcols))
134+
set(duplicates(newcols)))
135135
else:
136136
# .strip will remove odd chars, newlines, tabs and multiple
137137
# spaces but we need to read a new line at the end of the

qiita_ware/ebi.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
# The full license is in the file LICENSE, distributed with this software.
77
# -----------------------------------------------------------------------------
88

9+
import hashlib
910
from os.path import basename, join, isdir, isfile, exists
1011
from shutil import copyfile, rmtree
1112
from os import remove, listdir, makedirs
@@ -18,7 +19,6 @@
1819
from gzip import GzipFile
1920
from functools import partial
2021
from h5py import File
21-
from skbio.util import safe_md5
2222
from qiita_files.demux import to_per_sample_ascii
2323

2424
from qiita_core.qiita_settings import qiita_config
@@ -584,7 +584,7 @@ def _add_file_subelement(self, add_file, file_type, sample_name,
584584

585585
file_path = self.sample_demux_fps[sample_name] + suffix
586586
with open(file_path, 'rb') as fp:
587-
md5 = safe_md5(fp).hexdigest()
587+
md5 = hashlib.md5(fp.read()).hexdigest()
588588

589589
file_details = {'filetype': file_type,
590590
'quality_scoring_system': 'phred',

qiita_ware/test/test_ebi.py

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
import pandas as pd
1717
import warnings
1818
from datetime import date
19-
from skbio.util import safe_md5
19+
import hashlib
2020

2121
from h5py import File
2222
from qiita_files.demux import to_hdf5
@@ -558,8 +558,8 @@ def test_generate_run_xml(self):
558558

559559
md5_sums = {}
560560
for s, fp in submission.sample_demux_fps.items():
561-
md5_sums[s] = safe_md5(
562-
open(fp + submission.FWD_READ_SUFFIX, 'rb')).hexdigest()
561+
md5_sums[s] = hashlib.md5(
562+
open(fp + submission.FWD_READ_SUFFIX, 'rb').read()).hexdigest()
563563

564564
exp = RUNXML_NEWSTUDY % {
565565
'study_alias': submission._get_study_alias(),
@@ -1650,9 +1650,9 @@ def test_parse_EBI_reply(self):
16501650
<EXPERIMENT_REF accession="ERX0000008" />
16511651
<DATA_BLOCK>
16521652
<FILES>
1653-
<FILE checksum="a32357beb845f5b598f1a712fb3b4c70" \
1654-
checksum_method="MD5" filename="%(ebi_dir)s/1.SKB2.640194.R1.fastq.gz" \
1655-
filetype="fastq" quality_scoring_system="phred" />
1653+
<FILE filetype="fastq" quality_scoring_system="phred" \
1654+
checksum_method="MD5" checksum="a32357beb845f5b598f1a712fb3b4c70" \
1655+
filename="%(ebi_dir)s/1.SKB2.640194.R1.fastq.gz" />
16561656
</FILES>
16571657
</DATA_BLOCK>
16581658
</RUN>
@@ -1661,9 +1661,9 @@ def test_parse_EBI_reply(self):
16611661
<EXPERIMENT_REF accession="ERX0000024" />
16621662
<DATA_BLOCK>
16631663
<FILES>
1664-
<FILE checksum="deb905ced92812a65a2158fdcfd0f84d" \
1665-
checksum_method="MD5" filename="%(ebi_dir)s/1.SKB3.640195.R1.fastq.gz" \
1666-
filetype="fastq" quality_scoring_system="phred" />
1664+
<FILE filetype="fastq" quality_scoring_system="phred" \
1665+
checksum_method="MD5" checksum="deb905ced92812a65a2158fdcfd0f84d" \
1666+
filename="%(ebi_dir)s/1.SKB3.640195.R1.fastq.gz" />
16671667
</FILES>
16681668
</DATA_BLOCK>
16691669
</RUN>
@@ -1672,9 +1672,9 @@ def test_parse_EBI_reply(self):
16721672
<EXPERIMENT_REF accession="ERX0000025" />
16731673
<DATA_BLOCK>
16741674
<FILES>
1675-
<FILE checksum="847ba142770397a2fae3a8acfbc70640" \
1676-
checksum_method="MD5" filename="%(ebi_dir)s/1.SKB6.640176.R1.fastq.gz" \
1677-
filetype="fastq" quality_scoring_system="phred" />
1675+
<FILE filetype="fastq" quality_scoring_system="phred" \
1676+
checksum_method="MD5" checksum="847ba142770397a2fae3a8acfbc70640" \
1677+
filename="%(ebi_dir)s/1.SKB6.640176.R1.fastq.gz" />
16781678
</FILES>
16791679
</DATA_BLOCK>
16801680
</RUN>
@@ -1683,9 +1683,9 @@ def test_parse_EBI_reply(self):
16831683
<EXPERIMENT_REF accession="ERX0000004" />
16841684
<DATA_BLOCK>
16851685
<FILES>
1686-
<FILE checksum="0dc19bc7ad4ab613c3f738cc9eb57e2c" \
1687-
checksum_method="MD5" filename="%(ebi_dir)s/1.SKM4.640180.R1.fastq.gz" \
1688-
filetype="fastq" quality_scoring_system="phred" />
1686+
<FILE filetype="fastq" quality_scoring_system="phred" \
1687+
checksum_method="MD5" checksum="0dc19bc7ad4ab613c3f738cc9eb57e2c" \
1688+
filename="%(ebi_dir)s/1.SKM4.640180.R1.fastq.gz" />
16891689
</FILES>
16901690
</DATA_BLOCK>
16911691
</RUN>
@@ -1701,9 +1701,9 @@ def test_parse_EBI_reply(self):
17011701
%(study_id)s.Sample1" />
17021702
<DATA_BLOCK>
17031703
<FILES>
1704-
<FILE checksum="%(sample_1)s" \
1705-
checksum_method="MD5" filename="%(ebi_dir)s/%(study_id)s.Sample1.R1.fastq.gz" \
1706-
filetype="fastq" quality_scoring_system="phred" />
1704+
<FILE filetype="fastq" quality_scoring_system="phred" \
1705+
checksum_method="MD5" checksum="%(sample_1)s" \
1706+
filename="%(ebi_dir)s/%(study_id)s.Sample1.R1.fastq.gz" />
17071707
</FILES>
17081708
</DATA_BLOCK>
17091709
</RUN>
@@ -1713,9 +1713,9 @@ def test_parse_EBI_reply(self):
17131713
%(study_id)s.Sample2" />
17141714
<DATA_BLOCK>
17151715
<FILES>
1716-
<FILE checksum="%(sample_2)s" \
1717-
checksum_method="MD5" filename="%(ebi_dir)s/%(study_id)s.Sample2.R1.fastq.gz" \
1718-
filetype="fastq" quality_scoring_system="phred" />
1716+
<FILE filetype="fastq" quality_scoring_system="phred" \
1717+
checksum_method="MD5" checksum="%(sample_2)s" \
1718+
filename="%(ebi_dir)s/%(study_id)s.Sample2.R1.fastq.gz" />
17191719
</FILES>
17201720
</DATA_BLOCK>
17211721
</RUN>
@@ -1725,9 +1725,9 @@ def test_parse_EBI_reply(self):
17251725
%(study_id)s.Sample3" />
17261726
<DATA_BLOCK>
17271727
<FILES>
1728-
<FILE checksum="%(sample_3)s" \
1729-
checksum_method="MD5" filename="%(ebi_dir)s/%(study_id)s.Sample3.R1.fastq.gz" \
1730-
filetype="fastq" quality_scoring_system="phred" />
1728+
<FILE filetype="fastq" quality_scoring_system="phred" \
1729+
checksum_method="MD5" checksum="%(sample_3)s" \
1730+
filename="%(ebi_dir)s/%(study_id)s.Sample3.R1.fastq.gz" />
17311731
</FILES>
17321732
</DATA_BLOCK>
17331733
</RUN>

setup.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -105,13 +105,13 @@
105105
install_requires=['psycopg2', 'click', 'bcrypt', 'pandas',
106106
'biom-format', 'tornado<6.0', 'toredis', 'redis',
107107
'scp', 'pyparsing', 'h5py', 'natsort', 'nose', 'pep8',
108-
'networkx', 'humanize', 'scikit-bio', 'wtforms<3.0.0',
108+
'networkx', 'humanize', 'wtforms<3.0.0',
109109
'openpyxl', 'sphinx-bootstrap-theme', 'Sphinx', 'nltk',
110110
'gitpython', 'redbiom', 'pyzmq', 'sphinx_rtd_theme',
111111
'paramiko', 'seaborn', 'matplotlib', 'scipy', 'nose',
112112
'flake8', 'six', 'qiita-files @ https://github.com/'
113113
'qiita-spots/qiita-files/archive/master.zip', 'mock',
114-
'python-jose', 'markdown2',
114+
'python-jose', 'markdown2', 'iteration_utilities',
115115
'supervisor @ https://github.com/Supervisor/'
116116
'supervisor/archive/master.zip', 'joblib'],
117117
classifiers=classifiers

0 commit comments

Comments
 (0)