From de0bb21fb3a1ec4a1a9fb1da69468a7c45fd7a30 Mon Sep 17 00:00:00 2001 From: ruff-isort Date: Wed, 26 Jun 2024 13:15:44 +0900 Subject: [PATCH] Apply isort (forcing single lines, not sorting by type) via ruff $ ruff check --fix --select=I \ --config=lint.isort.force-single-line=true \ --config=lint.isort.order-by-type=false \ BioSQL/ Bio/ Tests/ Scripts/ Doc/ setup.py Using ruff version 0.4.10 --- Bio/Align/Applications/_ClustalOmega.py | 4 +- Bio/Align/Applications/_Clustalw.py | 5 +- Bio/Align/Applications/_Dialign.py | 5 +- Bio/Align/Applications/_MSAProbs.py | 5 +- Bio/Align/Applications/_Mafft.py | 5 +- Bio/Align/Applications/_Muscle.py | 4 +- Bio/Align/Applications/_Prank.py | 4 +- Bio/Align/Applications/_Probcons.py | 5 +- Bio/Align/Applications/_TCoffee.py | 4 +- Bio/Align/Applications/__init__.py | 10 +- Bio/Align/__init__.py | 19 ++-- Bio/Align/analysis.py | 12 ++- Bio/Align/bed.py | 2 +- Bio/Align/bigbed.py | 9 +- Bio/Align/bigmaf.py | 18 ++-- Bio/Align/bigpsl.py | 20 ++-- Bio/Align/chain.py | 1 - Bio/Align/exonerate.py | 1 - Bio/Align/interfaces.py | 3 +- Bio/Align/maf.py | 6 +- Bio/Align/mauve.py | 3 +- Bio/Align/msf.py | 3 +- Bio/Align/nexus.py | 2 +- Bio/Align/phylip.py | 1 - Bio/Align/psl.py | 11 ++- Bio/Align/sam.py | 6 +- Bio/Align/substitution_matrices/__init__.py | 1 + Bio/Align/tabular.py | 4 +- Bio/AlignIO/FastaIO.py | 1 + Bio/AlignIO/MafIO.py | 1 - Bio/AlignIO/MauveIO.py | 2 - Bio/AlignIO/MsfIO.py | 1 + Bio/AlignIO/NexusIO.py | 5 +- Bio/AlignIO/PhylipIO.py | 1 - Bio/Application/__init__.py | 6 +- Bio/Blast/Applications.py | 4 +- Bio/Blast/NCBIWWW.py | 14 +-- Bio/Blast/NCBIXML.py | 2 +- Bio/Blast/__init__.py | 27 +++--- Bio/Blast/_parser.py | 19 ++-- Bio/Blast/_writers.py | 5 +- Bio/Data/CodonTable.py | 6 +- Bio/Emboss/Applications.py | 4 +- Bio/Entrez/Parser.py | 12 +-- Bio/Entrez/__init__.py | 8 +- Bio/ExPASy/ScanProsite.py | 3 +- Bio/ExPASy/__init__.py | 2 +- Bio/File.py | 8 +- Bio/GenBank/Scanner.py | 7 +- Bio/GenBank/__init__.py | 6 +- Bio/Graphics/BasicChromosome.py | 14 ++- Bio/Graphics/ColorSpiral.py | 5 +- Bio/Graphics/Comparative.py | 15 +-- Bio/Graphics/DisplayRepresentation.py | 1 - Bio/Graphics/Distribution.py | 13 +-- Bio/Graphics/GenomeDiagram/_AbstractDrawer.py | 12 ++- Bio/Graphics/GenomeDiagram/_CircularDrawer.py | 22 +++-- Bio/Graphics/GenomeDiagram/_Diagram.py | 8 +- Bio/Graphics/GenomeDiagram/_FeatureSet.py | 4 +- Bio/Graphics/GenomeDiagram/_Graph.py | 4 +- Bio/Graphics/GenomeDiagram/_LinearDrawer.py | 22 +++-- Bio/Graphics/GenomeDiagram/__init__.py | 10 +- Bio/Graphics/__init__.py | 4 +- Bio/HMM/MarkovModel.py | 4 +- Bio/HMM/Trainer.py | 4 +- Bio/HMM/Utilities.py | 1 - Bio/KEGG/Compound/__init__.py | 6 +- Bio/KEGG/Enzyme/__init__.py | 6 +- Bio/KEGG/Gene/__init__.py | 5 +- Bio/KEGG/KGML/KGML_parser.py | 12 ++- Bio/KEGG/KGML/KGML_pathway.py | 2 +- Bio/KEGG/REST.py | 3 +- Bio/LogisticRegression.py | 1 + Bio/MarkovModel.py | 1 + Bio/MaxEntropy.py | 2 +- Bio/NaiveBayes.py | 1 + Bio/Nexus/Nexus.py | 10 +- Bio/Nexus/Nodes.py | 4 +- Bio/Nexus/Trees.py | 2 +- Bio/PDB/Atom.py | 6 +- Bio/PDB/Chain.py | 5 +- Bio/PDB/DSSP.py | 9 +- Bio/PDB/Dice.py | 2 +- Bio/PDB/Entity.py | 10 +- Bio/PDB/FragmentMapper.py | 4 +- Bio/PDB/HSExposure.py | 3 +- Bio/PDB/MMCIFParser.py | 6 +- Bio/PDB/Model.py | 4 +- Bio/PDB/NACCESS.py | 10 +- Bio/PDB/NeighborSearch.py | 4 +- Bio/PDB/PDBIO.py | 7 +- Bio/PDB/PDBList.py | 4 +- Bio/PDB/PDBMLParser.py | 5 +- Bio/PDB/PDBParser.py | 5 +- Bio/PDB/PICIO.py | 47 +++++----- Bio/PDB/PSEA.py | 2 +- Bio/PDB/Polypeptide.py | 5 +- Bio/PDB/Residue.py | 8 +- Bio/PDB/ResidueDepth.py | 3 +- Bio/PDB/SCADIO.py | 10 +- Bio/PDB/Selection.py | 1 - Bio/PDB/Structure.py | 4 +- Bio/PDB/StructureAlignment.py | 1 - Bio/PDB/StructureBuilder.py | 21 +++-- Bio/PDB/Superimposer.py | 2 +- Bio/PDB/__init__.py | 94 +++++++++++-------- Bio/PDB/alphafold_db.py | 6 +- Bio/PDB/binary_cif.py | 3 +- Bio/PDB/cealign.py | 1 - Bio/PDB/ic_rebuild.py | 31 +++--- Bio/PDB/internal_coords.py | 48 +++++----- Bio/PDB/mmcifio.py | 3 +- Bio/PDB/mmtf/DefaultParser.py | 3 +- Bio/PDB/mmtf/__init__.py | 4 +- Bio/PDB/mmtf/mmtfio.py | 9 +- Bio/PDB/vectors.py | 4 +- Bio/Phylo/Applications/_Fasttree.py | 5 +- Bio/Phylo/Applications/_Phyml.py | 4 +- Bio/Phylo/Applications/_Raxml.py | 4 +- Bio/Phylo/Applications/__init__.py | 2 +- Bio/Phylo/BaseTree.py | 2 +- Bio/Phylo/CDAOIO.py | 6 +- Bio/Phylo/Consensus.py | 6 +- Bio/Phylo/NeXMLIO.py | 5 +- Bio/Phylo/NexusIO.py | 4 +- Bio/Phylo/PAML/_parse_baseml.py | 1 - Bio/Phylo/PAML/baseml.py | 3 +- Bio/Phylo/PAML/chi2.py | 3 +- Bio/Phylo/PAML/codeml.py | 3 +- Bio/Phylo/PAML/yn00.py | 3 +- Bio/Phylo/PhyloXML.py | 11 ++- Bio/Phylo/PhyloXMLIO.py | 1 - Bio/Phylo/__init__.py | 10 +- Bio/Phylo/_cdao_owl.py | 1 - Bio/Phylo/_io.py | 6 +- Bio/PopGen/GenePop/Controller.py | 3 +- Bio/PopGen/GenePop/EasyController.py | 3 +- Bio/Restriction/Restriction.py | 17 ++-- Bio/SCOP/Raf.py | 1 - Bio/SCOP/Residues.py | 1 - Bio/SCOP/__init__.py | 10 +- Bio/SVDSuperimposer/__init__.py | 7 +- Bio/SearchIO/BlastIO/__init__.py | 8 +- Bio/SearchIO/BlastIO/blast_tab.py | 6 +- Bio/SearchIO/BlastIO/blast_xml.py | 8 +- Bio/SearchIO/BlatIO.py | 6 +- Bio/SearchIO/ExonerateIO/__init__.py | 10 +- Bio/SearchIO/ExonerateIO/_base.py | 13 ++- Bio/SearchIO/ExonerateIO/exonerate_cigar.py | 4 +- Bio/SearchIO/ExonerateIO/exonerate_text.py | 12 +-- Bio/SearchIO/ExonerateIO/exonerate_vulgar.py | 5 +- Bio/SearchIO/FastaIO.py | 6 +- Bio/SearchIO/HHsuiteIO/hhsuite2_text.py | 5 +- Bio/SearchIO/HmmerIO/__init__.py | 25 ++--- Bio/SearchIO/HmmerIO/hmmer2_text.py | 5 +- Bio/SearchIO/HmmerIO/hmmer3_domtab.py | 8 +- Bio/SearchIO/HmmerIO/hmmer3_tab.py | 6 +- Bio/SearchIO/HmmerIO/hmmer3_text.py | 8 +- .../InterproscanIO/interproscan_xml.py | 6 +- Bio/SearchIO/__init__.py | 6 +- Bio/SearchIO/_index.py | 3 +- Bio/SearchIO/_model/__init__.py | 6 +- Bio/SearchIO/_model/_base.py | 3 +- Bio/SearchIO/_model/hit.py | 4 +- Bio/SearchIO/_model/hsp.py | 16 ++-- Bio/Seq.py | 6 +- Bio/SeqFeature.py | 4 +- Bio/SeqIO/AbiIO.py | 3 - Bio/SeqIO/FastaIO.py | 7 +- Bio/SeqIO/GckIO.py | 2 +- Bio/SeqIO/GfaIO.py | 5 +- Bio/SeqIO/InsdcIO.py | 4 +- Bio/SeqIO/Interfaces.py | 7 +- Bio/SeqIO/PdbIO.py | 1 - Bio/SeqIO/PhdIO.py | 6 +- Bio/SeqIO/PirIO.py | 1 - Bio/SeqIO/QualityIO.py | 26 +++-- Bio/SeqIO/SffIO.py | 12 ++- Bio/SeqIO/SnapGeneIO.py | 2 +- Bio/SeqIO/UniprotIO.py | 1 - Bio/SeqIO/XdnaIO.py | 4 +- Bio/SeqIO/__init__.py | 12 ++- Bio/SeqIO/_index.py | 2 +- Bio/SeqRecord.py | 41 ++++---- Bio/SeqUtils/CheckSum.py | 2 +- Bio/SeqUtils/MeltingTemp.py | 4 +- Bio/SeqUtils/ProtParam.py | 7 +- Bio/SeqUtils/__init__.py | 14 ++- Bio/Sequencing/Applications/_Novoalign.py | 3 +- Bio/Sequencing/Applications/__init__.py | 35 ++++--- Bio/Sequencing/Applications/_bwa.py | 5 +- Bio/Sequencing/Applications/_samtools.py | 7 +- Bio/Sequencing/Phd.py | 1 - Bio/SwissProt/__init__.py | 5 +- Bio/TogoWS/__init__.py | 8 +- Bio/UniProt/__init__.py | 5 +- Bio/_utils.py | 6 +- Bio/bgzf.py | 1 - Bio/codonalign/__init__.py | 22 ++--- Bio/codonalign/codonalignment.py | 21 +++-- Bio/codonalign/codonseq.py | 4 +- Bio/motifs/__init__.py | 11 ++- Bio/motifs/alignace.py | 2 +- Bio/motifs/applications/_xxmotif.py | 6 +- Bio/motifs/jaspar/__init__.py | 6 +- Bio/motifs/jaspar/db.py | 5 +- Bio/motifs/meme.py | 2 +- Bio/motifs/xms.py | 8 +- Bio/pairwise2.py | 2 +- Bio/phenotype/__init__.py | 1 - Bio/phenotype/phen_micro.py | 12 ++- BioSQL/BioSeq.py | 10 +- BioSQL/BioSeqDatabase.py | 4 +- BioSQL/DBUtils.py | 4 +- BioSQL/Loader.py | 9 +- Doc/conf.py | 3 +- Doc/examples/ACT_example.py | 9 +- Doc/examples/Proux_et_al_2002_Figure_6.py | 18 ++-- Doc/examples/clustal_run.py | 2 +- Doc/examples/nmr/simplepredict.py | 2 +- Doc/examples/swissprot.py | 3 +- Scripts/GenBank/check_output.py | 4 +- Scripts/GenBank/check_output_simple.py | 1 - Scripts/PDB/generate_three_to_one_dict.py | 1 - Scripts/PDB/hsexpo.py | 18 ++-- .../Performance/biosql_performance_load.py | 1 - .../Performance/biosql_performance_read.py | 1 - Scripts/Restriction/ranacompiler.py | 41 +++++--- Scripts/Restriction/rebase_update.py | 4 +- Scripts/SeqGui/SeqGui.py | 5 +- Scripts/query_pubmed.py | 2 +- Scripts/scop_pdb.py | 4 +- Scripts/xbbtools/xbb_blast.py | 6 +- Scripts/xbbtools/xbb_blastbg.py | 16 ++-- Scripts/xbbtools/xbb_search.py | 4 +- Scripts/xbbtools/xbb_translations.py | 4 +- Scripts/xbbtools/xbb_widget.py | 12 +-- Scripts/xbbtools/xbbtools.py | 1 - Tests/PAML/gen_results.py | 1 - Tests/common_BioSQL.py | 17 ++-- Tests/common_BioSQL_online.py | 25 ++--- Tests/run_tests.py | 15 +-- Tests/search_tests_common.py | 2 +- Tests/seq_tests_common.py | 13 ++- Tests/test_Affy.py | 7 +- Tests/test_AlignIO.py | 5 +- Tests/test_AlignIO_ClustalIO.py | 1 - Tests/test_AlignIO_EmbossIO.py | 1 - Tests/test_AlignIO_MauveIO.py | 1 - Tests/test_AlignIO_PhylipIO.py | 1 - Tests/test_AlignIO_convert.py | 1 - Tests/test_AlignInfo.py | 8 +- Tests/test_Align_Alignment.py | 7 +- Tests/test_Align_a2m.py | 5 +- Tests/test_Align_bed.py | 10 +- Tests/test_Align_bigbed.py | 9 +- Tests/test_Align_bigmaf.py | 5 +- Tests/test_Align_bigpsl.py | 10 +- Tests/test_Align_chain.py | 15 +-- Tests/test_Align_clustal.py | 5 +- Tests/test_Align_codonalign.py | 12 ++- Tests/test_Align_emboss.py | 2 - Tests/test_Align_exonerate.py | 3 +- Tests/test_Align_fasta.py | 5 +- Tests/test_Align_hhr.py | 3 +- Tests/test_Align_maf.py | 2 - Tests/test_Align_mauve.py | 7 +- Tests/test_Align_msf.py | 3 +- Tests/test_Align_nexus.py | 1 - Tests/test_Align_phylip.py | 2 - Tests/test_Align_psl.py | 15 +-- Tests/test_Align_sam.py | 6 +- Tests/test_Align_stockholm.py | 2 - Tests/test_Align_tabular.py | 7 +- Tests/test_Application.py | 3 +- Tests/test_BWA_tool.py | 11 +-- Tests/test_BioSQL_MySQLdb.py | 3 +- Tests/test_BioSQL_MySQLdb_online.py | 9 +- Tests/test_BioSQL_mysql_connector.py | 4 +- Tests/test_BioSQL_mysql_connector_online.py | 9 +- Tests/test_BioSQL_psycopg2.py | 3 +- Tests/test_BioSQL_psycopg2_online.py | 9 +- Tests/test_BioSQL_sqlite3.py | 12 +-- Tests/test_BioSQL_sqlite3_online.py | 9 +- Tests/test_Blast_parser.py | 2 +- Tests/test_CAPS.py | 6 +- Tests/test_Chi2.py | 1 + Tests/test_ClustalOmega_tool.py | 6 +- Tests/test_Clustalw_tool.py | 9 +- Tests/test_Cluster.py | 42 ++++++--- Tests/test_CodonTable.py | 29 +++--- Tests/test_ColorSpiral.py | 8 +- Tests/test_Consensus.py | 7 +- Tests/test_Dialign_tool.py | 4 +- Tests/test_EMBL_unittest.py | 2 +- Tests/test_Emboss.py | 15 +-- Tests/test_EmbossPhylipNew.py | 18 ++-- Tests/test_EmbossPrimer.py | 4 +- Tests/test_Entrez.py | 8 +- Tests/test_Entrez_online.py | 10 +- Tests/test_Entrez_parser.py | 8 +- Tests/test_Enzyme.py | 2 +- Tests/test_ExPASy.py | 4 +- Tests/test_Fasttree_tool.py | 17 ++-- Tests/test_GenBank.py | 11 +-- Tests/test_GenomeDiagram.py | 24 ++--- Tests/test_GraphicsChromosome.py | 11 +-- Tests/test_HMMGeneral.py | 8 +- Tests/test_KEGG.py | 2 +- Tests/test_KEGG_online.py | 13 ++- Tests/test_KGML_graphics.py | 12 +-- Tests/test_KGML_graphics_online.py | 9 +- Tests/test_KGML_nographics.py | 2 +- Tests/test_KeyWList.py | 3 +- Tests/test_MSAProbs_tool.py | 2 +- Tests/test_MafIO_index.py | 14 +-- Tests/test_Mafft_tool.py | 7 +- Tests/test_MarkovModel.py | 9 +- Tests/test_Muscle_tool.py | 7 +- Tests/test_NCBIXML.py | 1 + Tests/test_NCBI_BLAST_tools.py | 8 +- Tests/test_NCBI_qblast.py | 10 +- Tests/test_NMR.py | 6 +- Tests/test_Nexus.py | 21 +++-- Tests/test_PAML_baseml.py | 3 +- Tests/test_PAML_codeml.py | 5 +- Tests/test_PAML_tools.py | 7 +- Tests/test_PAML_yn00.py | 5 +- Tests/test_PDB_DSSP.py | 7 +- Tests/test_PDB_Dice.py | 4 +- Tests/test_PDB_Disordered.py | 3 +- Tests/test_PDB_Exposure.py | 4 +- Tests/test_PDB_FragmentMapper.py | 2 +- Tests/test_PDB_KDTree.py | 5 +- Tests/test_PDB_MMCIF2Dict.py | 4 +- Tests/test_PDB_MMCIFIO.py | 8 +- Tests/test_PDB_MMCIFParser.py | 19 ++-- Tests/test_PDB_NACCESS.py | 4 +- Tests/test_PDB_PDBIO.py | 13 +-- Tests/test_PDB_PDBList.py | 4 +- Tests/test_PDB_PDBParser.py | 5 +- Tests/test_PDB_PSEA.py | 8 +- Tests/test_PDB_Polypeptide.py | 4 +- Tests/test_PDB_QCPSuperimposer.py | 3 +- Tests/test_PDB_ResidueDepth.py | 4 +- Tests/test_PDB_SMCRA.py | 12 ++- Tests/test_PDB_Selection.py | 2 +- Tests/test_PDB_StructureAlignment.py | 4 +- Tests/test_PDB_Superimposer.py | 3 +- Tests/test_PDB_alphafold_db.py | 3 +- Tests/test_PDB_internal_coords.py | 32 +++---- Tests/test_PDB_parse_pdb_header.py | 3 +- Tests/test_PDB_vectors.py | 24 ++--- Tests/test_PQR.py | 11 ++- Tests/test_Phylo.py | 4 +- Tests/test_PhyloXML.py | 6 +- Tests/test_Phylo_CDAO.py | 2 +- Tests/test_Phylo_NeXML.py | 1 - Tests/test_Phylo_igraph.py | 3 +- Tests/test_Phylo_matplotlib.py | 3 +- Tests/test_Phylo_networkx.py | 3 +- Tests/test_PopGen_GenePop_nodepend.py | 3 +- Tests/test_Prank_tool.py | 9 +- Tests/test_Probcons_tool.py | 6 +- Tests/test_ProtParam.py | 4 +- Tests/test_RCSBFormats.py | 5 +- Tests/test_Restriction.py | 45 ++++----- Tests/test_SCOP_Astral.py | 3 +- Tests/test_SCOP_Raf.py | 2 +- Tests/test_SCOP_Residues.py | 1 + Tests/test_SCOP_Scop.py | 4 +- Tests/test_SVDSuperimposer.py | 9 +- Tests/test_SearchIO_blast_tab_index.py | 3 +- Tests/test_SearchIO_blast_xml.py | 1 - Tests/test_SearchIO_blast_xml_index.py | 3 +- Tests/test_SearchIO_blat_psl.py | 1 - Tests/test_SearchIO_exonerate.py | 4 +- Tests/test_SearchIO_fasta_m10.py | 1 - Tests/test_SearchIO_hhsuite2_text.py | 1 - Tests/test_SearchIO_hmmer2_text.py | 3 +- Tests/test_SearchIO_hmmer2_text_index.py | 3 +- Tests/test_SearchIO_hmmer3_domtab.py | 1 - Tests/test_SearchIO_hmmer3_domtab_index.py | 3 +- Tests/test_SearchIO_hmmer3_tab.py | 1 - Tests/test_SearchIO_hmmer3_tab_index.py | 3 +- Tests/test_SearchIO_hmmer3_text.py | 1 - Tests/test_SearchIO_hmmer3_text_index.py | 3 +- Tests/test_SearchIO_interproscan_xml.py | 1 - Tests/test_SearchIO_model.py | 8 +- Tests/test_SearchIO_write.py | 4 +- Tests/test_SeqFeature.py | 5 +- Tests/test_SeqIO.py | 2 - Tests/test_SeqIO_AbiIO.py | 1 - Tests/test_SeqIO_FastaIO.py | 1 - Tests/test_SeqIO_Gck.py | 1 - Tests/test_SeqIO_Insdc.py | 15 +-- Tests/test_SeqIO_NibIO.py | 1 - Tests/test_SeqIO_PdbIO.py | 5 +- Tests/test_SeqIO_QualityIO.py | 6 +- Tests/test_SeqIO_SeqXML.py | 1 - Tests/test_SeqIO_SnapGene.py | 1 - Tests/test_SeqIO_Xdna.py | 3 +- Tests/test_SeqIO_features.py | 8 +- Tests/test_SeqIO_index.py | 14 ++- Tests/test_SeqIO_write.py | 5 +- Tests/test_SeqRecord.py | 5 +- Tests/test_SeqUtils.py | 2 +- Tests/test_Seq_objs.py | 5 +- Tests/test_SffIO.py | 9 +- Tests/test_TCoffee_tool.py | 6 +- Tests/test_TogoWS.py | 11 ++- Tests/test_TreeConstruction.py | 11 +-- Tests/test_Tutorial.py | 10 +- Tests/test_UniGene.py | 3 +- Tests/test_UniProt.py | 5 +- Tests/test_UniProt_GOA.py | 5 +- Tests/test_UniProt_Parser.py | 4 +- Tests/test_XXmotif_tool.py | 3 +- Tests/test_align.py | 11 ++- Tests/test_align_substitution_matrices.py | 4 +- Tests/test_codonalign.py | 12 +-- Tests/test_mmtf.py | 16 ++-- Tests/test_mmtf_online.py | 6 +- Tests/test_motifs.py | 2 +- Tests/test_motifs_online.py | 4 +- Tests/test_pairwise2_no_C.py | 1 - Tests/test_pairwise_aligner.py | 6 +- Tests/test_pairwise_alignment_map.py | 7 +- Tests/test_phenotype.py | 4 +- Tests/test_phenotype_fit.py | 3 +- Tests/test_phyml_tool.py | 8 +- Tests/test_prodoc.py | 1 + Tests/test_raxml_tool.py | 5 +- Tests/test_samtools_tool.py | 9 +- Tests/test_seq.py | 13 ++- setup.py | 8 +- 436 files changed, 1702 insertions(+), 1377 deletions(-) diff --git a/Bio/Align/Applications/_ClustalOmega.py b/Bio/Align/Applications/_ClustalOmega.py index 3a8e86c0b..f85b3e7c0 100644 --- a/Bio/Align/Applications/_ClustalOmega.py +++ b/Bio/Align/Applications/_ClustalOmega.py @@ -7,7 +7,9 @@ # package. """Command line wrapper for the multiple alignment program Clustal Omega.""" -from Bio.Application import _Option, _Switch, AbstractCommandline +from Bio.Application import _Option +from Bio.Application import _Switch +from Bio.Application import AbstractCommandline class ClustalOmegaCommandline(AbstractCommandline): diff --git a/Bio/Align/Applications/_Clustalw.py b/Bio/Align/Applications/_Clustalw.py index 2f1ddf9c2..4349212f0 100644 --- a/Bio/Align/Applications/_Clustalw.py +++ b/Bio/Align/Applications/_Clustalw.py @@ -7,7 +7,10 @@ """Command line wrapper for the multiple alignment program Clustal W.""" import os -from Bio.Application import _Option, _Switch, AbstractCommandline + +from Bio.Application import _Option +from Bio.Application import _Switch +from Bio.Application import AbstractCommandline class ClustalwCommandline(AbstractCommandline): diff --git a/Bio/Align/Applications/_Dialign.py b/Bio/Align/Applications/_Dialign.py index e0ac820a0..afa1de8d7 100644 --- a/Bio/Align/Applications/_Dialign.py +++ b/Bio/Align/Applications/_Dialign.py @@ -6,7 +6,10 @@ # package. """Command line wrapper for the multiple alignment program DIALIGN2-2.""" -from Bio.Application import _Option, _Argument, _Switch, AbstractCommandline +from Bio.Application import _Argument +from Bio.Application import _Option +from Bio.Application import _Switch +from Bio.Application import AbstractCommandline class DialignCommandline(AbstractCommandline): diff --git a/Bio/Align/Applications/_MSAProbs.py b/Bio/Align/Applications/_MSAProbs.py index 74b26a181..259d714ae 100644 --- a/Bio/Align/Applications/_MSAProbs.py +++ b/Bio/Align/Applications/_MSAProbs.py @@ -6,7 +6,10 @@ # package. """Command line wrapper for the multiple sequence alignment program MSAProbs.""" -from Bio.Application import _Argument, _Option, _Switch, AbstractCommandline +from Bio.Application import _Argument +from Bio.Application import _Option +from Bio.Application import _Switch +from Bio.Application import AbstractCommandline class MSAProbsCommandline(AbstractCommandline): diff --git a/Bio/Align/Applications/_Mafft.py b/Bio/Align/Applications/_Mafft.py index 82986c4da..3ad1022a3 100644 --- a/Bio/Align/Applications/_Mafft.py +++ b/Bio/Align/Applications/_Mafft.py @@ -6,7 +6,10 @@ # package. """Command line wrapper for the multiple alignment programme MAFFT.""" -from Bio.Application import _Option, _Switch, _Argument, AbstractCommandline +from Bio.Application import _Argument +from Bio.Application import _Option +from Bio.Application import _Switch +from Bio.Application import AbstractCommandline class MafftCommandline(AbstractCommandline): diff --git a/Bio/Align/Applications/_Muscle.py b/Bio/Align/Applications/_Muscle.py index ab9108af1..f4f72e12e 100644 --- a/Bio/Align/Applications/_Muscle.py +++ b/Bio/Align/Applications/_Muscle.py @@ -6,7 +6,9 @@ # package. """Command line wrapper for the multiple alignment program MUSCLE.""" -from Bio.Application import _Option, _Switch, AbstractCommandline +from Bio.Application import _Option +from Bio.Application import _Switch +from Bio.Application import AbstractCommandline class MuscleCommandline(AbstractCommandline): diff --git a/Bio/Align/Applications/_Prank.py b/Bio/Align/Applications/_Prank.py index 9d69dffc6..3f4da6220 100644 --- a/Bio/Align/Applications/_Prank.py +++ b/Bio/Align/Applications/_Prank.py @@ -6,7 +6,9 @@ # package. """Command line wrapper for the multiple alignment program PRANK.""" -from Bio.Application import _Option, _Switch, AbstractCommandline +from Bio.Application import _Option +from Bio.Application import _Switch +from Bio.Application import AbstractCommandline class PrankCommandline(AbstractCommandline): diff --git a/Bio/Align/Applications/_Probcons.py b/Bio/Align/Applications/_Probcons.py index dad5e855d..41ae07e88 100644 --- a/Bio/Align/Applications/_Probcons.py +++ b/Bio/Align/Applications/_Probcons.py @@ -6,7 +6,10 @@ # package. """Command line wrapper for the multiple alignment program PROBCONS.""" -from Bio.Application import _Option, _Switch, _Argument, AbstractCommandline +from Bio.Application import _Argument +from Bio.Application import _Option +from Bio.Application import _Switch +from Bio.Application import AbstractCommandline class ProbconsCommandline(AbstractCommandline): diff --git a/Bio/Align/Applications/_TCoffee.py b/Bio/Align/Applications/_TCoffee.py index f0da6234e..6dd4dbce5 100644 --- a/Bio/Align/Applications/_TCoffee.py +++ b/Bio/Align/Applications/_TCoffee.py @@ -6,7 +6,9 @@ # package. """Command line wrapper for the multiple alignment program TCOFFEE.""" -from Bio.Application import _Option, _Switch, AbstractCommandline +from Bio.Application import _Option +from Bio.Application import _Switch +from Bio.Application import AbstractCommandline class TCoffeeCommandline(AbstractCommandline): diff --git a/Bio/Align/Applications/__init__.py b/Bio/Align/Applications/__init__.py index 778a7dd80..2f7e9679c 100644 --- a/Bio/Align/Applications/__init__.py +++ b/Bio/Align/Applications/__init__.py @@ -10,15 +10,15 @@ We have decided to remove this module in future, and instead recommend building your command and invoking it via the subprocess module directly. """ -from ._Muscle import MuscleCommandline -from ._Clustalw import ClustalwCommandline from ._ClustalOmega import ClustalOmegaCommandline -from ._Prank import PrankCommandline -from ._Mafft import MafftCommandline +from ._Clustalw import ClustalwCommandline from ._Dialign import DialignCommandline +from ._Mafft import MafftCommandline +from ._MSAProbs import MSAProbsCommandline +from ._Muscle import MuscleCommandline +from ._Prank import PrankCommandline from ._Probcons import ProbconsCommandline from ._TCoffee import TCoffeeCommandline -from ._MSAProbs import MSAProbsCommandline # Make this explicit, then they show up in the API docs __all__ = ( diff --git a/Bio/Align/__init__.py b/Bio/Align/__init__.py index 05d06440c..fdb0d5830 100644 --- a/Bio/Align/__init__.py +++ b/Bio/Align/__init__.py @@ -13,18 +13,18 @@ class, used in the Bio.AlignIO module. """ -import sys import collections import copy import importlib +import numbers +import sys import types import warnings -import numbers +from abc import ABC +from abc import abstractmethod from itertools import zip_longest -from abc import ABC, abstractmethod from typing import Dict - try: import numpy as np except ImportError: @@ -37,13 +37,17 @@ except ImportError: from Bio import BiopythonDeprecationWarning from Bio.Align import _aligncore # type: ignore -from Bio.Align import _pairwisealigner # type: ignore from Bio.Align import _codonaligner # type: ignore +from Bio.Align import _pairwisealigner # type: ignore from Bio.Align import substitution_matrices from Bio.Data import CodonTable -from Bio.Seq import Seq, MutableSeq, reverse_complement, UndefinedSequenceError +from Bio.Seq import MutableSeq +from Bio.Seq import reverse_complement +from Bio.Seq import Seq from Bio.Seq import translate -from Bio.SeqRecord import SeqRecord, _RestrictedDict +from Bio.Seq import UndefinedSequenceError +from Bio.SeqRecord import _RestrictedDict +from Bio.SeqRecord import SeqRecord # Import errors may occur here if a compiled _pairwisealigner.c file or # compiled _codonaligner.c file (_pairwisealigner.pyd or _pairwisealigner.so, @@ -357,6 +361,7 @@ class MultipleSeqAlignment: """ if format_spec: from io import StringIO + from Bio import AlignIO handle = StringIO() diff --git a/Bio/Align/analysis.py b/Bio/Align/analysis.py index 8bb459f5e..5c89f0a2a 100644 --- a/Bio/Align/analysis.py +++ b/Bio/Align/analysis.py @@ -7,10 +7,16 @@ """Code for performing calculations on codon alignments.""" import sys -from math import sqrt, erfc, log, floor -from heapq import heapify, heappop, heappush +from collections import Counter +from collections import defaultdict +from heapq import heapify +from heapq import heappop +from heapq import heappush from itertools import permutations -from collections import defaultdict, Counter +from math import erfc +from math import floor +from math import log +from math import sqrt import numpy as np diff --git a/Bio/Align/bed.py b/Bio/Align/bed.py index ffe4a8fb7..cc8c49001 100644 --- a/Bio/Align/bed.py +++ b/Bio/Align/bed.py @@ -27,8 +27,8 @@ zero-based end position. We can therefore manipulate ``start`` and """ import sys -import numpy as np +import numpy as np from Bio.Align import Alignment from Bio.Align import interfaces diff --git a/Bio/Align/bigbed.py b/Bio/Align/bigbed.py index d59a6b976..5f74db239 100644 --- a/Bio/Align/bigbed.py +++ b/Bio/Align/bigbed.py @@ -50,24 +50,23 @@ You are expected to use this module via the Bio.Align functions. # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # ------------------------------------------------------------------------------ -import sys -import io -import copy import array +import copy +import io import itertools import struct +import sys import zlib from collections import namedtuple from io import BytesIO -import numpy as np +import numpy as np from Bio.Align import Alignment from Bio.Align import interfaces from Bio.Seq import Seq from Bio.SeqRecord import SeqRecord - Field = namedtuple("Field", ("as_type", "name", "comment")) diff --git a/Bio/Align/bigmaf.py b/Bio/Align/bigmaf.py index dadb263dc..f519e2dc0 100644 --- a/Bio/Align/bigmaf.py +++ b/Bio/Align/bigmaf.py @@ -17,17 +17,17 @@ import re import struct import zlib - -from Bio.Align import Alignment, Alignments -from Bio.Align import bigbed, maf -from Bio.Align import _aligncore # type: ignore -from Bio.Align.bigbed import AutoSQLTable, Field -from Bio.Seq import Seq -from Bio.SeqRecord import SeqRecord - - import numpy as np +from Bio.Align import _aligncore # type: ignore +from Bio.Align import Alignment +from Bio.Align import Alignments +from Bio.Align import bigbed +from Bio.Align import maf +from Bio.Align.bigbed import AutoSQLTable +from Bio.Align.bigbed import Field +from Bio.Seq import Seq +from Bio.SeqRecord import SeqRecord declaration = AutoSQLTable( "bedMaf", diff --git a/Bio/Align/bigpsl.py b/Bio/Align/bigpsl.py index dcca7108b..6e2b87602 100644 --- a/Bio/Align/bigpsl.py +++ b/Bio/Align/bigpsl.py @@ -20,15 +20,19 @@ You are expected to use this module via the Bio.Align functions. import numpy as np - -from Bio.Align import Alignment, Alignments -from Bio.Align import bigbed, psl -from Bio.Align.bigbed import AutoSQLTable, Field -from Bio.Seq import Seq, reverse_complement, UndefinedSequenceError -from Bio.SeqRecord import SeqRecord -from Bio.SeqFeature import SeqFeature, Location +from Bio.Align import Alignment +from Bio.Align import Alignments +from Bio.Align import bigbed +from Bio.Align import psl +from Bio.Align.bigbed import AutoSQLTable +from Bio.Align.bigbed import Field +from Bio.Seq import reverse_complement +from Bio.Seq import Seq +from Bio.Seq import UndefinedSequenceError +from Bio.SeqFeature import Location +from Bio.SeqFeature import SeqFeature from Bio.SeqIO.InsdcIO import _insdc_location_string - +from Bio.SeqRecord import SeqRecord declaration = AutoSQLTable( "bigPsl", diff --git a/Bio/Align/chain.py b/Bio/Align/chain.py index ed5069b36..43ffcd0e8 100644 --- a/Bio/Align/chain.py +++ b/Bio/Align/chain.py @@ -21,7 +21,6 @@ positions (like Python) and aligning region sizes. import numpy as np - from Bio.Align import Alignment from Bio.Align import interfaces from Bio.Seq import Seq diff --git a/Bio/Align/exonerate.py b/Bio/Align/exonerate.py index 210b996fa..2ccb01527 100644 --- a/Bio/Align/exonerate.py +++ b/Bio/Align/exonerate.py @@ -29,7 +29,6 @@ You are expected to use this module via the Bio.Align functions. import numpy as np - from Bio.Align import Alignment from Bio.Align import interfaces from Bio.Seq import Seq diff --git a/Bio/Align/interfaces.py b/Bio/Align/interfaces.py index 0efd39bb2..0d7cebe2d 100644 --- a/Bio/Align/interfaces.py +++ b/Bio/Align/interfaces.py @@ -17,7 +17,8 @@ from abc import abstractmethod from typing import Optional from Bio import StreamModeError -from Bio.Align import Alignments, AlignmentsAbstractBaseClass +from Bio.Align import Alignments +from Bio.Align import AlignmentsAbstractBaseClass class AlignmentIterator(AlignmentsAbstractBaseClass): diff --git a/Bio/Align/maf.py b/Bio/Align/maf.py index 60fde4ff7..573554829 100644 --- a/Bio/Align/maf.py +++ b/Bio/Align/maf.py @@ -29,13 +29,13 @@ zero-based end position. We can therefore manipulate ``start`` and ``start + size`` as python list slice boundaries. """ -import shlex import itertools - +import shlex from Bio.Align import Alignment from Bio.Align import interfaces -from Bio.Seq import Seq, reverse_complement +from Bio.Seq import reverse_complement +from Bio.Seq import Seq from Bio.SeqRecord import SeqRecord diff --git a/Bio/Align/mauve.py b/Bio/Align/mauve.py index d9eb90c50..0d4d8c6ef 100644 --- a/Bio/Align/mauve.py +++ b/Bio/Align/mauve.py @@ -11,7 +11,8 @@ You are expected to use this module via the Bio.Align functions. from Bio.Align import Alignment from Bio.Align import interfaces -from Bio.Seq import Seq, reverse_complement +from Bio.Seq import reverse_complement +from Bio.Seq import Seq from Bio.SeqRecord import SeqRecord diff --git a/Bio/Align/msf.py b/Bio/Align/msf.py index 8da365038..a308871f7 100644 --- a/Bio/Align/msf.py +++ b/Bio/Align/msf.py @@ -15,13 +15,12 @@ You are expected to use this module via the Bio.Align functions. import warnings +from Bio import BiopythonParserWarning from Bio.Align import Alignment from Bio.Align import interfaces from Bio.Seq import Seq from Bio.SeqRecord import SeqRecord -from Bio import BiopythonParserWarning - class AlignmentIterator(interfaces.AlignmentIterator): """GCG MSF alignment iterator.""" diff --git a/Bio/Align/nexus.py b/Bio/Align/nexus.py index 425629065..ec2d4b4b4 100644 --- a/Bio/Align/nexus.py +++ b/Bio/Align/nexus.py @@ -20,9 +20,9 @@ import numpy as np from Bio.Align import Alignment from Bio.Align import interfaces +from Bio.Nexus import Nexus from Bio.Seq import Seq from Bio.SeqRecord import SeqRecord -from Bio.Nexus import Nexus class AlignmentWriter(interfaces.AlignmentWriter): diff --git a/Bio/Align/phylip.py b/Bio/Align/phylip.py index 028c2174d..d3f996d0c 100644 --- a/Bio/Align/phylip.py +++ b/Bio/Align/phylip.py @@ -14,7 +14,6 @@ from Bio.Align import interfaces from Bio.Seq import Seq from Bio.SeqRecord import SeqRecord - _PHYLIP_ID_WIDTH = 10 diff --git a/Bio/Align/psl.py b/Bio/Align/psl.py index 6e458f76a..152e67dbe 100644 --- a/Bio/Align/psl.py +++ b/Bio/Align/psl.py @@ -27,14 +27,19 @@ zero-based end position. We can therefore manipulate ``start`` and """ from itertools import chain -import numpy as np +import numpy as np from Bio.Align import Alignment from Bio.Align import interfaces -from Bio.Seq import Seq, reverse_complement, UndefinedSequenceError +from Bio.Seq import reverse_complement +from Bio.Seq import Seq +from Bio.Seq import UndefinedSequenceError +from Bio.SeqFeature import CompoundLocation +from Bio.SeqFeature import ExactPosition +from Bio.SeqFeature import SeqFeature +from Bio.SeqFeature import SimpleLocation from Bio.SeqRecord import SeqRecord -from Bio.SeqFeature import SeqFeature, ExactPosition, SimpleLocation, CompoundLocation class AlignmentWriter(interfaces.AlignmentWriter): diff --git a/Bio/Align/sam.py b/Bio/Align/sam.py index 755202a7c..9099542aa 100644 --- a/Bio/Align/sam.py +++ b/Bio/Align/sam.py @@ -22,14 +22,16 @@ positions; the parser converts these to zero-based coordinates to be consistent with Python and other alignment formats. """ -from itertools import chain import copy +from itertools import chain import numpy as np from Bio.Align import Alignment from Bio.Align import interfaces -from Bio.Seq import Seq, reverse_complement, UndefinedSequenceError +from Bio.Seq import reverse_complement +from Bio.Seq import Seq +from Bio.Seq import UndefinedSequenceError from Bio.SeqRecord import SeqRecord diff --git a/Bio/Align/substitution_matrices/__init__.py b/Bio/Align/substitution_matrices/__init__.py index a01574cd3..a57451993 100644 --- a/Bio/Align/substitution_matrices/__init__.py +++ b/Bio/Align/substitution_matrices/__init__.py @@ -9,6 +9,7 @@ import os import string + import numpy as np from Bio.File import as_handle diff --git a/Bio/Align/tabular.py b/Bio/Align/tabular.py index b9d91d301..8228572a2 100644 --- a/Bio/Align/tabular.py +++ b/Bio/Align/tabular.py @@ -11,9 +11,11 @@ This module contains a parser for tabular output from BLAST run with the FASTA alignment tools using the '-m 8CB' or '-m 8CC' arguments. """ -import re import enum +import re + import numpy as np + from Bio.Align import Alignment from Bio.Align import interfaces from Bio.Seq import Seq diff --git a/Bio/AlignIO/FastaIO.py b/Bio/AlignIO/FastaIO.py index 7a2fcb297..012106838 100644 --- a/Bio/AlignIO/FastaIO.py +++ b/Bio/AlignIO/FastaIO.py @@ -305,6 +305,7 @@ handle.name: {handle.name} key, value = (s.strip() for s in line[2:].split(": ", 1)) else: import warnings + from Bio import BiopythonParserWarning # Seen in lalign36, specifically version 36.3.4 Apr, 2011 diff --git a/Bio/AlignIO/MafIO.py b/Bio/AlignIO/MafIO.py index 5f32830ff..abca76fef 100644 --- a/Bio/AlignIO/MafIO.py +++ b/Bio/AlignIO/MafIO.py @@ -34,7 +34,6 @@ A 1-column wide alignment would have ``start == end``. """ import os - from itertools import islice try: diff --git a/Bio/AlignIO/MauveIO.py b/Bio/AlignIO/MauveIO.py index 6b0a15ac1..d5183de56 100644 --- a/Bio/AlignIO/MauveIO.py +++ b/Bio/AlignIO/MauveIO.py @@ -78,7 +78,6 @@ the annotation attribute of each record:: """ import re - from typing import List from Bio.Align import MultipleSeqAlignment @@ -88,7 +87,6 @@ from Bio.SeqRecord import SeqRecord from .Interfaces import AlignmentIterator from .Interfaces import SequentialAlignmentWriter - XMFA_HEADER_REGEX = re.compile( r"> (?P\d+):(?P\d+)-(?P\d+) (?P[+-]) (?P.*)" ) diff --git a/Bio/AlignIO/MsfIO.py b/Bio/AlignIO/MsfIO.py index 2412e61b2..a171d5da8 100644 --- a/Bio/AlignIO/MsfIO.py +++ b/Bio/AlignIO/MsfIO.py @@ -309,6 +309,7 @@ class MsfIterator(AlignmentIterator): seqs[idx] = s + "-" * (aln_length - len(s)) if padded: import warnings + from Bio import BiopythonParserWarning warnings.warn( diff --git a/Bio/AlignIO/NexusIO.py b/Bio/AlignIO/NexusIO.py index bf70a8daf..f92c2933e 100644 --- a/Bio/AlignIO/NexusIO.py +++ b/Bio/AlignIO/NexusIO.py @@ -14,14 +14,15 @@ as this offers more than just accessing the alignment or its sequences as SeqRecord objects. """ -from typing import IO, Iterator, Optional +from typing import IO +from typing import Iterator +from typing import Optional from Bio.Align import MultipleSeqAlignment from Bio.AlignIO.Interfaces import AlignmentWriter from Bio.Nexus import Nexus from Bio.SeqRecord import SeqRecord - # You can get a couple of example files here: # http://www.molecularevolution.org/resources/fileformats/ diff --git a/Bio/AlignIO/PhylipIO.py b/Bio/AlignIO/PhylipIO.py index 5aa3b0ea5..f8c4e5162 100644 --- a/Bio/AlignIO/PhylipIO.py +++ b/Bio/AlignIO/PhylipIO.py @@ -44,7 +44,6 @@ from Bio.SeqRecord import SeqRecord from .Interfaces import AlignmentIterator from .Interfaces import SequentialAlignmentWriter - _PHYLIP_ID_WIDTH = 10 _NO_DOTS = "PHYLIP format no longer allows dots in sequence" diff --git a/Bio/Application/__init__.py b/Bio/Application/__init__.py index 13a51e667..47d2a8a88 100644 --- a/Bio/Application/__init__.py +++ b/Bio/Application/__init__.py @@ -29,15 +29,13 @@ with the subprocess module. import os import platform -import sys -import subprocess import re +import subprocess +import sys import warnings - from Bio import BiopythonDeprecationWarning - warnings.warn( """\ The Bio.Application modules and modules relying on it have been deprecated. diff --git a/Bio/Blast/Applications.py b/Bio/Blast/Applications.py index ab24574a1..7db2afc67 100644 --- a/Bio/Blast/Applications.py +++ b/Bio/Blast/Applications.py @@ -32,7 +32,9 @@ We have decided to remove this module in future, and instead recommend building your command and invoking it via the subprocess module directly. """ -from Bio.Application import _Option, AbstractCommandline, _Switch +from Bio.Application import _Option +from Bio.Application import _Switch +from Bio.Application import AbstractCommandline class _NcbibaseblastCommandline(AbstractCommandline): diff --git a/Bio/Blast/NCBIWWW.py b/Bio/Blast/NCBIWWW.py index 26031180e..d170559c4 100644 --- a/Bio/Blast/NCBIWWW.py +++ b/Bio/Blast/NCBIWWW.py @@ -20,16 +20,16 @@ Variables: """ -import warnings - -from io import StringIO import time - +import warnings +from io import StringIO from urllib.parse import urlencode -from urllib.request import build_opener, install_opener -from urllib.request import urlopen -from urllib.request import HTTPPasswordMgrWithDefaultRealm, HTTPBasicAuthHandler +from urllib.request import build_opener +from urllib.request import HTTPBasicAuthHandler +from urllib.request import HTTPPasswordMgrWithDefaultRealm +from urllib.request import install_opener from urllib.request import Request +from urllib.request import urlopen from Bio import BiopythonWarning from Bio._utils import function_with_previous diff --git a/Bio/Blast/NCBIXML.py b/Bio/Blast/NCBIXML.py index c6a2ef0ea..35b6164d5 100644 --- a/Bio/Blast/NCBIXML.py +++ b/Bio/Blast/NCBIXML.py @@ -32,9 +32,9 @@ Parameters Holds information from the parameters. import xml.sax from xml.sax.handler import ContentHandler +from Bio.Align import MultipleSeqAlignment from Bio.Seq import Seq from Bio.SeqRecord import SeqRecord -from Bio.Align import MultipleSeqAlignment def fmt_(value, format_spec="%s", default_str=""): diff --git a/Bio/Blast/__init__.py b/Bio/Blast/__init__.py index e695bce65..998af496f 100644 --- a/Bio/Blast/__init__.py +++ b/Bio/Blast/__init__.py @@ -22,29 +22,28 @@ Variables: """ -import warnings - import io import textwrap import time +import warnings +from collections import UserList +from urllib.parse import urlencode +from urllib.request import build_opener +from urllib.request import HTTPBasicAuthHandler +from urllib.request import HTTPPasswordMgrWithDefaultRealm +from urllib.request import install_opener +from urllib.request import Request +from urllib.request import urlopen +from xml.parsers import expat import numpy as np -from collections import UserList -from urllib.parse import urlencode -from urllib.request import build_opener, install_opener -from urllib.request import urlopen -from urllib.request import HTTPPasswordMgrWithDefaultRealm, HTTPBasicAuthHandler -from urllib.request import Request -from xml.parsers import expat - - from Bio import BiopythonWarning from Bio import StreamModeError -from Bio.Align import Alignment, Alignments -from Bio.Blast import _writers from Bio._utils import function_with_previous - +from Bio.Align import Alignment +from Bio.Align import Alignments +from Bio.Blast import _writers email = None tool = "biopython" diff --git a/Bio/Blast/_parser.py b/Bio/Blast/_parser.py index 57b931d0c..f13c04070 100644 --- a/Bio/Blast/_parser.py +++ b/Bio/Blast/_parser.py @@ -14,18 +14,23 @@ The BLAST XML DTD file is available on the NCBI site at: https://www.ncbi.nlm.nih.gov/dtd/NCBI_BlastOutput.dtd """ -import os.path import html +import os.path from collections import deque +from typing import Callable +from typing import Dict from xml.parsers import expat -from typing import Dict, Callable -from Bio.Blast import Record, Hit, HSP -from Bio.Seq import Seq, reverse_complement -from Bio.SeqRecord import SeqRecord -from Bio.SeqFeature import SeqFeature, SimpleLocation -from Bio.Align import Alignment from Bio import Entrez +from Bio.Align import Alignment +from Bio.Blast import Hit +from Bio.Blast import HSP +from Bio.Blast import Record +from Bio.Seq import reverse_complement +from Bio.Seq import Seq +from Bio.SeqFeature import SeqFeature +from Bio.SeqFeature import SimpleLocation +from Bio.SeqRecord import SeqRecord class DTDHandler: diff --git a/Bio/Blast/_writers.py b/Bio/Blast/_writers.py index 38fe4ebaa..42b84823b 100644 --- a/Bio/Blast/_writers.py +++ b/Bio/Blast/_writers.py @@ -1,6 +1,7 @@ -import html import codecs -from abc import ABC, abstractmethod +import html +from abc import ABC +from abc import abstractmethod from Bio.Seq import UndefinedSequenceError diff --git a/Bio/Data/CodonTable.py b/Bio/Data/CodonTable.py index 4ae05c60b..220231d90 100644 --- a/Bio/Data/CodonTable.py +++ b/Bio/Data/CodonTable.py @@ -13,9 +13,11 @@ using Scripts/update_ncbi_codon_table.py Last updated at Version 4.4 (May 2019) """ -from Bio.Data import IUPACData +from typing import Dict +from typing import List +from typing import Optional -from typing import Dict, List, Optional +from Bio.Data import IUPACData unambiguous_dna_by_name = {} unambiguous_dna_by_id = {} diff --git a/Bio/Emboss/Applications.py b/Bio/Emboss/Applications.py index 81d3faff2..5d0e63b43 100644 --- a/Bio/Emboss/Applications.py +++ b/Bio/Emboss/Applications.py @@ -16,7 +16,9 @@ We have decided to remove this module in future, and instead recommend building your command and invoking it via the subprocess module directly. """ -from Bio.Application import _Option, _Switch, AbstractCommandline +from Bio.Application import _Option +from Bio.Application import _Switch +from Bio.Application import AbstractCommandline class _EmbossMinimalCommandLine(AbstractCommandline): diff --git a/Bio/Entrez/Parser.py b/Bio/Entrez/Parser.py index f6f60e724..dd401a22e 100644 --- a/Bio/Entrez/Parser.py +++ b/Bio/Entrez/Parser.py @@ -40,18 +40,16 @@ with parsing the DTD, and the other half with the XML itself. import os import warnings -from collections import Counter -from xml.parsers import expat -from io import BytesIO import xml.etree.ElementTree as ET +from collections import Counter +from io import BytesIO +from urllib.parse import urlparse +from urllib.request import urlopen +from xml.parsers import expat from xml.sax.saxutils import escape -from urllib.request import urlopen -from urllib.parse import urlparse - from Bio import StreamModeError - # The following four classes are used to add a member .attributes to integers, # strings, lists, and dictionaries, respectively. diff --git a/Bio/Entrez/__init__.py b/Bio/Entrez/__init__.py index 5951210ff..64e124073 100644 --- a/Bio/Entrez/__init__.py +++ b/Bio/Entrez/__init__.py @@ -127,12 +127,14 @@ Functions: """ +import io import time import warnings -import io -from urllib.error import URLError, HTTPError +from urllib.error import HTTPError +from urllib.error import URLError from urllib.parse import urlencode -from urllib.request import urlopen, Request +from urllib.request import Request +from urllib.request import urlopen from Bio import BiopythonDeprecationWarning from Bio._utils import function_with_previous diff --git a/Bio/ExPASy/ScanProsite.py b/Bio/ExPASy/ScanProsite.py index e05570b54..7299c5419 100644 --- a/Bio/ExPASy/ScanProsite.py +++ b/Bio/ExPASy/ScanProsite.py @@ -6,9 +6,8 @@ """Code for calling and parsing ScanProsite from ExPASy.""" # Importing these functions with leading underscore as not intended for reuse -from urllib.request import urlopen from urllib.parse import urlencode - +from urllib.request import urlopen from xml.sax import handler from xml.sax.expatreader import ExpatParser diff --git a/Bio/ExPASy/__init__.py b/Bio/ExPASy/__init__.py index abeeb200d..d72b486ad 100644 --- a/Bio/ExPASy/__init__.py +++ b/Bio/ExPASy/__init__.py @@ -17,8 +17,8 @@ Functions: """ import io -from urllib.request import urlopen from urllib.error import HTTPError +from urllib.request import urlopen def get_prodoc_entry( diff --git a/Bio/File.py b/Bio/File.py index a9af5f064..d89a0d6d0 100644 --- a/Bio/File.py +++ b/Bio/File.py @@ -11,12 +11,12 @@ Bio.File defines private classes used in Bio.SeqIO and Bio.SearchIO for indexing files. These are not intended for direct use. """ -import os +import collections.abc import contextlib import itertools -import collections.abc - -from abc import ABC, abstractmethod +import os +from abc import ABC +from abc import abstractmethod try: import sqlite3 diff --git a/Bio/GenBank/Scanner.py b/Bio/GenBank/Scanner.py index afce33ca5..7b5449ce5 100644 --- a/Bio/GenBank/Scanner.py +++ b/Bio/GenBank/Scanner.py @@ -27,17 +27,16 @@ Feature Table Documentation: # for more details of this format, and an example. # Added by Ying Huang & Iddo Friedberg -import warnings import re import sys +import warnings from collections import defaultdict +from typing import List +from Bio import BiopythonParserWarning from Bio.File import as_handle from Bio.Seq import Seq from Bio.SeqRecord import SeqRecord -from Bio import BiopythonParserWarning - -from typing import List class InsdcScanner: diff --git a/Bio/GenBank/__init__.py b/Bio/GenBank/__init__.py index 3259741b5..3119a0b1c 100644 --- a/Bio/GenBank/__init__.py +++ b/Bio/GenBank/__init__.py @@ -43,15 +43,15 @@ import warnings from Bio import BiopythonParserWarning from Bio.Seq import Seq from Bio.SeqFeature import Location +from Bio.SeqFeature import LocationParserError from Bio.SeqFeature import Reference from Bio.SeqFeature import SeqFeature from Bio.SeqFeature import SimpleLocation -from Bio.SeqFeature import LocationParserError + +from .Scanner import GenBankScanner # other Bio.GenBank stuff from .utils import FeatureValueCleaner -from .Scanner import GenBankScanner - # Constants used to parse GenBank header lines GENBANK_INDENT = 12 diff --git a/Bio/Graphics/BasicChromosome.py b/Bio/Graphics/BasicChromosome.py index 9ec760b75..f25a31382 100644 --- a/Bio/Graphics/BasicChromosome.py +++ b/Bio/Graphics/BasicChromosome.py @@ -34,18 +34,21 @@ reportlab's renderPM module installed you can also use PNG etc. """ # reportlab +from reportlab.graphics.shapes import ArcPath +from reportlab.graphics.shapes import Drawing +from reportlab.graphics.shapes import Line +from reportlab.graphics.shapes import Rect +from reportlab.graphics.shapes import String +from reportlab.graphics.shapes import Wedge +from reportlab.graphics.widgetbase import Widget +from reportlab.lib import colors from reportlab.lib.pagesizes import letter from reportlab.lib.units import inch -from reportlab.lib import colors from reportlab.pdfbase.pdfmetrics import stringWidth -from reportlab.graphics.shapes import Drawing, String, Line, Rect, Wedge, ArcPath -from reportlab.graphics.widgetbase import Widget - from Bio.Graphics import _write from Bio.Graphics.GenomeDiagram import _Colors - _color_trans = _Colors.ColorTranslator() @@ -538,6 +541,7 @@ def _spring_layout(desired, minimum, maximum, gap=0): if equal_step < gap: import warnings + from Bio import BiopythonWarning warnings.warn("Too many labels to avoid overlap", BiopythonWarning) diff --git a/Bio/Graphics/ColorSpiral.py b/Bio/Graphics/ColorSpiral.py index 34d35776e..bcf8a4400 100644 --- a/Bio/Graphics/ColorSpiral.py +++ b/Bio/Graphics/ColorSpiral.py @@ -21,8 +21,11 @@ categories to be coloured). # standard library import colorsys # colour format conversions -from math import log, exp, floor, pi import random # for jitter values +from math import exp +from math import floor +from math import log +from math import pi class ColorSpiral: diff --git a/Bio/Graphics/Comparative.py b/Bio/Graphics/Comparative.py index f4201ada2..8b9c1ade4 100644 --- a/Bio/Graphics/Comparative.py +++ b/Bio/Graphics/Comparative.py @@ -12,16 +12,19 @@ two variables in a traditional scatter plot. """ # reportlab -from reportlab.lib import colors from reportlab.graphics.charts.lineplots import LinePlot +from reportlab.graphics.charts.markers import makeEmptyCircle +from reportlab.graphics.charts.markers import makeEmptySquare +from reportlab.graphics.charts.markers import makeFilledCircle +from reportlab.graphics.charts.markers import makeFilledDiamond +from reportlab.graphics.charts.markers import makeFilledSquare +from reportlab.graphics.charts.markers import makeSmiley +from reportlab.graphics.shapes import Drawing +from reportlab.graphics.shapes import String +from reportlab.lib import colors from reportlab.lib.pagesizes import letter from reportlab.lib.units import inch -from reportlab.graphics.shapes import Drawing, String -from reportlab.graphics.charts.markers import makeEmptySquare, makeFilledSquare -from reportlab.graphics.charts.markers import makeFilledDiamond, makeSmiley -from reportlab.graphics.charts.markers import makeFilledCircle, makeEmptyCircle - from Bio.Graphics import _write diff --git a/Bio/Graphics/DisplayRepresentation.py b/Bio/Graphics/DisplayRepresentation.py index 26dbd9ee9..de4de6135 100644 --- a/Bio/Graphics/DisplayRepresentation.py +++ b/Bio/Graphics/DisplayRepresentation.py @@ -17,7 +17,6 @@ from reportlab.lib import colors from Bio.Graphics.BasicChromosome import ChromosomeSegment from Bio.Graphics.BasicChromosome import TelomereSegment - # --- constants # This is a default color scheme based on the light spectrum. # Based on my vague recollections from biology, this is our friend ROY G. BIV diff --git a/Bio/Graphics/Distribution.py b/Bio/Graphics/Distribution.py index ef73d1f8e..b74a83172 100644 --- a/Bio/Graphics/Distribution.py +++ b/Bio/Graphics/Distribution.py @@ -17,15 +17,16 @@ Reportlab is used for producing the graphical output. # standard library import math +from reportlab.graphics.charts.barcharts import BarChartProperties +from reportlab.graphics.charts.barcharts import VerticalBarChart +from reportlab.graphics.shapes import Drawing +from reportlab.graphics.shapes import String +from reportlab.graphics.widgetbase import TypedPropertyCollection +from reportlab.lib import colors + # reportlab from reportlab.lib.pagesizes import letter from reportlab.lib.units import inch -from reportlab.lib import colors - -from reportlab.graphics.shapes import Drawing, String -from reportlab.graphics.charts.barcharts import VerticalBarChart -from reportlab.graphics.charts.barcharts import BarChartProperties -from reportlab.graphics.widgetbase import TypedPropertyCollection from Bio.Graphics import _write diff --git a/Bio/Graphics/GenomeDiagram/_AbstractDrawer.py b/Bio/Graphics/GenomeDiagram/_AbstractDrawer.py index b388a21e2..8fcb5bb15 100644 --- a/Bio/Graphics/GenomeDiagram/_AbstractDrawer.py +++ b/Bio/Graphics/GenomeDiagram/_AbstractDrawer.py @@ -34,12 +34,14 @@ like SeqFeatures. # ReportLab imports -from reportlab.lib import pagesizes -from reportlab.lib import colors -from reportlab.graphics.shapes import Polygon - -from math import pi, sin, cos from itertools import islice +from math import cos +from math import pi +from math import sin + +from reportlab.graphics.shapes import Polygon +from reportlab.lib import colors +from reportlab.lib import pagesizes ################################################################################ # METHODS diff --git a/Bio/Graphics/GenomeDiagram/_CircularDrawer.py b/Bio/Graphics/GenomeDiagram/_CircularDrawer.py index 4e528b932..59d4f564f 100644 --- a/Bio/Graphics/GenomeDiagram/_CircularDrawer.py +++ b/Bio/Graphics/GenomeDiagram/_CircularDrawer.py @@ -15,18 +15,28 @@ # ReportLab imports -from reportlab.graphics.shapes import Drawing, String, Group, Line, Circle, Polygon -from reportlab.lib import colors +from math import cos +from math import pi +from math import sin + from reportlab.graphics.shapes import ArcPath +from reportlab.graphics.shapes import Circle +from reportlab.graphics.shapes import Drawing +from reportlab.graphics.shapes import Group +from reportlab.graphics.shapes import Line +from reportlab.graphics.shapes import Polygon +from reportlab.graphics.shapes import String +from reportlab.lib import colors + +from ._AbstractDrawer import _stroke_and_fill_colors # GenomeDiagram imports -from ._AbstractDrawer import AbstractDrawer, draw_polygon, intermediate_points -from ._AbstractDrawer import _stroke_and_fill_colors +from ._AbstractDrawer import AbstractDrawer +from ._AbstractDrawer import draw_polygon +from ._AbstractDrawer import intermediate_points from ._FeatureSet import FeatureSet from ._GraphSet import GraphSet -from math import pi, cos, sin - class CircularDrawer(AbstractDrawer): """Object for drawing circular diagrams. diff --git a/Bio/Graphics/GenomeDiagram/_Diagram.py b/Bio/Graphics/GenomeDiagram/_Diagram.py index 14e1b98ac..076de2267 100644 --- a/Bio/Graphics/GenomeDiagram/_Diagram.py +++ b/Bio/Graphics/GenomeDiagram/_Diagram.py @@ -28,12 +28,12 @@ except ImportError: # This is an optional part of ReportLab, so may not be installed. renderPM = None -from ._LinearDrawer import LinearDrawer -from ._CircularDrawer import CircularDrawer -from ._Track import Track - from Bio.Graphics import _write +from ._CircularDrawer import CircularDrawer +from ._LinearDrawer import LinearDrawer +from ._Track import Track + def _first_defined(*args): """Return the first non-null argument (PRIVATE).""" diff --git a/Bio/Graphics/GenomeDiagram/_FeatureSet.py b/Bio/Graphics/GenomeDiagram/_FeatureSet.py index 9c54c64c5..02aef5343 100644 --- a/Bio/Graphics/GenomeDiagram/_FeatureSet.py +++ b/Bio/Graphics/GenomeDiagram/_FeatureSet.py @@ -25,11 +25,11 @@ the diagram: http://www.reportlab.com """ # GenomeDiagram -from ._Feature import Feature - # Builtins import re +from ._Feature import Feature + class FeatureSet: """FeatureSet object.""" diff --git a/Bio/Graphics/GenomeDiagram/_Graph.py b/Bio/Graphics/GenomeDiagram/_Graph.py index 11e73f3e9..97f94b334 100644 --- a/Bio/Graphics/GenomeDiagram/_Graph.py +++ b/Bio/Graphics/GenomeDiagram/_Graph.py @@ -23,10 +23,10 @@ the diagram: http://www.reportlab.com # ReportLab imports -from reportlab.lib import colors - from math import sqrt +from reportlab.lib import colors + class GraphData: """Graph Data. diff --git a/Bio/Graphics/GenomeDiagram/_LinearDrawer.py b/Bio/Graphics/GenomeDiagram/_LinearDrawer.py index 44102e6fa..27fdbc212 100644 --- a/Bio/Graphics/GenomeDiagram/_LinearDrawer.py +++ b/Bio/Graphics/GenomeDiagram/_LinearDrawer.py @@ -22,18 +22,28 @@ the diagram: http://www.reportlab.com # ReportLab imports -from reportlab.graphics.shapes import Drawing, Line, String, Group, Polygon +from math import ceil + +from reportlab.graphics.shapes import Drawing +from reportlab.graphics.shapes import Group +from reportlab.graphics.shapes import Line +from reportlab.graphics.shapes import Polygon +from reportlab.graphics.shapes import String from reportlab.lib import colors +from ._AbstractDrawer import _stroke_and_fill_colors + # GenomeDiagram imports -from ._AbstractDrawer import AbstractDrawer, draw_box, draw_arrow -from ._AbstractDrawer import draw_cut_corner_box, _stroke_and_fill_colors -from ._AbstractDrawer import intermediate_points, angle2trig, deduplicate +from ._AbstractDrawer import AbstractDrawer +from ._AbstractDrawer import angle2trig +from ._AbstractDrawer import deduplicate +from ._AbstractDrawer import draw_arrow +from ._AbstractDrawer import draw_box +from ._AbstractDrawer import draw_cut_corner_box +from ._AbstractDrawer import intermediate_points from ._FeatureSet import FeatureSet from ._GraphSet import GraphSet -from math import ceil - class LinearDrawer(AbstractDrawer): """Linear Drawer. diff --git a/Bio/Graphics/GenomeDiagram/__init__.py b/Bio/Graphics/GenomeDiagram/__init__.py index ca40d284f..1712a4ab7 100644 --- a/Bio/Graphics/GenomeDiagram/__init__.py +++ b/Bio/Graphics/GenomeDiagram/__init__.py @@ -16,14 +16,14 @@ # Local imports, to make these classes available directly under the # Bio.Graphics.GenomeDiagram namespace: -from ._Diagram import Diagram -from ._Track import Track -from ._FeatureSet import FeatureSet -from ._GraphSet import GraphSet -from ._CrossLink import CrossLink from ._Colors import ColorTranslator +from ._CrossLink import CrossLink +from ._Diagram import Diagram from ._Feature import Feature +from ._FeatureSet import FeatureSet from ._Graph import GraphData +from ._GraphSet import GraphSet +from ._Track import Track __all__ = ( "Diagram", diff --git a/Bio/Graphics/__init__.py b/Bio/Graphics/__init__.py index 397f963e7..70372cee0 100644 --- a/Bio/Graphics/__init__.py +++ b/Bio/Graphics/__init__.py @@ -43,7 +43,9 @@ def _write(drawing, output_file, format, dpi=72): No return value. """ - from reportlab.graphics import renderPS, renderPDF, renderSVG + from reportlab.graphics import renderPDF + from reportlab.graphics import renderPS + from reportlab.graphics import renderSVG try: from reportlab.graphics import renderPM diff --git a/Bio/HMM/MarkovModel.py b/Bio/HMM/MarkovModel.py index 42caf9c9a..93fdece59 100644 --- a/Bio/HMM/MarkovModel.py +++ b/Bio/HMM/MarkovModel.py @@ -11,11 +11,11 @@ import copy import math import random -from collections import defaultdict import warnings +from collections import defaultdict -from Bio.Seq import Seq from Bio import BiopythonDeprecationWarning +from Bio.Seq import Seq warnings.warn( "The 'Bio.HMM.MarkovModule' module is deprecated and will be " diff --git a/Bio/HMM/Trainer.py b/Bio/HMM/Trainer.py index 90e9ab4dc..5bc4ad85a 100644 --- a/Bio/HMM/Trainer.py +++ b/Bio/HMM/Trainer.py @@ -24,11 +24,11 @@ This aims to estimate two parameters: import math import warnings +from Bio import BiopythonDeprecationWarning + # local stuff from .DynamicProgramming import ScaledDPAlgorithms -from Bio import BiopythonDeprecationWarning - warnings.warn( "The 'Bio.HMM.Trainer' module is deprecated and will be removed " "in a future release of Biopython. Consider using the hmmlearn " diff --git a/Bio/HMM/Utilities.py b/Bio/HMM/Utilities.py index a943dbecf..ab19d0316 100644 --- a/Bio/HMM/Utilities.py +++ b/Bio/HMM/Utilities.py @@ -15,7 +15,6 @@ import warnings from Bio import BiopythonDeprecationWarning - warnings.warn( "The 'Bio.HMM.Utilities' module is deprecated and will be " "removed in a future release of Biopython. Consider using the " diff --git a/Bio/KEGG/Compound/__init__.py b/Bio/KEGG/Compound/__init__.py index aa5f979b7..352cb2a55 100644 --- a/Bio/KEGG/Compound/__init__.py +++ b/Bio/KEGG/Compound/__init__.py @@ -15,8 +15,10 @@ Classes: - Record - A representation of a KEGG Ligand/Compound. """ -from Bio.KEGG import _default_wrap, _struct_wrap, _wrap_kegg, _write_kegg - +from Bio.KEGG import _default_wrap +from Bio.KEGG import _struct_wrap +from Bio.KEGG import _wrap_kegg +from Bio.KEGG import _write_kegg # Set up line wrapping rules (see Bio.KEGG._wrap_kegg) name_wrap = [0, "", (" ", "$", 1, 1), ("-", "$", 1, 1)] diff --git a/Bio/KEGG/Enzyme/__init__.py b/Bio/KEGG/Enzyme/__init__.py index 9b814393d..e3d06cf52 100644 --- a/Bio/KEGG/Enzyme/__init__.py +++ b/Bio/KEGG/Enzyme/__init__.py @@ -13,8 +13,10 @@ Classes: - Record - Holds the information from a KEGG Enzyme record. """ -from Bio.KEGG import _default_wrap, _struct_wrap, _wrap_kegg, _write_kegg - +from Bio.KEGG import _default_wrap +from Bio.KEGG import _struct_wrap +from Bio.KEGG import _wrap_kegg +from Bio.KEGG import _write_kegg # Set up line wrapping rules (see Bio.KEGG._wrap_kegg) rxn_wrap = [ diff --git a/Bio/KEGG/Gene/__init__.py b/Bio/KEGG/Gene/__init__.py index 3c46ae377..e64ce8ab3 100644 --- a/Bio/KEGG/Gene/__init__.py +++ b/Bio/KEGG/Gene/__init__.py @@ -15,8 +15,9 @@ Classes: """ -from Bio.KEGG import _default_wrap, _wrap_kegg, _write_kegg - +from Bio.KEGG import _default_wrap +from Bio.KEGG import _wrap_kegg +from Bio.KEGG import _write_kegg # Set up line wrapping rules (see Bio.KEGG._wrap_kegg) name_wrap = [0, "", (" ", "$", 1, 1), ("-", "$", 1, 1)] diff --git a/Bio/KEGG/KGML/KGML_parser.py b/Bio/KEGG/KGML/KGML_parser.py index a5854078b..4132cfab0 100644 --- a/Bio/KEGG/KGML/KGML_parser.py +++ b/Bio/KEGG/KGML/KGML_parser.py @@ -18,12 +18,15 @@ Functions: """ +from io import StringIO from xml.etree import ElementTree -from io import StringIO - -from Bio.KEGG.KGML.KGML_pathway import Component, Entry, Graphics -from Bio.KEGG.KGML.KGML_pathway import Pathway, Reaction, Relation +from Bio.KEGG.KGML.KGML_pathway import Component +from Bio.KEGG.KGML.KGML_pathway import Entry +from Bio.KEGG.KGML.KGML_pathway import Graphics +from Bio.KEGG.KGML.KGML_pathway import Pathway +from Bio.KEGG.KGML.KGML_pathway import Reaction +from Bio.KEGG.KGML.KGML_pathway import Relation def read(handle): @@ -174,6 +177,7 @@ class KGMLParser: else: # This should warn us of any unimplemented tags import warnings + from Bio import BiopythonParserWarning warnings.warn( diff --git a/Bio/KEGG/KGML/KGML_pathway.py b/Bio/KEGG/KGML/KGML_pathway.py index 62d7f6749..8e8c44b63 100644 --- a/Bio/KEGG/KGML/KGML_pathway.py +++ b/Bio/KEGG/KGML/KGML_pathway.py @@ -23,9 +23,9 @@ Classes: """ import time +import xml.etree.ElementTree as ET from itertools import chain from xml.dom import minidom -import xml.etree.ElementTree as ET # Pathway diff --git a/Bio/KEGG/REST.py b/Bio/KEGG/REST.py index 89ddaee24..151f391c0 100644 --- a/Bio/KEGG/REST.py +++ b/Bio/KEGG/REST.py @@ -30,8 +30,9 @@ Nucleic Acids Res. 28, 29-34 (2000). """ import io -from urllib.request import urlopen import time +from urllib.request import urlopen + from Bio._utils import function_with_previous diff --git a/Bio/LogisticRegression.py b/Bio/LogisticRegression.py index 1fd27fb95..fc42e384b 100644 --- a/Bio/LogisticRegression.py +++ b/Bio/LogisticRegression.py @@ -20,6 +20,7 @@ instead. """ import warnings + from Bio import BiopythonDeprecationWarning warnings.warn( diff --git a/Bio/MarkovModel.py b/Bio/MarkovModel.py index ced483c6b..10ef74906 100644 --- a/Bio/MarkovModel.py +++ b/Bio/MarkovModel.py @@ -23,6 +23,7 @@ MarkovModel Holds the description of a markov model """ import warnings + from Bio import BiopythonDeprecationWarning warnings.warn( diff --git a/Bio/MaxEntropy.py b/Bio/MaxEntropy.py index 4cc976af0..d2d1e0ad9 100644 --- a/Bio/MaxEntropy.py +++ b/Bio/MaxEntropy.py @@ -10,8 +10,8 @@ Uses Improved Iterative Scaling. """ # TODO Define terminology -from functools import reduce import warnings +from functools import reduce try: import numpy as np diff --git a/Bio/NaiveBayes.py b/Bio/NaiveBayes.py index 9e0d9ae8c..2285554bd 100644 --- a/Bio/NaiveBayes.py +++ b/Bio/NaiveBayes.py @@ -29,6 +29,7 @@ Functions: """ import warnings + from Bio import BiopythonDeprecationWarning warnings.warn( diff --git a/Bio/Nexus/Nexus.py b/Bio/Nexus/Nexus.py index b061added..3e3bee3f0 100644 --- a/Bio/Nexus/Nexus.py +++ b/Bio/Nexus/Nexus.py @@ -12,22 +12,20 @@ Based upon 'NEXUS: An extensible file format for systematic information' Maddison, Swofford, Maddison. 1997. Syst. Biol. 46(4):590-621 """ -from functools import reduce import copy import math import random import sys import warnings +from functools import reduce +from Bio import BiopythonDeprecationWarning +from Bio import BiopythonWarning from Bio import File from Bio.Data import IUPACData -from Bio.Seq import Seq -from Bio import BiopythonDeprecationWarning, BiopythonWarning - - from Bio.Nexus.StandardData import StandardData from Bio.Nexus.Trees import Tree - +from Bio.Seq import Seq INTERLEAVE = 70 SPECIAL_COMMANDS = [ diff --git a/Bio/Nexus/Nodes.py b/Bio/Nexus/Nodes.py index 764d99256..388d13494 100644 --- a/Bio/Nexus/Nodes.py +++ b/Bio/Nexus/Nodes.py @@ -16,7 +16,9 @@ Subclassed by Nexus.Trees to store phylogenetic trees. Bug reports to Frank Kauff (fkauff@biologie.uni-kl.de) """ -from typing import Dict, List, Optional +from typing import Dict +from typing import List +from typing import Optional class ChainException(Exception): diff --git a/Bio/Nexus/Trees.py b/Bio/Nexus/Trees.py index a2471c6fa..477c2fa69 100644 --- a/Bio/Nexus/Trees.py +++ b/Bio/Nexus/Trees.py @@ -16,8 +16,8 @@ nodes). import random import re import sys -from . import Nodes +from . import Nodes PRECISION_BRANCHLENGTH = 6 PRECISION_SUPPORT = 6 diff --git a/Bio/PDB/Atom.py b/Bio/PDB/Atom.py index e8edccd78..8f6e8ac1c 100644 --- a/Bio/PDB/Atom.py +++ b/Bio/PDB/Atom.py @@ -9,16 +9,18 @@ import copy import sys -from typing import Optional, TYPE_CHECKING, TypeVar import warnings +from typing import Optional +from typing import TYPE_CHECKING +from typing import TypeVar import numpy as np import Bio.PDB.Atom +from Bio.Data import IUPACData from Bio.PDB.Entity import DisorderedEntityWrapper from Bio.PDB.PDBExceptions import PDBConstructionWarning from Bio.PDB.vectors import Vector -from Bio.Data import IUPACData if TYPE_CHECKING: from Bio.PDB.Residue import Residue diff --git a/Bio/PDB/Chain.py b/Bio/PDB/Chain.py index d87a69350..0f99c2ff1 100644 --- a/Bio/PDB/Chain.py +++ b/Bio/PDB/Chain.py @@ -7,11 +7,12 @@ """Chain class, used in Structure objects.""" +from typing import Optional +from typing import TYPE_CHECKING + from Bio.PDB.Entity import Entity from Bio.PDB.internal_coords import IC_Chain -from typing import Optional, TYPE_CHECKING - if TYPE_CHECKING: from Bio.PDB.Model import Model from Bio.PDB.Residue import Residue diff --git a/Bio/PDB/DSSP.py b/Bio/PDB/DSSP.py index 1cc6fee0e..ccdd0309d 100644 --- a/Bio/PDB/DSSP.py +++ b/Bio/PDB/DSSP.py @@ -90,17 +90,18 @@ The dssp data returned for a single residue is a tuple in the form: """ -import re import os -from io import StringIO +import re import subprocess import warnings +from io import StringIO +from Bio.Data.PDBData import protein_letters_3to1 +from Bio.Data.PDBData import residue_sasa_scales from Bio.PDB.AbstractPropertyMap import AbstractResiduePropertyMap +from Bio.PDB.MMCIF2Dict import MMCIF2Dict from Bio.PDB.PDBExceptions import PDBException from Bio.PDB.PDBParser import PDBParser -from Bio.Data.PDBData import protein_letters_3to1, residue_sasa_scales -from Bio.PDB.MMCIF2Dict import MMCIF2Dict # Match C in DSSP _dssp_cys = re.compile("[a-z]") diff --git a/Bio/PDB/Dice.py b/Bio/PDB/Dice.py index dba259876..887995d5d 100644 --- a/Bio/PDB/Dice.py +++ b/Bio/PDB/Dice.py @@ -13,8 +13,8 @@ This module is used internally by the Bio.PDB.extract() function. import re import warnings -from Bio.PDB.PDBIO import PDBIO from Bio import BiopythonWarning +from Bio.PDB.PDBIO import PDBIO _hydrogen = re.compile("[123 ]*H.*") diff --git a/Bio/PDB/Entity.py b/Bio/PDB/Entity.py index 36a173a3c..6503aab86 100644 --- a/Bio/PDB/Entity.py +++ b/Bio/PDB/Entity.py @@ -10,10 +10,16 @@ It is a simple container class, with list and dictionary like properties. """ import warnings - from collections import deque from copy import copy -from typing import TYPE_CHECKING, Any, Dict, Generic, List, Optional, TypeVar, Union +from typing import Any +from typing import Dict +from typing import Generic +from typing import List +from typing import Optional +from typing import TYPE_CHECKING +from typing import TypeVar +from typing import Union import numpy as np diff --git a/Bio/PDB/FragmentMapper.py b/Bio/PDB/FragmentMapper.py index b4a08fbff..12e12580d 100644 --- a/Bio/PDB/FragmentMapper.py +++ b/Bio/PDB/FragmentMapper.py @@ -44,11 +44,9 @@ The library files can be found in directory 'fragment_data'. import numpy as np -from Bio.SVDSuperimposer import SVDSuperimposer - from Bio.PDB.PDBExceptions import PDBException from Bio.PDB.Polypeptide import PPBuilder - +from Bio.SVDSuperimposer import SVDSuperimposer # fragment file (lib_SIZE_z_LENGTH.txt) # SIZE=number of fragments diff --git a/Bio/PDB/HSExposure.py b/Bio/PDB/HSExposure.py index 0efc92291..785cff477 100644 --- a/Bio/PDB/HSExposure.py +++ b/Bio/PDB/HSExposure.py @@ -11,7 +11,8 @@ import warnings from math import pi from Bio.PDB.AbstractPropertyMap import AbstractPropertyMap -from Bio.PDB.Polypeptide import CaPPBuilder, is_aa +from Bio.PDB.Polypeptide import CaPPBuilder +from Bio.PDB.Polypeptide import is_aa from Bio.PDB.vectors import rotaxis diff --git a/Bio/PDB/MMCIFParser.py b/Bio/PDB/MMCIFParser.py index 170a80741..440063e7a 100644 --- a/Bio/PDB/MMCIFParser.py +++ b/Bio/PDB/MMCIFParser.py @@ -5,15 +5,15 @@ """mmCIF parsers.""" -import numpy as np import warnings -from Bio.File import as_handle +import numpy as np +from Bio.File import as_handle from Bio.PDB.MMCIF2Dict import MMCIF2Dict -from Bio.PDB.StructureBuilder import StructureBuilder from Bio.PDB.PDBExceptions import PDBConstructionException from Bio.PDB.PDBExceptions import PDBConstructionWarning +from Bio.PDB.StructureBuilder import StructureBuilder class MMCIFParser: diff --git a/Bio/PDB/Model.py b/Bio/PDB/Model.py index a79513e17..da1248fb1 100644 --- a/Bio/PDB/Model.py +++ b/Bio/PDB/Model.py @@ -5,11 +5,11 @@ """Model class, used in Structure objects.""" +from typing import TYPE_CHECKING + from Bio.PDB.Entity import Entity from Bio.PDB.internal_coords import IC_Chain -from typing import TYPE_CHECKING - if TYPE_CHECKING: from Bio.PDB.Chain import Chain from Bio.PDB.Structure import Structure diff --git a/Bio/PDB/NACCESS.py b/Bio/PDB/NACCESS.py index 94502b7a2..05cb12fce 100644 --- a/Bio/PDB/NACCESS.py +++ b/Bio/PDB/NACCESS.py @@ -20,15 +20,14 @@ use naccess -y, naccess -h or naccess -w to include HETATM records """ import os -import tempfile import shutil import subprocess +import tempfile import warnings + +from Bio.PDB.AbstractPropertyMap import AbstractAtomPropertyMap +from Bio.PDB.AbstractPropertyMap import AbstractResiduePropertyMap from Bio.PDB.PDBIO import PDBIO -from Bio.PDB.AbstractPropertyMap import ( - AbstractResiduePropertyMap, - AbstractAtomPropertyMap, -) def run_naccess( @@ -199,6 +198,7 @@ class NACCESS_atomic(AbstractAtomPropertyMap): if __name__ == "__main__": import sys + from Bio.PDB.PDBParser import PDBParser p = PDBParser() diff --git a/Bio/PDB/NeighborSearch.py b/Bio/PDB/NeighborSearch.py index 4079773aa..9a101b7d3 100644 --- a/Bio/PDB/NeighborSearch.py +++ b/Bio/PDB/NeighborSearch.py @@ -11,7 +11,9 @@ import numpy as np from Bio.PDB.PDBExceptions import PDBException -from Bio.PDB.Selection import unfold_entities, entity_levels, uniqueify +from Bio.PDB.Selection import entity_levels +from Bio.PDB.Selection import unfold_entities +from Bio.PDB.Selection import uniqueify class NeighborSearch: diff --git a/Bio/PDB/PDBIO.py b/Bio/PDB/PDBIO.py index 8a44d5490..35fc37d4a 100644 --- a/Bio/PDB/PDBIO.py +++ b/Bio/PDB/PDBIO.py @@ -10,15 +10,14 @@ import warnings # Exceptions and Warnings from Bio import BiopythonWarning + +# Allowed Elements +from Bio.Data.IUPACData import atom_weights from Bio.PDB.PDBExceptions import PDBIOException # To allow saving of chains, residues, etc.. from Bio.PDB.StructureBuilder import StructureBuilder -# Allowed Elements -from Bio.Data.IUPACData import atom_weights - - _ATOM_FORMAT_STRING = ( "%s%5i %-4s%c%3s %c%4i%c %8.3f%8.3f%8.3f%s%6.2f %4s%2s%2s\n" ) diff --git a/Bio/PDB/PDBList.py b/Bio/PDB/PDBList.py index 4a72a2730..95f081e87 100644 --- a/Bio/PDB/PDBList.py +++ b/Bio/PDB/PDBList.py @@ -44,7 +44,9 @@ import re import shutil import sys from concurrent.futures import ThreadPoolExecutor -from typing import List, Optional, Tuple +from typing import List +from typing import Optional +from typing import Tuple from urllib.request import Request from urllib.request import urlcleanup from urllib.request import urlopen diff --git a/Bio/PDB/PDBMLParser.py b/Bio/PDB/PDBMLParser.py index 7c57111cd..2bd832be8 100644 --- a/Bio/PDB/PDBMLParser.py +++ b/Bio/PDB/PDBMLParser.py @@ -10,7 +10,10 @@ See https://pdbml.wwpdb.org/. """ from os import PathLike -from typing import Dict, Union, Tuple, TextIO +from typing import Dict +from typing import TextIO +from typing import Tuple +from typing import Union from xml.etree import ElementTree from xml.etree.ElementTree import Element diff --git a/Bio/PDB/PDBParser.py b/Bio/PDB/PDBParser.py index 97106b3ed..891d12155 100644 --- a/Bio/PDB/PDBParser.py +++ b/Bio/PDB/PDBParser.py @@ -10,13 +10,10 @@ import warnings import numpy as np from Bio.File import as_handle - +from Bio.PDB.parse_pdb_header import _parse_pdb_header_list from Bio.PDB.PDBExceptions import PDBConstructionException from Bio.PDB.PDBExceptions import PDBConstructionWarning - from Bio.PDB.StructureBuilder import StructureBuilder -from Bio.PDB.parse_pdb_header import _parse_pdb_header_list - # If PDB spec says "COLUMNS 18-20" this means line[17:20] diff --git a/Bio/PDB/PICIO.py b/Bio/PDB/PICIO.py index 0ed8d9df0..b8554337c 100644 --- a/Bio/PDB/PICIO.py +++ b/Bio/PDB/PICIO.py @@ -9,38 +9,35 @@ import re from datetime import date from io import StringIO +from typing import List +from typing import Optional +from typing import Set +from typing import TextIO +from typing import Tuple +from typing import Union import numpy as np +from Bio import SeqIO +from Bio.Data.PDBData import protein_letters_1to3 from Bio.File import as_handle -from Bio.PDB.StructureBuilder import StructureBuilder +from Bio.PDB.ic_data import dihedra_primary_defaults +from Bio.PDB.ic_data import dihedra_secondary_defaults +from Bio.PDB.ic_data import dihedra_secondary_xoxt_defaults +from Bio.PDB.ic_data import hedra_defaults +from Bio.PDB.ic_data import ic_data_backbone +from Bio.PDB.ic_data import ic_data_sidechains +from Bio.PDB.internal_coords import AtomKey +from Bio.PDB.internal_coords import Dihedron +from Bio.PDB.internal_coords import Edron +from Bio.PDB.internal_coords import Hedron +from Bio.PDB.internal_coords import IC_Chain +from Bio.PDB.internal_coords import IC_Residue from Bio.PDB.parse_pdb_header import _parse_pdb_header_list from Bio.PDB.PDBExceptions import PDBException - -from Bio.Data.PDBData import protein_letters_1to3 - -from Bio.PDB.internal_coords import ( - IC_Residue, - IC_Chain, - Edron, - Hedron, - Dihedron, - AtomKey, -) - -from Bio.PDB.ic_data import ( - ic_data_backbone, - ic_data_sidechains, - hedra_defaults, - dihedra_primary_defaults, - dihedra_secondary_defaults, - dihedra_secondary_xoxt_defaults, -) - -from typing import TextIO, Set, List, Tuple, Union, Optional -from Bio.PDB.Structure import Structure from Bio.PDB.Residue import Residue -from Bio import SeqIO +from Bio.PDB.Structure import Structure +from Bio.PDB.StructureBuilder import StructureBuilder # @profile diff --git a/Bio/PDB/PSEA.py b/Bio/PDB/PSEA.py index 399565b8a..695c8d90a 100644 --- a/Bio/PDB/PSEA.py +++ b/Bio/PDB/PSEA.py @@ -16,8 +16,8 @@ Comput Appl Biosci 1997 , 13:291-295 ftp://ftp.lmcp.jussieu.fr/pub/sincris/software/protein/p-sea/ """ -import subprocess import os +import subprocess from Bio.PDB.Polypeptide import is_aa diff --git a/Bio/PDB/Polypeptide.py b/Bio/PDB/Polypeptide.py index e91eb18d3..8025b32c3 100644 --- a/Bio/PDB/Polypeptide.py +++ b/Bio/PDB/Polypeptide.py @@ -52,16 +52,15 @@ last residues) have been shown as M (methionine) by the get_sequence method. import warnings - from Bio.Data.PDBData import nucleic_letters_3to1 from Bio.Data.PDBData import nucleic_letters_3to1_extended from Bio.Data.PDBData import protein_letters_3to1 from Bio.Data.PDBData import protein_letters_3to1_extended from Bio.PDB.PDBExceptions import PDBException -from Bio.PDB.vectors import calc_dihedral, calc_angle +from Bio.PDB.vectors import calc_angle +from Bio.PDB.vectors import calc_dihedral from Bio.Seq import Seq - # Sorted by 1-letter code aa3, aa1 = zip(*sorted(protein_letters_3to1.items(), key=lambda x: x[1])) standard_aa_names = aa3 diff --git a/Bio/PDB/Residue.py b/Bio/PDB/Residue.py index a16108db3..4dad36ccb 100644 --- a/Bio/PDB/Residue.py +++ b/Bio/PDB/Residue.py @@ -7,10 +7,12 @@ """Residue class, used by Structure objects.""" -from Bio.PDB.PDBExceptions import PDBConstructionException -from Bio.PDB.Entity import Entity, DisorderedEntityWrapper +from typing import TYPE_CHECKING +from typing import TypeVar -from typing import TYPE_CHECKING, TypeVar +from Bio.PDB.Entity import DisorderedEntityWrapper +from Bio.PDB.Entity import Entity +from Bio.PDB.PDBExceptions import PDBConstructionException if TYPE_CHECKING: from Bio.PDB.Atom import Atom diff --git a/Bio/PDB/ResidueDepth.py b/Bio/PDB/ResidueDepth.py index ccac03f0b..86622b453 100644 --- a/Bio/PDB/ResidueDepth.py +++ b/Bio/PDB/ResidueDepth.py @@ -57,13 +57,12 @@ import warnings import numpy as np +from Bio import BiopythonWarning from Bio.PDB import PDBParser from Bio.PDB import Selection from Bio.PDB.AbstractPropertyMap import AbstractPropertyMap from Bio.PDB.Polypeptide import is_aa -from Bio import BiopythonWarning - # Table 1: Atom Type to radius _atomic_radii = { # atom num dist Rexplicit Runited-atom diff --git a/Bio/PDB/SCADIO.py b/Bio/PDB/SCADIO.py index 60c86778c..f2c7b2215 100644 --- a/Bio/PDB/SCADIO.py +++ b/Bio/PDB/SCADIO.py @@ -36,17 +36,17 @@ hydrogen bonds is at . """ # import re -from Bio.File import as_handle -from Bio.PDB.PDBExceptions import PDBException +import numpy as np # type: ignore -from Bio.PDB.internal_coords import IC_Residue, IC_Chain +from Bio.File import as_handle +from Bio.PDB.internal_coords import IC_Chain +from Bio.PDB.internal_coords import IC_Residue +from Bio.PDB.PDBExceptions import PDBException # from Bio.PDB.Structure import Structure # from Bio.PDB.Residue import Residue from Bio.PDB.vectors import homog_scale_mtx -import numpy as np # type: ignore - def _scale_residue(res, scale, scaleMtx): if res.internal_coord: diff --git a/Bio/PDB/Selection.py b/Bio/PDB/Selection.py index e3143872e..5b00fb758 100644 --- a/Bio/PDB/Selection.py +++ b/Bio/PDB/Selection.py @@ -13,7 +13,6 @@ from Bio.PDB.Atom import Atom from Bio.PDB.Entity import Entity from Bio.PDB.PDBExceptions import PDBException - entity_levels = ["A", "R", "C", "M", "S"] diff --git a/Bio/PDB/Structure.py b/Bio/PDB/Structure.py index 977377ced..c850da39d 100644 --- a/Bio/PDB/Structure.py +++ b/Bio/PDB/Structure.py @@ -7,10 +7,10 @@ """The structure class, representing a macromolecular structure.""" -from Bio.PDB.Entity import Entity - from typing import TYPE_CHECKING +from Bio.PDB.Entity import Entity + if TYPE_CHECKING: from Bio.PDB.Model import Model diff --git a/Bio/PDB/StructureAlignment.py b/Bio/PDB/StructureAlignment.py index 0d6ce190f..ceb826028 100644 --- a/Bio/PDB/StructureAlignment.py +++ b/Bio/PDB/StructureAlignment.py @@ -8,7 +8,6 @@ """Map residues of two structures to each other based on a FASTA alignment.""" from Bio.Data import PDBData - from Bio.PDB import Selection from Bio.PDB.Polypeptide import is_aa diff --git a/Bio/PDB/StructureBuilder.py b/Bio/PDB/StructureBuilder.py index a6f96d048..1c6152ec8 100644 --- a/Bio/PDB/StructureBuilder.py +++ b/Bio/PDB/StructureBuilder.py @@ -8,19 +8,22 @@ This is used by the PDBParser and MMCIFparser classes. """ -from typing import Optional -import numpy as np import warnings +from typing import Optional + +import numpy as np + +from Bio.PDB.Atom import Atom +from Bio.PDB.Atom import DisorderedAtom +from Bio.PDB.Chain import Chain +from Bio.PDB.Model import Model +from Bio.PDB.PDBExceptions import PDBConstructionException +from Bio.PDB.PDBExceptions import PDBConstructionWarning +from Bio.PDB.Residue import DisorderedResidue +from Bio.PDB.Residue import Residue # SMCRA hierarchy from Bio.PDB.Structure import Structure -from Bio.PDB.Model import Model -from Bio.PDB.Chain import Chain -from Bio.PDB.Residue import Residue, DisorderedResidue -from Bio.PDB.Atom import Atom, DisorderedAtom - -from Bio.PDB.PDBExceptions import PDBConstructionException -from Bio.PDB.PDBExceptions import PDBConstructionWarning def _is_completely_disordered(residue: Residue) -> bool: diff --git a/Bio/PDB/Superimposer.py b/Bio/PDB/Superimposer.py index b8cd89124..a5ebe58fd 100644 --- a/Bio/PDB/Superimposer.py +++ b/Bio/PDB/Superimposer.py @@ -9,8 +9,8 @@ import numpy as np -from Bio.SVDSuperimposer import SVDSuperimposer from Bio.PDB.PDBExceptions import PDBException +from Bio.SVDSuperimposer import SVDSuperimposer class Superimposer: diff --git a/Bio/PDB/__init__.py b/Bio/PDB/__init__.py index 53a614a59..7c778f74a 100644 --- a/Bio/PDB/__init__.py +++ b/Bio/PDB/__init__.py @@ -32,58 +32,72 @@ except ImportError: ) from None # Get a Structure object from a PDB file -from .PDBParser import PDBParser -from .MMCIFParser import MMCIFParser -from .MMCIFParser import FastMMCIFParser -from .PDBMLParser import PDBMLParser - -# Download from the PDB -from .PDBList import PDBList - -# Parse PDB header directly -from .parse_pdb_header import parse_pdb_header - -# Find connected polypeptides in a Structure -from .Polypeptide import PPBuilder, CaPPBuilder -from .Polypeptide import is_aa, standard_aa_names, is_nucleic - -# IO of PDB files (including flexible selective output) -from .PDBIO import PDBIO, Select -from .mmcifio import MMCIFIO - # Some methods to eg. get a list of Residues # from a list of Atoms. from . import Selection -# Superimpose atom sets -from .Superimposer import Superimposer - # CEAlign structural alignment from .cealign import CEAligner -# 3D vector class -from .vectors import Vector, calc_angle, calc_dihedral, refmat, rotmat, rotaxis -from .vectors import vector_to_axis, m2rotaxis, rotaxis2m +# Write out chain(start-end) to PDB file +from .Dice import extract + +# DSSP handle +# (secondary structure and solvent accessible area calculation) +from .DSSP import DSSP +from .DSSP import make_dssp_dict + +# Kolodny et al.'s backbone libraries +from .FragmentMapper import FragmentMapper +from .HSExposure import ExposureCN + +# Calculation of Half Sphere Solvent Exposure +from .HSExposure import HSExposureCA +from .HSExposure import HSExposureCB +from .mmcifio import MMCIFIO +from .MMCIFParser import FastMMCIFParser +from .MMCIFParser import MMCIFParser + +# Parse PDB header directly +from .parse_pdb_header import parse_pdb_header + +# IO of PDB files (including flexible selective output) +from .PDBIO import PDBIO +from .PDBIO import Select + +# Download from the PDB +from .PDBList import PDBList +from .PDBMLParser import PDBMLParser +from .PDBParser import PDBParser +from .Polypeptide import CaPPBuilder +from .Polypeptide import is_aa +from .Polypeptide import is_nucleic + +# Find connected polypeptides in a Structure +from .Polypeptide import PPBuilder +from .Polypeptide import standard_aa_names +from .ResidueDepth import get_surface + +# Residue depth: +# distance of residue atoms from solvent accessible surface +from .ResidueDepth import ResidueDepth # Alignment module from .StructureAlignment import StructureAlignment -# DSSP handle -# (secondary structure and solvent accessible area calculation) -from .DSSP import DSSP, make_dssp_dict +# Superimpose atom sets +from .Superimposer import Superimposer +from .vectors import calc_angle +from .vectors import calc_dihedral +from .vectors import m2rotaxis +from .vectors import refmat +from .vectors import rotaxis +from .vectors import rotaxis2m +from .vectors import rotmat -# Residue depth: -# distance of residue atoms from solvent accessible surface -from .ResidueDepth import ResidueDepth, get_surface - -# Calculation of Half Sphere Solvent Exposure -from .HSExposure import HSExposureCA, HSExposureCB, ExposureCN - -# Kolodny et al.'s backbone libraries -from .FragmentMapper import FragmentMapper - -# Write out chain(start-end) to PDB file -from .Dice import extract +# 3D vector class +from .vectors import Vector +from .vectors import vector_to_axis # Fast atom neighbor search # Depends on kdtrees C module diff --git a/Bio/PDB/alphafold_db.py b/Bio/PDB/alphafold_db.py index 700b57da4..4f0317e45 100644 --- a/Bio/PDB/alphafold_db.py +++ b/Bio/PDB/alphafold_db.py @@ -6,11 +6,13 @@ See the `database website `_ and the `API docs Iterator[dict]: diff --git a/Bio/PDB/binary_cif.py b/Bio/PDB/binary_cif.py index 1f373c367..008033b9a 100644 --- a/Bio/PDB/binary_cif.py +++ b/Bio/PDB/binary_cif.py @@ -3,10 +3,10 @@ A module to interact with BinaryCIF-formatted files. """ import gzip +from collections import deque from typing import Optional import numpy as np -from collections import deque try: import msgpack @@ -21,7 +21,6 @@ import Bio.PDB._bcif_helper as _bcif_helper from Bio.PDB.Structure import Structure from Bio.PDB.StructureBuilder import StructureBuilder - # https://github.com/ihmwg/python-ihm/blob/main/ihm/format_bcif.py # https://numpy.org/doc/stable/reference/arrays.dtypes.html# # The "<" tells NumPy to use little endian representation. diff --git a/Bio/PDB/cealign.py b/Bio/PDB/cealign.py index 81dc13bcd..61edeb655 100644 --- a/Bio/PDB/cealign.py +++ b/Bio/PDB/cealign.py @@ -24,7 +24,6 @@ from Bio.PDB.ccealign import run_cealign from Bio.PDB.PDBExceptions import PDBException from Bio.PDB.qcprot import QCPSuperimposer - _RESID_SORTER = lambda r: r.id[1] # noqa: E731 diff --git a/Bio/PDB/ic_rebuild.py b/Bio/PDB/ic_rebuild.py index 49407438a..cae4e5187 100644 --- a/Bio/PDB/ic_rebuild.py +++ b/Bio/PDB/ic_rebuild.py @@ -7,26 +7,31 @@ """Convert XYZ Structure to internal coordinates and back, test result.""" import re - +from io import StringIO from itertools import zip_longest +from typing import Any + +# for typing +from typing import Dict +from typing import Tuple +from typing import Union import numpy as np -from Bio.PDB.PDBExceptions import PDBException -from io import StringIO from Bio.File import as_handle -from Bio.PDB.PDBIO import PDBIO - -from Bio.PDB.Structure import Structure -from Bio.PDB.internal_coords import IC_Residue -from Bio.PDB.PICIO import write_PIC, read_PIC, enumerate_atoms, pdb_date - -# for typing -from typing import Dict, Union, Any, Tuple from Bio.PDB.Atom import Atom -from Bio.PDB.Residue import Residue, DisorderedResidue -from Bio.PDB.Model import Model from Bio.PDB.Chain import Chain +from Bio.PDB.internal_coords import IC_Residue +from Bio.PDB.Model import Model +from Bio.PDB.PDBExceptions import PDBException +from Bio.PDB.PDBIO import PDBIO +from Bio.PDB.PICIO import enumerate_atoms +from Bio.PDB.PICIO import pdb_date +from Bio.PDB.PICIO import read_PIC +from Bio.PDB.PICIO import write_PIC +from Bio.PDB.Residue import DisorderedResidue +from Bio.PDB.Residue import Residue +from Bio.PDB.Structure import Structure def structure_rebuild_test(entity, verbose: bool = False, quick: bool = False) -> Dict: diff --git a/Bio/PDB/internal_coords.py b/Bio/PDB/internal_coords.py index 7d55c2256..755575dd3 100644 --- a/Bio/PDB/internal_coords.py +++ b/Bio/PDB/internal_coords.py @@ -267,38 +267,40 @@ Custom exception classes: :class:`HedronMatchError` and :class:`MissingAtomError` """ # noqa -import re -from collections import deque, namedtuple import copy +import re +from collections import deque +from collections import namedtuple # from numpy import floor, ndarray from numbers import Integral +from typing import cast +from typing import Dict + +# for type checking only +from typing import List +from typing import Optional +from typing import Set +from typing import TextIO +from typing import Tuple +from typing import TYPE_CHECKING +from typing import Union import numpy as np # type: ignore -from Bio.PDB.Atom import Atom, DisorderedAtom from Bio.Data.PDBData import protein_letters_3to1 - -from Bio.PDB.vectors import multi_coord_space, multi_rot_Z -from Bio.PDB.vectors import coord_space - -from Bio.PDB.ic_data import ic_data_backbone, ic_data_sidechains +from Bio.PDB.Atom import Atom +from Bio.PDB.Atom import DisorderedAtom +from Bio.PDB.ic_data import dihedra_primary_defaults +from Bio.PDB.ic_data import hedra_defaults +from Bio.PDB.ic_data import ic_data_backbone +from Bio.PDB.ic_data import ic_data_sidechain_extras +from Bio.PDB.ic_data import ic_data_sidechains from Bio.PDB.ic_data import primary_angles -from Bio.PDB.ic_data import ic_data_sidechain_extras, residue_atom_bond_state -from Bio.PDB.ic_data import dihedra_primary_defaults, hedra_defaults - -# for type checking only -from typing import ( - List, - Dict, - Set, - TextIO, - Union, - Tuple, - cast, - TYPE_CHECKING, - Optional, -) +from Bio.PDB.ic_data import residue_atom_bond_state +from Bio.PDB.vectors import coord_space +from Bio.PDB.vectors import multi_coord_space +from Bio.PDB.vectors import multi_rot_Z if TYPE_CHECKING: from Bio.PDB.Residue import Residue diff --git a/Bio/PDB/mmcifio.py b/Bio/PDB/mmcifio.py index 136249ca6..514a22508 100644 --- a/Bio/PDB/mmcifio.py +++ b/Bio/PDB/mmcifio.py @@ -13,8 +13,9 @@ See https://www.iucr.org/resources/cif/spec/version1.1/cifsyntax for syntax. import re from collections import defaultdict +from Bio.PDB.PDBIO import Select +from Bio.PDB.PDBIO import StructureIO from Bio.PDB.StructureBuilder import StructureBuilder -from Bio.PDB.PDBIO import Select, StructureIO # If certain entries should have a certain order of keys, that is specified here mmcif_order = { diff --git a/Bio/PDB/mmtf/DefaultParser.py b/Bio/PDB/mmtf/DefaultParser.py index 23745ff72..44c3b94b3 100644 --- a/Bio/PDB/mmtf/DefaultParser.py +++ b/Bio/PDB/mmtf/DefaultParser.py @@ -6,9 +6,10 @@ # package. """Code handle loading mmtf-python into Biopython's structures.""" -from Bio.PDB.StructureBuilder import StructureBuilder import numpy as np +from Bio.PDB.StructureBuilder import StructureBuilder + class StructureDecoder: """Class to pass the data from mmtf-python into a Biopython data structure.""" diff --git a/Bio/PDB/mmtf/__init__.py b/Bio/PDB/mmtf/__init__.py index 466243fc9..6c7b19afd 100644 --- a/Bio/PDB/mmtf/__init__.py +++ b/Bio/PDB/mmtf/__init__.py @@ -7,7 +7,8 @@ """Support for loading 3D structures stored in MMTF files.""" try: - from mmtf import fetch, parse + from mmtf import fetch + from mmtf import parse except ImportError: from Bio import MissingPythonDependencyError @@ -15,6 +16,7 @@ except ImportError: "Install mmtf to use Bio.PDB.mmtf (e.g. pip install mmtf-python)" ) from None from Bio.PDB.mmtf.DefaultParser import StructureDecoder + from .mmtfio import MMTFIO diff --git a/Bio/PDB/mmtf/mmtfio.py b/Bio/PDB/mmtf/mmtfio.py index 26c302264..8d24da773 100644 --- a/Bio/PDB/mmtf/mmtfio.py +++ b/Bio/PDB/mmtf/mmtfio.py @@ -10,11 +10,14 @@ import itertools from collections import defaultdict from string import ascii_uppercase -from Bio.PDB.StructureBuilder import StructureBuilder -from Bio.PDB.PDBIO import Select, StructureIO + from mmtf.api.mmtf_writer import MMTFEncoder -from Bio.SeqUtils import seq1 + from Bio.Data.PDBData import protein_letters_3to1_extended +from Bio.PDB.PDBIO import Select +from Bio.PDB.PDBIO import StructureIO +from Bio.PDB.StructureBuilder import StructureBuilder +from Bio.SeqUtils import seq1 _select = Select() diff --git a/Bio/PDB/vectors.py b/Bio/PDB/vectors.py index e828bfa89..b2bfa9351 100644 --- a/Bio/PDB/vectors.py +++ b/Bio/PDB/vectors.py @@ -7,8 +7,10 @@ """Vector class, including rotation-related functions.""" +from typing import Optional +from typing import Tuple + import numpy as np # type: ignore -from typing import Tuple, Optional def m2rotaxis(m): diff --git a/Bio/Phylo/Applications/_Fasttree.py b/Bio/Phylo/Applications/_Fasttree.py index 08451a91e..d86fa20e2 100644 --- a/Bio/Phylo/Applications/_Fasttree.py +++ b/Bio/Phylo/Applications/_Fasttree.py @@ -8,7 +8,10 @@ # package. """Command-line wrapper for tree inference program Fasttree.""" -from Bio.Application import _Option, _Switch, _Argument, AbstractCommandline +from Bio.Application import _Argument +from Bio.Application import _Option +from Bio.Application import _Switch +from Bio.Application import AbstractCommandline def _is_int(x): diff --git a/Bio/Phylo/Applications/_Phyml.py b/Bio/Phylo/Applications/_Phyml.py index f3aba5f02..6430d495c 100644 --- a/Bio/Phylo/Applications/_Phyml.py +++ b/Bio/Phylo/Applications/_Phyml.py @@ -6,7 +6,9 @@ # package. """Command-line wrapper for the tree inference program PhyML.""" -from Bio.Application import _Option, _Switch, AbstractCommandline +from Bio.Application import _Option +from Bio.Application import _Switch +from Bio.Application import AbstractCommandline class PhymlCommandline(AbstractCommandline): diff --git a/Bio/Phylo/Applications/_Raxml.py b/Bio/Phylo/Applications/_Raxml.py index 8e45513cd..a43a93e4d 100644 --- a/Bio/Phylo/Applications/_Raxml.py +++ b/Bio/Phylo/Applications/_Raxml.py @@ -10,7 +10,9 @@ Derived from the help page for RAxML version 7.3 by Alexandros Stamatakis, but should work for any version 7.X (and probably earlier for most options). """ -from Bio.Application import _Option, _Switch, AbstractCommandline +from Bio.Application import _Option +from Bio.Application import _Switch +from Bio.Application import AbstractCommandline class RaxmlCommandline(AbstractCommandline): diff --git a/Bio/Phylo/Applications/__init__.py b/Bio/Phylo/Applications/__init__.py index 8db9325a2..b99fde3ba 100644 --- a/Bio/Phylo/Applications/__init__.py +++ b/Bio/Phylo/Applications/__init__.py @@ -11,9 +11,9 @@ We have decided to remove this module in future, and instead recommend building your command and invoking it via the subprocess module directly. """ +from ._Fasttree import FastTreeCommandline from ._Phyml import PhymlCommandline from ._Raxml import RaxmlCommandline -from ._Fasttree import FastTreeCommandline # Make this explicit, then they show up in the API docs __all__ = ("PhymlCommandline", "RaxmlCommandline", "FastTreeCommandline") diff --git a/Bio/Phylo/BaseTree.py b/Bio/Phylo/BaseTree.py index 78726f938..fb7d3659f 100644 --- a/Bio/Phylo/BaseTree.py +++ b/Bio/Phylo/BaseTree.py @@ -18,7 +18,6 @@ import random import re import warnings - # General tree-traversal algorithms @@ -959,6 +958,7 @@ class Tree(TreeElement, TreeMixin): """ if format_spec: from io import StringIO + from Bio.Phylo import _io handle = StringIO() diff --git a/Bio/Phylo/CDAOIO.py b/Bio/Phylo/CDAOIO.py index c8a023636..c75569a1a 100644 --- a/Bio/Phylo/CDAOIO.py +++ b/Bio/Phylo/CDAOIO.py @@ -22,13 +22,13 @@ them to a file. """ import os - from io import StringIO from Bio import MissingPythonDependencyError - from Bio.Phylo import CDAO -from ._cdao_owl import cdao_namespaces, resolve_uri + +from ._cdao_owl import cdao_namespaces +from ._cdao_owl import resolve_uri # import of cdao_elements from ._cdao_owl removed in Biopython 1.74 diff --git a/Bio/Phylo/Consensus.py b/Bio/Phylo/Consensus.py index e1114e11e..80273ff25 100644 --- a/Bio/Phylo/Consensus.py +++ b/Bio/Phylo/Consensus.py @@ -12,12 +12,12 @@ searching and some common consensus algorithms such as strict, majority rule and adam consensus. """ -import random import itertools - +import random from ast import literal_eval -from Bio.Phylo import BaseTree + from Bio.Align import MultipleSeqAlignment +from Bio.Phylo import BaseTree class _BitString(str): diff --git a/Bio/Phylo/NeXMLIO.py b/Bio/Phylo/NeXMLIO.py index dcfedb329..436dfdbf8 100644 --- a/Bio/Phylo/NeXMLIO.py +++ b/Bio/Phylo/NeXMLIO.py @@ -19,8 +19,9 @@ from xml.etree import ElementTree from Bio.Phylo import NeXML -from ._cdao_owl import cdao_elements, cdao_namespaces, resolve_uri - +from ._cdao_owl import cdao_elements +from ._cdao_owl import cdao_namespaces +from ._cdao_owl import resolve_uri NAMESPACES = { "xsi": "http://www.w3.org/2001/XMLSchema-instance", diff --git a/Bio/Phylo/NexusIO.py b/Bio/Phylo/NexusIO.py index 944ea19c3..b1b69ef1c 100644 --- a/Bio/Phylo/NexusIO.py +++ b/Bio/Phylo/NexusIO.py @@ -10,8 +10,8 @@ from itertools import chain from Bio.Nexus import Nexus -from Bio.Phylo import Newick, NewickIO - +from Bio.Phylo import Newick +from Bio.Phylo import NewickIO # Structure of a Nexus tree-only file NEX_TEMPLATE = """\ diff --git a/Bio/Phylo/PAML/_parse_baseml.py b/Bio/Phylo/PAML/_parse_baseml.py index e5f3be8a8..3553d93d0 100644 --- a/Bio/Phylo/PAML/_parse_baseml.py +++ b/Bio/Phylo/PAML/_parse_baseml.py @@ -9,7 +9,6 @@ import re - line_floats_re = re.compile(r"-*\d+\.\d+") diff --git a/Bio/Phylo/PAML/baseml.py b/Bio/Phylo/PAML/baseml.py index 2030d8e97..319146dba 100644 --- a/Bio/Phylo/PAML/baseml.py +++ b/Bio/Phylo/PAML/baseml.py @@ -12,8 +12,9 @@ Maximum likelihood analysis of nucleotide sequences. import os import os.path -from ._paml import Paml + from . import _parse_baseml +from ._paml import Paml class BasemlError(EnvironmentError): diff --git a/Bio/Phylo/PAML/chi2.py b/Bio/Phylo/PAML/chi2.py index 515ba18fe..e8a4e53fa 100644 --- a/Bio/Phylo/PAML/chi2.py +++ b/Bio/Phylo/PAML/chi2.py @@ -14,7 +14,8 @@ for likelihood ratio tests. """ -from math import log, exp +from math import exp +from math import log def cdf_chi2(df, stat): diff --git a/Bio/Phylo/PAML/codeml.py b/Bio/Phylo/PAML/codeml.py index e11d5e240..d4c39f068 100644 --- a/Bio/Phylo/PAML/codeml.py +++ b/Bio/Phylo/PAML/codeml.py @@ -11,8 +11,9 @@ Maximum likelihood analysis using codon substitution models. """ import os.path -from ._paml import Paml + from . import _parse_codeml +from ._paml import Paml class CodemlError(EnvironmentError): diff --git a/Bio/Phylo/PAML/yn00.py b/Bio/Phylo/PAML/yn00.py index 7db6f0191..1b71ea67f 100644 --- a/Bio/Phylo/PAML/yn00.py +++ b/Bio/Phylo/PAML/yn00.py @@ -12,8 +12,9 @@ rates in pairwise comparison of protein-coding DNA sequences. """ import os.path -from ._paml import Paml + from . import _parse_yn00 +from ._paml import Paml class Yn00Error(EnvironmentError): diff --git a/Bio/Phylo/PhyloXML.py b/Bio/Phylo/PhyloXML.py index 7edeaf888..121e8c283 100644 --- a/Bio/Phylo/PhyloXML.py +++ b/Bio/Phylo/PhyloXML.py @@ -19,13 +19,14 @@ Journal article: import re import warnings -from Bio.Align import Alignment, MultipleSeqAlignment -from Bio.Seq import Seq -from Bio.SeqFeature import SeqFeature, SimpleLocation -from Bio.SeqRecord import SeqRecord from Bio import BiopythonWarning - +from Bio.Align import Alignment +from Bio.Align import MultipleSeqAlignment from Bio.Phylo import BaseTree +from Bio.Seq import Seq +from Bio.SeqFeature import SeqFeature +from Bio.SeqFeature import SimpleLocation +from Bio.SeqRecord import SeqRecord class PhyloXMLWarning(BiopythonWarning): diff --git a/Bio/Phylo/PhyloXMLIO.py b/Bio/Phylo/PhyloXMLIO.py index 24f47b789..71410383a 100644 --- a/Bio/Phylo/PhyloXMLIO.py +++ b/Bio/Phylo/PhyloXMLIO.py @@ -23,7 +23,6 @@ from xml.etree import ElementTree from Bio.Phylo import PhyloXML as PX - # Recognize the phyloXML namespace when parsing # See http://effbot.org/zone/element-namespaces.htm NAMESPACES = {"phy": "http://www.phyloxml.org"} diff --git a/Bio/Phylo/__init__.py b/Bio/Phylo/__init__.py index bc1e1cfff..c1d201750 100644 --- a/Bio/Phylo/__init__.py +++ b/Bio/Phylo/__init__.py @@ -11,5 +11,11 @@ See Also: http://biopython.org/wiki/Phylo """ -from Bio.Phylo._io import parse, read, write, convert -from Bio.Phylo._utils import draw, draw_ascii, to_networkx, to_igraph +from Bio.Phylo._io import convert +from Bio.Phylo._io import parse +from Bio.Phylo._io import read +from Bio.Phylo._io import write +from Bio.Phylo._utils import draw +from Bio.Phylo._utils import draw_ascii +from Bio.Phylo._utils import to_igraph +from Bio.Phylo._utils import to_networkx diff --git a/Bio/Phylo/_cdao_owl.py b/Bio/Phylo/_cdao_owl.py index 051ea0cb2..d8de6572e 100644 --- a/Bio/Phylo/_cdao_owl.py +++ b/Bio/Phylo/_cdao_owl.py @@ -9,7 +9,6 @@ import xml.etree.ElementTree as ET - cdao_namespaces = { "cdao": "http://purl.obolibrary.org/obo/cdao.owl#", "obo": "http://purl.obolibrary.org/obo/", diff --git a/Bio/Phylo/_io.py b/Bio/Phylo/_io.py index c37c55f25..0fd0d6b75 100644 --- a/Bio/Phylo/_io.py +++ b/Bio/Phylo/_io.py @@ -12,7 +12,11 @@ This API follows the same semantics as Biopython's ``SeqIO`` and """ from Bio import File -from Bio.Phylo import BaseTree, NewickIO, NexusIO, PhyloXMLIO, NeXMLIO +from Bio.Phylo import BaseTree +from Bio.Phylo import NewickIO +from Bio.Phylo import NeXMLIO +from Bio.Phylo import NexusIO +from Bio.Phylo import PhyloXMLIO supported_formats = { "newick": NewickIO, diff --git a/Bio/PopGen/GenePop/Controller.py b/Bio/PopGen/GenePop/Controller.py index 6deb70f4b..0739f9181 100644 --- a/Bio/PopGen/GenePop/Controller.py +++ b/Bio/PopGen/GenePop/Controller.py @@ -12,7 +12,8 @@ import re import shutil import tempfile -from Bio.Application import AbstractCommandline, _Argument +from Bio.Application import _Argument +from Bio.Application import AbstractCommandline def _gp_float(tok): diff --git a/Bio/PopGen/GenePop/EasyController.py b/Bio/PopGen/GenePop/EasyController.py index 1334b53f8..c650b8e2d 100644 --- a/Bio/PopGen/GenePop/EasyController.py +++ b/Bio/PopGen/GenePop/EasyController.py @@ -11,9 +11,10 @@ This interface is less efficient than the standard GenePopControler """ -from .Controller import GenePopController from Bio.PopGen import GenePop +from .Controller import GenePopController + class EasyController: """Define a class for an easier interface with the GenePop program.""" diff --git a/Bio/Restriction/Restriction.py b/Bio/Restriction/Restriction.py index 3c3e81231..89b834327 100644 --- a/Bio/Restriction/Restriction.py +++ b/Bio/Restriction/Restriction.py @@ -82,19 +82,18 @@ Notes about the diverses class of the restriction enzyme implementation:: """ -import warnings - +import itertools import re import string -import itertools +import warnings -from Bio.Seq import Seq, MutableSeq -from Bio.Restriction.Restriction_Dictionary import rest_dict as enzymedict -from Bio.Restriction.Restriction_Dictionary import typedict -from Bio.Restriction.Restriction_Dictionary import suppliers as suppliers_dict -from Bio.Restriction.PrintFormat import PrintFormat from Bio import BiopythonWarning - +from Bio.Restriction.PrintFormat import PrintFormat +from Bio.Restriction.Restriction_Dictionary import rest_dict as enzymedict +from Bio.Restriction.Restriction_Dictionary import suppliers as suppliers_dict +from Bio.Restriction.Restriction_Dictionary import typedict +from Bio.Seq import MutableSeq +from Bio.Seq import Seq matching = { "A": "ARWMHVDN", diff --git a/Bio/SCOP/Raf.py b/Bio/SCOP/Raf.py index b1c6c0585..fccf96c5e 100644 --- a/Bio/SCOP/Raf.py +++ b/Bio/SCOP/Raf.py @@ -27,7 +27,6 @@ codes include chemically modified residues. from copy import copy from Bio.Data.PDBData import protein_letters_3to1_extended - from Bio.SCOP.Residues import Residues diff --git a/Bio/SCOP/Residues.py b/Bio/SCOP/Residues.py index a23eff7da..57b731e15 100644 --- a/Bio/SCOP/Residues.py +++ b/Bio/SCOP/Residues.py @@ -8,7 +8,6 @@ import re - _pdbid_re = re.compile(r"^(\w\w\w\w)(?:$|\s+|_)(.*)") _fragment_re = re.compile(r"\(?(\w:)?(-?\w*)-?(-?\w*)\)?(.*)") diff --git a/Bio/SCOP/__init__.py b/Bio/SCOP/__init__.py index a6a01d5d1..835657a69 100644 --- a/Bio/SCOP/__init__.py +++ b/Bio/SCOP/__init__.py @@ -49,18 +49,18 @@ Functions: import os import re import warnings - from urllib.parse import urlencode from urllib.request import urlopen -from . import Des -from . import Cla -from . import Hie -from . import Residues from Bio import BiopythonDeprecationWarning from Bio import SeqIO from Bio.Seq import Seq +from . import Cla +from . import Des +from . import Hie +from . import Residues + # Turn black code style off # fmt: off nodeCodeDict = {"cl": "class", "cf": "fold", "sf": "superfamily", diff --git a/Bio/SVDSuperimposer/__init__.py b/Bio/SVDSuperimposer/__init__.py index 1b46d7f46..d00e73d3e 100644 --- a/Bio/SVDSuperimposer/__init__.py +++ b/Bio/SVDSuperimposer/__init__.py @@ -13,8 +13,11 @@ value decomposition, which is used in the algorithm. """ try: - from numpy import dot, transpose, sqrt - from numpy.linalg import svd, det + from numpy import dot + from numpy import sqrt + from numpy import transpose + from numpy.linalg import det + from numpy.linalg import svd except ImportError: from Bio import MissingPythonDependencyError diff --git a/Bio/SearchIO/BlastIO/__init__.py b/Bio/SearchIO/BlastIO/__init__.py index 5a22b0b07..29828c8af 100644 --- a/Bio/SearchIO/BlastIO/__init__.py +++ b/Bio/SearchIO/BlastIO/__init__.py @@ -324,8 +324,12 @@ well: """ -from .blast_tab import BlastTabParser, BlastTabIndexer, BlastTabWriter -from .blast_xml import BlastXmlParser, BlastXmlIndexer, BlastXmlWriter +from .blast_tab import BlastTabIndexer +from .blast_tab import BlastTabParser +from .blast_tab import BlastTabWriter +from .blast_xml import BlastXmlIndexer +from .blast_xml import BlastXmlParser +from .blast_xml import BlastXmlWriter # if not used as a module, run the doctest if __name__ == "__main__": diff --git a/Bio/SearchIO/BlastIO/blast_tab.py b/Bio/SearchIO/BlastIO/blast_tab.py index dc5cc736a..2020c1744 100644 --- a/Bio/SearchIO/BlastIO/blast_tab.py +++ b/Bio/SearchIO/BlastIO/blast_tab.py @@ -10,8 +10,10 @@ import re from Bio.SearchIO._index import SearchIndexer -from Bio.SearchIO._model import QueryResult, Hit, HSP, HSPFragment - +from Bio.SearchIO._model import Hit +from Bio.SearchIO._model import HSP +from Bio.SearchIO._model import HSPFragment +from Bio.SearchIO._model import QueryResult __all__ = ("BlastTabIndexer", "BlastTabParser", "BlastTabWriter") diff --git a/Bio/SearchIO/BlastIO/blast_xml.py b/Bio/SearchIO/BlastIO/blast_xml.py index b074bc609..6a4171bde 100644 --- a/Bio/SearchIO/BlastIO/blast_xml.py +++ b/Bio/SearchIO/BlastIO/blast_xml.py @@ -12,11 +12,15 @@ import re import warnings from itertools import chain from xml.etree import ElementTree -from xml.sax.saxutils import XMLGenerator, escape +from xml.sax.saxutils import escape +from xml.sax.saxutils import XMLGenerator from Bio import BiopythonParserWarning from Bio.SearchIO._index import SearchIndexer -from Bio.SearchIO._model import QueryResult, Hit, HSP, HSPFragment +from Bio.SearchIO._model import Hit +from Bio.SearchIO._model import HSP +from Bio.SearchIO._model import HSPFragment +from Bio.SearchIO._model import QueryResult __all__ = ("BlastXmlParser", "BlastXmlIndexer", "BlastXmlWriter") diff --git a/Bio/SearchIO/BlatIO.py b/Bio/SearchIO/BlatIO.py index 4f6d50f90..890319f4a 100644 --- a/Bio/SearchIO/BlatIO.py +++ b/Bio/SearchIO/BlatIO.py @@ -186,8 +186,10 @@ import re from math import log from Bio.SearchIO._index import SearchIndexer -from Bio.SearchIO._model import QueryResult, Hit, HSP, HSPFragment - +from Bio.SearchIO._model import Hit +from Bio.SearchIO._model import HSP +from Bio.SearchIO._model import HSPFragment +from Bio.SearchIO._model import QueryResult __all__ = ("BlatPslParser", "BlatPslIndexer", "BlatPslWriter") diff --git a/Bio/SearchIO/ExonerateIO/__init__.py b/Bio/SearchIO/ExonerateIO/__init__.py index d6077cba7..a59c1c5fc 100644 --- a/Bio/SearchIO/ExonerateIO/__init__.py +++ b/Bio/SearchIO/ExonerateIO/__init__.py @@ -240,10 +240,12 @@ and fragments compared to 'exonerate-vulgar' or 'exonerate-text'. # - Cigar and vulgar parsing results will most likely be different, due to the # different type of data stored by both formats -from .exonerate_text import ExonerateTextParser, ExonerateTextIndexer -from .exonerate_vulgar import ExonerateVulgarParser, ExonerateVulgarIndexer -from .exonerate_cigar import ExonerateCigarParser, ExonerateCigarIndexer - +from .exonerate_cigar import ExonerateCigarIndexer +from .exonerate_cigar import ExonerateCigarParser +from .exonerate_text import ExonerateTextIndexer +from .exonerate_text import ExonerateTextParser +from .exonerate_vulgar import ExonerateVulgarIndexer +from .exonerate_vulgar import ExonerateVulgarParser # if not used as a module, run the doctest if __name__ == "__main__": diff --git a/Bio/SearchIO/ExonerateIO/_base.py b/Bio/SearchIO/ExonerateIO/_base.py index 8cf8963b7..c568deaa1 100644 --- a/Bio/SearchIO/ExonerateIO/_base.py +++ b/Bio/SearchIO/ExonerateIO/_base.py @@ -6,16 +6,19 @@ """Bio.SearchIO abstract base parser for Exonerate standard output format.""" import re +from abc import ABC +from abc import abstractmethod from functools import reduce -from abc import ABC, abstractmethod - -from typing import Optional, Type +from typing import Optional +from typing import Type from Bio.SearchIO._index import SearchIndexer -from Bio.SearchIO._model import QueryResult, Hit, HSP, HSPFragment +from Bio.SearchIO._model import Hit +from Bio.SearchIO._model import HSP +from Bio.SearchIO._model import HSPFragment +from Bio.SearchIO._model import QueryResult from Bio.SeqUtils import seq1 - # strand char-value mapping _STRAND_MAP = {"+": 1, "-": -1, ".": 0} diff --git a/Bio/SearchIO/ExonerateIO/exonerate_cigar.py b/Bio/SearchIO/ExonerateIO/exonerate_cigar.py index 7ba8a0813..b25ee0bd0 100644 --- a/Bio/SearchIO/ExonerateIO/exonerate_cigar.py +++ b/Bio/SearchIO/ExonerateIO/exonerate_cigar.py @@ -7,10 +7,10 @@ import re -from ._base import _BaseExonerateParser, _STRAND_MAP +from ._base import _BaseExonerateParser +from ._base import _STRAND_MAP from .exonerate_vulgar import ExonerateVulgarIndexer - __all__ = ("ExonerateCigarParser", "ExonerateCigarIndexer") diff --git a/Bio/SearchIO/ExonerateIO/exonerate_text.py b/Bio/SearchIO/ExonerateIO/exonerate_text.py index b9252d2ca..670abd2d4 100644 --- a/Bio/SearchIO/ExonerateIO/exonerate_text.py +++ b/Bio/SearchIO/ExonerateIO/exonerate_text.py @@ -8,16 +8,12 @@ import re from itertools import chain - -from ._base import ( - _BaseExonerateParser, - _BaseExonerateIndexer, - _STRAND_MAP, - _parse_hit_or_query_line, -) +from ._base import _BaseExonerateIndexer +from ._base import _BaseExonerateParser +from ._base import _parse_hit_or_query_line +from ._base import _STRAND_MAP from .exonerate_vulgar import _RE_VULGAR - __all__ = ("ExonerateTextParser", "ExonerateTextIndexer") diff --git a/Bio/SearchIO/ExonerateIO/exonerate_vulgar.py b/Bio/SearchIO/ExonerateIO/exonerate_vulgar.py index bff012fae..4043105f9 100644 --- a/Bio/SearchIO/ExonerateIO/exonerate_vulgar.py +++ b/Bio/SearchIO/ExonerateIO/exonerate_vulgar.py @@ -6,10 +6,11 @@ """Bio.SearchIO parser for Exonerate vulgar output format.""" import re - -from ._base import _BaseExonerateParser, _BaseExonerateIndexer, _STRAND_MAP from typing import Type +from ._base import _BaseExonerateIndexer +from ._base import _BaseExonerateParser +from ._base import _STRAND_MAP __all__ = ("ExonerateVulgarParser", "ExonerateVulgarIndexer") diff --git a/Bio/SearchIO/FastaIO.py b/Bio/SearchIO/FastaIO.py index 32410ad92..60bbab5d4 100644 --- a/Bio/SearchIO/FastaIO.py +++ b/Bio/SearchIO/FastaIO.py @@ -108,8 +108,10 @@ The following object attributes are provided: import re from Bio.SearchIO._index import SearchIndexer -from Bio.SearchIO._model import QueryResult, Hit, HSP, HSPFragment - +from Bio.SearchIO._model import Hit +from Bio.SearchIO._model import HSP +from Bio.SearchIO._model import HSPFragment +from Bio.SearchIO._model import QueryResult __all__ = ("FastaM10Parser", "FastaM10Indexer") diff --git a/Bio/SearchIO/HHsuiteIO/hhsuite2_text.py b/Bio/SearchIO/HHsuiteIO/hhsuite2_text.py index 75a6ddc39..56444b53d 100644 --- a/Bio/SearchIO/HHsuiteIO/hhsuite2_text.py +++ b/Bio/SearchIO/HHsuiteIO/hhsuite2_text.py @@ -8,8 +8,11 @@ import re import warnings +from Bio.SearchIO._model import Hit +from Bio.SearchIO._model import HSP +from Bio.SearchIO._model import HSPFragment +from Bio.SearchIO._model import QueryResult from Bio.SearchIO._utils import read_forward -from Bio.SearchIO._model import QueryResult, Hit, HSP, HSPFragment __all__ = ("Hhsuite2TextParser",) diff --git a/Bio/SearchIO/HmmerIO/__init__.py b/Bio/SearchIO/HmmerIO/__init__.py index 73d770590..c8f150054 100644 --- a/Bio/SearchIO/HmmerIO/__init__.py +++ b/Bio/SearchIO/HmmerIO/__init__.py @@ -285,17 +285,20 @@ The following SearchIO objects attributes are provided: """ -from .hmmer2_text import Hmmer2TextParser, Hmmer2TextIndexer -from .hmmer3_domtab import ( - Hmmer3DomtabParser, - Hmmer3DomtabHmmhitParser, - Hmmer3DomtabHmmqueryParser, -) -from .hmmer3_domtab import Hmmer3DomtabHmmhitIndexer, Hmmer3DomtabHmmqueryIndexer -from .hmmer3_domtab import Hmmer3DomtabHmmhitWriter, Hmmer3DomtabHmmqueryWriter -from .hmmer3_text import Hmmer3TextParser, Hmmer3TextIndexer -from .hmmer3_tab import Hmmer3TabParser, Hmmer3TabIndexer, Hmmer3TabWriter - +from .hmmer2_text import Hmmer2TextIndexer +from .hmmer2_text import Hmmer2TextParser +from .hmmer3_domtab import Hmmer3DomtabHmmhitIndexer +from .hmmer3_domtab import Hmmer3DomtabHmmhitParser +from .hmmer3_domtab import Hmmer3DomtabHmmhitWriter +from .hmmer3_domtab import Hmmer3DomtabHmmqueryIndexer +from .hmmer3_domtab import Hmmer3DomtabHmmqueryParser +from .hmmer3_domtab import Hmmer3DomtabHmmqueryWriter +from .hmmer3_domtab import Hmmer3DomtabParser +from .hmmer3_tab import Hmmer3TabIndexer +from .hmmer3_tab import Hmmer3TabParser +from .hmmer3_tab import Hmmer3TabWriter +from .hmmer3_text import Hmmer3TextIndexer +from .hmmer3_text import Hmmer3TextParser # if not used as a module, run the doctest if __name__ == "__main__": diff --git a/Bio/SearchIO/HmmerIO/hmmer2_text.py b/Bio/SearchIO/HmmerIO/hmmer2_text.py index c936567eb..2c2060ab7 100644 --- a/Bio/SearchIO/HmmerIO/hmmer2_text.py +++ b/Bio/SearchIO/HmmerIO/hmmer2_text.py @@ -7,8 +7,11 @@ import re +from Bio.SearchIO._model import Hit +from Bio.SearchIO._model import HSP +from Bio.SearchIO._model import HSPFragment +from Bio.SearchIO._model import QueryResult from Bio.SearchIO._utils import read_forward -from Bio.SearchIO._model import QueryResult, Hit, HSP, HSPFragment from ._base import _BaseHmmerTextIndexer diff --git a/Bio/SearchIO/HmmerIO/hmmer3_domtab.py b/Bio/SearchIO/HmmerIO/hmmer3_domtab.py index 58ebde7cd..d052b5268 100644 --- a/Bio/SearchIO/HmmerIO/hmmer3_domtab.py +++ b/Bio/SearchIO/HmmerIO/hmmer3_domtab.py @@ -7,9 +7,13 @@ from itertools import chain -from Bio.SearchIO._model import QueryResult, Hit, HSP, HSPFragment +from Bio.SearchIO._model import Hit +from Bio.SearchIO._model import HSP +from Bio.SearchIO._model import HSPFragment +from Bio.SearchIO._model import QueryResult -from .hmmer3_tab import Hmmer3TabParser, Hmmer3TabIndexer +from .hmmer3_tab import Hmmer3TabIndexer +from .hmmer3_tab import Hmmer3TabParser __all__ = ( "Hmmer3DomtabHmmhitParser", diff --git a/Bio/SearchIO/HmmerIO/hmmer3_tab.py b/Bio/SearchIO/HmmerIO/hmmer3_tab.py index a38073278..f99f454cf 100644 --- a/Bio/SearchIO/HmmerIO/hmmer3_tab.py +++ b/Bio/SearchIO/HmmerIO/hmmer3_tab.py @@ -8,8 +8,10 @@ from itertools import chain from Bio.SearchIO._index import SearchIndexer -from Bio.SearchIO._model import QueryResult, Hit, HSP, HSPFragment - +from Bio.SearchIO._model import Hit +from Bio.SearchIO._model import HSP +from Bio.SearchIO._model import HSPFragment +from Bio.SearchIO._model import QueryResult __all__ = ("Hmmer3TabParser", "Hmmer3TabIndexer", "Hmmer3TabWriter") diff --git a/Bio/SearchIO/HmmerIO/hmmer3_text.py b/Bio/SearchIO/HmmerIO/hmmer3_text.py index bd42f4ba9..823e92e52 100644 --- a/Bio/SearchIO/HmmerIO/hmmer3_text.py +++ b/Bio/SearchIO/HmmerIO/hmmer3_text.py @@ -7,8 +7,12 @@ import re -from Bio.SearchIO._utils import read_forward, removesuffix -from Bio.SearchIO._model import QueryResult, Hit, HSP, HSPFragment +from Bio.SearchIO._model import Hit +from Bio.SearchIO._model import HSP +from Bio.SearchIO._model import HSPFragment +from Bio.SearchIO._model import QueryResult +from Bio.SearchIO._utils import read_forward +from Bio.SearchIO._utils import removesuffix from ._base import _BaseHmmerTextIndexer diff --git a/Bio/SearchIO/InterproscanIO/interproscan_xml.py b/Bio/SearchIO/InterproscanIO/interproscan_xml.py index 98e2d95b8..a0a317e19 100644 --- a/Bio/SearchIO/InterproscanIO/interproscan_xml.py +++ b/Bio/SearchIO/InterproscanIO/interproscan_xml.py @@ -11,8 +11,10 @@ import re from xml.etree import ElementTree -from Bio.SearchIO._model import QueryResult, Hit, HSP, HSPFragment - +from Bio.SearchIO._model import Hit +from Bio.SearchIO._model import HSP +from Bio.SearchIO._model import HSPFragment +from Bio.SearchIO._model import QueryResult # element - hit attribute name mapping _ELEM_HIT = { diff --git a/Bio/SearchIO/__init__.py b/Bio/SearchIO/__init__.py index d1ab7dff9..fa117098a 100644 --- a/Bio/SearchIO/__init__.py +++ b/Bio/SearchIO/__init__.py @@ -194,10 +194,12 @@ of the format's documentation. """ from Bio.File import as_handle -from Bio.SearchIO._model import QueryResult, Hit, HSP, HSPFragment +from Bio.SearchIO._model import Hit +from Bio.SearchIO._model import HSP +from Bio.SearchIO._model import HSPFragment +from Bio.SearchIO._model import QueryResult from Bio.SearchIO._utils import get_processor - __all__ = ("read", "parse", "to_dict", "index", "index_db", "write", "convert") diff --git a/Bio/SearchIO/_index.py b/Bio/SearchIO/_index.py index 0fa5b04cf..22f8576f8 100644 --- a/Bio/SearchIO/_index.py +++ b/Bio/SearchIO/_index.py @@ -10,7 +10,8 @@ from io import StringIO -from Bio.File import _IndexedSeqFileProxy, _open_for_random_access +from Bio.File import _IndexedSeqFileProxy +from Bio.File import _open_for_random_access class SearchIndexer(_IndexedSeqFileProxy): diff --git a/Bio/SearchIO/_model/__init__.py b/Bio/SearchIO/_model/__init__.py index c81f50392..1aa9ea76d 100644 --- a/Bio/SearchIO/_model/__init__.py +++ b/Bio/SearchIO/_model/__init__.py @@ -44,10 +44,10 @@ The SearchIO object model consists of a hierarchy of four nested objects: """ -from .query import QueryResult from .hit import Hit -from .hsp import HSP, HSPFragment - +from .hsp import HSP +from .hsp import HSPFragment +from .query import QueryResult __all__ = ("QueryResult", "Hit", "HSP", "HSPFragment") diff --git a/Bio/SearchIO/_model/_base.py b/Bio/SearchIO/_model/_base.py index 1cfa4ed65..80c12ec08 100644 --- a/Bio/SearchIO/_model/_base.py +++ b/Bio/SearchIO/_model/_base.py @@ -5,7 +5,8 @@ # package. """Abstract base classes for the SearchIO object model.""" -from typing import Tuple, Union +from typing import Tuple +from typing import Union from Bio.SearchIO._utils import getattr_str diff --git a/Bio/SearchIO/_model/hit.py b/Bio/SearchIO/_model/hit.py index 1fc431e3f..1ce53dd07 100644 --- a/Bio/SearchIO/_model/hit.py +++ b/Bio/SearchIO/_model/hit.py @@ -7,7 +7,9 @@ from itertools import chain -from Bio.SearchIO._utils import allitems, optionalcascade, getattr_str +from Bio.SearchIO._utils import allitems +from Bio.SearchIO._utils import getattr_str +from Bio.SearchIO._utils import optionalcascade from ._base import _BaseSearchObject from .hsp import HSP diff --git a/Bio/SearchIO/_model/hsp.py b/Bio/SearchIO/_model/hsp.py index 5b2066406..a1a0ec021 100644 --- a/Bio/SearchIO/_model/hsp.py +++ b/Bio/SearchIO/_model/hsp.py @@ -6,21 +6,19 @@ """Bio.SearchIO objects to model high scoring regions between query and hit.""" import warnings -from operator import ge, le +from operator import ge +from operator import le from Bio import BiopythonWarning from Bio.Align import MultipleSeqAlignment +from Bio.SearchIO._utils import allitems +from Bio.SearchIO._utils import fragcascade +from Bio.SearchIO._utils import fullcascade +from Bio.SearchIO._utils import getattr_str +from Bio.SearchIO._utils import singleitem from Bio.Seq import Seq from Bio.SeqRecord import SeqRecord -from Bio.SearchIO._utils import ( - singleitem, - allitems, - fullcascade, - fragcascade, - getattr_str, -) - from ._base import _BaseHSP diff --git a/Bio/Seq.py b/Bio/Seq.py index 18f35ea6a..03c05c72f 100644 --- a/Bio/Seq.py +++ b/Bio/Seq.py @@ -24,10 +24,12 @@ import array import collections import numbers import warnings - from abc import ABC from abc import abstractmethod -from typing import overload, Optional, Union, Dict +from typing import Dict +from typing import Optional +from typing import overload +from typing import Union from Bio import BiopythonWarning from Bio.Data import CodonTable diff --git a/Bio/SeqFeature.py b/Bio/SeqFeature.py index f81040b93..143704096 100644 --- a/Bio/SeqFeature.py +++ b/Bio/SeqFeature.py @@ -64,7 +64,8 @@ Exceptions: import functools import re import warnings -from abc import ABC, abstractmethod +from abc import ABC +from abc import abstractmethod from Bio import BiopythonDeprecationWarning from Bio import BiopythonParserWarning @@ -72,7 +73,6 @@ from Bio.Seq import MutableSeq from Bio.Seq import reverse_complement from Bio.Seq import Seq - # Regular expressions for location parsing _reference = r"(?:[a-zA-Z][a-zA-Z0-9_\.\|]*[a-zA-Z0-9]?\:)" diff --git a/Bio/SeqIO/AbiIO.py b/Bio/SeqIO/AbiIO.py index 2c5b446f5..e973ce53c 100644 --- a/Bio/SeqIO/AbiIO.py +++ b/Bio/SeqIO/AbiIO.py @@ -18,9 +18,7 @@ http://www6.appliedbiosystems.com/support/software_community/ABIF_File_Format.pd import datetime import struct import sys - from os.path import basename - from typing import List from Bio.Seq import Seq @@ -28,7 +26,6 @@ from Bio.SeqRecord import SeqRecord from .Interfaces import SequenceIterator - # dictionary for determining which tags goes into SeqRecord annotation # each key is tag_name + tag_number # if a tag entry needs to be added, just add its key and its key diff --git a/Bio/SeqIO/FastaIO.py b/Bio/SeqIO/FastaIO.py index 18a763f6e..a1e09edfc 100644 --- a/Bio/SeqIO/FastaIO.py +++ b/Bio/SeqIO/FastaIO.py @@ -14,17 +14,18 @@ You are expected to use this module via the Bio.SeqIO functions. """ import warnings - -from typing import Callable, Optional, Tuple +from typing import Callable +from typing import Optional +from typing import Tuple from Bio.Seq import Seq from Bio.SeqRecord import SeqRecord from .Interfaces import _clean from .Interfaces import _get_seq_string +from .Interfaces import _TextIOSource from .Interfaces import SequenceIterator from .Interfaces import SequenceWriter -from .Interfaces import _TextIOSource def SimpleFastaParser(handle): diff --git a/Bio/SeqIO/GckIO.py b/Bio/SeqIO/GckIO.py index 144541e55..fec438a5e 100644 --- a/Bio/SeqIO/GckIO.py +++ b/Bio/SeqIO/GckIO.py @@ -13,8 +13,8 @@ from Textco BioSoftware, Inc. from struct import unpack from Bio.Seq import Seq -from Bio.SeqFeature import SimpleLocation from Bio.SeqFeature import SeqFeature +from Bio.SeqFeature import SimpleLocation from Bio.SeqRecord import SeqRecord from .Interfaces import SequenceIterator diff --git a/Bio/SeqIO/GfaIO.py b/Bio/SeqIO/GfaIO.py index 1241d7eda..cbb4a0793 100644 --- a/Bio/SeqIO/GfaIO.py +++ b/Bio/SeqIO/GfaIO.py @@ -9,13 +9,14 @@ Documentation: - Version 2.0: https://gfa-spec.github.io/GFA-spec/GFA2.html """ -import warnings import hashlib import re +import warnings from Bio import BiopythonWarning from Bio.File import as_handle -from Bio.Seq import Seq, _UndefinedSequenceData +from Bio.Seq import _UndefinedSequenceData +from Bio.Seq import Seq from Bio.SeqRecord import SeqRecord diff --git a/Bio/SeqIO/InsdcIO.py b/Bio/SeqIO/InsdcIO.py index e4145097e..f610d1472 100644 --- a/Bio/SeqIO/InsdcIO.py +++ b/Bio/SeqIO/InsdcIO.py @@ -31,9 +31,9 @@ http://www.ebi.ac.uk/imgt/hla/docs/manual.html """ import warnings - from datetime import datetime -from string import ascii_letters, digits +from string import ascii_letters +from string import digits from Bio import BiopythonWarning from Bio import SeqFeature diff --git a/Bio/SeqIO/Interfaces.py b/Bio/SeqIO/Interfaces.py index 8921966ab..317ea44b8 100644 --- a/Bio/SeqIO/Interfaces.py +++ b/Bio/SeqIO/Interfaces.py @@ -13,7 +13,12 @@ use this module. It provides base classes to try and simplify things. from abc import ABC from abc import abstractmethod from os import PathLike -from typing import Iterator, IO, Optional, Union, Generic, AnyStr +from typing import AnyStr +from typing import Generic +from typing import IO +from typing import Iterator +from typing import Optional +from typing import Union from Bio import StreamModeError from Bio.Seq import MutableSeq diff --git a/Bio/SeqIO/PdbIO.py b/Bio/SeqIO/PdbIO.py index 9da837456..85d8b4509 100644 --- a/Bio/SeqIO/PdbIO.py +++ b/Bio/SeqIO/PdbIO.py @@ -17,7 +17,6 @@ from Bio.SeqRecord import SeqRecord from .Interfaces import SequenceIterator - _aa3to1_dict = {} _aa3to1_dict.update(protein_letters_3to1) _aa3to1_dict.update(protein_letters_3to1_extended) diff --git a/Bio/SeqIO/PhdIO.py b/Bio/SeqIO/PhdIO.py index 8f0405736..0b1b44a8a 100644 --- a/Bio/SeqIO/PhdIO.py +++ b/Bio/SeqIO/PhdIO.py @@ -57,10 +57,10 @@ from typing import Iterator from Bio.SeqRecord import SeqRecord from Bio.Sequencing import Phd -from .QualityIO import _get_phred_quality -from .Interfaces import SequenceWriter -from .Interfaces import _TextIOSource from .Interfaces import _IOSource +from .Interfaces import _TextIOSource +from .Interfaces import SequenceWriter +from .QualityIO import _get_phred_quality def PhdIterator(source: _TextIOSource) -> Iterator[SeqRecord]: diff --git a/Bio/SeqIO/PirIO.py b/Bio/SeqIO/PirIO.py index 6d405d0c9..c3a8129d5 100644 --- a/Bio/SeqIO/PirIO.py +++ b/Bio/SeqIO/PirIO.py @@ -94,7 +94,6 @@ from .Interfaces import _get_seq_string from .Interfaces import SequenceIterator from .Interfaces import SequenceWriter - _pir_mol_type = { "P1": "protein", "F1": "protein", diff --git a/Bio/SeqIO/QualityIO.py b/Bio/SeqIO/QualityIO.py index 3f677fb2e..ed5303feb 100644 --- a/Bio/SeqIO/QualityIO.py +++ b/Bio/SeqIO/QualityIO.py @@ -360,8 +360,17 @@ are approximately equal. """ import warnings - from math import log +from typing import Any +from typing import Callable +from typing import IO +from typing import Iterator +from typing import List +from typing import Mapping +from typing import Optional +from typing import Sequence +from typing import Tuple +from typing import Union from Bio import BiopythonParserWarning from Bio import BiopythonWarning @@ -372,22 +381,9 @@ from Bio.SeqRecord import SeqRecord from .Interfaces import _clean from .Interfaces import _get_seq_string +from .Interfaces import _TextIOSource from .Interfaces import SequenceIterator from .Interfaces import SequenceWriter -from .Interfaces import _TextIOSource - -from typing import ( - Any, - Callable, - Iterator, - IO, - List, - Mapping, - Optional, - Sequence, - Tuple, - Union, -) # define score offsets. See discussion for differences between Sanger and # Solexa offsets. diff --git a/Bio/SeqIO/SffIO.py b/Bio/SeqIO/SffIO.py index dad17a7a6..a7ffc868a 100644 --- a/Bio/SeqIO/SffIO.py +++ b/Bio/SeqIO/SffIO.py @@ -241,7 +241,6 @@ from Bio.SeqRecord import SeqRecord from .Interfaces import SequenceIterator from .Interfaces import SequenceWriter - _null = b"\0" _sff = b".sff" _hsh = b".hsh" @@ -337,6 +336,7 @@ def _sff_file_header(handle): assert 0 <= padding < 8, padding if handle.read(padding).count(_null) != padding: import warnings + from Bio import BiopythonParserWarning warnings.warn( @@ -415,6 +415,7 @@ def _sff_do_slow_index(handle): padding = read_header_length - read_header_size - name_length if handle.read(padding).count(_null) != padding: import warnings + from Bio import BiopythonParserWarning warnings.warn( @@ -432,6 +433,7 @@ def _sff_do_slow_index(handle): padding = 8 - padding if handle.read(padding).count(_null) != padding: import warnings + from Bio import BiopythonParserWarning warnings.warn( @@ -682,6 +684,7 @@ def _sff_read_seq_record( padding = read_header_length - read_header_size - name_length if handle.read(padding).count(_null) != padding: import warnings + from Bio import BiopythonParserWarning warnings.warn( @@ -702,6 +705,7 @@ def _sff_read_seq_record( padding = 8 - padding if handle.read(padding).count(_null) != padding: import warnings + from Bio import BiopythonParserWarning warnings.warn( @@ -729,6 +733,7 @@ def _sff_read_seq_record( if clip_left >= clip_right: # Raise an error? import warnings + from Bio import BiopythonParserWarning warnings.warn( @@ -745,6 +750,7 @@ def _sff_read_seq_record( else: if clip_left >= clip_right: import warnings + from Bio import BiopythonParserWarning warnings.warn( @@ -858,6 +864,7 @@ def _sff_read_raw_record(handle, number_of_flows_per_read): pad = handle.read(padding) if pad.count(_null) != padding: import warnings + from Bio import BiopythonParserWarning warnings.warn( @@ -875,6 +882,7 @@ def _sff_read_raw_record(handle, number_of_flows_per_read): pad = handle.read(padding) if pad.count(_null) != padding: import warnings + from Bio import BiopythonParserWarning warnings.warn( @@ -1095,6 +1103,7 @@ def _check_eof(handle, index_offset, index_length): if padding and not extra: # TODO - Is this error harmless enough to just ignore? import warnings + from Bio import BiopythonParserWarning warnings.warn( @@ -1105,6 +1114,7 @@ def _check_eof(handle, index_offset, index_length): return if extra.count(_null) != padding: import warnings + from Bio import BiopythonParserWarning warnings.warn( diff --git a/Bio/SeqIO/SnapGeneIO.py b/Bio/SeqIO/SnapGeneIO.py index 781064cbe..94e032ace 100644 --- a/Bio/SeqIO/SnapGeneIO.py +++ b/Bio/SeqIO/SnapGeneIO.py @@ -16,8 +16,8 @@ from struct import unpack from xml.dom.minidom import parseString from Bio.Seq import Seq -from Bio.SeqFeature import SimpleLocation from Bio.SeqFeature import SeqFeature +from Bio.SeqFeature import SimpleLocation from Bio.SeqRecord import SeqRecord from .Interfaces import SequenceIterator diff --git a/Bio/SeqIO/UniprotIO.py b/Bio/SeqIO/UniprotIO.py index acc244c6f..ad088b5d2 100644 --- a/Bio/SeqIO/UniprotIO.py +++ b/Bio/SeqIO/UniprotIO.py @@ -23,7 +23,6 @@ from Bio import SeqFeature from Bio.Seq import Seq from Bio.SeqRecord import SeqRecord - NS = "{http://uniprot.org/uniprot}" REFERENCE_JOURNAL = "%(name)s %(volume)s:%(first)s-%(last)s(%(pub_date)s)" diff --git a/Bio/SeqIO/XdnaIO.py b/Bio/SeqIO/XdnaIO.py index 0ffe08736..b79412598 100644 --- a/Bio/SeqIO/XdnaIO.py +++ b/Bio/SeqIO/XdnaIO.py @@ -11,7 +11,6 @@ and also used by Serial Cloner. """ import warnings - from re import match from struct import pack from struct import unpack @@ -19,14 +18,13 @@ from struct import unpack from Bio import BiopythonWarning from Bio.Seq import Seq from Bio.SeqFeature import ExactPosition -from Bio.SeqFeature import SimpleLocation from Bio.SeqFeature import SeqFeature +from Bio.SeqFeature import SimpleLocation from Bio.SeqRecord import SeqRecord from .Interfaces import SequenceIterator from .Interfaces import SequenceWriter - _seq_types = { 0: None, 1: "DNA", diff --git a/Bio/SeqIO/__init__.py b/Bio/SeqIO/__init__.py index 4e0508432..6fd4c93ca 100644 --- a/Bio/SeqIO/__init__.py +++ b/Bio/SeqIO/__init__.py @@ -376,7 +376,10 @@ making up each alignment as SeqRecords. # # --Peter -from typing import Callable, Dict, Iterable, Union +from typing import Callable +from typing import Dict +from typing import Iterable +from typing import Union from Bio.File import as_handle from Bio.SeqIO import AbiIO @@ -400,6 +403,7 @@ from Bio.SeqIO import TwoBitIO from Bio.SeqIO import UniprotIO from Bio.SeqIO import XdnaIO from Bio.SeqRecord import SeqRecord + from .Interfaces import _TextIOSource # Convention for format names is "mainname-subtype" in lower case. @@ -871,9 +875,10 @@ def index(filename, format, alphabet=None, key_function=None): raise ValueError("The alphabet argument is no longer supported") # Map the file format to a sequence iterator: - from ._index import _FormatToRandomAccess # Lazy import from Bio.File import _IndexedSeqFileDict + from ._index import _FormatToRandomAccess # Lazy import + try: proxy_class = _FormatToRandomAccess[format] except KeyError: @@ -974,9 +979,10 @@ def index_db( raise ValueError("The alphabet argument is no longer supported") # Map the file format to a sequence iterator: - from ._index import _FormatToRandomAccess # Lazy import from Bio.File import _SQLiteManySeqFilesDict + from ._index import _FormatToRandomAccess # Lazy import + repr = "SeqIO.index_db(%r, filenames=%r, format=%r, key_function=%r)" % ( index_filename, filenames, diff --git a/Bio/SeqIO/_index.py b/Bio/SeqIO/_index.py index 3fa94afc5..69165affd 100644 --- a/Bio/SeqIO/_index.py +++ b/Bio/SeqIO/_index.py @@ -27,7 +27,6 @@ re-indexing the file for use another time. """ import re - from io import BytesIO from io import StringIO @@ -106,6 +105,7 @@ class SffRandomAccess(SeqFileRandomAccess): # If that worked, call _check_eof ... except ValueError as err: import warnings + from Bio import BiopythonParserWarning warnings.warn( diff --git a/Bio/SeqRecord.py b/Bio/SeqRecord.py index 2a420a04d..9fc0bf4dd 100644 --- a/Bio/SeqRecord.py +++ b/Bio/SeqRecord.py @@ -12,27 +12,27 @@ # NEEDS TO BE SYNCH WITH THE REST OF BIOPYTHON AND BIOPERL # In particular, the SeqRecord and BioSQL.BioSeq.DBSeqRecord classes # need to be in sync (this is the BioSQL "Database SeqRecord"). -from io import StringIO import numbers - -from typing import ( - cast, - overload, - Any, - Dict, - Iterable, - List, - Mapping, - NoReturn, - Optional, - Sequence, - Union, - TYPE_CHECKING, -) - -from Bio import BiopythonDeprecationWarning, StreamModeError -from Bio.Seq import Seq, MutableSeq, UndefinedSequenceError import warnings +from io import StringIO +from typing import Any +from typing import cast +from typing import Dict +from typing import Iterable +from typing import List +from typing import Mapping +from typing import NoReturn +from typing import Optional +from typing import overload +from typing import Sequence +from typing import TYPE_CHECKING +from typing import Union + +from Bio import BiopythonDeprecationWarning +from Bio import StreamModeError +from Bio.Seq import MutableSeq +from Bio.Seq import Seq +from Bio.Seq import UndefinedSequenceError if TYPE_CHECKING: from Bio.SeqFeature import SeqFeature @@ -1280,7 +1280,8 @@ class SeqRecord: >>> print("%s %s" % (rc.id, rc.seq)) Test ACGA """ - from Bio.Seq import Seq, MutableSeq # Lazy to avoid circular imports + from Bio.Seq import MutableSeq # Lazy to avoid circular imports + from Bio.Seq import Seq # Lazy to avoid circular imports if "protein" in cast(str, self.annotations.get("molecule_type", "")): raise ValueError("Proteins do not have complements!") diff --git a/Bio/SeqUtils/CheckSum.py b/Bio/SeqUtils/CheckSum.py index 4164238f7..5a078f33f 100644 --- a/Bio/SeqUtils/CheckSum.py +++ b/Bio/SeqUtils/CheckSum.py @@ -123,8 +123,8 @@ def seguid(seq): http://bioinformatics.anl.gov/seguid/ https://doi.org/10.1002/pmic.200600032 """ - import hashlib import base64 + import hashlib m = hashlib.sha1() try: diff --git a/Bio/SeqUtils/MeltingTemp.py b/Bio/SeqUtils/MeltingTemp.py index 80cbefbb2..cf27bd811 100644 --- a/Bio/SeqUtils/MeltingTemp.py +++ b/Bio/SeqUtils/MeltingTemp.py @@ -154,9 +154,9 @@ by '1': import math import warnings -from Bio import SeqUtils, Seq from Bio import BiopythonWarning - +from Bio import Seq +from Bio import SeqUtils # Thermodynamic lookup tables (dictionaries): # Enthalpy (dH) and entropy (dS) values for nearest neighbors and initiation diff --git a/Bio/SeqUtils/ProtParam.py b/Bio/SeqUtils/ProtParam.py index 500b6d823..7e8bb85e3 100644 --- a/Bio/SeqUtils/ProtParam.py +++ b/Bio/SeqUtils/ProtParam.py @@ -50,11 +50,12 @@ Other public methods are: """ import sys -from Bio.SeqUtils import ProtParamData # Local -from Bio.SeqUtils import IsoelectricPoint # Local -from Bio.Seq import Seq + from Bio.Data import IUPACData +from Bio.Seq import Seq +from Bio.SeqUtils import IsoelectricPoint # Local from Bio.SeqUtils import molecular_weight +from Bio.SeqUtils import ProtParamData # Local class ProteinAnalysis: diff --git a/Bio/SeqUtils/__init__.py b/Bio/SeqUtils/__init__.py index 14f905df3..304256926 100644 --- a/Bio/SeqUtils/__init__.py +++ b/Bio/SeqUtils/__init__.py @@ -11,11 +11,18 @@ """Miscellaneous functions for dealing with sequences.""" import re -from math import pi, sin, cos, log, exp +from math import cos +from math import exp +from math import log +from math import pi +from math import sin -from Bio.Seq import Seq, complement, complement_rna, translate from Bio.Data import IUPACData from Bio.Data.CodonTable import standard_dna_table +from Bio.Seq import complement +from Bio.Seq import complement_rna +from Bio.Seq import Seq +from Bio.Seq import translate ###################################### # DNA @@ -518,7 +525,8 @@ def six_frame_translations(seq, genetic_code=1): """ # noqa for pep8 W291 trailing whitespace - from Bio.Seq import reverse_complement, reverse_complement_rna + from Bio.Seq import reverse_complement + from Bio.Seq import reverse_complement_rna if "u" in seq.lower(): anti = reverse_complement_rna(seq) diff --git a/Bio/Sequencing/Applications/_Novoalign.py b/Bio/Sequencing/Applications/_Novoalign.py index 8ca1d6950..7f1e236fd 100644 --- a/Bio/Sequencing/Applications/_Novoalign.py +++ b/Bio/Sequencing/Applications/_Novoalign.py @@ -7,7 +7,8 @@ # package. """Command line wrapper for the short read aligner Novoalign by Novocraft.""" -from Bio.Application import _Option, AbstractCommandline +from Bio.Application import _Option +from Bio.Application import AbstractCommandline class NovoalignCommandline(AbstractCommandline): diff --git a/Bio/Sequencing/Applications/__init__.py b/Bio/Sequencing/Applications/__init__.py index e53d9066e..206391b2f 100644 --- a/Bio/Sequencing/Applications/__init__.py +++ b/Bio/Sequencing/Applications/__init__.py @@ -11,22 +11,29 @@ We have decided to remove this module in future, and instead recommend building your command and invoking it via the subprocess module directly. """ +from ._bwa import BwaAlignCommandline +from ._bwa import BwaBwaswCommandline +from ._bwa import BwaIndexCommandline +from ._bwa import BwaMemCommandline +from ._bwa import BwaSampeCommandline +from ._bwa import BwaSamseCommandline from ._Novoalign import NovoalignCommandline -from ._bwa import BwaIndexCommandline, BwaAlignCommandline, BwaSamseCommandline -from ._bwa import BwaSampeCommandline, BwaBwaswCommandline, BwaMemCommandline -from ._samtools import SamtoolsViewCommandline, SamtoolsCalmdCommandline -from ._samtools import SamtoolsCatCommandline, SamtoolsFaidxCommandline -from ._samtools import SamtoolsFixmateCommandline, SamtoolsIdxstatsCommandline -from ._samtools import SamtoolsIndexCommandline, SamtoolsMergeCommandline -from ._samtools import SamtoolsMpileupCommandline, SamtoolsPhaseCommandline -from ._samtools import SamtoolsReheaderCommandline, SamtoolsRmdupCommandline -from ._samtools import ( - SamtoolsVersion0xSortCommandline, - SamtoolsVersion1xSortCommandline, - SamtoolsTargetcutCommandline, -) +from ._samtools import SamtoolsCalmdCommandline +from ._samtools import SamtoolsCatCommandline +from ._samtools import SamtoolsFaidxCommandline +from ._samtools import SamtoolsFixmateCommandline +from ._samtools import SamtoolsIdxstatsCommandline +from ._samtools import SamtoolsIndexCommandline +from ._samtools import SamtoolsMergeCommandline +from ._samtools import SamtoolsMpileupCommandline +from ._samtools import SamtoolsPhaseCommandline +from ._samtools import SamtoolsReheaderCommandline +from ._samtools import SamtoolsRmdupCommandline +from ._samtools import SamtoolsTargetcutCommandline +from ._samtools import SamtoolsVersion0xSortCommandline from ._samtools import SamtoolsVersion0xSortCommandline as SamtoolsSortCommandline - +from ._samtools import SamtoolsVersion1xSortCommandline +from ._samtools import SamtoolsViewCommandline # Make this explicit, then they show up in the API docs __all__ = ( diff --git a/Bio/Sequencing/Applications/_bwa.py b/Bio/Sequencing/Applications/_bwa.py index f07ec6aee..6a8df32f1 100644 --- a/Bio/Sequencing/Applications/_bwa.py +++ b/Bio/Sequencing/Applications/_bwa.py @@ -6,8 +6,11 @@ # package. """Command line wrapper for bwa.""" -from Bio.Application import _Option, _Argument, _Switch, AbstractCommandline +from Bio.Application import _Argument +from Bio.Application import _Option from Bio.Application import _StaticArgument +from Bio.Application import _Switch +from Bio.Application import AbstractCommandline class BwaIndexCommandline(AbstractCommandline): diff --git a/Bio/Sequencing/Applications/_samtools.py b/Bio/Sequencing/Applications/_samtools.py index bae9f9b36..0c561e9fa 100644 --- a/Bio/Sequencing/Applications/_samtools.py +++ b/Bio/Sequencing/Applications/_samtools.py @@ -9,9 +9,12 @@ # TODO samtools 1.x has additional options over 0.x which # are missing from this wrapper -from Bio.Application import _Option, _Argument, _Switch -from Bio.Application import AbstractCommandline, _ArgumentList +from Bio.Application import _Argument +from Bio.Application import _ArgumentList +from Bio.Application import _Option from Bio.Application import _StaticArgument +from Bio.Application import _Switch +from Bio.Application import AbstractCommandline class SamtoolsViewCommandline(AbstractCommandline): diff --git a/Bio/Sequencing/Phd.py b/Bio/Sequencing/Phd.py index b2581c7bd..d78e60ae6 100644 --- a/Bio/Sequencing/Phd.py +++ b/Bio/Sequencing/Phd.py @@ -18,7 +18,6 @@ internally. This will give SeqRecord objects for each contig sequence. from Bio import Seq - CKEYWORDS = [ "CHROMAT_FILE", "ABI_THUMBPRINT", diff --git a/Bio/SwissProt/__init__.py b/Bio/SwissProt/__init__.py index 0a831785a..d7700e7e1 100644 --- a/Bio/SwissProt/__init__.py +++ b/Bio/SwissProt/__init__.py @@ -19,7 +19,9 @@ Functions: import io import re -from Bio.SeqFeature import SeqFeature, SimpleLocation, Position +from Bio.SeqFeature import Position +from Bio.SeqFeature import SeqFeature +from Bio.SeqFeature import SimpleLocation class SwissProtParserError(ValueError): @@ -671,6 +673,7 @@ def _read_rx(reference, value): reference.references.append((cols[0].rstrip(";"), cols[1].rstrip("."))) if warn: import warnings + from Bio import BiopythonParserWarning warnings.warn(f"Possibly corrupt RX line {value!r}", BiopythonParserWarning) diff --git a/Bio/TogoWS/__init__.py b/Bio/TogoWS/__init__.py index 55afaafd7..3e402b1e6 100644 --- a/Bio/TogoWS/__init__.py +++ b/Bio/TogoWS/__init__.py @@ -33,15 +33,13 @@ http://soapy.sourceforge.net/ import io import time - -from urllib.request import urlopen +from typing import Dict +from typing import List from urllib.parse import quote - -from typing import Dict, List +from urllib.request import urlopen from Bio._utils import function_with_previous - # Constant _BASE_URL = "http://togows.dbcls.jp" diff --git a/Bio/UniProt/__init__.py b/Bio/UniProt/__init__.py index ed2584600..a0af01372 100644 --- a/Bio/UniProt/__init__.py +++ b/Bio/UniProt/__init__.py @@ -20,11 +20,10 @@ import json import re import urllib.parse from http.client import HTTPResponse - -from typing import Optional, List +from typing import List +from typing import Optional from urllib.request import urlopen - _re_next_link = re.compile(r'<(.+)>; rel="next"') diff --git a/Bio/_utils.py b/Bio/_utils.py index 88fabc72f..d7397994b 100644 --- a/Bio/_utils.py +++ b/Bio/_utils.py @@ -8,8 +8,12 @@ """Common utility functions for various Bio submodules.""" import os -from typing import Any, TypeVar, Callable, Optional, cast +from typing import Any +from typing import Callable +from typing import cast +from typing import Optional from typing import Protocol +from typing import TypeVar # workaround type checking method attributes from https://github.com/python/mypy/issues/2087#issuecomment-587741762 diff --git a/Bio/bgzf.py b/Bio/bgzf.py index 62c58f3d5..c079b2b4c 100755 --- a/Bio/bgzf.py +++ b/Bio/bgzf.py @@ -251,7 +251,6 @@ import io import struct import sys import zlib - from builtins import open as _open _bgzf_magic = b"\x1f\x8b\x08\x04" diff --git a/Bio/codonalign/__init__.py b/Bio/codonalign/__init__.py index d027e2b8b..03386faa7 100644 --- a/Bio/codonalign/__init__.py +++ b/Bio/codonalign/__init__.py @@ -7,18 +7,17 @@ """Code for dealing with Codon Alignments.""" import copy -from collections.abc import Mapping, Iterable - -from Bio import BiopythonWarning -from Bio import BiopythonExperimentalWarning - -from Bio.SeqRecord import SeqRecord -from Bio.Data import CodonTable - -from Bio.codonalign.codonseq import CodonSeq -from Bio.codonalign.codonalignment import CodonAlignment, mktest - import warnings +from collections.abc import Iterable +from collections.abc import Mapping + +from Bio import BiopythonExperimentalWarning +from Bio import BiopythonWarning +from Bio.codonalign.codonalignment import CodonAlignment +from Bio.codonalign.codonalignment import mktest +from Bio.codonalign.codonseq import CodonSeq +from Bio.Data import CodonTable +from Bio.SeqRecord import SeqRecord warnings.warn( "Bio.codonalign is an experimental module which may undergo " @@ -586,6 +585,7 @@ def _get_codon_rec( """ import re + from Bio.Seq import Seq nucl_seq = nucl.seq.replace(gap_char, "") diff --git a/Bio/codonalign/codonalignment.py b/Bio/codonalign/codonalignment.py index 47468eb56..6beabf41a 100644 --- a/Bio/codonalign/codonalignment.py +++ b/Bio/codonalign/codonalignment.py @@ -10,16 +10,17 @@ CodonAlignment class is inherited from MultipleSeqAlignment class. This is the core class to deal with codon alignment in biopython. """ -from math import sqrt, erfc import warnings +from math import erfc +from math import sqrt -from Bio.Align import MultipleSeqAlignment -from Bio.SeqRecord import SeqRecord -from Bio.Data import CodonTable from Bio import BiopythonWarning - - -from Bio.codonalign.codonseq import _get_codon_list, CodonSeq, cal_dn_ds +from Bio.Align import MultipleSeqAlignment +from Bio.codonalign.codonseq import _get_codon_list +from Bio.codonalign.codonseq import cal_dn_ds +from Bio.codonalign.codonseq import CodonSeq +from Bio.Data import CodonTable +from Bio.SeqRecord import SeqRecord class CodonAlignment(MultipleSeqAlignment): @@ -433,9 +434,11 @@ def _prim(G): Code is adapted from http://programmingpraxis.com/2010/04/09/minimum-spanning-tree-prims-algorithm/ """ - from math import floor from collections import defaultdict - from heapq import heapify, heappop, heappush + from heapq import heapify + from heapq import heappop + from heapq import heappush + from math import floor nodes = [] edges = [] diff --git a/Bio/codonalign/codonseq.py b/Bio/codonalign/codonseq.py index fc95f10a7..faf5de825 100644 --- a/Bio/codonalign/codonseq.py +++ b/Bio/codonalign/codonseq.py @@ -14,9 +14,9 @@ deal with sequences in CodonAlignment in biopython. from itertools import permutations from math import log +from Bio.Data import CodonTable from Bio.Seq import Seq from Bio.SeqRecord import SeqRecord -from Bio.Data import CodonTable class CodonSeq(Seq): @@ -683,6 +683,7 @@ def _yn00(seq1, seq2, k, codon_table): Nomenclature is according to Yang and Nielsen (2000), PMID 10666704. """ from collections import defaultdict + from scipy.linalg import expm fcodon = [ @@ -1068,6 +1069,7 @@ def _count_diff_YN00(codon1, codon2, P, codon_lst, codon_table): def _ml(seq1, seq2, cmethod, codon_table): """ML method main function (PRIVATE).""" from collections import Counter + from scipy.optimize import minimize codon_cnt = Counter() diff --git a/Bio/motifs/__init__.py b/Bio/motifs/__init__.py index 97aaab27f..3046c81cd 100644 --- a/Bio/motifs/__init__.py +++ b/Bio/motifs/__init__.py @@ -15,9 +15,10 @@ It also includes functionality for parsing output from the AlignACE, MEME, and MAST programs, as well as files in the TRANSFAC format. """ -from urllib.parse import urlencode -from urllib.request import urlopen, Request import warnings +from urllib.parse import urlencode +from urllib.request import Request +from urllib.request import urlopen try: import numpy as np @@ -191,7 +192,8 @@ class Instances(list): def __init__(self, instances=None, alphabet="ACGT"): """Initialize the class.""" - from Bio.Seq import Seq, MutableSeq + from Bio.Seq import MutableSeq + from Bio.Seq import Seq warnings.warn( "The Instances class has been deprecated; please use the\n" @@ -271,7 +273,8 @@ class Instances(list): def reverse_complement(self): """Compute reverse complement of sequences.""" - from Bio.Seq import Seq, MutableSeq + from Bio.Seq import MutableSeq + from Bio.Seq import Seq from Bio.SeqRecord import SeqRecord instances = Instances(alphabet=self.alphabet) diff --git a/Bio/motifs/alignace.py b/Bio/motifs/alignace.py index fa0735838..d7a9dcb8f 100644 --- a/Bio/motifs/alignace.py +++ b/Bio/motifs/alignace.py @@ -7,8 +7,8 @@ """Parsing AlignACE output files.""" -from Bio.motifs import Motif from Bio.Align import Alignment +from Bio.motifs import Motif from Bio.Seq import Seq diff --git a/Bio/motifs/applications/_xxmotif.py b/Bio/motifs/applications/_xxmotif.py index fae5eb108..b5b956d98 100644 --- a/Bio/motifs/applications/_xxmotif.py +++ b/Bio/motifs/applications/_xxmotif.py @@ -8,7 +8,11 @@ """Command line wrapper for the motif finding program XXmotif.""" import os -from Bio.Application import AbstractCommandline, _Option, _Switch, _Argument + +from Bio.Application import _Argument +from Bio.Application import _Option +from Bio.Application import _Switch +from Bio.Application import AbstractCommandline class XXmotifCommandline(AbstractCommandline): diff --git a/Bio/motifs/jaspar/__init__.py b/Bio/motifs/jaspar/__init__.py index 202cdae1e..060f400eb 100644 --- a/Bio/motifs/jaspar/__init__.py +++ b/Bio/motifs/jaspar/__init__.py @@ -6,12 +6,12 @@ # package. """JASPAR2014 module.""" -from Bio.Seq import Seq -import re import math +import re -from Bio import motifs from Bio import Align +from Bio import motifs +from Bio.Seq import Seq class Motif(motifs.Motif): diff --git a/Bio/motifs/jaspar/db.py b/Bio/motifs/jaspar/db.py index 008938e27..92f7e8f64 100644 --- a/Bio/motifs/jaspar/db.py +++ b/Bio/motifs/jaspar/db.py @@ -56,6 +56,7 @@ appropriate:: """ import warnings + from Bio import BiopythonWarning from Bio import MissingPythonDependencyError @@ -66,8 +67,8 @@ except ImportError: "Install MySQLdb if you want to use Bio.motifs.jaspar.db" ) -from Bio.motifs import jaspar, matrix - +from Bio.motifs import jaspar +from Bio.motifs import matrix JASPAR_DFLT_COLLECTION = "CORE" diff --git a/Bio/motifs/meme.py b/Bio/motifs/meme.py index 14e0c8a0a..1a1ac3f9c 100644 --- a/Bio/motifs/meme.py +++ b/Bio/motifs/meme.py @@ -9,8 +9,8 @@ import xml.etree.ElementTree as ET from Bio import Align -from Bio import Seq from Bio import motifs +from Bio import Seq def read(handle): diff --git a/Bio/motifs/xms.py b/Bio/motifs/xms.py index 0419b2e1d..0d39d8f8b 100644 --- a/Bio/motifs/xms.py +++ b/Bio/motifs/xms.py @@ -6,11 +6,11 @@ """Parse XMS motif files.""" -from Bio import motifs - - -from xml.dom import minidom, Node import re +from xml.dom import minidom +from xml.dom import Node + +from Bio import motifs class XMSScanner: diff --git a/Bio/pairwise2.py b/Bio/pairwise2.py index 8eae07fd4..e6aa80271 100644 --- a/Bio/pairwise2.py +++ b/Bio/pairwise2.py @@ -271,8 +271,8 @@ type ``help(pairwise2.align.localds)`` at the Python prompt. import warnings from collections import namedtuple -from Bio import BiopythonWarning from Bio import BiopythonDeprecationWarning +from Bio import BiopythonWarning from Bio.Align import substitution_matrices warnings.warn( diff --git a/Bio/phenotype/__init__.py b/Bio/phenotype/__init__.py index fc53fdd6f..61f62b331 100644 --- a/Bio/phenotype/__init__.py +++ b/Bio/phenotype/__init__.py @@ -97,7 +97,6 @@ except ImportError: from Bio.File import as_handle from Bio.phenotype import phen_micro - # Convention for format names is "mainname-format" in lower case. _FormatToIterator = { diff --git a/Bio/phenotype/phen_micro.py b/Bio/phenotype/phen_micro.py index 656ec9fc8..7a01c76ec 100644 --- a/Bio/phenotype/phen_micro.py +++ b/Bio/phenotype/phen_micro.py @@ -24,9 +24,10 @@ Functions: """ -import warnings -import json import csv +import json +import warnings + import numpy as np from Bio import BiopythonParserWarning @@ -879,8 +880,11 @@ class WellRecord: raise ValueError(f"Fitting function {sigmoid_func!r} not supported") # Parameters that depend on scipy curve_fit - from .pm_fitting import fit, get_area - from .pm_fitting import logistic, gompertz, richards + from .pm_fitting import fit + from .pm_fitting import get_area + from .pm_fitting import gompertz + from .pm_fitting import logistic + from .pm_fitting import richards function_map = { "logistic": logistic, diff --git a/BioSQL/BioSeq.py b/BioSQL/BioSeq.py index c10365c14..fa4e44e10 100644 --- a/BioSQL/BioSeq.py +++ b/BioSQL/BioSeq.py @@ -18,11 +18,14 @@ Note: Currently we do not support recording per-letter-annotations (like quality scores) in BioSQL. """ -from typing import List, Optional +from typing import List +from typing import Optional -from Bio.Seq import Seq, SequenceDataAbstractBaseClass -from Bio.SeqRecord import SeqRecord, _RestrictedDict from Bio import SeqFeature +from Bio.Seq import Seq +from Bio.Seq import SequenceDataAbstractBaseClass +from Bio.SeqRecord import _RestrictedDict +from Bio.SeqRecord import SeqRecord class _BioSQLSequenceData(SequenceDataAbstractBaseClass): @@ -229,6 +232,7 @@ def _retrieve_features(adaptor, primary_id): ) if start is not None and end is not None and end < start: import warnings + from Bio import BiopythonWarning warnings.warn( diff --git a/BioSQL/BioSeqDatabase.py b/BioSQL/BioSeqDatabase.py index 3cc697cab..dadedbceb 100644 --- a/BioSQL/BioSeqDatabase.py +++ b/BioSQL/BioSeqDatabase.py @@ -19,9 +19,8 @@ database, and is compatible with the BioSQL standards. import os from . import BioSeq -from . import Loader from . import DBUtils - +from . import Loader _POSTGRES_RULES_PRESENT = False # Hack for BioSQL Bug 2839 @@ -127,6 +126,7 @@ def open_database(driver="MySQLdb", **kwargs): ) if server.adaptor.execute_and_fetchall(sql): import warnings + from Bio import BiopythonWarning warnings.warn( diff --git a/BioSQL/DBUtils.py b/BioSQL/DBUtils.py index 7ee75beb9..7259b0cb4 100644 --- a/BioSQL/DBUtils.py +++ b/BioSQL/DBUtils.py @@ -13,8 +13,8 @@ """Helper code for Biopython's BioSQL code (for internal use).""" import os -from typing import Dict, Type - +from typing import Dict +from typing import Type _dbutils: Dict[str, Type["Generic_dbutils"]] = {} diff --git a/BioSQL/Loader.py b/BioSQL/Loader.py index 0947547a8..888ce686c 100644 --- a/BioSQL/Loader.py +++ b/BioSQL/Loader.py @@ -19,14 +19,16 @@ a database object. """ # standard modules -from time import gmtime, strftime +from time import gmtime +from time import strftime -# biopython -from Bio.SeqUtils.CheckSum import crc64 from Bio import Entrez from Bio.Seq import UndefinedSequenceError from Bio.SeqFeature import UnknownPosition +# biopython +from Bio.SeqUtils.CheckSum import crc64 + class DatabaseLoader: """Object used to load SeqRecord objects into a BioSQL database.""" @@ -938,6 +940,7 @@ class DatabaseLoader: # e.g. order locations... we don't record "order" so it # will become a "join" on reloading. What does BioPerl do? import warnings + from Bio import BiopythonWarning warnings.warn( diff --git a/Doc/conf.py b/Doc/conf.py index 7a2bd3aac..052d2ef19 100644 --- a/Doc/conf.py +++ b/Doc/conf.py @@ -13,7 +13,8 @@ import tempfile from sphinx.ext import autodoc -from Bio import __version__, Application +from Bio import __version__ +from Bio import Application # -- General configuration ------------------------------------------------ diff --git a/Doc/examples/ACT_example.py b/Doc/examples/ACT_example.py index 20be04989..118bb1d43 100644 --- a/Doc/examples/ACT_example.py +++ b/Doc/examples/ACT_example.py @@ -5,14 +5,17 @@ """Example of using GenomeDiagram cross-links to mimic ACT.""" -import sys import os +import sys + from reportlab.lib import colors from reportlab.lib.units import cm -from Bio.Graphics.GenomeDiagram import Diagram, CrossLink -from Bio.SeqFeature import SeqFeature, SimpleLocation from Bio import SeqIO +from Bio.Graphics.GenomeDiagram import CrossLink +from Bio.Graphics.GenomeDiagram import Diagram +from Bio.SeqFeature import SeqFeature +from Bio.SeqFeature import SimpleLocation # Modify this line to point at the Artemis/ACT example data which is online at: # https://github.com/sanger-pathogens/Artemis/tree/master/etc diff --git a/Doc/examples/Proux_et_al_2002_Figure_6.py b/Doc/examples/Proux_et_al_2002_Figure_6.py index 1d0932e53..db1fef286 100644 --- a/Doc/examples/Proux_et_al_2002_Figure_6.py +++ b/Doc/examples/Proux_et_al_2002_Figure_6.py @@ -14,14 +14,20 @@ See https://doi.org/10.1128/JB.184.21.6026-6036.2002 """ from reportlab.lib import colors -from reportlab.lib.colors import red, grey, orange, green, brown -from reportlab.lib.colors import blue, lightblue, purple - -from Bio.Graphics import GenomeDiagram -from Bio.Graphics.GenomeDiagram import CrossLink +from reportlab.lib.colors import blue +from reportlab.lib.colors import brown +from reportlab.lib.colors import green +from reportlab.lib.colors import grey +from reportlab.lib.colors import lightblue +from reportlab.lib.colors import orange +from reportlab.lib.colors import purple +from reportlab.lib.colors import red from Bio import SeqIO -from Bio.SeqFeature import SeqFeature, SimpleLocation +from Bio.Graphics import GenomeDiagram +from Bio.Graphics.GenomeDiagram import CrossLink +from Bio.SeqFeature import SeqFeature +from Bio.SeqFeature import SimpleLocation name = "Proux Fig 6" diff --git a/Doc/examples/clustal_run.py b/Doc/examples/clustal_run.py index bc26fa0d0..4acd709cb 100644 --- a/Doc/examples/clustal_run.py +++ b/Doc/examples/clustal_run.py @@ -12,8 +12,8 @@ and parse the results into an object that can be dealt with easily. """ # standard library -import sys import subprocess +import sys # biopython from Bio import Align diff --git a/Doc/examples/nmr/simplepredict.py b/Doc/examples/nmr/simplepredict.py index 95e50d05a..34df75f3c 100755 --- a/Doc/examples/nmr/simplepredict.py +++ b/Doc/examples/nmr/simplepredict.py @@ -49,8 +49,8 @@ This script generates a human readable standard output version of the NOE coordinates as well as an nmrview peaklist out_example.xpk. """ -from Bio.NMR import xpktools # Contains data classes and functions for .xpk files from Bio.NMR import NOEtools # A module specific for generate NOE predictions +from Bio.NMR import xpktools # Contains data classes and functions for .xpk files # * * * * * * * * * * MAIN * * * * * * * * * * diff --git a/Doc/examples/swissprot.py b/Doc/examples/swissprot.py index 365d01206..293f920ca 100644 --- a/Doc/examples/swissprot.py +++ b/Doc/examples/swissprot.py @@ -7,7 +7,8 @@ # biopython -from Bio import ExPASy, SwissProt +from Bio import ExPASy +from Bio import SwissProt # 'O23729', 'O23730', 'O23731', Chalcone synthases from Orchid diff --git a/Scripts/GenBank/check_output.py b/Scripts/GenBank/check_output.py index e27ea314a..78dcd3c73 100644 --- a/Scripts/GenBank/check_output.py +++ b/Scripts/GenBank/check_output.py @@ -15,9 +15,9 @@ python check_output.py """ # standard modules -import sys -import os import gzip +import os +import sys from io import StringIO # biopython diff --git a/Scripts/GenBank/check_output_simple.py b/Scripts/GenBank/check_output_simple.py index 1aeec5615..d476217a6 100644 --- a/Scripts/GenBank/check_output_simple.py +++ b/Scripts/GenBank/check_output_simple.py @@ -22,7 +22,6 @@ import sys # GenBank stuff to test from Bio import GenBank - if len(sys.argv) != 2: print("Usage ./check_output.py ") sys.exit() diff --git a/Scripts/PDB/generate_three_to_one_dict.py b/Scripts/PDB/generate_three_to_one_dict.py index f91183426..ee394523f 100644 --- a/Scripts/PDB/generate_three_to_one_dict.py +++ b/Scripts/PDB/generate_three_to_one_dict.py @@ -15,7 +15,6 @@ import gzip import inspect import os import warnings - from urllib.request import urlopen url = "ftp://ftp.wwpdb.org/pub/pdb/data/monomers/components.cif.gz" diff --git a/Scripts/PDB/hsexpo.py b/Scripts/PDB/hsexpo.py index c3201204a..d8c1453b2 100644 --- a/Scripts/PDB/hsexpo.py +++ b/Scripts/PDB/hsexpo.py @@ -20,16 +20,14 @@ See --help for all args. import argparse import sys -from Bio.PDB import ( - DSSP, - ExposureCN, - HSExposureCA, - HSExposureCB, - PDBParser, - PDBIO, - ResidueDepth, - Selection, -) +from Bio.PDB import DSSP +from Bio.PDB import ExposureCN +from Bio.PDB import HSExposureCA +from Bio.PDB import HSExposureCB +from Bio.PDB import PDBIO +from Bio.PDB import PDBParser +from Bio.PDB import ResidueDepth +from Bio.PDB import Selection ap = argparse.ArgumentParser(description=__doc__) ap.add_argument("pdbfile", help="Input structure in PDB format.") diff --git a/Scripts/Performance/biosql_performance_load.py b/Scripts/Performance/biosql_performance_load.py index 961f26a93..359c149a0 100644 --- a/Scripts/Performance/biosql_performance_load.py +++ b/Scripts/Performance/biosql_performance_load.py @@ -13,7 +13,6 @@ import time from Bio import GenBank from BioSQL import BioSeqDatabase - server = BioSeqDatabase.open_database( host="192.168.0.192", user="root", passwd="", db="pythonloadtest" ) diff --git a/Scripts/Performance/biosql_performance_read.py b/Scripts/Performance/biosql_performance_read.py index ede45dd9f..d40464251 100644 --- a/Scripts/Performance/biosql_performance_read.py +++ b/Scripts/Performance/biosql_performance_read.py @@ -12,7 +12,6 @@ import time # set up the connection from BioSQL import BioSeqDatabase - server = BioSeqDatabase.open_database( host="192.168.0.192", user="root", passwd="", db="test_biosql" ) diff --git a/Scripts/Restriction/ranacompiler.py b/Scripts/Restriction/ranacompiler.py index 765fa4900..b39a9baae 100644 --- a/Scripts/Restriction/ranacompiler.py +++ b/Scripts/Restriction/ranacompiler.py @@ -40,26 +40,37 @@ This Python file is intended to be used via the scripts in `Scripts/Restriction/*.py` only. """ -import os import itertools -import time -import sys -import shutil import optparse +import os +import shutil +import sys +import time -from Bio.Seq import Seq -from Bio.Data.IUPACData import ambiguous_dna_values as amb_dna +from rebase_update import get_files +from rebase_update import release_number import Bio.Restriction.Restriction -from Bio.Restriction.Restriction import AbstractCut, RestrictionType, NoCut -from Bio.Restriction.Restriction import OneCut, TwoCuts, Meth_Dep, Meth_Undep -from Bio.Restriction.Restriction import Palindromic, NonPalindromic, Unknown -from Bio.Restriction.Restriction import Blunt, Ov5, Ov3 -from Bio.Restriction.Restriction import NotDefined, Defined, Ambiguous -from Bio.Restriction.Restriction import Commercially_available, Not_available - -from rebase_update import release_number, get_files - +from Bio.Data.IUPACData import ambiguous_dna_values as amb_dna +from Bio.Restriction.Restriction import AbstractCut +from Bio.Restriction.Restriction import Ambiguous +from Bio.Restriction.Restriction import Blunt +from Bio.Restriction.Restriction import Commercially_available +from Bio.Restriction.Restriction import Defined +from Bio.Restriction.Restriction import Meth_Dep +from Bio.Restriction.Restriction import Meth_Undep +from Bio.Restriction.Restriction import NoCut +from Bio.Restriction.Restriction import NonPalindromic +from Bio.Restriction.Restriction import Not_available +from Bio.Restriction.Restriction import NotDefined +from Bio.Restriction.Restriction import OneCut +from Bio.Restriction.Restriction import Ov3 +from Bio.Restriction.Restriction import Ov5 +from Bio.Restriction.Restriction import Palindromic +from Bio.Restriction.Restriction import RestrictionType +from Bio.Restriction.Restriction import TwoCuts +from Bio.Restriction.Restriction import Unknown +from Bio.Seq import Seq enzymedict = {} suppliersdict = {} diff --git a/Scripts/Restriction/rebase_update.py b/Scripts/Restriction/rebase_update.py index b94ed97dd..8ff275754 100644 --- a/Scripts/Restriction/rebase_update.py +++ b/Scripts/Restriction/rebase_update.py @@ -16,8 +16,8 @@ These two sets of files are used by ``ranacompiler.py`` to build the updated import os from datetime import date -from urllib.request import urlretrieve, urlcleanup - +from urllib.request import urlcleanup +from urllib.request import urlretrieve # Rebase ftp location, do not modify these addresses: ftp_Rebase = "ftp://ftp.neb.com/" diff --git a/Scripts/SeqGui/SeqGui.py b/Scripts/SeqGui/SeqGui.py index 9401fe957..b85293ffa 100644 --- a/Scripts/SeqGui/SeqGui.py +++ b/Scripts/SeqGui/SeqGui.py @@ -21,9 +21,10 @@ It runs as a standalone application. import tkinter as tk import tkinter.ttk as ttk -from Bio.Seq import translate, transcribe, back_transcribe from Bio.Data import CodonTable - +from Bio.Seq import back_transcribe +from Bio.Seq import transcribe +from Bio.Seq import translate main_window = tk.Tk() main_window.title("Greetings from Biopython") diff --git a/Scripts/query_pubmed.py b/Scripts/query_pubmed.py index 0c53d8431..105f7aa81 100755 --- a/Scripts/query_pubmed.py +++ b/Scripts/query_pubmed.py @@ -7,8 +7,8 @@ """Query PubMed and print MEDLINE format results.""" -import sys import getopt +import sys from Bio import Entrez diff --git a/Scripts/scop_pdb.py b/Scripts/scop_pdb.py index ff52b1614..106be6994 100755 --- a/Scripts/scop_pdb.py +++ b/Scripts/scop_pdb.py @@ -8,10 +8,10 @@ import getopt import sys - from urllib.request import urlretrieve as _urlretrieve -from Bio.SCOP import Raf, Cla +from Bio.SCOP import Cla +from Bio.SCOP import Raf def usage(): diff --git a/Scripts/xbbtools/xbb_blast.py b/Scripts/xbbtools/xbb_blast.py index 8aedec05e..bc52dddef 100644 --- a/Scripts/xbbtools/xbb_blast.py +++ b/Scripts/xbbtools/xbb_blast.py @@ -13,17 +13,15 @@ import glob import os -import sys import subprocess - +import sys import tkinter as tk import tkinter.ttk as ttk from tkinter import filedialog from tkinter import messagebox - -from xbb_utils import NotePad import xbb_blastbg +from xbb_utils import NotePad class BlastIt: diff --git a/Scripts/xbbtools/xbb_blastbg.py b/Scripts/xbbtools/xbb_blastbg.py index 1c5bafb03..71adb7ee3 100644 --- a/Scripts/xbbtools/xbb_blastbg.py +++ b/Scripts/xbbtools/xbb_blastbg.py @@ -14,16 +14,14 @@ import os import tempfile import threading +from tkinter import messagebox +from tkinter import Tk -from tkinter import Tk, messagebox - -from Bio.Blast.Applications import ( - NcbiblastnCommandline, - NcbiblastpCommandline, - NcbiblastxCommandline, - NcbitblastnCommandline, - NcbitblastxCommandline, -) +from Bio.Blast.Applications import NcbiblastnCommandline +from Bio.Blast.Applications import NcbiblastpCommandline +from Bio.Blast.Applications import NcbiblastxCommandline +from Bio.Blast.Applications import NcbitblastnCommandline +from Bio.Blast.Applications import NcbitblastxCommandline class BlastDisplayer: diff --git a/Scripts/xbbtools/xbb_search.py b/Scripts/xbbtools/xbb_search.py index 7285dd2ee..d0d6e285a 100644 --- a/Scripts/xbbtools/xbb_search.py +++ b/Scripts/xbbtools/xbb_search.py @@ -16,11 +16,11 @@ import tkinter as tk import tkinter.ttk as ttk from tkinter import colorchooser +import xbb_widget + from Bio.Data.IUPACData import ambiguous_dna_values from Bio.Seq import reverse_complement -import xbb_widget - class DNAsearch: """Class to search a DNA sequence.""" diff --git a/Scripts/xbbtools/xbb_translations.py b/Scripts/xbbtools/xbb_translations.py index c6c77dc63..5c72ff60d 100644 --- a/Scripts/xbbtools/xbb_translations.py +++ b/Scripts/xbbtools/xbb_translations.py @@ -13,7 +13,9 @@ import time -from Bio.Seq import Seq, reverse_complement, translate +from Bio.Seq import reverse_complement +from Bio.Seq import Seq +from Bio.Seq import translate from Bio.SeqUtils import gc_fraction diff --git a/Scripts/xbbtools/xbb_widget.py b/Scripts/xbbtools/xbb_widget.py index c46f7abc8..48e90be0f 100644 --- a/Scripts/xbbtools/xbb_widget.py +++ b/Scripts/xbbtools/xbb_widget.py @@ -18,15 +18,15 @@ import tkinter as tk import tkinter.ttk as ttk from tkinter import filedialog +from xbb_blast import BlastIt +from xbb_help import xbbtools_help +from xbb_search import XDNAsearch +from xbb_translations import xbb_translations +from xbb_utils import NotePad + from Bio.Data import CodonTable from Bio.SeqIO.FastaIO import SimpleFastaParser -from xbb_utils import NotePad -from xbb_translations import xbb_translations -from xbb_blast import BlastIt -from xbb_search import XDNAsearch -from xbb_help import xbbtools_help - class xbb_widget: """Main XBBtools window.""" diff --git a/Scripts/xbbtools/xbbtools.py b/Scripts/xbbtools/xbbtools.py index d86b12a4b..a8d33b053 100755 --- a/Scripts/xbbtools/xbbtools.py +++ b/Scripts/xbbtools/xbbtools.py @@ -16,7 +16,6 @@ import tkinter as tk from xbb_widget import xbb_widget - win = tk.Tk() win.title("xbb tools") xbbtools = xbb_widget() diff --git a/Tests/PAML/gen_results.py b/Tests/PAML/gen_results.py index 30446d462..89c273288 100644 --- a/Tests/PAML/gen_results.py +++ b/Tests/PAML/gen_results.py @@ -8,7 +8,6 @@ import os.path import sys - VERSIONS = ["4_1", "4_3", "4_4", "4_4c", "4_5", "4_6", "4_7", "4_8", "4_9a", "4_9i"] diff --git a/Tests/common_BioSQL.py b/Tests/common_BioSQL.py index 2f9c949a8..835e71284 100644 --- a/Tests/common_BioSQL.py +++ b/Tests/common_BioSQL.py @@ -10,24 +10,27 @@ import tempfile import time import unittest -from io import StringIO - # Hide annoying warnings from things like bonds in GenBank features, # or PostgreSQL schema rules. TODO - test these warnings are raised! import warnings +from io import StringIO + +from seq_tests_common import SeqRecordTestBaseClass + from Bio import BiopythonWarning # local stuff from Bio import MissingExternalDependencyError -from Bio.Seq import Seq, MutableSeq, UndefinedSequenceError -from Bio.SeqFeature import SeqFeature, UnknownPosition, ExactPosition from Bio import SeqIO +from Bio.Seq import MutableSeq +from Bio.Seq import Seq +from Bio.Seq import UndefinedSequenceError +from Bio.SeqFeature import ExactPosition +from Bio.SeqFeature import SeqFeature +from Bio.SeqFeature import UnknownPosition from Bio.SeqRecord import SeqRecord - from BioSQL import BioSeqDatabase -from seq_tests_common import SeqRecordTestBaseClass - if __name__ == "__main__": raise RuntimeError("Call this via test_BioSQL_*.py not directly") diff --git a/Tests/common_BioSQL_online.py b/Tests/common_BioSQL_online.py index e7ffc6967..edcdb129b 100644 --- a/Tests/common_BioSQL_online.py +++ b/Tests/common_BioSQL_online.py @@ -5,31 +5,32 @@ import os import platform -import unittest import tempfile import time - -from io import StringIO +import unittest # Hide annoying warnings from things like bonds in GenBank features, # or PostgreSQL schema rules. TODO - test these warnings are raised! import warnings +from io import StringIO + +import requires_internet +from common_BioSQL import check_config +from common_BioSQL import create_database +from common_BioSQL import destroy_database + from Bio import BiopythonWarning +from Bio import Entrez # local stuff from Bio import MissingExternalDependencyError -from Bio.Seq import Seq, MutableSeq -from Bio.SeqFeature import SeqFeature from Bio import SeqIO +from Bio.Seq import MutableSeq +from Bio.Seq import Seq +from Bio.SeqFeature import SeqFeature from Bio.SeqRecord import SeqRecord - -from BioSQL import BioSeqDatabase from BioSQL import BioSeq -from Bio import Entrez - -from common_BioSQL import create_database, destroy_database, check_config - -import requires_internet +from BioSQL import BioSeqDatabase if __name__ == "__main__": raise RuntimeError("Call this via test_BioSQL_*online.py not directly") diff --git a/Tests/run_tests.py b/Tests/run_tests.py index 80902150d..0f3551904 100755 --- a/Tests/run_tests.py +++ b/Tests/run_tests.py @@ -22,17 +22,18 @@ By default, all tests are run. """ # standard modules -import sys -import os +import doctest +import gc import getopt +import os +import sys import time import traceback import unittest -import doctest -import gc -from pkgutil import iter_modules -from setuptools import find_packages from io import StringIO +from pkgutil import iter_modules + +from setuptools import find_packages try: import numpy as np @@ -223,8 +224,8 @@ class TestRunner(unittest.TextTestRunner): unittest.TextTestRunner.__init__(self, stream, verbosity=verbosity) def runTest(self, name): - from Bio import MissingPythonDependencyError from Bio import MissingExternalDependencyError + from Bio import MissingPythonDependencyError result = self._makeResult() output = StringIO() diff --git a/Tests/search_tests_common.py b/Tests/search_tests_common.py index 8db7c97e4..6ffce4a2d 100644 --- a/Tests/search_tests_common.py +++ b/Tests/search_tests_common.py @@ -6,8 +6,8 @@ """Common code for SearchIO tests.""" -import os import gzip +import os import unittest try: diff --git a/Tests/seq_tests_common.py b/Tests/seq_tests_common.py index 1932b3c25..202d4ef19 100644 --- a/Tests/seq_tests_common.py +++ b/Tests/seq_tests_common.py @@ -7,14 +7,17 @@ import unittest import warnings +from test_SeqIO import SeqIOTestBaseClass + from Bio import BiopythonDeprecationWarning from Bio.Seq import UndefinedSequenceError -from Bio.SeqUtils.CheckSum import seguid -from Bio.SeqFeature import ExactPosition, UnknownPosition -from Bio.SeqFeature import SimpleLocation, CompoundLocation, SeqFeature +from Bio.SeqFeature import CompoundLocation +from Bio.SeqFeature import ExactPosition +from Bio.SeqFeature import SeqFeature +from Bio.SeqFeature import SimpleLocation +from Bio.SeqFeature import UnknownPosition from Bio.SeqRecord import SeqRecord - -from test_SeqIO import SeqIOTestBaseClass +from Bio.SeqUtils.CheckSum import seguid class SeqRecordTestBaseClass(unittest.TestCase): diff --git a/Tests/test_Affy.py b/Tests/test_Affy.py index aed6da66b..87fce5b76 100644 --- a/Tests/test_Affy.py +++ b/Tests/test_Affy.py @@ -4,14 +4,13 @@ """Tests for Affy module.""" +import os +import struct import unittest -import struct -import os - try: - from numpy import array import numpy.testing + from numpy import array except ImportError: from Bio import MissingPythonDependencyError diff --git a/Tests/test_AlignIO.py b/Tests/test_AlignIO.py index c19f76464..129fa1597 100644 --- a/Tests/test_AlignIO.py +++ b/Tests/test_AlignIO.py @@ -3,14 +3,13 @@ # license. Please see the LICENSE file that should have been included # as part of this package. """Tests for AlignIO module.""" +import string import unittest import warnings -import string - from io import StringIO -from Bio import BiopythonDeprecationWarning from Bio import AlignIO +from Bio import BiopythonDeprecationWarning from Bio import SeqIO from Bio.Align import AlignInfo from Bio.Align import MultipleSeqAlignment diff --git a/Tests/test_AlignIO_ClustalIO.py b/Tests/test_AlignIO_ClustalIO.py index f5ac54deb..ad89104dd 100644 --- a/Tests/test_AlignIO_ClustalIO.py +++ b/Tests/test_AlignIO_ClustalIO.py @@ -4,7 +4,6 @@ # as part of this package. """Tests for Bio.AlignIO.ClustalIO module.""" import unittest - from io import StringIO from Bio.AlignIO.ClustalIO import ClustalIterator diff --git a/Tests/test_AlignIO_EmbossIO.py b/Tests/test_AlignIO_EmbossIO.py index 9b86db905..90fa9f34b 100644 --- a/Tests/test_AlignIO_EmbossIO.py +++ b/Tests/test_AlignIO_EmbossIO.py @@ -5,7 +5,6 @@ # as part of this package. """Tests for Bio.AlignIO.EmbossIO module.""" import unittest - from io import StringIO from Bio.AlignIO.EmbossIO import EmbossIterator diff --git a/Tests/test_AlignIO_MauveIO.py b/Tests/test_AlignIO_MauveIO.py index 28f95ff9f..71d04ccbf 100644 --- a/Tests/test_AlignIO_MauveIO.py +++ b/Tests/test_AlignIO_MauveIO.py @@ -6,7 +6,6 @@ """Tests for Bio.AlignIO.MauveIO module.""" import os import unittest - from io import StringIO from Bio import SeqIO diff --git a/Tests/test_AlignIO_PhylipIO.py b/Tests/test_AlignIO_PhylipIO.py index a1b6f102d..ea8947056 100644 --- a/Tests/test_AlignIO_PhylipIO.py +++ b/Tests/test_AlignIO_PhylipIO.py @@ -5,7 +5,6 @@ # as part of this package. """Tests for Bio.AlignIO.PhylipIO module.""" import unittest - from io import StringIO from Bio.AlignIO.PhylipIO import PhylipIterator diff --git a/Tests/test_AlignIO_convert.py b/Tests/test_AlignIO_convert.py index 558193a74..5af62bc2e 100644 --- a/Tests/test_AlignIO_convert.py +++ b/Tests/test_AlignIO_convert.py @@ -4,7 +4,6 @@ # as part of this package. """Unit tests for Bio.SeqIO.convert(...) function.""" import unittest - from io import StringIO from Bio import AlignIO diff --git a/Tests/test_AlignInfo.py b/Tests/test_AlignInfo.py index 6d7e947d9..bba68b1c2 100644 --- a/Tests/test_AlignInfo.py +++ b/Tests/test_AlignInfo.py @@ -4,17 +4,17 @@ # as part of this package. """Bio.Align.AlignInfo related tests.""" +import math import unittest +from Bio import AlignIO from Bio import BiopythonDeprecationWarning from Bio.Align import MultipleSeqAlignment -from Bio.Seq import Seq -from Bio.SeqRecord import SeqRecord -from Bio import AlignIO from Bio.Align.AlignInfo import SummaryInfo from Bio.Data import IUPACData from Bio.motifs import Motif -import math +from Bio.Seq import Seq +from Bio.SeqRecord import SeqRecord class AlignInfoTests(unittest.TestCase): diff --git a/Tests/test_Align_Alignment.py b/Tests/test_Align_Alignment.py index 9d3a41536..6dbb2ec13 100644 --- a/Tests/test_Align_Alignment.py +++ b/Tests/test_Align_Alignment.py @@ -18,8 +18,11 @@ except ImportError: "Install numpy if you want to use Bio.Align." ) from None -from Bio import Align, SeqIO -from Bio.Seq import Seq, reverse_complement, translate +from Bio import Align +from Bio import SeqIO +from Bio.Seq import reverse_complement +from Bio.Seq import Seq +from Bio.Seq import translate from Bio.SeqRecord import SeqRecord from Bio.SeqUtils import gc_fraction diff --git a/Tests/test_Align_a2m.py b/Tests/test_Align_a2m.py index 43b93612b..981fb8f0b 100644 --- a/Tests/test_Align_a2m.py +++ b/Tests/test_Align_a2m.py @@ -5,13 +5,12 @@ # as part of this package. """Tests for Bio.Align.a2m module.""" import unittest - from io import StringIO -from Bio import Align - import numpy as np +from Bio import Align + class TestA2MReadingWriting(unittest.TestCase): def check_reading_writing(self, path): diff --git a/Tests/test_Align_bed.py b/Tests/test_Align_bed.py index f59d47cd9..c02264ed6 100644 --- a/Tests/test_Align_bed.py +++ b/Tests/test_Align_bed.py @@ -3,20 +3,18 @@ # license. Please see the LICENSE file that should have been included # as part of this package. """Tests for Align.bed module.""" -import unittest -import tempfile import os +import tempfile +import unittest from io import StringIO +import numpy as np from Bio import Align +from Bio import SeqIO from Bio.Align import Alignment from Bio.Seq import Seq from Bio.SeqRecord import SeqRecord -from Bio import SeqIO - - -import numpy as np class TestAlign_dna_rna(unittest.TestCase): diff --git a/Tests/test_Align_bigbed.py b/Tests/test_Align_bigbed.py index 566b80449..d23c4a15d 100644 --- a/Tests/test_Align_bigbed.py +++ b/Tests/test_Align_bigbed.py @@ -3,18 +3,17 @@ # license. Please see the LICENSE file that should have been included # as part of this package. """Tests for Align.bigbed module.""" -import unittest -import tempfile import os import sys +import tempfile +import unittest from io import StringIO - from Bio import Align -from Bio.Seq import Seq -from Bio.SeqRecord import SeqRecord from Bio import SeqIO from Bio.Align import bigbed +from Bio.Seq import Seq +from Bio.SeqRecord import SeqRecord try: import numpy as np diff --git a/Tests/test_Align_bigmaf.py b/Tests/test_Align_bigmaf.py index d3664ef94..a01460860 100644 --- a/Tests/test_Align_bigmaf.py +++ b/Tests/test_Align_bigmaf.py @@ -3,15 +3,14 @@ # license. Please see the LICENSE file that should have been included # as part of this package. """Tests for Align.bigmaf module.""" -import unittest import tempfile +import unittest from io import StringIO +import numpy as np from Bio import Align -import numpy as np - class TestAlign_declaration(unittest.TestCase): def test_declaration(self): diff --git a/Tests/test_Align_bigpsl.py b/Tests/test_Align_bigpsl.py index 7db19dadc..70e244438 100644 --- a/Tests/test_Align_bigpsl.py +++ b/Tests/test_Align_bigpsl.py @@ -6,14 +6,14 @@ import tempfile import unittest - from Bio import Align -from Bio.Seq import Seq from Bio import SeqIO -from Bio.SeqFeature import ExactPosition, BeforePosition -from Bio.SeqFeature import SimpleLocation, CompoundLocation +from Bio.Seq import Seq +from Bio.SeqFeature import BeforePosition +from Bio.SeqFeature import CompoundLocation +from Bio.SeqFeature import ExactPosition from Bio.SeqFeature import SeqFeature - +from Bio.SeqFeature import SimpleLocation try: import numpy as np diff --git a/Tests/test_Align_chain.py b/Tests/test_Align_chain.py index 27bca3acb..eb3894d6a 100644 --- a/Tests/test_Align_chain.py +++ b/Tests/test_Align_chain.py @@ -6,14 +6,15 @@ import unittest from io import StringIO - -from Bio.Align import Alignment -from Bio.Seq import Seq, reverse_complement -from Bio.SeqRecord import SeqRecord -from Bio.SeqFeature import SimpleLocation, ExactPosition, CompoundLocation -from Bio import SeqIO from Bio import Align - +from Bio import SeqIO +from Bio.Align import Alignment +from Bio.Seq import reverse_complement +from Bio.Seq import Seq +from Bio.SeqFeature import CompoundLocation +from Bio.SeqFeature import ExactPosition +from Bio.SeqFeature import SimpleLocation +from Bio.SeqRecord import SeqRecord try: import numpy as np diff --git a/Tests/test_Align_clustal.py b/Tests/test_Align_clustal.py index 0a1c8d57d..fa30ec804 100644 --- a/Tests/test_Align_clustal.py +++ b/Tests/test_Align_clustal.py @@ -4,13 +4,12 @@ # as part of this package. """Tests for Bio.Align.clustal module.""" import unittest - from io import StringIO -from Bio import Align - import numpy as np +from Bio import Align + class TestClustalReadingWriting(unittest.TestCase): def check_reading_writing(self, path): diff --git a/Tests/test_Align_codonalign.py b/Tests/test_Align_codonalign.py index 27cb52866..2fafc1693 100644 --- a/Tests/test_Align_codonalign.py +++ b/Tests/test_Align_codonalign.py @@ -9,14 +9,16 @@ import unittest import numpy as np -from Bio import SeqIO from Bio import Align -from Bio.Seq import Seq -from Bio.SeqRecord import SeqRecord -from Bio.Data import CodonTable +from Bio import SeqIO from Bio.Align import Alignment from Bio.Align import CodonAligner -from Bio.Align.analysis import calculate_dn_ds, calculate_dn_ds_matrix, mktest +from Bio.Align.analysis import calculate_dn_ds +from Bio.Align.analysis import calculate_dn_ds_matrix +from Bio.Align.analysis import mktest +from Bio.Data import CodonTable +from Bio.Seq import Seq +from Bio.SeqRecord import SeqRecord class TestBasic(unittest.TestCase): diff --git a/Tests/test_Align_emboss.py b/Tests/test_Align_emboss.py index ca7e9cf5e..29bd222e3 100644 --- a/Tests/test_Align_emboss.py +++ b/Tests/test_Align_emboss.py @@ -5,12 +5,10 @@ # as part of this package. """Tests for Bio.Align.emboss module.""" import unittest - from io import StringIO from Bio import Align - try: import numpy as np except ImportError: diff --git a/Tests/test_Align_exonerate.py b/Tests/test_Align_exonerate.py index 2dcfc3db2..7dbc99f30 100644 --- a/Tests/test_Align_exonerate.py +++ b/Tests/test_Align_exonerate.py @@ -5,13 +5,12 @@ """Tests for Bio.Align Exonerate parsers.""" -import os import io +import os import unittest from Bio import Align - try: import numpy as np except ImportError: diff --git a/Tests/test_Align_fasta.py b/Tests/test_Align_fasta.py index ff1ef626f..59d8553c4 100644 --- a/Tests/test_Align_fasta.py +++ b/Tests/test_Align_fasta.py @@ -5,13 +5,12 @@ # as part of this package. """Tests for Bio.Align.fasta module.""" import unittest - from io import StringIO -from Bio import Align - import numpy as np +from Bio import Align + class TestFASTAReadingWriting(unittest.TestCase): def check_reading_writing(self, path): diff --git a/Tests/test_Align_hhr.py b/Tests/test_Align_hhr.py index 107079fc5..06f78c1ef 100644 --- a/Tests/test_Align_hhr.py +++ b/Tests/test_Align_hhr.py @@ -6,11 +6,10 @@ import os import unittest +import numpy as np from Bio import Align -import numpy as np - class Align_hhr_2uvo_hhblits(unittest.TestCase): path = os.path.join("HHsuite", "2uvo_hhblits.hhr") diff --git a/Tests/test_Align_maf.py b/Tests/test_Align_maf.py index 9e04cb807..9bd8369de 100644 --- a/Tests/test_Align_maf.py +++ b/Tests/test_Align_maf.py @@ -6,10 +6,8 @@ import unittest from io import StringIO - from Bio import Align - try: import numpy as np except ImportError: diff --git a/Tests/test_Align_mauve.py b/Tests/test_Align_mauve.py index 5f5545897..e05e2ea25 100644 --- a/Tests/test_Align_mauve.py +++ b/Tests/test_Align_mauve.py @@ -6,13 +6,12 @@ """Tests for Bio.Align.mauve module.""" import os import unittest - from io import StringIO -from Bio.Seq import Seq, MutableSeq -from Bio import SeqIO from Bio import Align - +from Bio import SeqIO +from Bio.Seq import MutableSeq +from Bio.Seq import Seq try: import numpy as np diff --git a/Tests/test_Align_msf.py b/Tests/test_Align_msf.py index 5c6cee493..279280fbd 100644 --- a/Tests/test_Align_msf.py +++ b/Tests/test_Align_msf.py @@ -8,9 +8,8 @@ import unittest import warnings from io import StringIO -from Bio import BiopythonParserWarning from Bio import Align - +from Bio import BiopythonParserWarning try: import numpy as np diff --git a/Tests/test_Align_nexus.py b/Tests/test_Align_nexus.py index e8e7b552c..ef72b4de9 100644 --- a/Tests/test_Align_nexus.py +++ b/Tests/test_Align_nexus.py @@ -9,7 +9,6 @@ from io import StringIO from Bio import Align - try: import numpy as np except ImportError: diff --git a/Tests/test_Align_phylip.py b/Tests/test_Align_phylip.py index 752dc104e..b71288e1e 100644 --- a/Tests/test_Align_phylip.py +++ b/Tests/test_Align_phylip.py @@ -5,12 +5,10 @@ # as part of this package. """Tests for Bio.Align.phylip module.""" import unittest - from io import StringIO from Bio import Align - try: import numpy as np except ImportError: diff --git a/Tests/test_Align_psl.py b/Tests/test_Align_psl.py index d069ba75c..74a478e65 100644 --- a/Tests/test_Align_psl.py +++ b/Tests/test_Align_psl.py @@ -6,14 +6,15 @@ import unittest from io import StringIO - -from Bio.Align import Alignment -from Bio.Seq import Seq, reverse_complement -from Bio.SeqRecord import SeqRecord -from Bio.SeqFeature import SimpleLocation, ExactPosition, CompoundLocation -from Bio import SeqIO from Bio import Align - +from Bio import SeqIO +from Bio.Align import Alignment +from Bio.Seq import reverse_complement +from Bio.Seq import Seq +from Bio.SeqFeature import CompoundLocation +from Bio.SeqFeature import ExactPosition +from Bio.SeqFeature import SimpleLocation +from Bio.SeqRecord import SeqRecord try: import numpy as np diff --git a/Tests/test_Align_sam.py b/Tests/test_Align_sam.py index 22085af46..12d9cf7ac 100644 --- a/Tests/test_Align_sam.py +++ b/Tests/test_Align_sam.py @@ -6,13 +6,11 @@ import unittest from io import StringIO - +from Bio import Align +from Bio import SeqIO from Bio.Align import Alignment from Bio.Seq import Seq from Bio.SeqRecord import SeqRecord -from Bio import SeqIO -from Bio import Align - try: import numpy as np diff --git a/Tests/test_Align_stockholm.py b/Tests/test_Align_stockholm.py index 2a58f1edb..88bffb6d4 100644 --- a/Tests/test_Align_stockholm.py +++ b/Tests/test_Align_stockholm.py @@ -6,10 +6,8 @@ import unittest from io import StringIO - from Bio import Align - try: import numpy as np except ImportError: diff --git a/Tests/test_Align_tabular.py b/Tests/test_Align_tabular.py index 014d36522..bcef40117 100644 --- a/Tests/test_Align_tabular.py +++ b/Tests/test_Align_tabular.py @@ -4,13 +4,12 @@ # license. Please see the LICENSE file that should have been included # as part of this package. """Tests for Bio.Align.tabular module.""" -import unittest import os +import unittest -from Bio.Seq import Seq -from Bio import SeqIO from Bio import Align - +from Bio import SeqIO +from Bio.Seq import Seq try: import numpy as np diff --git a/Tests/test_Application.py b/Tests/test_Application.py index e273021c8..fcddb7b57 100644 --- a/Tests/test_Application.py +++ b/Tests/test_Application.py @@ -17,7 +17,8 @@ from Bio import BiopythonDeprecationWarning with warnings.catch_warnings(): warnings.simplefilter("ignore", category=BiopythonDeprecationWarning) - from Bio.Application import AbstractCommandline, _Argument + from Bio.Application import _Argument + from Bio.Application import AbstractCommandline class EchoApp(AbstractCommandline): diff --git a/Tests/test_BWA_tool.py b/Tests/test_BWA_tool.py index 3c5fd7513..c7ac74c36 100644 --- a/Tests/test_BWA_tool.py +++ b/Tests/test_BWA_tool.py @@ -7,23 +7,22 @@ """Tests for calling BWA.""" -from Bio import MissingExternalDependencyError -import sys import os +import sys import unittest - import warnings from Bio import BiopythonDeprecationWarning +from Bio import MissingExternalDependencyError with warnings.catch_warnings(): warnings.simplefilter("ignore", category=BiopythonDeprecationWarning) # TODO from Bio.Sequencing.Applications import BwaBwaswCommandline - from Bio.Sequencing.Applications import BwaIndexCommandline from Bio.Sequencing.Applications import BwaAlignCommandline - from Bio.Sequencing.Applications import BwaSamseCommandline - from Bio.Sequencing.Applications import BwaSampeCommandline + from Bio.Sequencing.Applications import BwaIndexCommandline from Bio.Sequencing.Applications import BwaMemCommandline + from Bio.Sequencing.Applications import BwaSampeCommandline + from Bio.Sequencing.Applications import BwaSamseCommandline ################################################################# diff --git a/Tests/test_BioSQL_MySQLdb.py b/Tests/test_BioSQL_MySQLdb.py index df0e651c2..4045e3c00 100644 --- a/Tests/test_BioSQL_MySQLdb.py +++ b/Tests/test_BioSQL_MySQLdb.py @@ -8,9 +8,10 @@ import unittest # Really do want "import *" to get all the test classes: from common_BioSQL import * # noqa: F403 +from common_BioSQL import check_config # Import these explicitly to avoid flake8 F405 below: -from common_BioSQL import load_biosql_ini, check_config +from common_BioSQL import load_biosql_ini DBDRIVER = "MySQLdb" DBTYPE = "mysql" diff --git a/Tests/test_BioSQL_MySQLdb_online.py b/Tests/test_BioSQL_MySQLdb_online.py index eab8b8ddc..7d138dc18 100644 --- a/Tests/test_BioSQL_MySQLdb_online.py +++ b/Tests/test_BioSQL_MySQLdb_online.py @@ -6,16 +6,17 @@ import unittest +import requires_internet + # Really do want "import *" to get all the test clases: from common_BioSQL import * # noqa: F403 -from common_BioSQL_online import * # noqa: F403 +from common_BioSQL import check_config # Import these explicitly to avoid flake8 F405 below: -from common_BioSQL import load_biosql_ini, check_config +from common_BioSQL import load_biosql_ini +from common_BioSQL_online import * # noqa: F403 from common_BioSQL_online import share_config -import requires_internet - requires_internet.check() DBDRIVER = "MySQLdb" diff --git a/Tests/test_BioSQL_mysql_connector.py b/Tests/test_BioSQL_mysql_connector.py index b99b460b1..bea4ae3d9 100644 --- a/Tests/test_BioSQL_mysql_connector.py +++ b/Tests/test_BioSQL_mysql_connector.py @@ -8,10 +8,10 @@ import unittest # Really do want "import *" to get all the test classes: from common_BioSQL import * # noqa: F403 +from common_BioSQL import check_config # Import these explicitly to avoid flake8 F405 below: -from common_BioSQL import load_biosql_ini, check_config - +from common_BioSQL import load_biosql_ini DBDRIVER = "mysql.connector" DBTYPE = "mysql" diff --git a/Tests/test_BioSQL_mysql_connector_online.py b/Tests/test_BioSQL_mysql_connector_online.py index feab7a847..0bbcd0c4d 100644 --- a/Tests/test_BioSQL_mysql_connector_online.py +++ b/Tests/test_BioSQL_mysql_connector_online.py @@ -6,16 +6,17 @@ import unittest +import requires_internet + # Really do want "import *" to get all the test classes: from common_BioSQL import * # noqa: F403 -from common_BioSQL_online import * # noqa: F403 +from common_BioSQL import check_config # Import these explicitly to avoid flake8 F405 below: -from common_BioSQL import load_biosql_ini, check_config +from common_BioSQL import load_biosql_ini +from common_BioSQL_online import * # noqa: F403 from common_BioSQL_online import share_config -import requires_internet - requires_internet.check() DBDRIVER = "mysql.connector" diff --git a/Tests/test_BioSQL_psycopg2.py b/Tests/test_BioSQL_psycopg2.py index 271ea6bd0..da6aa7c17 100644 --- a/Tests/test_BioSQL_psycopg2.py +++ b/Tests/test_BioSQL_psycopg2.py @@ -8,9 +8,10 @@ import unittest # Really do want "import *" to get all the test classes: from common_BioSQL import * # noqa: F403 +from common_BioSQL import check_config # Import these explicitly to avoid flake8 F405 -from common_BioSQL import load_biosql_ini, check_config +from common_BioSQL import load_biosql_ini DBDRIVER = "psycopg2" DBTYPE = "pg" diff --git a/Tests/test_BioSQL_psycopg2_online.py b/Tests/test_BioSQL_psycopg2_online.py index 83084e521..71a769663 100644 --- a/Tests/test_BioSQL_psycopg2_online.py +++ b/Tests/test_BioSQL_psycopg2_online.py @@ -6,16 +6,17 @@ import unittest +import requires_internet + # Really do want "import *" to get all the test classes: from common_BioSQL import * # noqa: F403 -from common_BioSQL_online import * # noqa: F403 +from common_BioSQL import check_config # Import these explicitly to avoid flake8 F405 below: -from common_BioSQL import load_biosql_ini, check_config +from common_BioSQL import load_biosql_ini +from common_BioSQL_online import * # noqa: F403 from common_BioSQL_online import share_config -import requires_internet - requires_internet.check() DBDRIVER = "psycopg2" diff --git a/Tests/test_BioSQL_sqlite3.py b/Tests/test_BioSQL_sqlite3.py index 9222b05b1..6199e80eb 100644 --- a/Tests/test_BioSQL_sqlite3.py +++ b/Tests/test_BioSQL_sqlite3.py @@ -7,16 +7,16 @@ import os import unittest -from Bio import SeqIO -from BioSQL import BioSeqDatabase - -from seq_tests_common import SeqRecordTestBaseClass - # Really do want "import *" to get all the test classes: from common_BioSQL import * # noqa: F403 # Import these explicitly to avoid flake8 F405 below: -from common_BioSQL import check_config, temp_db_filename +from common_BioSQL import check_config +from common_BioSQL import temp_db_filename +from seq_tests_common import SeqRecordTestBaseClass + +from Bio import SeqIO +from BioSQL import BioSeqDatabase # Constants for the database driver DBDRIVER = "sqlite3" diff --git a/Tests/test_BioSQL_sqlite3_online.py b/Tests/test_BioSQL_sqlite3_online.py index b3f7aba11..5bb233aa8 100644 --- a/Tests/test_BioSQL_sqlite3_online.py +++ b/Tests/test_BioSQL_sqlite3_online.py @@ -6,16 +6,17 @@ import unittest +import requires_internet + # Really do want "import *" to get all the test classes: from common_BioSQL import * # noqa: F403 -from common_BioSQL_online import * # noqa: F403 # Import these explicitly to avoid flake8 F405 below -from common_BioSQL import check_config, temp_db_filename +from common_BioSQL import check_config +from common_BioSQL import temp_db_filename +from common_BioSQL_online import * # noqa: F403 from common_BioSQL_online import share_config -import requires_internet - requires_internet.check() # Constants for the database driver diff --git a/Tests/test_Blast_parser.py b/Tests/test_Blast_parser.py index 3713bb725..d6e815667 100644 --- a/Tests/test_Blast_parser.py +++ b/Tests/test_Blast_parser.py @@ -10,8 +10,8 @@ import unittest import numpy as np -from Bio import StreamModeError from Bio import Blast +from Bio import StreamModeError from Bio.SeqRecord import SeqRecord diff --git a/Tests/test_CAPS.py b/Tests/test_CAPS.py index 2ebe34339..5aa4f8d26 100644 --- a/Tests/test_CAPS.py +++ b/Tests/test_CAPS.py @@ -8,10 +8,12 @@ import unittest from Bio import CAPS -from Bio.Restriction import EcoRI, AluI +from Bio.Align import Alignment +from Bio.Align import MultipleSeqAlignment +from Bio.Restriction import AluI +from Bio.Restriction import EcoRI from Bio.Seq import Seq from Bio.SeqRecord import SeqRecord -from Bio.Align import Alignment, MultipleSeqAlignment def createAlignment(sequences): diff --git a/Tests/test_Chi2.py b/Tests/test_Chi2.py index 5c7fe4548..fbd6a8708 100644 --- a/Tests/test_Chi2.py +++ b/Tests/test_Chi2.py @@ -6,6 +6,7 @@ """Tests for Chi2 module.""" import unittest + from Bio.Phylo.PAML import chi2 diff --git a/Tests/test_ClustalOmega_tool.py b/Tests/test_ClustalOmega_tool.py index 7714dd229..2a3245014 100644 --- a/Tests/test_ClustalOmega_tool.py +++ b/Tests/test_ClustalOmega_tool.py @@ -10,14 +10,12 @@ import os import unittest import warnings - from subprocess import getoutput +from Bio import Align +from Bio import BiopythonDeprecationWarning from Bio import MissingExternalDependencyError from Bio import SeqIO -from Bio import Align - -from Bio import BiopythonDeprecationWarning with warnings.catch_warnings(): warnings.simplefilter("ignore", category=BiopythonDeprecationWarning) diff --git a/Tests/test_Clustalw_tool.py b/Tests/test_Clustalw_tool.py index eadf01339..62343183e 100644 --- a/Tests/test_Clustalw_tool.py +++ b/Tests/test_Clustalw_tool.py @@ -9,16 +9,15 @@ # and *.aln where we have not requested an explicit name? """Tests for Clustalw tool.""" -from Bio import MissingExternalDependencyError - -import sys import os +import sys import unittest import warnings -from Bio import SeqIO -from Bio import AlignIO +from Bio import AlignIO from Bio import BiopythonDeprecationWarning +from Bio import MissingExternalDependencyError +from Bio import SeqIO with warnings.catch_warnings(): warnings.simplefilter("ignore", category=BiopythonDeprecationWarning) diff --git a/Tests/test_Cluster.py b/Tests/test_Cluster.py index 409a20250..f4e97d784 100644 --- a/Tests/test_Cluster.py +++ b/Tests/test_Cluster.py @@ -368,9 +368,11 @@ class TestCluster(unittest.TestCase): def test_kcluster_arguments(self): # Test if incorrect arguments are caught by the C code if TestCluster.module == "Bio.Cluster": - from Bio.Cluster._cluster import kcluster, clustercentroids + from Bio.Cluster._cluster import clustercentroids + from Bio.Cluster._cluster import kcluster elif TestCluster.module == "Pycluster": - from Pycluster._cluster import kcluster, clustercentroids + from Pycluster._cluster import clustercentroids + from Pycluster._cluster import kcluster nclusters = 3 weight = np.array([1.0, 1.0, 1.0, 1.0, 1.0]) @@ -541,9 +543,11 @@ class TestCluster(unittest.TestCase): def test_kcluster(self): if TestCluster.module == "Bio.Cluster": - from Bio.Cluster import kcluster, clustercentroids + from Bio.Cluster import clustercentroids + from Bio.Cluster import kcluster elif TestCluster.module == "Pycluster": - from Pycluster import kcluster, clustercentroids + from Pycluster import clustercentroids + from Pycluster import kcluster nclusters = 3 @@ -1169,9 +1173,11 @@ class TestCluster(unittest.TestCase): def test_treecluster_arguments(self): # Test if incorrect arguments are caught by the C code if TestCluster.module == "Bio.Cluster": - from Bio.Cluster._cluster import treecluster, Tree + from Bio.Cluster._cluster import Tree + from Bio.Cluster._cluster import treecluster elif TestCluster.module == "Pycluster": - from Pycluster._cluster import treecluster, Tree + from Pycluster._cluster import Tree + from Pycluster._cluster import treecluster weight = np.array([1.0, 1.0, 1.0, 1.0, 1.0]) data = np.array( [ @@ -1258,9 +1264,11 @@ class TestCluster(unittest.TestCase): def test_tree_arguments(self): # Test if incorrect arguments are caught by the C code if TestCluster.module == "Bio.Cluster": - from Bio.Cluster._cluster import Node, Tree + from Bio.Cluster._cluster import Node + from Bio.Cluster._cluster import Tree elif TestCluster.module == "Pycluster": - from Pycluster._cluster import Node, Tree + from Pycluster._cluster import Node + from Pycluster._cluster import Tree nodes = [Node(1, 2, 0.2), Node(0, -1, 0.5), Node(3, -2, 0.6)] indices = np.zeros(4, np.int32) @@ -1286,9 +1294,11 @@ class TestCluster(unittest.TestCase): def test_tree(self): if TestCluster.module == "Bio.Cluster": - from Bio.Cluster import Node, Tree + from Bio.Cluster import Node + from Bio.Cluster import Tree elif TestCluster.module == "Pycluster": - from Pycluster import Node, Tree + from Pycluster import Node + from Pycluster import Tree node = Node(2, 3) self.assertEqual(node.left, 2) @@ -2718,9 +2728,11 @@ class TestCluster(unittest.TestCase): def test_kmedoids_arguments(self): # Test if incorrect arguments are caught by the C code if TestCluster.module == "Bio.Cluster": - from Bio.Cluster._cluster import distancematrix, kmedoids + from Bio.Cluster._cluster import distancematrix + from Bio.Cluster._cluster import kmedoids elif TestCluster.module == "Pycluster": - from Pycluster._cluster import distancematrix, kmedoids + from Pycluster._cluster import distancematrix + from Pycluster._cluster import kmedoids clusterid = np.zeros(10, np.int32) message = "^failed to parse row 0.$" @@ -2738,9 +2750,11 @@ class TestCluster(unittest.TestCase): def test_distancematrix_kmedoids(self): if TestCluster.module == "Bio.Cluster": - from Bio.Cluster import distancematrix, kmedoids + from Bio.Cluster import distancematrix + from Bio.Cluster import kmedoids elif TestCluster.module == "Pycluster": - from Pycluster import distancematrix, kmedoids + from Pycluster import distancematrix + from Pycluster import kmedoids # transpose=False data = np.array( diff --git a/Tests/test_CodonTable.py b/Tests/test_CodonTable.py index 86140c2e0..69f63f32e 100644 --- a/Tests/test_CodonTable.py +++ b/Tests/test_CodonTable.py @@ -10,22 +10,21 @@ import unittest from Bio.Data import IUPACData -from Bio.Data.CodonTable import ( - generic_by_id, - generic_by_name, - ambiguous_generic_by_id, - ambiguous_generic_by_name, - ambiguous_rna_by_id, - ambiguous_dna_by_id, - ambiguous_dna_by_name, - ambiguous_rna_by_name, - unambiguous_rna_by_id, - unambiguous_rna_by_name, - unambiguous_dna_by_id, - unambiguous_dna_by_name, -) -from Bio.Data.CodonTable import list_ambiguous_codons, list_possible_proteins +from Bio.Data.CodonTable import ambiguous_dna_by_id +from Bio.Data.CodonTable import ambiguous_dna_by_name +from Bio.Data.CodonTable import ambiguous_generic_by_id +from Bio.Data.CodonTable import ambiguous_generic_by_name +from Bio.Data.CodonTable import ambiguous_rna_by_id +from Bio.Data.CodonTable import ambiguous_rna_by_name +from Bio.Data.CodonTable import generic_by_id +from Bio.Data.CodonTable import generic_by_name +from Bio.Data.CodonTable import list_ambiguous_codons +from Bio.Data.CodonTable import list_possible_proteins from Bio.Data.CodonTable import TranslationError +from Bio.Data.CodonTable import unambiguous_dna_by_id +from Bio.Data.CodonTable import unambiguous_dna_by_name +from Bio.Data.CodonTable import unambiguous_rna_by_id +from Bio.Data.CodonTable import unambiguous_rna_by_name exception_list = [] ids = list(unambiguous_dna_by_id) diff --git a/Tests/test_ColorSpiral.py b/Tests/test_ColorSpiral.py index 5ae029f9c..3b3c26170 100644 --- a/Tests/test_ColorSpiral.py +++ b/Tests/test_ColorSpiral.py @@ -7,17 +7,17 @@ # Builtins import colorsys -from math import pi import os import unittest from cmath import rect +from math import pi # Do we have ReportLab? Raise error if not present. from Bio import MissingPythonDependencyError try: - from reportlab.pdfgen.canvas import Canvas from reportlab.lib.pagesizes import A4 + from reportlab.pdfgen.canvas import Canvas except ImportError: raise MissingPythonDependencyError( "Install reportlab if you want to use Bio.Graphics." @@ -25,7 +25,9 @@ except ImportError: # Biopython Bio.Graphics.ColorSpiral -from Bio.Graphics.ColorSpiral import ColorSpiral, get_colors, get_color_dict +from Bio.Graphics.ColorSpiral import ColorSpiral +from Bio.Graphics.ColorSpiral import get_color_dict +from Bio.Graphics.ColorSpiral import get_colors class SpiralTest(unittest.TestCase): diff --git a/Tests/test_Consensus.py b/Tests/test_Consensus.py index 4e805aa02..d28058bf0 100644 --- a/Tests/test_Consensus.py +++ b/Tests/test_Consensus.py @@ -6,19 +6,18 @@ """Unit tests for the Bio.Phylo.Consensus module.""" import os -import unittest import tempfile +import unittest # from io import StringIO from Bio import Align from Bio import AlignIO from Bio import Phylo from Bio.Phylo import BaseTree -from Bio.Phylo.TreeConstruction import DistanceCalculator -from Bio.Phylo.TreeConstruction import DistanceTreeConstructor from Bio.Phylo import Consensus from Bio.Phylo.Consensus import _BitString - +from Bio.Phylo.TreeConstruction import DistanceCalculator +from Bio.Phylo.TreeConstruction import DistanceTreeConstructor temp_dir = tempfile.mkdtemp() diff --git a/Tests/test_Dialign_tool.py b/Tests/test_Dialign_tool.py index 9860ba749..3201e59f2 100644 --- a/Tests/test_Dialign_tool.py +++ b/Tests/test_Dialign_tool.py @@ -5,13 +5,13 @@ # as part of this package. """Unittests for Bio.Align.Applications interface for DIALIGN2-2.""" -import sys import os +import sys import unittest import warnings -from Bio import MissingExternalDependencyError from Bio import BiopythonDeprecationWarning +from Bio import MissingExternalDependencyError with warnings.catch_warnings(): warnings.simplefilter("ignore", category=BiopythonDeprecationWarning) diff --git a/Tests/test_EMBL_unittest.py b/Tests/test_EMBL_unittest.py index ca3449f9f..79499889a 100644 --- a/Tests/test_EMBL_unittest.py +++ b/Tests/test_EMBL_unittest.py @@ -9,8 +9,8 @@ import unittest import warnings from os import path -from Bio import SeqIO from Bio import BiopythonParserWarning +from Bio import SeqIO class EMBLTests(unittest.TestCase): diff --git a/Tests/test_Emboss.py b/Tests/test_Emboss.py index 2e0c4d161..c3f0823f8 100644 --- a/Tests/test_Emboss.py +++ b/Tests/test_Emboss.py @@ -5,26 +5,29 @@ """Runs a few EMBOSS tools to check our wrappers and parsers.""" import os +import subprocess import sys import unittest -import subprocess import warnings from io import StringIO + from Bio import BiopythonDeprecationWarning with warnings.catch_warnings(): warnings.simplefilter("ignore", category=BiopythonDeprecationWarning) - from Bio.Emboss.Applications import WaterCommandline, NeedleCommandline - from Bio.Emboss.Applications import SeqretCommandline, SeqmatchallCommandline from Bio.Application import _escape_filename + from Bio.Emboss.Applications import NeedleCommandline + from Bio.Emboss.Applications import SeqmatchallCommandline + from Bio.Emboss.Applications import SeqretCommandline + from Bio.Emboss.Applications import WaterCommandline -from Bio import SeqIO from Bio import AlignIO from Bio import MissingExternalDependencyError -from Bio.Seq import Seq, translate +from Bio import SeqIO +from Bio.Seq import Seq +from Bio.Seq import translate from Bio.SeqRecord import SeqRecord - # ############################################################### # Try to avoid problems when the OS is in another language diff --git a/Tests/test_EmbossPhylipNew.py b/Tests/test_EmbossPhylipNew.py index fc3dd89f8..e11b81562 100644 --- a/Tests/test_EmbossPhylipNew.py +++ b/Tests/test_EmbossPhylipNew.py @@ -10,19 +10,21 @@ import sys import unittest import warnings -from Bio import MissingExternalDependencyError from Bio import AlignIO -from Bio.Nexus import Trees # One day we should use planned TreeIO module - - from Bio import BiopythonDeprecationWarning +from Bio import MissingExternalDependencyError +from Bio.Nexus import Trees # One day we should use planned TreeIO module with warnings.catch_warnings(): warnings.simplefilter("ignore", category=BiopythonDeprecationWarning) - from Bio.Emboss.Applications import FDNADistCommandline, FNeighborCommandline - from Bio.Emboss.Applications import FSeqBootCommandline, FProtDistCommandline - from Bio.Emboss.Applications import FProtParsCommandline, FConsenseCommandline - from Bio.Emboss.Applications import FTreeDistCommandline, FDNAParsCommandline + from Bio.Emboss.Applications import FConsenseCommandline + from Bio.Emboss.Applications import FDNADistCommandline + from Bio.Emboss.Applications import FDNAParsCommandline + from Bio.Emboss.Applications import FNeighborCommandline + from Bio.Emboss.Applications import FProtDistCommandline + from Bio.Emboss.Applications import FProtParsCommandline + from Bio.Emboss.Applications import FSeqBootCommandline + from Bio.Emboss.Applications import FTreeDistCommandline # Try to avoid problems when the OS is in another language os.environ["LANG"] = "C" diff --git a/Tests/test_EmbossPrimer.py b/Tests/test_EmbossPrimer.py index 6ed9b2f76..cbce7319f 100644 --- a/Tests/test_EmbossPrimer.py +++ b/Tests/test_EmbossPrimer.py @@ -11,8 +11,10 @@ import os import unittest +from Bio.Emboss import Primer3 + # local stuff -from Bio.Emboss import PrimerSearch, Primer3 +from Bio.Emboss import PrimerSearch class Primer3ParseTest(unittest.TestCase): diff --git a/Tests/test_Entrez.py b/Tests/test_Entrez.py index 3f023f157..fd66a19ef 100644 --- a/Tests/test_Entrez.py +++ b/Tests/test_Entrez.py @@ -10,16 +10,16 @@ """ import unittest -from unittest import mock import warnings from http.client import HTTPMessage -from urllib.parse import urlparse, parse_qs +from unittest import mock +from urllib.parse import parse_qs +from urllib.parse import urlparse from urllib.request import Request from Bio import Entrez from Bio.Entrez import Parser - # This lets us set the email address to be sent to NCBI Entrez: Entrez.email = "biopython@biopython.org" Entrez.api_key = "5cfd4026f9df285d6cfc723c662d74bcbe09" @@ -426,9 +426,9 @@ class CustomDirectoryTest(unittest.TestCase): """ def test_custom_directory(self): - import tempfile import os import shutil + import tempfile handler = Parser.DataHandler(validate=False, escape=False, ignore_errors=False) diff --git a/Tests/test_Entrez_online.py b/Tests/test_Entrez_online.py index fc000fb02..4159ce73c 100644 --- a/Tests/test_Entrez_online.py +++ b/Tests/test_Entrez_online.py @@ -12,17 +12,17 @@ scope of this file as they are already covered in test_Entrez.py. """ -from Bio import Entrez -from Bio import Medline -from Bio import SeqIO -from Bio.SeqRecord import SeqRecord - import doctest import sys import unittest import requires_internet +from Bio import Entrez +from Bio import Medline +from Bio import SeqIO +from Bio.SeqRecord import SeqRecord + requires_internet.check() diff --git a/Tests/test_Entrez_parser.py b/Tests/test_Entrez_parser.py index a5a847016..e4cc84db1 100644 --- a/Tests/test_Entrez_parser.py +++ b/Tests/test_Entrez_parser.py @@ -5,14 +5,13 @@ # as part of this package. """Testing code for Bio.Entrez parsers.""" -import unittest import os import pickle - +import unittest from io import BytesIO -from Bio import StreamModeError from Bio import Entrez +from Bio import StreamModeError class GeneralTests(unittest.TestCase): @@ -12333,9 +12332,10 @@ We designed and generated pulmonary imaging biomarker pipelines to facilitate hi def test_truncated_xml(self): """Test error handling for a truncated XML declaration.""" - from Bio.Entrez.Parser import CorruptedXMLError from io import BytesIO + from Bio.Entrez.Parser import CorruptedXMLError + truncated_xml = b""" diff --git a/Tests/test_Enzyme.py b/Tests/test_Enzyme.py index 9d444b10f..79d49e0c0 100644 --- a/Tests/test_Enzyme.py +++ b/Tests/test_Enzyme.py @@ -8,9 +8,9 @@ import os import unittest +from io import StringIO from Bio.ExPASy import Enzyme -from io import StringIO class TestEnzyme(unittest.TestCase): diff --git a/Tests/test_ExPASy.py b/Tests/test_ExPASy.py index 4f692983f..a5c8d3920 100644 --- a/Tests/test_ExPASy.py +++ b/Tests/test_ExPASy.py @@ -7,6 +7,8 @@ import unittest +import requires_internet + # We want to test these: from Bio import ExPASy @@ -14,8 +16,6 @@ from Bio import ExPASy from Bio.ExPASy import Prodoc from Bio.ExPASy import Prosite -import requires_internet - requires_internet.check() diff --git a/Tests/test_Fasttree_tool.py b/Tests/test_Fasttree_tool.py index b9ae54b69..2eccaa36f 100644 --- a/Tests/test_Fasttree_tool.py +++ b/Tests/test_Fasttree_tool.py @@ -8,26 +8,23 @@ """Tests for Fasttree tool.""" -from Bio import MissingExternalDependencyError - -import sys -import os import itertools +import os +import sys import unittest import warnings - - from io import StringIO -from Bio import SeqIO -from Bio import Phylo from Bio import BiopythonDeprecationWarning +from Bio import MissingExternalDependencyError +from Bio import Phylo +from Bio import SeqIO with warnings.catch_warnings(): warnings.simplefilter("ignore", category=BiopythonDeprecationWarning) - from Bio.Phylo.Applications import FastTreeCommandline - from Bio.Phylo.Applications import _Fasttree from Bio.Application import ApplicationError + from Bio.Phylo.Applications import _Fasttree + from Bio.Phylo.Applications import FastTreeCommandline ################################################################# diff --git a/Tests/test_GenBank.py b/Tests/test_GenBank.py index 1a214f160..e28ab3095 100644 --- a/Tests/test_GenBank.py +++ b/Tests/test_GenBank.py @@ -14,18 +14,17 @@ import sys import unittest import warnings from datetime import datetime - from io import StringIO -from Bio import BiopythonWarning from Bio import BiopythonParserWarning - -from Bio import SeqIO -from Bio.SeqRecord import SeqRecord -from Bio.Seq import Seq, UndefinedSequenceError +from Bio import BiopythonWarning # GenBank stuff to test: from Bio import GenBank +from Bio import SeqIO +from Bio.Seq import Seq +from Bio.Seq import UndefinedSequenceError +from Bio.SeqRecord import SeqRecord class TestBasics(unittest.TestCase): diff --git a/Tests/test_GenomeDiagram.py b/Tests/test_GenomeDiagram.py index ee10727c3..d1edbd392 100644 --- a/Tests/test_GenomeDiagram.py +++ b/Tests/test_GenomeDiagram.py @@ -3,19 +3,18 @@ # as part of this package. """Tests for GenomeDiagram general functionality.""" +import math import os import unittest -import math - # Do we have ReportLab? Raise error if not present. from Bio import MissingPythonDependencyError try: from reportlab.lib import colors + from reportlab.lib.units import cm from reportlab.pdfbase import pdfmetrics from reportlab.pdfbase.ttfonts import TTFont - from reportlab.lib.units import cm except ImportError: raise MissingPythonDependencyError( "Install reportlab if you want to use Bio.Graphics." @@ -34,16 +33,19 @@ except ImportError: # bitmap format is attempted. renderPM = None -from Bio import SeqIO -from Bio.SeqFeature import SeqFeature, SimpleLocation - -from Bio.Graphics.GenomeDiagram import FeatureSet, GraphSet, Track, Diagram -from Bio.Graphics.GenomeDiagram import CrossLink -from Bio.Graphics.GenomeDiagram._Graph import GraphData -from Bio.Graphics.GenomeDiagram._Colors import ColorTranslator - from reportlab import rl_config +from Bio import SeqIO +from Bio.Graphics.GenomeDiagram import CrossLink +from Bio.Graphics.GenomeDiagram import Diagram +from Bio.Graphics.GenomeDiagram import FeatureSet +from Bio.Graphics.GenomeDiagram import GraphSet +from Bio.Graphics.GenomeDiagram import Track +from Bio.Graphics.GenomeDiagram._Colors import ColorTranslator +from Bio.Graphics.GenomeDiagram._Graph import GraphData +from Bio.SeqFeature import SeqFeature +from Bio.SeqFeature import SimpleLocation + rl_config.invariant = True diff --git a/Tests/test_GraphicsChromosome.py b/Tests/test_GraphicsChromosome.py index eca4ac53b..7a32d4c97 100644 --- a/Tests/test_GraphicsChromosome.py +++ b/Tests/test_GraphicsChromosome.py @@ -12,14 +12,13 @@ Graphics.DisplayRepresentation classes. # standard library import os -import sys import random -from io import StringIO +import sys import unittest - import warnings -from Bio import BiopythonWarning +from io import StringIO +from Bio import BiopythonWarning from Bio import MissingPythonDependencyError try: @@ -31,10 +30,10 @@ except ImportError: ) from None # local stuff -from Bio.SeqFeature import SeqFeature, SimpleLocation from Bio.Graphics import BasicChromosome from Bio.Graphics.DisplayRepresentation import ChromosomeCounts - +from Bio.SeqFeature import SeqFeature +from Bio.SeqFeature import SimpleLocation # hold the chromosome info for testing # the info is structured as (label, color, scale) diff --git a/Tests/test_HMMGeneral.py b/Tests/test_HMMGeneral.py index f9d82633d..707c40967 100644 --- a/Tests/test_HMMGeneral.py +++ b/Tests/test_HMMGeneral.py @@ -11,20 +11,20 @@ Also tests Training methods. """ # standard modules -import unittest import math +import unittest import warnings +from Bio import BiopythonDeprecationWarning + # biopython from Bio.Seq import Seq -from Bio import BiopythonDeprecationWarning - with warnings.catch_warnings(): warnings.simplefilter("ignore", category=BiopythonDeprecationWarning) # stuff we are testing - from Bio.HMM import MarkovModel from Bio.HMM import DynamicProgramming + from Bio.HMM import MarkovModel from Bio.HMM import Trainer diff --git a/Tests/test_KEGG.py b/Tests/test_KEGG.py index 2e235113b..0fd5ee326 100644 --- a/Tests/test_KEGG.py +++ b/Tests/test_KEGG.py @@ -8,8 +8,8 @@ import unittest -from Bio.KEGG import Enzyme from Bio.KEGG import Compound +from Bio.KEGG import Enzyme from Bio.KEGG import Map from Bio.Pathway import System diff --git a/Tests/test_KEGG_online.py b/Tests/test_KEGG_online.py index b50266d5f..210b3167f 100644 --- a/Tests/test_KEGG_online.py +++ b/Tests/test_KEGG_online.py @@ -11,13 +11,16 @@ import io import unittest -from Bio.KEGG.KGML import KGML_parser -from Bio.KEGG.REST import kegg_conv, kegg_find, kegg_get -from Bio.KEGG.REST import kegg_info, kegg_link, kegg_list +import requires_internet from Bio import SeqIO - -import requires_internet +from Bio.KEGG.KGML import KGML_parser +from Bio.KEGG.REST import kegg_conv +from Bio.KEGG.REST import kegg_find +from Bio.KEGG.REST import kegg_get +from Bio.KEGG.REST import kegg_info +from Bio.KEGG.REST import kegg_link +from Bio.KEGG.REST import kegg_list requires_internet.check() diff --git a/Tests/test_KGML_graphics.py b/Tests/test_KGML_graphics.py index 8a9f97049..17f20ea2e 100644 --- a/Tests/test_KGML_graphics.py +++ b/Tests/test_KGML_graphics.py @@ -9,17 +9,17 @@ import os import unittest -# Biopython -from Bio.Graphics.ColorSpiral import ColorSpiral - # Do we have ReportLab? Raise error if not present. from Bio import MissingExternalDependencyError +# Biopython +from Bio.Graphics.ColorSpiral import ColorSpiral + try: # Not actually using these imports directly: - from reportlab.pdfgen.canvas import Canvas - from reportlab.lib.pagesizes import A4 from reportlab.lib.colors import HexColor + from reportlab.lib.pagesizes import A4 + from reportlab.pdfgen.canvas import Canvas except ImportError: raise MissingExternalDependencyError( "Install reportlab if you want to use Bio.Graphics." @@ -46,8 +46,8 @@ except ImportError: # Biopython Bio.KEGG.KGML -from Bio.KEGG.KGML.KGML_parser import read from Bio.Graphics.KGML_vis import KGMLCanvas +from Bio.KEGG.KGML.KGML_parser import read # The PathwayData class is also imported by the online test module in diff --git a/Tests/test_KGML_graphics_online.py b/Tests/test_KGML_graphics_online.py index 189f9c944..862a915b9 100644 --- a/Tests/test_KGML_graphics_online.py +++ b/Tests/test_KGML_graphics_online.py @@ -11,13 +11,12 @@ import os import unittest # Biopython - # Do we have ReportLab? Raise error if not present. from Bio import MissingExternalDependencyError try: - from reportlab.pdfgen.canvas import Canvas from reportlab.lib.pagesizes import A4 + from reportlab.pdfgen.canvas import Canvas except ImportError: raise MissingExternalDependencyError( "Install reportlab if you want to use Bio.Graphics." @@ -34,13 +33,13 @@ except ImportError: # Biopython Bio.KEGG.KGML -from Bio.KEGG.KGML.KGML_parser import read -from Bio.Graphics.KGML_vis import KGMLCanvas +import requires_internet # test_KGML_graphics module from test_KGML_graphics import PathwayData -import requires_internet +from Bio.Graphics.KGML_vis import KGMLCanvas +from Bio.KEGG.KGML.KGML_parser import read requires_internet.check() diff --git a/Tests/test_KGML_nographics.py b/Tests/test_KGML_nographics.py index 38eaffc23..074b6ae1f 100644 --- a/Tests/test_KGML_nographics.py +++ b/Tests/test_KGML_nographics.py @@ -7,8 +7,8 @@ # Builtins import os -import unittest import tempfile +import unittest # Biopython Bio.KEGG.KGML (?) from Bio.KEGG.KGML.KGML_parser import read diff --git a/Tests/test_KeyWList.py b/Tests/test_KeyWList.py index 05b33e36c..6577715b6 100644 --- a/Tests/test_KeyWList.py +++ b/Tests/test_KeyWList.py @@ -4,8 +4,9 @@ # as part of this package. """Tests for KeyWList.""" -import unittest import os.path +import unittest + from Bio.SwissProt import KeyWList diff --git a/Tests/test_MSAProbs_tool.py b/Tests/test_MSAProbs_tool.py index f76f3c2e0..35ec691e8 100644 --- a/Tests/test_MSAProbs_tool.py +++ b/Tests/test_MSAProbs_tool.py @@ -12,8 +12,8 @@ import unittest import warnings from subprocess import getoutput -from Bio import MissingExternalDependencyError from Bio import BiopythonDeprecationWarning +from Bio import MissingExternalDependencyError from Bio import SeqIO with warnings.catch_warnings(): diff --git a/Tests/test_MafIO_index.py b/Tests/test_MafIO_index.py index 78ed64144..b200dfec2 100644 --- a/Tests/test_MafIO_index.py +++ b/Tests/test_MafIO_index.py @@ -12,18 +12,18 @@ except ImportError: sqlite3 = None import os -import unittest -import tempfile import shutil import sys - -from Bio.AlignIO.MafIO import MafIndex -from Bio import SeqIO -from Bio.Seq import Seq -from Bio.SeqRecord import SeqRecord +import tempfile +import unittest from seq_tests_common import SeqRecordTestBaseClass +from Bio import SeqIO +from Bio.AlignIO.MafIO import MafIndex +from Bio.Seq import Seq +from Bio.SeqRecord import SeqRecord + class StaticMethodTest(unittest.TestCase): """Test static UCSC binning-related functions.""" diff --git a/Tests/test_Mafft_tool.py b/Tests/test_Mafft_tool.py index e37c3a5ee..94e143e86 100644 --- a/Tests/test_Mafft_tool.py +++ b/Tests/test_Mafft_tool.py @@ -3,13 +3,14 @@ # as part of this package. """Unittests for Bio.Align.Applications interface for MAFFT.""" -import sys import os -import unittest import subprocess +import sys +import unittest import warnings -from Bio import MissingExternalDependencyError + from Bio import BiopythonDeprecationWarning +from Bio import MissingExternalDependencyError with warnings.catch_warnings(): warnings.simplefilter("ignore", category=BiopythonDeprecationWarning) diff --git a/Tests/test_MarkovModel.py b/Tests/test_MarkovModel.py index d02c14f4f..a57629e81 100644 --- a/Tests/test_MarkovModel.py +++ b/Tests/test_MarkovModel.py @@ -11,17 +11,16 @@ """Tests for MarkovModel module.""" -import warnings import unittest - +import warnings from io import StringIO try: - from numpy import array - from numpy import random # missing in PyPy's micronumpy - from numpy import array_equal from numpy import around + from numpy import array + from numpy import array_equal from numpy import log + from numpy import random # missing in PyPy's micronumpy except ImportError: from Bio import MissingPythonDependencyError diff --git a/Tests/test_Muscle_tool.py b/Tests/test_Muscle_tool.py index 7d9349bee..90c587e15 100644 --- a/Tests/test_Muscle_tool.py +++ b/Tests/test_Muscle_tool.py @@ -6,21 +6,20 @@ """Tests for Muscle tool.""" import os -import sys import subprocess +import sys import unittest import warnings +from Bio import AlignIO from Bio import BiopythonDeprecationWarning from Bio import MissingExternalDependencyError from Bio import SeqIO -from Bio import AlignIO - with warnings.catch_warnings(): warnings.simplefilter("ignore", category=BiopythonDeprecationWarning) - from Bio.Application import _escape_filename from Bio.Align.Applications import MuscleCommandline + from Bio.Application import _escape_filename ################################################################# diff --git a/Tests/test_NCBIXML.py b/Tests/test_NCBIXML.py index a81cecc06..4982e8747 100644 --- a/Tests/test_NCBIXML.py +++ b/Tests/test_NCBIXML.py @@ -6,6 +6,7 @@ import os import unittest + from Bio.Blast import NCBIXML diff --git a/Tests/test_NCBI_BLAST_tools.py b/Tests/test_NCBI_BLAST_tools.py index cc0204bb5..d999466b0 100644 --- a/Tests/test_NCBI_BLAST_tools.py +++ b/Tests/test_NCBI_BLAST_tools.py @@ -10,14 +10,14 @@ import os import os.path -import sys -import subprocess -import unittest import re +import subprocess +import sys +import unittest import warnings -from Bio import MissingExternalDependencyError from Bio import BiopythonDeprecationWarning +from Bio import MissingExternalDependencyError with warnings.catch_warnings(): warnings.simplefilter("ignore", category=BiopythonDeprecationWarning) diff --git a/Tests/test_NCBI_qblast.py b/Tests/test_NCBI_qblast.py index 475dba85d..54edb0c26 100644 --- a/Tests/test_NCBI_qblast.py +++ b/Tests/test_NCBI_qblast.py @@ -26,10 +26,11 @@ correct position. """ import unittest -from unittest import mock - -from urllib.error import HTTPError from io import BytesIO +from unittest import mock +from urllib.error import HTTPError + +import requires_internet from Bio import MissingExternalDependencyError @@ -37,9 +38,6 @@ from Bio import MissingExternalDependencyError from Bio.Blast import NCBIWWW from Bio.Blast import NCBIXML -import requires_internet - - NCBIWWW.email = "biopython@biopython.org" diff --git a/Tests/test_NMR.py b/Tests/test_NMR.py index 40f9782d1..5c59f23d0 100644 --- a/Tests/test_NMR.py +++ b/Tests/test_NMR.py @@ -6,12 +6,12 @@ # package. """Unit tests for the Bio.NMR Module.""" -import unittest -import tempfile import os +import tempfile +import unittest -from Bio.NMR import xpktools from Bio.NMR import NOEtools +from Bio.NMR import xpktools class NmrTests(unittest.TestCase): diff --git a/Tests/test_Nexus.py b/Tests/test_Nexus.py index e577f262b..b7106d7ca 100644 --- a/Tests/test_Nexus.py +++ b/Tests/test_Nexus.py @@ -12,17 +12,22 @@ """Tests for Nexus module.""" import os.path -import unittest -import tempfile import sys +import tempfile +import unittest from io import StringIO -from Bio.Align import Alignment, MultipleSeqAlignment -from Bio.Align.nexus import AlignmentIterator, AlignmentWriter -from Bio.AlignIO.NexusIO import NexusIterator, NexusWriter -from Bio.SeqRecord import SeqRecord -from Bio.Nexus import Nexus, Trees -from Bio.Seq import Seq + from Bio import SeqIO +from Bio.Align import Alignment +from Bio.Align import MultipleSeqAlignment +from Bio.Align.nexus import AlignmentIterator +from Bio.Align.nexus import AlignmentWriter +from Bio.AlignIO.NexusIO import NexusIterator +from Bio.AlignIO.NexusIO import NexusWriter +from Bio.Nexus import Nexus +from Bio.Nexus import Trees +from Bio.Seq import Seq +from Bio.SeqRecord import SeqRecord class OldSelfTests(unittest.TestCase): diff --git a/Tests/test_PAML_baseml.py b/Tests/test_PAML_baseml.py index c878d61c0..d2bc31e25 100644 --- a/Tests/test_PAML_baseml.py +++ b/Tests/test_PAML_baseml.py @@ -5,9 +5,10 @@ """Tests for PAML baseml module.""" -import unittest import os import os.path +import unittest + from Bio.Phylo.PAML import baseml from Bio.Phylo.PAML._paml import PamlError diff --git a/Tests/test_PAML_codeml.py b/Tests/test_PAML_codeml.py index bbfc89b2f..7a9e7b359 100644 --- a/Tests/test_PAML_codeml.py +++ b/Tests/test_PAML_codeml.py @@ -5,15 +5,14 @@ """Tests for PAML codeml module.""" -import unittest +import itertools import os import os.path -import itertools +import unittest from Bio.Phylo.PAML import codeml from Bio.Phylo.PAML._paml import PamlError - # Some constants to assist with testing: # This is the number of parameters that should be parsed for each # NSsites site class model diff --git a/Tests/test_PAML_tools.py b/Tests/test_PAML_tools.py index 75c982931..80a0404b0 100644 --- a/Tests/test_PAML_tools.py +++ b/Tests/test_PAML_tools.py @@ -5,11 +5,14 @@ """Tests for PAML tools module.""" -import unittest import os import sys -from Bio.Phylo.PAML import codeml, baseml, yn00 +import unittest + from Bio import MissingExternalDependencyError +from Bio.Phylo.PAML import baseml +from Bio.Phylo.PAML import codeml +from Bio.Phylo.PAML import yn00 def is_exe(filepath): diff --git a/Tests/test_PAML_yn00.py b/Tests/test_PAML_yn00.py index dc29e801f..ca0363a3c 100644 --- a/Tests/test_PAML_yn00.py +++ b/Tests/test_PAML_yn00.py @@ -5,11 +5,12 @@ """Tests for PAML yn00 module.""" -import unittest +import glob import os import os.path +import unittest + from Bio.Phylo.PAML import yn00 -import glob class ModTest(unittest.TestCase): diff --git a/Tests/test_PDB_DSSP.py b/Tests/test_PDB_DSSP.py index 547e16c59..021bdf068 100644 --- a/Tests/test_PDB_DSSP.py +++ b/Tests/test_PDB_DSSP.py @@ -30,9 +30,10 @@ except ImportError: ) from None -from Bio.PDB import PDBParser, MMCIFParser -from Bio.PDB import DSSP, make_dssp_dict - +from Bio.PDB import DSSP +from Bio.PDB import make_dssp_dict +from Bio.PDB import MMCIFParser +from Bio.PDB import PDBParser VERSION_2_2_0 = (2, 2, 0) diff --git a/Tests/test_PDB_Dice.py b/Tests/test_PDB_Dice.py index e6120ccc9..591f6ad09 100644 --- a/Tests/test_PDB_Dice.py +++ b/Tests/test_PDB_Dice.py @@ -5,9 +5,9 @@ # package. """Unit tests for the Bio.PDB.Dice Module.""" -import unittest -import tempfile import os +import tempfile +import unittest from Bio.PDB import Dice from Bio.PDB import PDBParser diff --git a/Tests/test_PDB_Disordered.py b/Tests/test_PDB_Disordered.py index e5795670d..09d845aba 100644 --- a/Tests/test_PDB_Disordered.py +++ b/Tests/test_PDB_Disordered.py @@ -15,7 +15,8 @@ import warnings import numpy as np -from Bio.PDB import PDBParser, PDBIO +from Bio.PDB import PDBIO +from Bio.PDB import PDBParser from Bio.PDB.Atom import DisorderedAtom diff --git a/Tests/test_PDB_Exposure.py b/Tests/test_PDB_Exposure.py index 20554327d..e37aa8d31 100644 --- a/Tests/test_PDB_Exposure.py +++ b/Tests/test_PDB_Exposure.py @@ -26,8 +26,10 @@ except ImportError: "Install NumPy if you want to use Bio.PDB." ) from None +from Bio.PDB import ExposureCN +from Bio.PDB import HSExposureCA +from Bio.PDB import HSExposureCB from Bio.PDB import PDBParser -from Bio.PDB import HSExposureCA, HSExposureCB, ExposureCN from Bio.PDB.PDBExceptions import PDBConstructionWarning diff --git a/Tests/test_PDB_FragmentMapper.py b/Tests/test_PDB_FragmentMapper.py index 30a4823d7..cdca87a73 100644 --- a/Tests/test_PDB_FragmentMapper.py +++ b/Tests/test_PDB_FragmentMapper.py @@ -19,8 +19,8 @@ except ImportError: "Install NumPy if you want to use Bio.PDB." ) from None -from Bio.PDB import PDBParser from Bio.PDB import FragmentMapper +from Bio.PDB import PDBParser from Bio.PDB import Selection diff --git a/Tests/test_PDB_KDTree.py b/Tests/test_PDB_KDTree.py index 3aac3e720..d00f920bd 100644 --- a/Tests/test_PDB_KDTree.py +++ b/Tests/test_PDB_KDTree.py @@ -14,7 +14,10 @@ import unittest try: - from numpy import array, dot, sqrt, argsort + from numpy import argsort + from numpy import array + from numpy import dot + from numpy import sqrt from numpy.random import random except ImportError: from Bio import MissingExternalDependencyError diff --git a/Tests/test_PDB_MMCIF2Dict.py b/Tests/test_PDB_MMCIF2Dict.py index 78fac0543..24f4980f5 100644 --- a/Tests/test_PDB_MMCIF2Dict.py +++ b/Tests/test_PDB_MMCIF2Dict.py @@ -21,11 +21,11 @@ except ImportError: "Install NumPy if you want to use Bio.PDB." ) from None -from Bio.PDB.MMCIF2Dict import MMCIF2Dict - import io import textwrap +from Bio.PDB.MMCIF2Dict import MMCIF2Dict + class MMCIF2dictTests(unittest.TestCase): def test_MMCIF2dict(self): diff --git a/Tests/test_PDB_MMCIFIO.py b/Tests/test_PDB_MMCIFIO.py index b0faa361f..caf381a1d 100644 --- a/Tests/test_PDB_MMCIFIO.py +++ b/Tests/test_PDB_MMCIFIO.py @@ -18,8 +18,12 @@ import tempfile import unittest import warnings -from Bio.PDB import MMCIFParser, MMCIFIO, PDBParser, Select -from Bio.PDB import Atom, Residue +from Bio.PDB import Atom +from Bio.PDB import MMCIFIO +from Bio.PDB import MMCIFParser +from Bio.PDB import PDBParser +from Bio.PDB import Residue +from Bio.PDB import Select from Bio.PDB.MMCIF2Dict import MMCIF2Dict from Bio.PDB.PDBExceptions import PDBConstructionWarning diff --git a/Tests/test_PDB_MMCIFParser.py b/Tests/test_PDB_MMCIFParser.py index a1d5f6ee4..6031c209e 100644 --- a/Tests/test_PDB_MMCIFParser.py +++ b/Tests/test_PDB_MMCIFParser.py @@ -19,7 +19,8 @@ try: from numpy import dot # Missing on old PyPy's micronumpy del dot - from numpy.linalg import svd, det # Missing in PyPy 2.0 numpypy + from numpy.linalg import det # Missing in PyPy 2.0 numpypy + from numpy.linalg import svd # Missing in PyPy 2.0 numpypy except ImportError: from Bio import MissingPythonDependencyError @@ -28,15 +29,15 @@ except ImportError: ) from None +from Bio.PDB import CaPPBuilder +from Bio.PDB import PDBIO +from Bio.PDB import PDBParser +from Bio.PDB import PPBuilder +from Bio.PDB.MMCIFParser import FastMMCIFParser +from Bio.PDB.MMCIFParser import MMCIFParser +from Bio.PDB.PDBExceptions import PDBConstructionWarning +from Bio.PDB.PDBExceptions import PDBIOException from Bio.Seq import Seq -from Bio.PDB.PDBExceptions import ( - PDBConstructionWarning, - PDBIOException, -) - -from Bio.PDB import PPBuilder, CaPPBuilder -from Bio.PDB.MMCIFParser import MMCIFParser, FastMMCIFParser -from Bio.PDB import PDBParser, PDBIO class ParseReal(unittest.TestCase): diff --git a/Tests/test_PDB_NACCESS.py b/Tests/test_PDB_NACCESS.py index ca8344818..7f875a189 100644 --- a/Tests/test_PDB_NACCESS.py +++ b/Tests/test_PDB_NACCESS.py @@ -30,7 +30,9 @@ except ImportError: from Bio.PDB import PDBParser -from Bio.PDB.NACCESS import NACCESS, process_asa_data, process_rsa_data +from Bio.PDB.NACCESS import NACCESS +from Bio.PDB.NACCESS import process_asa_data +from Bio.PDB.NACCESS import process_rsa_data class NACCESS_test(unittest.TestCase): diff --git a/Tests/test_PDB_PDBIO.py b/Tests/test_PDB_PDBIO.py index 0cad8ed49..33c4c80bc 100644 --- a/Tests/test_PDB_PDBIO.py +++ b/Tests/test_PDB_PDBIO.py @@ -19,12 +19,13 @@ import unittest import warnings from Bio import BiopythonWarning -from Bio.PDB import PDBParser, PDBIO, Select -from Bio.PDB import Atom, Residue -from Bio.PDB.PDBExceptions import ( - PDBConstructionWarning, - PDBIOException, -) +from Bio.PDB import Atom +from Bio.PDB import PDBIO +from Bio.PDB import PDBParser +from Bio.PDB import Residue +from Bio.PDB import Select +from Bio.PDB.PDBExceptions import PDBConstructionWarning +from Bio.PDB.PDBExceptions import PDBIOException class WriteTest(unittest.TestCase): diff --git a/Tests/test_PDB_PDBList.py b/Tests/test_PDB_PDBList.py index eaf2c52ac..4edc702f8 100644 --- a/Tests/test_PDB_PDBList.py +++ b/Tests/test_PDB_PDBList.py @@ -12,11 +12,11 @@ import shutil import tempfile import unittest +import requires_internet + # We want to test this module: from Bio.PDB.PDBList import PDBList -import requires_internet - requires_internet.check() diff --git a/Tests/test_PDB_PDBParser.py b/Tests/test_PDB_PDBParser.py index 6a15ee8be..c88c8d81d 100644 --- a/Tests/test_PDB_PDBParser.py +++ b/Tests/test_PDB_PDBParser.py @@ -13,9 +13,9 @@ """Unit tests for the Bio.PDB PDBParser module.""" -from io import StringIO import unittest import warnings +from io import StringIO try: import numpy @@ -27,7 +27,8 @@ except ImportError: ) from None from Bio.PDB import PDBParser -from Bio.PDB.PDBExceptions import PDBConstructionException, PDBConstructionWarning +from Bio.PDB.PDBExceptions import PDBConstructionException +from Bio.PDB.PDBExceptions import PDBConstructionWarning class FlawedPDB_tests(unittest.TestCase): diff --git a/Tests/test_PDB_PSEA.py b/Tests/test_PDB_PSEA.py index 209e8d150..3ae183de9 100644 --- a/Tests/test_PDB_PSEA.py +++ b/Tests/test_PDB_PSEA.py @@ -7,14 +7,16 @@ import io import os +import sys import unittest from subprocess import getoutput -import sys from Bio import MissingExternalDependencyError from Bio.PDB import PDBParser -from Bio.PDB.PSEA import run_psea, psea, psea2HEC, PSEA - +from Bio.PDB.PSEA import PSEA +from Bio.PDB.PSEA import psea +from Bio.PDB.PSEA import psea2HEC +from Bio.PDB.PSEA import run_psea os.environ["LANG"] = "C" diff --git a/Tests/test_PDB_Polypeptide.py b/Tests/test_PDB_Polypeptide.py index ea7133fba..d5f8761b6 100644 --- a/Tests/test_PDB_Polypeptide.py +++ b/Tests/test_PDB_Polypeptide.py @@ -13,7 +13,9 @@ import unittest -from Bio.PDB import PDBParser, PPBuilder, CaPPBuilder +from Bio.PDB import CaPPBuilder +from Bio.PDB import PDBParser +from Bio.PDB import PPBuilder from Bio.Seq import Seq diff --git a/Tests/test_PDB_QCPSuperimposer.py b/Tests/test_PDB_QCPSuperimposer.py index dd75c3343..374798b38 100644 --- a/Tests/test_PDB_QCPSuperimposer.py +++ b/Tests/test_PDB_QCPSuperimposer.py @@ -17,7 +17,8 @@ except ImportError: ) from None -from Bio.PDB import PDBParser, Selection +from Bio.PDB import PDBParser +from Bio.PDB import Selection from Bio.PDB.qcprot import QCPSuperimposer from Bio.SVDSuperimposer import SVDSuperimposer diff --git a/Tests/test_PDB_ResidueDepth.py b/Tests/test_PDB_ResidueDepth.py index b47974396..685390374 100644 --- a/Tests/test_PDB_ResidueDepth.py +++ b/Tests/test_PDB_ResidueDepth.py @@ -15,7 +15,9 @@ import subprocess import unittest import warnings -from Bio.PDB import MMCIFParser, PDBParser, ResidueDepth +from Bio.PDB import MMCIFParser +from Bio.PDB import PDBParser +from Bio.PDB import ResidueDepth from Bio.PDB.PDBExceptions import PDBConstructionWarning from Bio.PDB.ResidueDepth import _get_atom_radius diff --git a/Tests/test_PDB_SMCRA.py b/Tests/test_PDB_SMCRA.py index 49921b6e6..2d176fdf3 100644 --- a/Tests/test_PDB_SMCRA.py +++ b/Tests/test_PDB_SMCRA.py @@ -13,16 +13,17 @@ """Generic unit tests for the SMCRA classes of the Bio.PDB module.""" -from copy import deepcopy import unittest import warnings +from copy import deepcopy try: import numpy from numpy import dot # Missing on old PyPy's micronumpy del dot - from numpy.linalg import svd, det # Missing in PyPy 2.0 numpypy + from numpy.linalg import det # Missing in PyPy 2.0 numpypy + from numpy.linalg import svd # Missing in PyPy 2.0 numpypy del svd, det except ImportError: @@ -33,10 +34,11 @@ except ImportError: ) from None from Bio import BiopythonWarning -from Bio.PDB import PDBParser -from Bio.PDB.PDBExceptions import PDBConstructionWarning -from Bio.PDB import rotmat, Vector from Bio.PDB import Atom +from Bio.PDB import PDBParser +from Bio.PDB import rotmat +from Bio.PDB import Vector +from Bio.PDB.PDBExceptions import PDBConstructionWarning class Atom_Element(unittest.TestCase): diff --git a/Tests/test_PDB_Selection.py b/Tests/test_PDB_Selection.py index 6075c2a6f..89b59404d 100644 --- a/Tests/test_PDB_Selection.py +++ b/Tests/test_PDB_Selection.py @@ -8,8 +8,8 @@ import unittest from Bio.PDB import PDBParser from Bio.PDB.PDBExceptions import PDBException -from Bio.PDB.Selection import unfold_entities from Bio.PDB.Residue import Residue +from Bio.PDB.Selection import unfold_entities def res_full_id(res: Residue): diff --git a/Tests/test_PDB_StructureAlignment.py b/Tests/test_PDB_StructureAlignment.py index 5cabd84a1..4ce2b3cf0 100644 --- a/Tests/test_PDB_StructureAlignment.py +++ b/Tests/test_PDB_StructureAlignment.py @@ -11,10 +11,10 @@ import unittest -from Bio.PDB import StructureAlignment -from Bio.PDB import PDBParser from Bio import Align from Bio import AlignIO +from Bio.PDB import PDBParser +from Bio.PDB import StructureAlignment class StructureAlignTests(unittest.TestCase): diff --git a/Tests/test_PDB_Superimposer.py b/Tests/test_PDB_Superimposer.py index 8f510c125..76af77a5e 100644 --- a/Tests/test_PDB_Superimposer.py +++ b/Tests/test_PDB_Superimposer.py @@ -20,8 +20,9 @@ except ImportError: "Install NumPy if you want to use Bio.PDB." ) from None -from Bio.PDB import Superimposer, Selection from Bio.PDB import PDBParser +from Bio.PDB import Selection +from Bio.PDB import Superimposer class SuperimposerTests(unittest.TestCase): diff --git a/Tests/test_PDB_alphafold_db.py b/Tests/test_PDB_alphafold_db.py index a31396660..fe1557826 100644 --- a/Tests/test_PDB_alphafold_db.py +++ b/Tests/test_PDB_alphafold_db.py @@ -1,8 +1,9 @@ """Tests for the alphafold_db module.""" -import requires_internet import unittest +import requires_internet + from Bio.PDB import alphafold_db requires_internet.check() diff --git a/Tests/test_PDB_internal_coords.py b/Tests/test_PDB_internal_coords.py index f4b312c96..8ccd0e441 100644 --- a/Tests/test_PDB_internal_coords.py +++ b/Tests/test_PDB_internal_coords.py @@ -6,10 +6,10 @@ """Unit tests for internal_coords module of Bio.PDB.""" -import unittest -import re -import warnings import copy +import re +import unittest +import warnings try: import numpy as np # noqa F401 @@ -20,24 +20,22 @@ except ImportError: "Install NumPy if you want to use Bio.PDB." ) from None -from Bio.PDB.ic_rebuild import ( - structure_rebuild_test, - IC_duplicate, - compare_residues, -) -from Bio.PDB.PDBParser import PDBParser -from Bio.PDB.MMCIFParser import MMCIFParser -from Bio.PDB.mmtf import MMTFParser - from io import StringIO -from Bio.PDB.SCADIO import write_SCAD -from Bio.PDB.PICIO import read_PIC_seq from Bio.File import as_handle - -from Bio.PDB.internal_coords import IC_Residue, IC_Chain, Dihedron, AtomKey - +from Bio.PDB.ic_rebuild import compare_residues +from Bio.PDB.ic_rebuild import IC_duplicate +from Bio.PDB.ic_rebuild import structure_rebuild_test +from Bio.PDB.internal_coords import AtomKey +from Bio.PDB.internal_coords import Dihedron +from Bio.PDB.internal_coords import IC_Chain +from Bio.PDB.internal_coords import IC_Residue +from Bio.PDB.MMCIFParser import MMCIFParser +from Bio.PDB.mmtf import MMTFParser from Bio.PDB.PDBExceptions import PDBConstructionWarning +from Bio.PDB.PDBParser import PDBParser +from Bio.PDB.PICIO import read_PIC_seq +from Bio.PDB.SCADIO import write_SCAD from Bio.Seq import Seq from Bio.SeqRecord import SeqRecord diff --git a/Tests/test_PDB_parse_pdb_header.py b/Tests/test_PDB_parse_pdb_header.py index d708ce738..c5cd182e0 100644 --- a/Tests/test_PDB_parse_pdb_header.py +++ b/Tests/test_PDB_parse_pdb_header.py @@ -20,7 +20,8 @@ except ImportError: ) from None from Bio.PDB import PDBParser -from Bio.PDB.parse_pdb_header import parse_pdb_header, _parse_remark_465 +from Bio.PDB.parse_pdb_header import _parse_remark_465 +from Bio.PDB.parse_pdb_header import parse_pdb_header class ParseReal(unittest.TestCase): diff --git a/Tests/test_PDB_vectors.py b/Tests/test_PDB_vectors.py index dc22f1d2c..1d16b5c0c 100644 --- a/Tests/test_PDB_vectors.py +++ b/Tests/test_PDB_vectors.py @@ -18,21 +18,17 @@ except ImportError: "Install NumPy if you want to use Bio.PDB." ) from None -from Bio.PDB.vectors import Vector -from Bio.PDB import ( - rotmat, - refmat, - calc_angle, - calc_dihedral, - rotaxis, - m2rotaxis, -) -from Bio.PDB.vectors import ( - get_spherical_coordinates, - coord_space, - homog_trans_mtx, -) +from Bio.PDB import calc_angle +from Bio.PDB import calc_dihedral +from Bio.PDB import m2rotaxis +from Bio.PDB import refmat +from Bio.PDB import rotaxis +from Bio.PDB import rotmat +from Bio.PDB.vectors import coord_space +from Bio.PDB.vectors import get_spherical_coordinates +from Bio.PDB.vectors import homog_trans_mtx from Bio.PDB.vectors import multi_coord_space +from Bio.PDB.vectors import Vector class VectorTests(unittest.TestCase): diff --git a/Tests/test_PQR.py b/Tests/test_PQR.py index 768d19804..fe9e5efdf 100644 --- a/Tests/test_PQR.py +++ b/Tests/test_PQR.py @@ -9,15 +9,16 @@ """Unit tests for the PQR parser in Bio.PDB module.""" -from Bio.PDB.PDBParser import PDBParser +import os +import tempfile import unittest import warnings from io import StringIO -from Bio.PDB.PDBExceptions import PDBConstructionException, PDBConstructionWarning -from Bio.PDB.PDBIO import PDBIO -import tempfile -import os +from Bio.PDB.PDBExceptions import PDBConstructionException +from Bio.PDB.PDBExceptions import PDBConstructionWarning +from Bio.PDB.PDBIO import PDBIO +from Bio.PDB.PDBParser import PDBParser class ParseSimplePQR(unittest.TestCase): diff --git a/Tests/test_Phylo.py b/Tests/test_Phylo.py index 12e51224a..9421fe344 100644 --- a/Tests/test_Phylo.py +++ b/Tests/test_Phylo.py @@ -6,15 +6,13 @@ """Unit tests for the Bio.Phylo module.""" import os -import unittest import tempfile - +import unittest from io import StringIO from Bio import Phylo from Bio.Phylo import PhyloXML - # Example Newick and Nexus files EX_NEWICK = "Nexus/int_node_labels.nwk" EX_NEWICK2 = "Nexus/test.new" diff --git a/Tests/test_PhyloXML.py b/Tests/test_PhyloXML.py index 039ab3474..b19060819 100644 --- a/Tests/test_PhyloXML.py +++ b/Tests/test_PhyloXML.py @@ -12,10 +12,12 @@ import tempfile import unittest from itertools import chain +from Bio.Align import Alignment +from Bio.Align import MultipleSeqAlignment +from Bio.Phylo import PhyloXML as PX +from Bio.Phylo import PhyloXMLIO from Bio.Seq import Seq from Bio.SeqRecord import SeqRecord -from Bio.Align import Alignment, MultipleSeqAlignment -from Bio.Phylo import PhyloXML as PX, PhyloXMLIO # Example PhyloXML files EX_APAF = "PhyloXML/apaf.xml" diff --git a/Tests/test_Phylo_CDAO.py b/Tests/test_Phylo_CDAO.py index 2f112041f..ac8ab8a7a 100644 --- a/Tests/test_Phylo_CDAO.py +++ b/Tests/test_Phylo_CDAO.py @@ -9,9 +9,9 @@ import os import tempfile import unittest -from Bio import MissingExternalDependencyError import Bio.Phylo as bp +from Bio import MissingExternalDependencyError try: from Bio.Phylo import CDAOIO diff --git a/Tests/test_Phylo_NeXML.py b/Tests/test_Phylo_NeXML.py index 0de3d259e..7b7e4599e 100644 --- a/Tests/test_Phylo_NeXML.py +++ b/Tests/test_Phylo_NeXML.py @@ -9,7 +9,6 @@ import os import tempfile import unittest - from io import BytesIO from Bio import Phylo diff --git a/Tests/test_Phylo_igraph.py b/Tests/test_Phylo_igraph.py index d8946d0ec..c60a39dd1 100644 --- a/Tests/test_Phylo_igraph.py +++ b/Tests/test_Phylo_igraph.py @@ -6,12 +6,11 @@ """Unit tests for Bio.Phylo functions with external dependencies.""" import unittest - from io import StringIO -from Bio import Phylo # Check for any missing dependencies at the top level so we can skip from Bio import MissingExternalDependencyError +from Bio import Phylo try: import igraph as ig diff --git a/Tests/test_Phylo_matplotlib.py b/Tests/test_Phylo_matplotlib.py index 14007cb4c..41f06f071 100644 --- a/Tests/test_Phylo_matplotlib.py +++ b/Tests/test_Phylo_matplotlib.py @@ -6,12 +6,11 @@ """Unit tests for Bio.Phylo functions with external dependencies.""" import unittest - from io import StringIO -from Bio import Phylo # Check for any missing dependencies at the top level so we can skip from Bio import MissingExternalDependencyError +from Bio import Phylo try: import matplotlib diff --git a/Tests/test_Phylo_networkx.py b/Tests/test_Phylo_networkx.py index b05398772..1e3bf00cc 100644 --- a/Tests/test_Phylo_networkx.py +++ b/Tests/test_Phylo_networkx.py @@ -7,10 +7,9 @@ import unittest -from Bio import Phylo - # Check for any missing dependencies at the top level so we can skip from Bio import MissingExternalDependencyError +from Bio import Phylo try: import networkx diff --git a/Tests/test_PopGen_GenePop_nodepend.py b/Tests/test_PopGen_GenePop_nodepend.py index 075fc7f5a..7a34aeceb 100644 --- a/Tests/test_PopGen_GenePop_nodepend.py +++ b/Tests/test_PopGen_GenePop_nodepend.py @@ -7,10 +7,11 @@ """Tests for PopGen GenePop nodepend module.""" import os +import tempfile import unittest + from Bio.PopGen import GenePop from Bio.PopGen.GenePop import FileParser -import tempfile class RecordTest(unittest.TestCase): diff --git a/Tests/test_Prank_tool.py b/Tests/test_Prank_tool.py index e6dacc4ab..4ed3af46d 100644 --- a/Tests/test_Prank_tool.py +++ b/Tests/test_Prank_tool.py @@ -3,22 +3,21 @@ # as part of this package. """Unittests for Bio.Align.Applications interface for PRANK.""" -import sys import os +import sys import unittest import warnings from Bio import AlignIO -from Bio import SeqIO -from Bio import MissingExternalDependencyError from Bio import BiopythonDeprecationWarning +from Bio import MissingExternalDependencyError +from Bio import SeqIO from Bio.Nexus.Nexus import NexusError - with warnings.catch_warnings(): warnings.simplefilter("ignore", category=BiopythonDeprecationWarning) - from Bio.Application import _escape_filename from Bio.Align.Applications import PrankCommandline + from Bio.Application import _escape_filename # Try to avoid problems when the OS is in another language diff --git a/Tests/test_Probcons_tool.py b/Tests/test_Probcons_tool.py index 97256abe0..d94834b6d 100644 --- a/Tests/test_Probcons_tool.py +++ b/Tests/test_Probcons_tool.py @@ -4,14 +4,16 @@ # as part of this package. """Unittests for Bio.Align.Applications interface for PROBCONS.""" -import sys import os +import sys import unittest import warnings from io import StringIO +from Bio import AlignIO from Bio import BiopythonDeprecationWarning -from Bio import AlignIO, SeqIO, MissingExternalDependencyError +from Bio import MissingExternalDependencyError +from Bio import SeqIO with warnings.catch_warnings(): warnings.simplefilter("ignore", category=BiopythonDeprecationWarning) diff --git a/Tests/test_ProtParam.py b/Tests/test_ProtParam.py index 490345461..050f7fd10 100644 --- a/Tests/test_ProtParam.py +++ b/Tests/test_ProtParam.py @@ -8,10 +8,12 @@ """Tests for Bio.SeqUtils.ProtParam and related code.""" import unittest + from Bio.Seq import Seq from Bio.SeqRecord import SeqRecord -from Bio.SeqUtils import ProtParam, ProtParamData from Bio.SeqUtils import molecular_weight +from Bio.SeqUtils import ProtParam +from Bio.SeqUtils import ProtParamData class ProtParamTest(unittest.TestCase): diff --git a/Tests/test_RCSBFormats.py b/Tests/test_RCSBFormats.py index b27a988a1..4493263f3 100644 --- a/Tests/test_RCSBFormats.py +++ b/Tests/test_RCSBFormats.py @@ -16,7 +16,8 @@ try: from numpy import dot # Missing on old PyPy's micronumpy del dot - from numpy.linalg import svd, det # Missing in PyPy 2.0 numpypy + from numpy.linalg import det # Missing in PyPy 2.0 numpypy + from numpy.linalg import svd # Missing in PyPy 2.0 numpypy except ImportError: from Bio import MissingPythonDependencyError @@ -24,8 +25,8 @@ except ImportError: "Install NumPy if you want to use Bio.PDB." ) from None -from Bio.PDB.MMCIFParser import MMCIFParser from Bio.PDB import PDBParser +from Bio.PDB.MMCIFParser import MMCIFParser from Bio.PDB.PDBExceptions import PDBConstructionWarning diff --git a/Tests/test_Restriction.py b/Tests/test_Restriction.py index 267dc6411..944e7f2e7 100644 --- a/Tests/test_Restriction.py +++ b/Tests/test_Restriction.py @@ -7,28 +7,31 @@ import unittest -from Bio.Restriction import Analysis, Restriction, RestrictionBatch -from Bio.Restriction import CommOnly, NonComm, AllEnzymes -from Bio.Restriction import ( - Acc65I, - Asp718I, - BamHI, - EcoRI, - EcoRV, - KpnI, - SmaI, - MluCI, - McrI, - NdeI, - BsmBI, - AanI, - EarI, - SnaI, - SphI, -) -from Bio.Restriction import FormattedSeq -from Bio.Seq import Seq, MutableSeq from Bio import BiopythonWarning +from Bio.Restriction import AanI +from Bio.Restriction import Acc65I +from Bio.Restriction import AllEnzymes +from Bio.Restriction import Analysis +from Bio.Restriction import Asp718I +from Bio.Restriction import BamHI +from Bio.Restriction import BsmBI +from Bio.Restriction import CommOnly +from Bio.Restriction import EarI +from Bio.Restriction import EcoRI +from Bio.Restriction import EcoRV +from Bio.Restriction import FormattedSeq +from Bio.Restriction import KpnI +from Bio.Restriction import McrI +from Bio.Restriction import MluCI +from Bio.Restriction import NdeI +from Bio.Restriction import NonComm +from Bio.Restriction import Restriction +from Bio.Restriction import RestrictionBatch +from Bio.Restriction import SmaI +from Bio.Restriction import SnaI +from Bio.Restriction import SphI +from Bio.Seq import MutableSeq +from Bio.Seq import Seq class SequenceTesting(unittest.TestCase): diff --git a/Tests/test_SCOP_Astral.py b/Tests/test_SCOP_Astral.py index 256c9440b..e1a966410 100644 --- a/Tests/test_SCOP_Astral.py +++ b/Tests/test_SCOP_Astral.py @@ -7,7 +7,8 @@ import unittest -from Bio.SCOP import Astral, Scop +from Bio.SCOP import Astral +from Bio.SCOP import Scop class AstralTests(unittest.TestCase): diff --git a/Tests/test_SCOP_Raf.py b/Tests/test_SCOP_Raf.py index 52de94044..b200a55ab 100644 --- a/Tests/test_SCOP_Raf.py +++ b/Tests/test_SCOP_Raf.py @@ -6,9 +6,9 @@ """Unit test for Raf.""" import unittest +from io import StringIO from Bio.SCOP import Raf -from io import StringIO class RafTests(unittest.TestCase): diff --git a/Tests/test_SCOP_Residues.py b/Tests/test_SCOP_Residues.py index 2c0cd70d8..d92a13ea9 100644 --- a/Tests/test_SCOP_Residues.py +++ b/Tests/test_SCOP_Residues.py @@ -6,6 +6,7 @@ """Unit test for Residues.""" import unittest + from Bio.SCOP.Residues import Residues diff --git a/Tests/test_SCOP_Scop.py b/Tests/test_SCOP_Scop.py index b61f8aa7e..e8d4e4cff 100644 --- a/Tests/test_SCOP_Scop.py +++ b/Tests/test_SCOP_Scop.py @@ -10,7 +10,9 @@ import unittest from io import StringIO -from Bio.SCOP import Scop, cmp_sccs, parse_domain +from Bio.SCOP import cmp_sccs +from Bio.SCOP import parse_domain +from Bio.SCOP import Scop class ScopTests(unittest.TestCase): diff --git a/Tests/test_SVDSuperimposer.py b/Tests/test_SVDSuperimposer.py index 9e8db047d..07663c5b4 100644 --- a/Tests/test_SVDSuperimposer.py +++ b/Tests/test_SVDSuperimposer.py @@ -8,11 +8,12 @@ import unittest try: - from numpy import array - from numpy import dot # missing in old PyPy's micronumpy - from numpy import array_equal from numpy import around - from numpy.linalg import svd, det # Missing in PyPy 2.0 numpypy + from numpy import array + from numpy import array_equal + from numpy import dot # missing in old PyPy's micronumpy + from numpy.linalg import det # Missing in PyPy 2.0 numpypy + from numpy.linalg import svd # Missing in PyPy 2.0 numpypy except ImportError: from Bio import MissingPythonDependencyError diff --git a/Tests/test_SearchIO_blast_tab_index.py b/Tests/test_SearchIO_blast_tab_index.py index ac98f3f0f..15f7580e7 100644 --- a/Tests/test_SearchIO_blast_tab_index.py +++ b/Tests/test_SearchIO_blast_tab_index.py @@ -7,7 +7,8 @@ import unittest -from search_tests_common import CheckRaw, CheckIndex +from search_tests_common import CheckIndex +from search_tests_common import CheckRaw class BlastTabRawCases(CheckRaw): diff --git a/Tests/test_SearchIO_blast_xml.py b/Tests/test_SearchIO_blast_xml.py index d229e2ed7..b1de7e60c 100644 --- a/Tests/test_SearchIO_blast_xml.py +++ b/Tests/test_SearchIO_blast_xml.py @@ -12,7 +12,6 @@ import warnings from Bio import BiopythonParserWarning from Bio.SearchIO import parse - # test case files are in the Blast directory TEST_DIR = "Blast" FMT = "blast-xml" diff --git a/Tests/test_SearchIO_blast_xml_index.py b/Tests/test_SearchIO_blast_xml_index.py index 48046d889..8a9b473f1 100644 --- a/Tests/test_SearchIO_blast_xml_index.py +++ b/Tests/test_SearchIO_blast_xml_index.py @@ -7,7 +7,8 @@ import unittest -from search_tests_common import CheckRaw, CheckIndex +from search_tests_common import CheckIndex +from search_tests_common import CheckRaw class BlastXmlRawCases(CheckRaw): diff --git a/Tests/test_SearchIO_blat_psl.py b/Tests/test_SearchIO_blat_psl.py index 162ebfaf6..d913bcd28 100644 --- a/Tests/test_SearchIO_blat_psl.py +++ b/Tests/test_SearchIO_blat_psl.py @@ -10,7 +10,6 @@ import unittest from Bio.SearchIO import parse - # test case files are in the Blast directory TEST_DIR = "Blat" FMT = "blat-psl" diff --git a/Tests/test_SearchIO_exonerate.py b/Tests/test_SearchIO_exonerate.py index 131249310..7ba77f9ef 100644 --- a/Tests/test_SearchIO_exonerate.py +++ b/Tests/test_SearchIO_exonerate.py @@ -8,8 +8,8 @@ import os import unittest -from Bio.SearchIO import parse, read - +from Bio.SearchIO import parse +from Bio.SearchIO import read # test case files are in the Blast directory TEST_DIR = "Exonerate" diff --git a/Tests/test_SearchIO_fasta_m10.py b/Tests/test_SearchIO_fasta_m10.py index 86a999eb1..6555e6464 100644 --- a/Tests/test_SearchIO_fasta_m10.py +++ b/Tests/test_SearchIO_fasta_m10.py @@ -10,7 +10,6 @@ import unittest from Bio.SearchIO import parse - # test case files are in the Blast directory TEST_DIR = "Fasta" FMT = "fasta-m10" diff --git a/Tests/test_SearchIO_hhsuite2_text.py b/Tests/test_SearchIO_hhsuite2_text.py index 31cc3e823..af882b596 100644 --- a/Tests/test_SearchIO_hhsuite2_text.py +++ b/Tests/test_SearchIO_hhsuite2_text.py @@ -10,7 +10,6 @@ import unittest from Bio.SearchIO import parse - # test case files are in the Blast directory TEST_DIR = "HHsuite" FMT = "hhsuite2-text" diff --git a/Tests/test_SearchIO_hmmer2_text.py b/Tests/test_SearchIO_hmmer2_text.py index 5b13fa432..5950af112 100644 --- a/Tests/test_SearchIO_hmmer2_text.py +++ b/Tests/test_SearchIO_hmmer2_text.py @@ -9,7 +9,8 @@ import unittest from os import path -from Bio.SearchIO import parse, read +from Bio.SearchIO import parse +from Bio.SearchIO import read class HmmpfamTests(unittest.TestCase): diff --git a/Tests/test_SearchIO_hmmer2_text_index.py b/Tests/test_SearchIO_hmmer2_text_index.py index dc54335f9..7ae0c9077 100644 --- a/Tests/test_SearchIO_hmmer2_text_index.py +++ b/Tests/test_SearchIO_hmmer2_text_index.py @@ -8,7 +8,8 @@ import os import unittest -from search_tests_common import CheckRaw, CheckIndex +from search_tests_common import CheckIndex +from search_tests_common import CheckRaw class Hmmer2TextRawCases(CheckRaw): diff --git a/Tests/test_SearchIO_hmmer3_domtab.py b/Tests/test_SearchIO_hmmer3_domtab.py index 29276a514..bee73e65d 100644 --- a/Tests/test_SearchIO_hmmer3_domtab.py +++ b/Tests/test_SearchIO_hmmer3_domtab.py @@ -10,7 +10,6 @@ import unittest from Bio.SearchIO import parse - # test case files are in the Blast directory TEST_DIR = "Hmmer" diff --git a/Tests/test_SearchIO_hmmer3_domtab_index.py b/Tests/test_SearchIO_hmmer3_domtab_index.py index 986e609a0..a120276ba 100644 --- a/Tests/test_SearchIO_hmmer3_domtab_index.py +++ b/Tests/test_SearchIO_hmmer3_domtab_index.py @@ -8,7 +8,8 @@ import os import unittest -from search_tests_common import CheckRaw, CheckIndex +from search_tests_common import CheckIndex +from search_tests_common import CheckRaw class HmmerDomtabRawCases(CheckRaw): diff --git a/Tests/test_SearchIO_hmmer3_tab.py b/Tests/test_SearchIO_hmmer3_tab.py index b7974cd2b..89dc40ae9 100644 --- a/Tests/test_SearchIO_hmmer3_tab.py +++ b/Tests/test_SearchIO_hmmer3_tab.py @@ -10,7 +10,6 @@ import unittest from Bio.SearchIO import parse - # test case files are in the Blast directory TEST_DIR = "Hmmer" FMT = "hmmer3-tab" diff --git a/Tests/test_SearchIO_hmmer3_tab_index.py b/Tests/test_SearchIO_hmmer3_tab_index.py index c638006ab..29720cb4e 100644 --- a/Tests/test_SearchIO_hmmer3_tab_index.py +++ b/Tests/test_SearchIO_hmmer3_tab_index.py @@ -8,7 +8,8 @@ import os import unittest -from search_tests_common import CheckRaw, CheckIndex +from search_tests_common import CheckIndex +from search_tests_common import CheckRaw class Hmmer3TabRawCases(CheckRaw): diff --git a/Tests/test_SearchIO_hmmer3_text.py b/Tests/test_SearchIO_hmmer3_text.py index 057168f15..0f3b91c13 100644 --- a/Tests/test_SearchIO_hmmer3_text.py +++ b/Tests/test_SearchIO_hmmer3_text.py @@ -10,7 +10,6 @@ import unittest from Bio.SearchIO import parse - # test case files are in the Blast directory TEST_DIR = "Hmmer" FMT = "hmmer3-text" diff --git a/Tests/test_SearchIO_hmmer3_text_index.py b/Tests/test_SearchIO_hmmer3_text_index.py index 56927a3ef..f7bff22c9 100644 --- a/Tests/test_SearchIO_hmmer3_text_index.py +++ b/Tests/test_SearchIO_hmmer3_text_index.py @@ -7,7 +7,8 @@ import unittest -from search_tests_common import CheckRaw, CheckIndex +from search_tests_common import CheckIndex +from search_tests_common import CheckRaw class Hmmer3TextRawCases(CheckRaw): diff --git a/Tests/test_SearchIO_interproscan_xml.py b/Tests/test_SearchIO_interproscan_xml.py index c595ae1da..7e6980ef0 100644 --- a/Tests/test_SearchIO_interproscan_xml.py +++ b/Tests/test_SearchIO_interproscan_xml.py @@ -9,7 +9,6 @@ import unittest from Bio.SearchIO import parse - # test case files are in the Blast directory TEST_DIR = "InterProScan" FMT = "interproscan-xml" diff --git a/Tests/test_SearchIO_model.py b/Tests/test_SearchIO_model.py index 5befd8986..16c4a90e7 100644 --- a/Tests/test_SearchIO_model.py +++ b/Tests/test_SearchIO_model.py @@ -13,17 +13,19 @@ to all formats. import pickle import unittest -from io import BytesIO from copy import deepcopy +from io import BytesIO from search_tests_common import SearchTestBaseClass from Bio.Align import MultipleSeqAlignment -from Bio.SearchIO._model import QueryResult, Hit, HSP, HSPFragment +from Bio.SearchIO._model import Hit +from Bio.SearchIO._model import HSP +from Bio.SearchIO._model import HSPFragment +from Bio.SearchIO._model import QueryResult from Bio.Seq import Seq from Bio.SeqRecord import SeqRecord - # mock HSPFragments frag111 = HSPFragment("hit1", "query1", hit="ATGCGCAT", query="ATGCGCAT") frag112 = HSPFragment("hit1", "query1", hit="ATG", query="GAT") diff --git a/Tests/test_SearchIO_write.py b/Tests/test_SearchIO_write.py index 0cffa7857..4f48661ce 100644 --- a/Tests/test_SearchIO_write.py +++ b/Tests/test_SearchIO_write.py @@ -8,10 +8,10 @@ import os import unittest -from Bio import SearchIO - from search_tests_common import SearchTestBaseClass +from Bio import SearchIO + class WriteCases(SearchTestBaseClass): def tearDown(self): diff --git a/Tests/test_SeqFeature.py b/Tests/test_SeqFeature.py index 374cf1737..78031a19e 100644 --- a/Tests/test_SeqFeature.py +++ b/Tests/test_SeqFeature.py @@ -8,24 +8,23 @@ import unittest import warnings - from copy import deepcopy from os import path from Bio import BiopythonDeprecationWarning +from Bio import BiopythonParserWarning from Bio import Seq from Bio import SeqIO from Bio import SeqRecord -from Bio import BiopythonParserWarning from Bio.Data.CodonTable import TranslationError from Bio.SeqFeature import AfterPosition from Bio.SeqFeature import BeforePosition from Bio.SeqFeature import BetweenPosition from Bio.SeqFeature import CompoundLocation from Bio.SeqFeature import ExactPosition -from Bio.SeqFeature import SimpleLocation from Bio.SeqFeature import OneOfPosition from Bio.SeqFeature import SeqFeature +from Bio.SeqFeature import SimpleLocation from Bio.SeqFeature import UnknownPosition from Bio.SeqFeature import WithinPosition diff --git a/Tests/test_SeqIO.py b/Tests/test_SeqIO.py index de1b3a844..f7f522b20 100644 --- a/Tests/test_SeqIO.py +++ b/Tests/test_SeqIO.py @@ -8,7 +8,6 @@ import copy import gzip import unittest import warnings - from io import BytesIO from io import StringIO @@ -24,7 +23,6 @@ from Bio.Seq import Seq from Bio.Seq import UndefinedSequenceError from Bio.SeqRecord import SeqRecord - # TODO - Check that desired warnings are issued. Used to do that by capturing # warnings to stdout and verifying via the print-and-compare check. However, # there was some frustrating cross-platform inconsistency I couldn't resolve. diff --git a/Tests/test_SeqIO_AbiIO.py b/Tests/test_SeqIO_AbiIO.py index 2df9c5104..59ab45a53 100644 --- a/Tests/test_SeqIO_AbiIO.py +++ b/Tests/test_SeqIO_AbiIO.py @@ -5,7 +5,6 @@ """Tests for SeqIO AbiIO module.""" import unittest - from os.path import basename from os.path import join diff --git a/Tests/test_SeqIO_FastaIO.py b/Tests/test_SeqIO_FastaIO.py index fc2ec8e7a..094a5acfa 100644 --- a/Tests/test_SeqIO_FastaIO.py +++ b/Tests/test_SeqIO_FastaIO.py @@ -6,7 +6,6 @@ """Tests for Bio.SeqIO.FastaIO module.""" import unittest - from io import StringIO from Bio import SeqIO diff --git a/Tests/test_SeqIO_Gck.py b/Tests/test_SeqIO_Gck.py index e2727ab63..00de4e51d 100644 --- a/Tests/test_SeqIO_Gck.py +++ b/Tests/test_SeqIO_Gck.py @@ -7,7 +7,6 @@ """Tests for the SeqIO Gck module.""" import unittest - from io import BytesIO from Bio import SeqIO diff --git a/Tests/test_SeqIO_Insdc.py b/Tests/test_SeqIO_Insdc.py index 66cc29e9d..19b0c30fc 100644 --- a/Tests/test_SeqIO_Insdc.py +++ b/Tests/test_SeqIO_Insdc.py @@ -6,18 +6,19 @@ import unittest import warnings - from io import StringIO -from Bio import BiopythonWarning, BiopythonParserWarning -from Bio import SeqIO -from Bio.Seq import Seq -from Bio.SeqFeature import SimpleLocation -from Bio.SeqFeature import SeqFeature -from Bio.SeqRecord import SeqRecord from seq_tests_common import SeqRecordTestBaseClass from test_SeqIO import SeqIOConverterTestBaseClass +from Bio import BiopythonParserWarning +from Bio import BiopythonWarning +from Bio import SeqIO +from Bio.Seq import Seq +from Bio.SeqFeature import SeqFeature +from Bio.SeqFeature import SimpleLocation +from Bio.SeqRecord import SeqRecord + class TestEmbl(unittest.TestCase): def test_annotation1(self): diff --git a/Tests/test_SeqIO_NibIO.py b/Tests/test_SeqIO_NibIO.py index febccf302..881efab24 100644 --- a/Tests/test_SeqIO_NibIO.py +++ b/Tests/test_SeqIO_NibIO.py @@ -1,7 +1,6 @@ """Tests for SeqIO NibIO module.""" import unittest - from io import BytesIO from Bio import SeqIO diff --git a/Tests/test_SeqIO_PdbIO.py b/Tests/test_SeqIO_PdbIO.py index b748a61cc..2658d936c 100644 --- a/Tests/test_SeqIO_PdbIO.py +++ b/Tests/test_SeqIO_PdbIO.py @@ -13,7 +13,8 @@ try: del dot # We don't need this (?) but Bio.PDB imports it automatically :( - from numpy.linalg import svd, det # Missing in PyPy 2.0 numpypy + from numpy.linalg import det # Missing in PyPy 2.0 numpypy + from numpy.linalg import svd # Missing in PyPy 2.0 numpypy except ImportError: from Bio import MissingPythonDependencyError @@ -21,8 +22,8 @@ except ImportError: "Install NumPy if you want to use PDB formats with SeqIO." ) from None -from Bio import SeqIO from Bio import BiopythonParserWarning +from Bio import SeqIO from Bio.PDB.PDBExceptions import PDBConstructionWarning diff --git a/Tests/test_SeqIO_QualityIO.py b/Tests/test_SeqIO_QualityIO.py index 5f031abdc..99ff7a533 100644 --- a/Tests/test_SeqIO_QualityIO.py +++ b/Tests/test_SeqIO_QualityIO.py @@ -7,10 +7,12 @@ import os import unittest import warnings - from io import BytesIO from io import StringIO +from test_SeqIO import SeqIOConverterTestBaseClass +from test_SeqIO import SeqIOTestBaseClass + from Bio import BiopythonParserWarning from Bio import BiopythonWarning from Bio import SeqIO @@ -21,8 +23,6 @@ from Bio.Seq import Seq from Bio.Seq import UndefinedSequenceError from Bio.SeqIO import QualityIO from Bio.SeqRecord import SeqRecord -from test_SeqIO import SeqIOConverterTestBaseClass -from test_SeqIO import SeqIOTestBaseClass class QualityIOTestBaseClass(SeqIOTestBaseClass): diff --git a/Tests/test_SeqIO_SeqXML.py b/Tests/test_SeqIO_SeqXML.py index a9aa30f65..960cdea04 100644 --- a/Tests/test_SeqIO_SeqXML.py +++ b/Tests/test_SeqIO_SeqXML.py @@ -5,7 +5,6 @@ """Tests for SeqIO SeqXML module.""" import unittest - from io import BytesIO from Bio import SeqIO diff --git a/Tests/test_SeqIO_SnapGene.py b/Tests/test_SeqIO_SnapGene.py index debdabc27..a2ac5e3fb 100644 --- a/Tests/test_SeqIO_SnapGene.py +++ b/Tests/test_SeqIO_SnapGene.py @@ -8,7 +8,6 @@ import datetime import unittest - from io import BytesIO from Bio import SeqIO diff --git a/Tests/test_SeqIO_Xdna.py b/Tests/test_SeqIO_Xdna.py index f6c159764..b93819bdb 100644 --- a/Tests/test_SeqIO_Xdna.py +++ b/Tests/test_SeqIO_Xdna.py @@ -7,15 +7,14 @@ """Tests for the SeqIO Xdna module.""" import unittest - from io import BytesIO from Bio import BiopythonWarning from Bio import SeqIO from Bio.Seq import Seq from Bio.SeqFeature import BeforePosition -from Bio.SeqFeature import SimpleLocation from Bio.SeqFeature import SeqFeature +from Bio.SeqFeature import SimpleLocation from Bio.SeqRecord import SeqRecord diff --git a/Tests/test_SeqIO_features.py b/Tests/test_SeqIO_features.py index 51e8eaa32..a3b0c84b5 100644 --- a/Tests/test_SeqIO_features.py +++ b/Tests/test_SeqIO_features.py @@ -11,11 +11,12 @@ and confirms they are consistent using our different parsers. import os import unittest import warnings - from io import StringIO -from Bio import BiopythonWarning +from test_SeqIO import SeqIOTestBaseClass + from Bio import BiopythonDeprecationWarning +from Bio import BiopythonWarning from Bio import SeqIO from Bio.Data.CodonTable import TranslationError from Bio.Seq import MutableSeq @@ -26,14 +27,13 @@ from Bio.SeqFeature import AfterPosition from Bio.SeqFeature import BeforePosition from Bio.SeqFeature import CompoundLocation from Bio.SeqFeature import ExactPosition -from Bio.SeqFeature import SimpleLocation from Bio.SeqFeature import OneOfPosition from Bio.SeqFeature import SeqFeature +from Bio.SeqFeature import SimpleLocation from Bio.SeqFeature import UnknownPosition from Bio.SeqFeature import WithinPosition from Bio.SeqIO.InsdcIO import _insdc_location_string from Bio.SeqRecord import SeqRecord -from test_SeqIO import SeqIOTestBaseClass def _get_location_string(feature, record_length): diff --git a/Tests/test_SeqIO_index.py b/Tests/test_SeqIO_index.py index 4a5a72a61..591ea8496 100644 --- a/Tests/test_SeqIO_index.py +++ b/Tests/test_SeqIO_index.py @@ -10,25 +10,23 @@ except ImportError: # Try to run what tests we can in case sqlite3 was not installed sqlite3 = None +import gzip import os -import unittest import tempfile import threading -import gzip +import unittest import warnings from io import BytesIO from io import StringIO from pathlib import Path -from Bio.SeqRecord import SeqRecord -from Bio import SeqIO -from Bio.SeqIO._index import _FormatToRandomAccess - -from Bio import BiopythonParserWarning - from seq_tests_common import SeqRecordTestBaseClass from test_SeqIO import SeqIOTestBaseClass +from Bio import BiopythonParserWarning +from Bio import SeqIO +from Bio.SeqIO._index import _FormatToRandomAccess +from Bio.SeqRecord import SeqRecord CUR_DIR = os.getcwd() diff --git a/Tests/test_SeqIO_write.py b/Tests/test_SeqIO_write.py index a3c79717a..7aa2881f1 100644 --- a/Tests/test_SeqIO_write.py +++ b/Tests/test_SeqIO_write.py @@ -7,17 +7,16 @@ import os import unittest import warnings - from io import BytesIO from io import StringIO +from test_SeqIO import SeqIOTestBaseClass + from Bio import AlignIO from Bio import BiopythonWarning from Bio import SeqIO from Bio.Seq import Seq from Bio.SeqRecord import SeqRecord -from test_SeqIO import SeqIOTestBaseClass - # List of formats including alignment only file formats we can read AND write. # We don't care about the order diff --git a/Tests/test_SeqRecord.py b/Tests/test_SeqRecord.py index 453c8c159..ff93b4072 100644 --- a/Tests/test_SeqRecord.py +++ b/Tests/test_SeqRecord.py @@ -15,15 +15,16 @@ try: except ImportError: numpy = None # type: ignore -from Bio import BiopythonDeprecationWarning, SeqIO +from Bio import BiopythonDeprecationWarning +from Bio import SeqIO from Bio.Seq import MutableSeq from Bio.Seq import Seq from Bio.SeqFeature import AfterPosition from Bio.SeqFeature import BeforePosition from Bio.SeqFeature import ExactPosition -from Bio.SeqFeature import SimpleLocation from Bio.SeqFeature import OneOfPosition from Bio.SeqFeature import SeqFeature +from Bio.SeqFeature import SimpleLocation from Bio.SeqFeature import WithinPosition from Bio.SeqRecord import SeqRecord diff --git a/Tests/test_SeqUtils.py b/Tests/test_SeqUtils.py index 0ca7ef970..27d80c7a1 100644 --- a/Tests/test_SeqUtils.py +++ b/Tests/test_SeqUtils.py @@ -12,6 +12,7 @@ from Bio import SeqIO from Bio.Seq import MutableSeq from Bio.Seq import Seq from Bio.SeqRecord import SeqRecord +from Bio.SeqUtils import CodonAdaptationIndex from Bio.SeqUtils import gc_fraction from Bio.SeqUtils import GC_skew from Bio.SeqUtils import seq1 @@ -20,7 +21,6 @@ from Bio.SeqUtils.CheckSum import crc32 from Bio.SeqUtils.CheckSum import crc64 from Bio.SeqUtils.CheckSum import gcg from Bio.SeqUtils.CheckSum import seguid -from Bio.SeqUtils import CodonAdaptationIndex from Bio.SeqUtils.lcc import lcc_mult from Bio.SeqUtils.lcc import lcc_simp diff --git a/Tests/test_Seq_objs.py b/Tests/test_Seq_objs.py index f303166d3..4d1f41fe6 100644 --- a/Tests/test_Seq_objs.py +++ b/Tests/test_Seq_objs.py @@ -4,9 +4,9 @@ # as part of this package. """Unittests for the Seq objects.""" +import array import unittest import warnings -import array from Bio import BiopythonWarning from Bio import SeqIO @@ -14,10 +14,11 @@ from Bio.Data.CodonTable import CodonTable from Bio.Data.CodonTable import TranslationError from Bio.Data.IUPACData import ambiguous_dna_values from Bio.Data.IUPACData import ambiguous_rna_values +from Bio.Seq import _UndefinedSequenceData from Bio.Seq import MutableSeq from Bio.Seq import Seq from Bio.Seq import translate -from Bio.Seq import UndefinedSequenceError, _UndefinedSequenceData +from Bio.Seq import UndefinedSequenceError from Bio.SeqRecord import SeqRecord try: diff --git a/Tests/test_SffIO.py b/Tests/test_SffIO.py index 552f49c00..c053cc5fc 100644 --- a/Tests/test_SffIO.py +++ b/Tests/test_SffIO.py @@ -10,10 +10,13 @@ import re import unittest from io import BytesIO -from Bio.SeqIO.SffIO import _sff_find_roche_index, _sff_read_roche_index -from Bio.SeqIO.SffIO import _sff_do_slow_index -from Bio.SeqIO.SffIO import SffIterator, SffWriter, ReadRocheXmlManifest from Bio import SeqIO +from Bio.SeqIO.SffIO import _sff_do_slow_index +from Bio.SeqIO.SffIO import _sff_find_roche_index +from Bio.SeqIO.SffIO import _sff_read_roche_index +from Bio.SeqIO.SffIO import ReadRocheXmlManifest +from Bio.SeqIO.SffIO import SffIterator +from Bio.SeqIO.SffIO import SffWriter # sffinfo E3MFGYR02_random_10_reads.sff | sed -n '/>\|Run Prefix\|Region\|XY/p' test_data = """ diff --git a/Tests/test_TCoffee_tool.py b/Tests/test_TCoffee_tool.py index aa15f006b..20ab1c08a 100644 --- a/Tests/test_TCoffee_tool.py +++ b/Tests/test_TCoffee_tool.py @@ -4,13 +4,15 @@ # as part of this package. """Unittests for Bio.Align.Applications interface for TCOFFEE.""" -import sys import os +import sys import unittest import warnings -from Bio import AlignIO, SeqIO, MissingExternalDependencyError +from Bio import AlignIO from Bio import BiopythonDeprecationWarning +from Bio import MissingExternalDependencyError +from Bio import SeqIO with warnings.catch_warnings(): warnings.simplefilter("ignore", category=BiopythonDeprecationWarning) diff --git a/Tests/test_TogoWS.py b/Tests/test_TogoWS.py index 36676e22b..49e9d5c53 100644 --- a/Tests/test_TogoWS.py +++ b/Tests/test_TogoWS.py @@ -10,15 +10,16 @@ import unittest from io import StringIO from urllib.error import HTTPError -# We want to test these: -from Bio import TogoWS +import requires_internet + +from Bio import Medline # In order to check any sequences returned from Bio import SeqIO -from Bio.SeqUtils.CheckSum import seguid -from Bio import Medline -import requires_internet +# We want to test these: +from Bio import TogoWS +from Bio.SeqUtils.CheckSum import seguid requires_internet.check() diff --git a/Tests/test_TreeConstruction.py b/Tests/test_TreeConstruction.py index 988232f80..e65ebe4a4 100644 --- a/Tests/test_TreeConstruction.py +++ b/Tests/test_TreeConstruction.py @@ -6,25 +6,24 @@ """Unit tests for the Bio.Phylo.TreeConstruction module.""" import os -import unittest import tempfile - +import unittest from io import StringIO + from Bio import Align from Bio import AlignIO from Bio import Phylo from Bio.Phylo import BaseTree -from Bio.Phylo import TreeConstruction from Bio.Phylo import Consensus +from Bio.Phylo import TreeConstruction from Bio.Phylo.TreeConstruction import _Matrix -from Bio.Phylo.TreeConstruction import DistanceMatrix from Bio.Phylo.TreeConstruction import DistanceCalculator +from Bio.Phylo.TreeConstruction import DistanceMatrix from Bio.Phylo.TreeConstruction import DistanceTreeConstructor -from Bio.Phylo.TreeConstruction import ParsimonyScorer from Bio.Phylo.TreeConstruction import NNITreeSearcher +from Bio.Phylo.TreeConstruction import ParsimonyScorer from Bio.Phylo.TreeConstruction import ParsimonyTreeConstructor - temp_dir = tempfile.mkdtemp() diff --git a/Tests/test_Tutorial.py b/Tests/test_Tutorial.py index a2d449ca9..772675e22 100644 --- a/Tests/test_Tutorial.py +++ b/Tests/test_Tutorial.py @@ -53,20 +53,20 @@ """Tests for Tutorial module.""" -import unittest import doctest import os import sys +import unittest import warnings -from Bio import BiopythonDeprecationWarning -from Bio import BiopythonExperimentalWarning -from Bio import MissingExternalDependencyError - # This is the same mechanism used for run_tests.py --offline # to skip tests requiring the network. import requires_internet +from Bio import BiopythonDeprecationWarning +from Bio import BiopythonExperimentalWarning +from Bio import MissingExternalDependencyError + try: requires_internet.check() online = True diff --git a/Tests/test_UniGene.py b/Tests/test_UniGene.py index 090d444a7..22dbe6538 100644 --- a/Tests/test_UniGene.py +++ b/Tests/test_UniGene.py @@ -4,9 +4,10 @@ """Tests for UniGene module.""" -from Bio import UniGene import unittest +from Bio import UniGene + class TestUniGene(unittest.TestCase): def test_parse(self): diff --git a/Tests/test_UniProt.py b/Tests/test_UniProt.py index a3c3a7210..827c88606 100644 --- a/Tests/test_UniProt.py +++ b/Tests/test_UniProt.py @@ -1,10 +1,11 @@ """Tests for the UniProt module.""" -import requires_internet import unittest +from itertools import islice + +import requires_internet from Bio import UniProt -from itertools import islice requires_internet.check() diff --git a/Tests/test_UniProt_GOA.py b/Tests/test_UniProt_GOA.py index 610814d7b..051d8cfa8 100644 --- a/Tests/test_UniProt_GOA.py +++ b/Tests/test_UniProt_GOA.py @@ -9,9 +9,10 @@ GOA files can be found here ftp://ftp.ebi.ac.uk/pub/databases/GO/goa/ """ -import unittest -import tempfile import os +import tempfile +import unittest + from Bio.UniProt import GOA diff --git a/Tests/test_UniProt_Parser.py b/Tests/test_UniProt_Parser.py index 711e1d675..03aa4cf7d 100644 --- a/Tests/test_UniProt_Parser.py +++ b/Tests/test_UniProt_Parser.py @@ -8,11 +8,11 @@ import os import unittest +from seq_tests_common import SeqRecordTestBaseClass + from Bio import SeqIO from Bio.SeqRecord import SeqRecord -from seq_tests_common import SeqRecordTestBaseClass - class ParserTests(SeqRecordTestBaseClass): """Tests Uniprot XML parser.""" diff --git a/Tests/test_XXmotif_tool.py b/Tests/test_XXmotif_tool.py index b0d955de5..9f6832a5a 100644 --- a/Tests/test_XXmotif_tool.py +++ b/Tests/test_XXmotif_tool.py @@ -13,11 +13,10 @@ import sys import unittest import warnings -from Bio import MissingExternalDependencyError from Bio import BiopythonDeprecationWarning +from Bio import MissingExternalDependencyError from Bio import SeqIO - with warnings.catch_warnings(): warnings.simplefilter("ignore", category=BiopythonDeprecationWarning) from Bio.Application import ApplicationError diff --git a/Tests/test_align.py b/Tests/test_align.py index a6a3aa84a..2f4d0a737 100644 --- a/Tests/test_align.py +++ b/Tests/test_align.py @@ -21,14 +21,17 @@ import unittest import warnings from io import StringIO +from Bio import Align +from Bio import AlignIO + # biopython from Bio import BiopythonDeprecationWarning +from Bio import motifs +from Bio.Align import AlignInfo +from Bio.Align import Alignment +from Bio.Align import MultipleSeqAlignment from Bio.Seq import Seq from Bio.SeqRecord import SeqRecord -from Bio.Align import AlignInfo -from Bio import AlignIO, Align -from Bio.Align import MultipleSeqAlignment, Alignment -from Bio import motifs class TestBasics(unittest.TestCase): diff --git a/Tests/test_align_substitution_matrices.py b/Tests/test_align_substitution_matrices.py index 9551c9ed5..04a1348bc 100644 --- a/Tests/test_align_substitution_matrices.py +++ b/Tests/test_align_substitution_matrices.py @@ -16,13 +16,11 @@ except ImportError: import os import pickle -from collections import Counter import unittest - +from collections import Counter from Bio import SeqIO from Bio.Align import substitution_matrices - from Bio.Data import IUPACData nucleotide_alphabet = IUPACData.unambiguous_dna_letters diff --git a/Tests/test_codonalign.py b/Tests/test_codonalign.py index d4bcd5289..823640969 100644 --- a/Tests/test_codonalign.py +++ b/Tests/test_codonalign.py @@ -5,18 +5,18 @@ """Unit tests for the Bio.codonalign modules.""" -import warnings import tempfile import unittest +import warnings -from Bio import BiopythonWarning, BiopythonExperimentalWarning -from Bio import SeqIO from Bio import AlignIO -from Bio.Seq import Seq -from Bio.SeqRecord import SeqRecord +from Bio import BiopythonExperimentalWarning +from Bio import BiopythonWarning +from Bio import SeqIO from Bio.Align import MultipleSeqAlignment from Bio.Data import CodonTable - +from Bio.Seq import Seq +from Bio.SeqRecord import SeqRecord with warnings.catch_warnings(): warnings.simplefilter("ignore", BiopythonExperimentalWarning) diff --git a/Tests/test_mmtf.py b/Tests/test_mmtf.py index b4031480a..8b1737dde 100644 --- a/Tests/test_mmtf.py +++ b/Tests/test_mmtf.py @@ -8,16 +8,20 @@ """Tests for mmtf module.""" -import unittest -import warnings import os import tempfile -from Bio.PDB import PDBParser, Select -from Bio.PDB.mmtf import MMTFParser, MMTFIO -from Bio.PDB.MMCIFParser import MMCIFParser -from Bio.PDB.PDBExceptions import PDBConstructionWarning +import unittest +import warnings + import mmtf +from Bio.PDB import PDBParser +from Bio.PDB import Select +from Bio.PDB.MMCIFParser import MMCIFParser +from Bio.PDB.mmtf import MMTFIO +from Bio.PDB.mmtf import MMTFParser +from Bio.PDB.PDBExceptions import PDBConstructionWarning + class ParseMMTF(unittest.TestCase): """Testing with real mmtf file(s).""" diff --git a/Tests/test_mmtf_online.py b/Tests/test_mmtf_online.py index f2daca297..d33c81394 100644 --- a/Tests/test_mmtf_online.py +++ b/Tests/test_mmtf_online.py @@ -9,11 +9,11 @@ import unittest import warnings -from Bio.PDB.PDBExceptions import PDBConstructionWarning -from Bio.PDB.mmtf import MMTFParser - import requires_internet +from Bio.PDB.mmtf import MMTFParser +from Bio.PDB.PDBExceptions import PDBConstructionWarning + requires_internet.check() diff --git a/Tests/test_motifs.py b/Tests/test_motifs.py index 15665bb49..e31806e0d 100644 --- a/Tests/test_motifs.py +++ b/Tests/test_motifs.py @@ -8,9 +8,9 @@ """Tests for motifs module.""" +import math import tempfile import unittest -import math try: import numpy as np diff --git a/Tests/test_motifs_online.py b/Tests/test_motifs_online.py index 4256257c2..edf42cb28 100644 --- a/Tests/test_motifs_online.py +++ b/Tests/test_motifs_online.py @@ -10,14 +10,14 @@ import os import unittest +import requires_internet + # We want to test these: from Bio import motifs # In order to check any sequences returned from Bio.Seq import Seq -import requires_internet - requires_internet.check() diff --git a/Tests/test_pairwise2_no_C.py b/Tests/test_pairwise2_no_C.py index 29318446e..bdb1011c1 100644 --- a/Tests/test_pairwise2_no_C.py +++ b/Tests/test_pairwise2_no_C.py @@ -16,7 +16,6 @@ from pairwise2_testCases import * # noqa: F401, F403 from Bio import pairwise2 - if __name__ == "__main__": runner = unittest.TextTestRunner(verbosity=2) # Explicitly using pure Python fallback functions: diff --git a/Tests/test_pairwise_aligner.py b/Tests/test_pairwise_aligner.py index d82315a92..23dcf1feb 100644 --- a/Tests/test_pairwise_aligner.py +++ b/Tests/test_pairwise_aligner.py @@ -18,8 +18,10 @@ except ImportError: "Install numpy if you want to use Bio.Align." ) from None -from Bio import Align, SeqIO -from Bio.Seq import Seq, reverse_complement +from Bio import Align +from Bio import SeqIO +from Bio.Seq import reverse_complement +from Bio.Seq import Seq from Bio.SeqRecord import SeqRecord diff --git a/Tests/test_pairwise_alignment_map.py b/Tests/test_pairwise_alignment_map.py index 3eeabc325..81e54eea4 100644 --- a/Tests/test_pairwise_alignment_map.py +++ b/Tests/test_pairwise_alignment_map.py @@ -18,11 +18,12 @@ except ImportError: "Install numpy if you want to use Bio.Align.Alignment.map." ) from None +from Bio import Align +from Bio import SeqIO +from Bio.Align import Alignment +from Bio.Align import PairwiseAligner from Bio.Seq import Seq from Bio.SeqRecord import SeqRecord -from Bio import SeqIO -from Bio import Align -from Bio.Align import PairwiseAligner, Alignment class TestSimple(unittest.TestCase): diff --git a/Tests/test_phenotype.py b/Tests/test_phenotype.py index 1bf1b9a0f..1cedf2930 100644 --- a/Tests/test_phenotype.py +++ b/Tests/test_phenotype.py @@ -20,13 +20,11 @@ except ImportError: import json import unittest - +import warnings from io import StringIO from Bio import BiopythonExperimentalWarning -import warnings - with warnings.catch_warnings(): warnings.simplefilter("ignore", BiopythonExperimentalWarning) from Bio import phenotype diff --git a/Tests/test_phenotype_fit.py b/Tests/test_phenotype_fit.py index 6ca78d9f1..0455fcd84 100644 --- a/Tests/test_phenotype_fit.py +++ b/Tests/test_phenotype_fit.py @@ -31,11 +31,10 @@ except ImportError: import json import unittest +import warnings from Bio import BiopythonExperimentalWarning -import warnings - with warnings.catch_warnings(): warnings.simplefilter("ignore", BiopythonExperimentalWarning) from Bio import phenotype diff --git a/Tests/test_phyml_tool.py b/Tests/test_phyml_tool.py index 7d7d97226..5384f5cbb 100644 --- a/Tests/test_phyml_tool.py +++ b/Tests/test_phyml_tool.py @@ -5,17 +5,15 @@ """Unit tests for Bio.Phylo.Applications wrappers.""" -import sys import os +import sys import unittest import warnings - from subprocess import getoutput -from Bio import Phylo -from Bio import MissingExternalDependencyError from Bio import BiopythonDeprecationWarning - +from Bio import MissingExternalDependencyError +from Bio import Phylo with warnings.catch_warnings(): warnings.simplefilter("ignore", category=BiopythonDeprecationWarning) diff --git a/Tests/test_prodoc.py b/Tests/test_prodoc.py index b98d2eff8..09a5f3dda 100644 --- a/Tests/test_prodoc.py +++ b/Tests/test_prodoc.py @@ -7,6 +7,7 @@ import os import unittest + from Bio.ExPASy import Prodoc diff --git a/Tests/test_raxml_tool.py b/Tests/test_raxml_tool.py index 536d8f36a..9e5d15c2c 100644 --- a/Tests/test_raxml_tool.py +++ b/Tests/test_raxml_tool.py @@ -9,10 +9,9 @@ import os import unittest import warnings -from Bio import Phylo -from Bio import MissingExternalDependencyError from Bio import BiopythonDeprecationWarning - +from Bio import MissingExternalDependencyError +from Bio import Phylo with warnings.catch_warnings(): warnings.simplefilter("ignore", category=BiopythonDeprecationWarning) diff --git a/Tests/test_samtools_tool.py b/Tests/test_samtools_tool.py index b97f4e62f..198beb141 100644 --- a/Tests/test_samtools_tool.py +++ b/Tests/test_samtools_tool.py @@ -9,19 +9,17 @@ """Tests for samtools tool.""" -from Bio import MissingExternalDependencyError -import sys import os +import sys import unittest import warnings - from Bio import BiopythonDeprecationWarning +from Bio import MissingExternalDependencyError with warnings.catch_warnings(): warnings.simplefilter("ignore", category=BiopythonDeprecationWarning) from Bio.Application import ApplicationError - from Bio.Sequencing.Applications import SamtoolsViewCommandline from Bio.Sequencing.Applications import SamtoolsCalmdCommandline from Bio.Sequencing.Applications import SamtoolsCatCommandline from Bio.Sequencing.Applications import SamtoolsFaidxCommandline @@ -29,8 +27,9 @@ with warnings.catch_warnings(): from Bio.Sequencing.Applications import SamtoolsIndexCommandline from Bio.Sequencing.Applications import SamtoolsMergeCommandline from Bio.Sequencing.Applications import SamtoolsMpileupCommandline - from Bio.Sequencing.Applications import SamtoolsVersion1xSortCommandline from Bio.Sequencing.Applications import SamtoolsSortCommandline + from Bio.Sequencing.Applications import SamtoolsVersion1xSortCommandline + from Bio.Sequencing.Applications import SamtoolsViewCommandline # TODO from Bio.Sequencing.Applications import SamtoolsPhaseCommandline # TODO from Bio.Sequencing.Applications import SamtoolsReheaderCommandline diff --git a/Tests/test_seq.py b/Tests/test_seq.py index 1b57ed2c6..f59744b56 100644 --- a/Tests/test_seq.py +++ b/Tests/test_seq.py @@ -15,13 +15,12 @@ except ImportError: from Bio import BiopythonWarning from Bio import Seq -from Bio.Data.IUPACData import ( - ambiguous_dna_complement, - ambiguous_rna_complement, - ambiguous_dna_values, - ambiguous_rna_values, -) -from Bio.Data.CodonTable import TranslationError, standard_dna_table +from Bio.Data.CodonTable import standard_dna_table +from Bio.Data.CodonTable import TranslationError +from Bio.Data.IUPACData import ambiguous_dna_complement +from Bio.Data.IUPACData import ambiguous_dna_values +from Bio.Data.IUPACData import ambiguous_rna_complement +from Bio.Data.IUPACData import ambiguous_rna_values test_seqs = [ Seq.Seq("TCAAAAGGATGCATCATG"), diff --git a/setup.py b/setup.py index 7b6dc2616..ce7e2f24f 100644 --- a/setup.py +++ b/setup.py @@ -23,15 +23,15 @@ mailing list and ask for help. See: http://biopython.org/wiki/Mailing_lists """ -import sys -import os import ast +import os +import sys try: - from setuptools import setup + from setuptools import __version__ as setuptools_version from setuptools import Command from setuptools import Extension - from setuptools import __version__ as setuptools_version + from setuptools import setup except ImportError: sys.exit( "We need the Python library setuptools to be installed. "