|
|
- # -*- coding: utf-8 -*-
- #
- # Copyright (C) 2012 The Python Software Foundation.
- # See LICENSE.txt and CONTRIBUTORS.txt.
- #
- """Backports for individual classes and functions."""
-
- import os
- import sys
-
- __all__ = ['cache_from_source', 'callable', 'fsencode']
-
-
- try:
- from imp import cache_from_source
- except ImportError:
- def cache_from_source(py_file, debug=__debug__):
- ext = debug and 'c' or 'o'
- return py_file + ext
-
-
- try:
- callable = callable
- except NameError:
- from collections import Callable
-
- def callable(obj):
- return isinstance(obj, Callable)
-
-
- try:
- fsencode = os.fsencode
- except AttributeError:
- def fsencode(filename):
- if isinstance(filename, bytes):
- return filename
- elif isinstance(filename, str):
- return filename.encode(sys.getfilesystemencoding())
- else:
- raise TypeError("expect bytes or str, not %s" %
- type(filename).__name__)
|