Show More
Commit Description:
merge with algo and add brython files that were missing
Commit Description:
merge with algo and add brython files that were missing
References:
File last commit:
Show/Diff file:
Action:
lib/assets/Lib/importlib/basehook.py
| 45 lines
| 1.4 KiB
| text/x-python
| PythonLexer
|
r584 | from javascript import JSObject | |||
from browser import window | ||||
import urllib.request | ||||
class TempMod: | ||||
def __init__(self, name): | ||||
self.name=name | ||||
#define my custom import hook (just to see if it get called etc). | ||||
class BaseHook: | ||||
def __init__(self, fullname=None, path=None): | ||||
self._fullname=fullname | ||||
self._path=path # we don't are about this... | ||||
self._modpath='' | ||||
self._module='' | ||||
def find_module(self, name=None, path=None): | ||||
if name is None: | ||||
name=self._fullname | ||||
for _i in ('libs/%s.js' % name, 'Lib/%s.py' % name, | ||||
'Lib/%s/__init__.py' % name): | ||||
_path="%s%s" % (__BRYTHON__.brython_path, _i) | ||||
try: | ||||
_fp,_,_headers=urllib.request.urlopen(_path) | ||||
if _headers['status'] != 200: | ||||
continue | ||||
self._module=_fp.read() | ||||
self._modpath=_path | ||||
return self | ||||
except urllib.error.HTTPError as e: | ||||
self._modpath='' | ||||
self._module='' | ||||
raise ImportError | ||||
def is_package(self): | ||||
return '.' in self._fullname | ||||
def load_module(self, name): | ||||
if name is None: | ||||
name=self._fullname | ||||
window.eval('__BRYTHON__.imported["%s"]={}' % name) | ||||
return JSObject(__BRYTHON__.run_py)(self._module, | ||||
self._modpath, TempMod(name)) | ||||