1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129
|
# Copyright 1999-2003 by Jeffrey Chang. All rights reserved.
#
# This file is part of the Biopython distribution and governed by your
# choice of the "Biopython License Agreement" or the "BSD 3-Clause License".
# Please see the LICENSE file that should have been included as part of this
# package.
"""Collection of modules for dealing with biological data in Python.
The Biopython Project is an international association of developers
of freely available Python tools for computational molecular biology.
https://biopython.org
"""
import os
import warnings
__version__ = "1.78"
class MissingExternalDependencyError(Exception):
"""Missing an external dependency.
Used for things like missing command line tools. Important for our unit
tests to allow skipping tests with missing external dependencies.
"""
class MissingPythonDependencyError(MissingExternalDependencyError, ImportError):
"""Missing an external python dependency (subclass of ImportError).
Used for missing Python modules (rather than just a typical ImportError).
Important for our unit tests to allow skipping tests with missing external
python dependencies, while also allowing the exception to be caught as an
ImportError.
"""
class StreamModeError(ValueError):
"""Incorrect stream mode (text vs binary).
This error should be raised when a stream (file or file-like object)
argument is in text mode while the receiving function expects binary mode,
or vice versa.
"""
class BiopythonWarning(Warning):
"""Biopython warning.
Biopython should use this warning (or subclasses of it), making it easy to
silence all our warning messages should you wish to:
>>> import warnings
>>> from Bio import BiopythonWarning
>>> warnings.simplefilter('ignore', BiopythonWarning)
Consult the warnings module documentation for more details.
"""
class BiopythonParserWarning(BiopythonWarning):
"""Biopython parser warning.
Some in-valid data files cannot be parsed and will trigger an exception.
Where a reasonable interpretation is possible, Biopython will issue this
warning to indicate a potential problem. To silence these warnings, use:
>>> import warnings
>>> from Bio import BiopythonParserWarning
>>> warnings.simplefilter('ignore', BiopythonParserWarning)
Consult the warnings module documentation for more details.
"""
class BiopythonDeprecationWarning(BiopythonWarning):
"""Biopython deprecation warning.
Biopython uses this warning instead of the built in DeprecationWarning
since those are ignored by default since Python 2.7.
To silence all our deprecation warning messages, use:
>>> import warnings
>>> from Bio import BiopythonDeprecationWarning
>>> warnings.simplefilter('ignore', BiopythonDeprecationWarning)
Code marked as deprecated is likely to be removed in a future version
of Biopython. To avoid removal of this code, please contact the Biopython
developers via the mailing list or GitHub.
"""
class BiopythonExperimentalWarning(BiopythonWarning):
"""Biopython experimental code warning.
Biopython uses this warning for experimental code ('alpha' or 'beta'
level code) which is released as part of the standard releases to mark
sub-modules or functions for early adopters to test & give feedback.
Code issuing this warning is likely to change (or even be removed) in
a subsequent release of Biopython. Such code should NOT be used for
production/stable code. It should only be used if:
- You are running the latest release of Biopython, or ideally the
latest code from our repository.
- You are subscribed to the biopython-dev mailing list to provide
feedback on this code, and to be alerted of changes to it.
If all goes well, experimental code would be promoted to stable in
a subsequent release, and this warning removed from it.
"""
_parent_dir = os.path.dirname(os.path.dirname(__file__))
if os.path.exists(os.path.join(_parent_dir, "setup.py")):
warnings.warn(
"You may be importing Biopython from inside the source tree."
" This is bad practice and might lead to downstream issues."
" In particular, you might encounter ImportErrors due to"
" missing compiled C extensions. We recommend that you"
" try running your code from outside the source tree."
" If you are outside the source tree then you have a"
" setup.py file in an unexpected directory: " + _parent_dir,
BiopythonWarning,
)
# See #PR 2007 and issue #1991 for discussion on this warning:
# https://github.com/biopython/biopython/pull/2007
|