From 1f255704f7bf618fb7e0432e1fccef6ee22364d4 Mon Sep 17 00:00:00 2001 From: Joshua Li Date: Wed, 3 Jun 2020 10:57:06 -0700 Subject: [PATCH] use source loader from importlib --- sshuttle/ssh.py | 36 ++++-------------------------------- 1 file changed, 4 insertions(+), 32 deletions(-) diff --git a/sshuttle/ssh.py b/sshuttle/ssh.py index 5c968f0..d79c591 100644 --- a/sshuttle/ssh.py +++ b/sshuttle/ssh.py @@ -3,7 +3,7 @@ import os import re import socket import zlib -import imp +import importlib import subprocess as ssubprocess import shlex from shlex import quote @@ -15,37 +15,9 @@ from sshuttle.helpers import debug2 def readfile(name): - tokens = name.split(".") - f = None - - token = tokens[0] - token_name = [token] - token_str = ".".join(token_name) - - try: - f, pathname, description = imp.find_module(token_str) - - for token in tokens[1:]: - module = imp.load_module(token_str, f, pathname, description) - if f is not None: - f.close() - - token_name.append(token) - token_str = ".".join(token_name) - - f, pathname, description = imp.find_module( - token, module.__path__) - - if f is not None: - contents = f.read() - else: - contents = "" - - finally: - if f is not None: - f.close() - - return contents.encode("UTF8") + spec = importlib.util.find_spec(name) + source = spec.loader.get_source(spec) + return source.encode("UTF8") def empackage(z, name, data=None):