forked from s444417/ProjektAI
42 lines
971 B
Python
42 lines
971 B
Python
|
# -*- 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__)
|