Compatibility with Jupyterlab 5
Hi, Thanks for sharing the modifications for conda modules.
After installing this package I do get the modules tab but no module is displayed.

I run Jupyterlab 5 but I don't see any warning or error related to this plugin printed anywhere (I have set debug = True everywhere).
Here are the only modifications I did:
diff --git a/tmod/__init__.py b/tmod/__init__.py
index 604ee27..757c0b8 100644
--- a/tmod/__init__.py
+++ b/tmod/__init__.py
@@ -10,7 +10,7 @@ from asyncio.subprocess import PIPE
from collections import OrderedDict
from functools import wraps
-MODULES_CMD = os.environ.get("MODULES_CMD", "")
+MODULES_CMD = "/usr/lib/x86_64-linux-gnu/modulecmd.tcl"
MODULES_SYSTEM_NAME = os.environ.get("MODULES_SYSTEM_NAME", "")
SITE_POSTFIX = os.path.join("lib", "python" + sys.version[:3], "site-packages")
# We need the version of modules to do some patching due to the way
@@ -24,16 +24,12 @@ try:
).group(1)
except:
MODULES_VERSION = '0.0.0'
-# On Jean Zay module list outputs some of modules with version numbers
-# in parentheses. We need to catch those modules as well
-MODULE_REGEX = re.compile(r"^[\w\-_+.\/()]{1,}[^\/:]$", re.M)
-# But need to remove those parentheses when loading the module
-# This regex will be used to substitute the content within parentheses with
-# empty string
-MODULE_DEFAULT_REGEX = re.compile(r"[\(\[].*?[\)\]]", re.M)
+
+# NOTE: Try to make these configurable as this can be platform dependent?
+MODULE_REGEX = re.compile(r"^[\w\-_+.\/]{1,}[^\/:]$", re.M)
MODULE_HIDDEN_REGEX = re.compile(r"^(.+\/\..+|\..+)$", re.M)
-EMPTY_LIST_STR = "No modules loaded"
+EMPTY_LIST_STR = "No Modulefiles Currently Loaded."
async def set_env():
@@ -330,9 +326,7 @@ class API(object):
string = await module("avail", *args)
if string is not None:
modules = MODULE_REGEX.findall(string.strip())
- # Remove the content between parentheses in module list
- modules = [MODULE_DEFAULT_REGEX.sub("", m).strip() for m in modules]
- modules.sort(key=lambda v: v.split("/")[0])
+ modules.sort(key=lambda v: v.split("/")[0].lower())
else:
modules = []
self.avail_cache = modules
I don't really know how to debug this, do you have any idea ?