> Yes, you can use a custom module naming scheme, which would probably
> derive from the existing HierarchicalMNS.
> 
> Documentation for that is available at
> https://github.com/hpcugent/easybuild/wiki/Using-a-custom-module-naming-scheme,
> but (still) needs to be updated w.r.t. the extended support for
> hierarchical schemes.
> 

Initial attempts failing.

$ ls -R /home/treydock/easybuild/easybuild_overrides/
/home/treydock/easybuild/easybuild_overrides/:
easybuild

/home/treydock/easybuild/easybuild_overrides/easybuild:
__init__.py  __init__.pyc  tools

/home/treydock/easybuild/easybuild_overrides/easybuild/tools:
__init__.py  __init__.pyc  module_naming_scheme

/home/treydock/easybuild/easybuild_overrides/easybuild/tools/module_naming_scheme:
__init__.py  __init__.pyc  local_module_naming_scheme.py  
local_module_naming_scheme.pyc

$ cat 
/home/treydock/easybuild/easybuild_overrides/easybuild/tools/module_naming_scheme/local_module_naming_scheme.py
import os
from easybuild.tools.module_naming_scheme import HierarchicalMNS

class LocalModuleNamingScheme(HierarchicalMNS):
  """Class implementing local module naming scheme."""

  def det_short_module_name(self, ec):
      """
      Determine short module name, i.e. the name under which modules will be 
exposed to users.
      Examples: GCC/4.8.3, OpenMPI/1.6.5, OpenBLAS/0.2.9, HPL/2.1, Python/2.7.5
      """
      return os.path.join(ec['name'].lower(), ec['version'] + 
ec['versionsuffix'])

$ MYEBDIR=$HOME/easybuild/my_easyblocks
$ EB_MNS_DIR=$HOME/easybuild/easybuild_overrides
$ export PYTHONPATH=$PYTHONPATH:$MYEBDIR:$EB_MNS_DIR
$ echo $PYTHONPATH
:/home/treydock/easybuild/my_easyblocks:/home/treydock/easybuild/easybuild_overrides

$ eb --avail-module-naming-schemes
Traceback (most recent call last):
  File "/usr/lib/python2.6/site-packages/easybuild/main.py", line 52, in 
<module>
    import easybuild.tools.options as eboptions
  File "/usr/lib/python2.6/site-packages/easybuild/tools/options.py", line 41, 
in <module>
    from easybuild.framework.easyblock import EasyBlock
  File "/usr/lib/python2.6/site-packages/easybuild/framework/easyblock.py", 
line 52, in <module>
    from easybuild.framework.easyconfig.easyconfig import (EasyConfig, 
ActiveMNS, ITERATE_OPTIONS,
  File 
"/usr/lib/python2.6/site-packages/easybuild/framework/easyconfig/__init__.py", 
line 35, in <module>
    from easybuild.framework.easyconfig.easyconfig import EasyConfig
  File 
"/usr/lib/python2.6/site-packages/easybuild/framework/easyconfig/easyconfig.py",
 line 50, in <module>
    from easybuild.tools.module_naming_scheme import DEVEL_MODULE_SUFFIX
ImportError: cannot import name DEVEL_MODULE_SUFFIX

> EasyBuild takes into account that certain modules may have been
> loaded,
> and should stay loaded.
> 
> I haven't used this in combination with sticky modules myself (maybe
> others have).
> If you notice any issues related to this, let us know, since that
> would
> be a bug.
> 

I'll give it a try and see how it works, thanks.

- Trey

Reply via email to