131 lines
4.5 KiB
Python
Executable File
131 lines
4.5 KiB
Python
Executable File
# 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.
|
|
|
|
http://biopython.org
|
|
"""
|
|
|
|
import os
|
|
import warnings
|
|
|
|
__version__ = "1.76"
|
|
|
|
|
|
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.
|
|
"""
|
|
|
|
pass
|
|
|
|
|
|
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.
|
|
"""
|
|
|
|
pass
|
|
|
|
|
|
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.
|
|
"""
|
|
|
|
pass
|
|
|
|
|
|
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.
|
|
"""
|
|
|
|
pass
|
|
|
|
|
|
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.
|
|
"""
|
|
|
|
pass
|
|
|
|
|
|
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.
|
|
"""
|
|
|
|
pass
|
|
|
|
|
|
_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: {}.".
|
|
format(_parent_dir), BiopythonWarning)
|
|
# See #PR 2007 and issue #1991 for discussion on this warning:
|
|
# https://github.com/biopython/biopython/pull/2007
|