120120_log = fancylogger .getLogger ('easyblock' )
121121
122122
123- def make_extension_string (app , name_version_sep = '-' , ext_sep = ', ' , sort = True ):
124- """
125- Generate a string with a list of extensions of the given EasyBlock instance.
126-
127- The name and version are separated by name_version_sep and each extension is separated by ext_sep
128- """
129- exts_list = (name_version_sep .join (ext ) for ext in app .make_extension_list ())
130- if sort :
131- exts_list = sorted (exts_list , key = str .lower )
132- return ext_sep .join (exts_list )
133-
134-
135123class EasyBlock (object ):
136124 """Generic support for building and installing software, base class for actual easyblocks."""
137125
@@ -1531,7 +1519,7 @@ def make_module_extra_extensions(self):
15311519
15321520 # set environment variable that specifies list of extensions
15331521 # We need only name and version, so don't resolve templates
1534- exts_list = make_extension_string (self , ext_sep = ',' , sort = False )
1522+ exts_list = self . make_extension_string (ext_sep = ',' , sort = False )
15351523 env_var_name = 'EBEXTSLIST' + convert_name (self .name , upper = True )
15361524 lines .append (self .module_generator .set_environment (env_var_name , exts_list ))
15371525
@@ -1812,6 +1800,18 @@ def load_dependency_modules(self):
18121800 # EXTENSIONS UTILITY FUNCTIONS
18131801 #
18141802
1803+ def make_extension_string (self , name_version_sep = '-' , ext_sep = ', ' , sort = True ):
1804+ """
1805+ Generate a string with a list of extensions returned by make_extension_list.
1806+
1807+ The name and version are separated by name_version_sep and each extension is separated by ext_sep.
1808+ For customization of extensions the make_extension_list method should be used.
1809+ """
1810+ exts_list = (name_version_sep .join (ext ) for ext in self .make_extension_list ())
1811+ if sort :
1812+ exts_list = sorted (exts_list , key = str .lower )
1813+ return ext_sep .join (exts_list )
1814+
18151815 def make_extension_list (self ):
18161816 """
18171817 Return a list of extension names and their versions included in this installation
@@ -1823,8 +1823,9 @@ def make_extension_list(self):
18231823 # As name can be a templated value we must resolve templates
18241824 if hasattr (self , '_make_extension_list' ):
18251825 self .log .nosupport ("self._make_extension_list is replaced by self.make_extension_list" , '5.0' )
1826- if hasattr (self , 'make_extension_string' ):
1827- self .log .nosupport ("self.make_extension_string was removed in favor of the free function" , '5.0' )
1826+ if type (self ).make_extension_string != EasyBlock .make_extension_string :
1827+ self .log .nosupport ("self.make_extension_string should not be overridden" , '5.0' )
1828+
18281829 exts_list = []
18291830 for ext in self .cfg .get_ref ('exts_list' ):
18301831 if isinstance (ext , str ):
0 commit comments