Sindbad~EG File Manager
#-*- coding: utf-8 -*-
# pycomp.py
# Compatibility layer between python2 and python3
#
# Copyright (C) 2016 Jakub Kadlcik
#
# This copyrighted material is made available to anyone wishing to use,
# modify, copy, or redistribute it subject to the terms and conditions of
# the GNU General Public License v.2, or (at your option) any later version.
# This program is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY expressed or implied, including the implied warranties of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
# Public License for more details. You should have received a copy of the
# GNU General Public License along with this program; if not, write to the
# Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
# 02110-1301, USA.
#
from sys import version_info
PY3 = version_info.major >= 3
if PY3:
from io import StringIO
from functools import lru_cache
else:
from StringIO import StringIO
from backports.functools_lru_cache import lru_cache
def load_source(module_name, path):
"""
Read and evaluate a python file
This is useful when we don't know the module name beforehand and somehow
figure it out at the runtime (e.g. user-defined hook files)
"""
if not PY3:
import imp
return imp.load_source(module_name, path)
from importlib.machinery import SourceFileLoader
import types
loader = SourceFileLoader(module_name, path)
loaded = types.ModuleType(loader.name)
return loader.exec_module(loaded)
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists